UNPKG

wonder.js

Version:
92 lines (86 loc) 6.45 kB
'use strict'; var Curry = require("bs-platform/lib/js/curry.js"); var ArrayMapService$Wonderjs = require("../../../atom/ArrayMapService.js"); var ArrayService$WonderCommonlib = require("wonder-commonlib/lib/js/src/ArrayService.js"); var GetComponentGameObjectService$Wonderjs = require("../../../record/main/gameObject/GetComponentGameObjectService.js"); var MutableSparseMapService$WonderCommonlib = require("wonder-commonlib/lib/js/src/MutableSparseMapService.js"); var RemoveComponentGameObjectMainService$Wonderjs = require("./RemoveComponentGameObjectMainService.js"); var DisposeComponentGameObjectMainService$Wonderjs = require("./DisposeComponentGameObjectMainService.js"); var BatchGetComponentGameObjectMainService$Wonderjs = require("./BatchGetComponentGameObjectMainService.js"); function _getSharableComponentDataArr(uidArray, getComponentFunc, gameObjectRecord) { return ArrayService$WonderCommonlib.reduceOneParam((function (dataMap, uid) { var match = getComponentFunc(uid, gameObjectRecord); if (match !== undefined) { return ArrayMapService$Wonderjs.addValue(match, uid, dataMap); } else { return dataMap; } }), MutableSparseMapService$WonderCommonlib.createEmpty(/* () */0), uidArray); } function _batchDisposeSharableComponents(uidArray, param, param$1, state) { var isRemoveTexture = param[2]; var isRemoveMaterial = param[1]; var gameObjectRecord = state[/* gameObjectRecord */10]; var geometryDataMap = _getSharableComponentDataArr(uidArray, GetComponentGameObjectService$Wonderjs.getGeometryComponent, gameObjectRecord); var match = param[0] ? /* tuple */[ RemoveComponentGameObjectMainService$Wonderjs.batchRemoveGeometryComponent(state, geometryDataMap), /* array */[] ] : DisposeComponentGameObjectMainService$Wonderjs.batchDisposeGeometryComponentData(state, geometryDataMap); var state$1 = match[0]; var basicMaterialDataMap = _getSharableComponentDataArr(uidArray, GetComponentGameObjectService$Wonderjs.getBasicMaterialComponent, gameObjectRecord); var state$2 = isRemoveMaterial ? RemoveComponentGameObjectMainService$Wonderjs.batchRemoveBasicMaterialComponent(state$1, basicMaterialDataMap) : Curry._3(param$1[0], state$1, basicMaterialDataMap, isRemoveTexture); var gameObjectRecord$1 = state$2[/* gameObjectRecord */10]; var lightMaterialDataMap = _getSharableComponentDataArr(uidArray, GetComponentGameObjectService$Wonderjs.getLightMaterialComponent, gameObjectRecord$1); var state$3 = isRemoveMaterial ? RemoveComponentGameObjectMainService$Wonderjs.batchRemoveLightMaterialComponent(state$2, lightMaterialDataMap) : Curry._3(param$1[1], state$2, lightMaterialDataMap, isRemoveTexture); return /* tuple */[ state$3, match[1] ]; } function batchDispose(param, param$1, state) { var batchDisposeLightMaterialComponentFunc = param$1[1]; var batchDisposeBasicMaterialComponentFunc = param$1[0]; var isRemoveTexture = param[4]; var isRemoveMaterial = param[3]; var isRemoveGeometry = param[2]; var isKeepOrder = param[1]; var uidArray = param[0]; var state$1 = DisposeComponentGameObjectMainService$Wonderjs.batchDisposeTransformComponent(state, isKeepOrder, BatchGetComponentGameObjectMainService$Wonderjs.batchGetTransformComponent(uidArray, state)); var match = _batchDisposeSharableComponents(uidArray, /* tuple */[ isRemoveGeometry, isRemoveMaterial, isRemoveTexture ], /* tuple */[ batchDisposeBasicMaterialComponentFunc, batchDisposeLightMaterialComponentFunc ], state$1); var state$2 = match[0]; var state$3 = DisposeComponentGameObjectMainService$Wonderjs.batchDisposeScriptComponent(state$2, BatchGetComponentGameObjectMainService$Wonderjs.batchGetScriptComponent(uidArray, state$2)); var state$4 = DisposeComponentGameObjectMainService$Wonderjs.batchDisposeBasicCameraViewComponent(state$3, BatchGetComponentGameObjectMainService$Wonderjs.batchGetBasicCameraViewComponent(uidArray, state$3)); var state$5 = DisposeComponentGameObjectMainService$Wonderjs.batchDisposePerspectiveCameraProjectionComponent(state$4, BatchGetComponentGameObjectMainService$Wonderjs.batchGetPerspectiveCameraProjectionComponent(uidArray, state$4)); var state$6 = DisposeComponentGameObjectMainService$Wonderjs.batchDisposeArcballCameraControllerComponent(state$5, BatchGetComponentGameObjectMainService$Wonderjs.batchGetArcballCameraControllerComponent(uidArray, state$5)); var state$7 = DisposeComponentGameObjectMainService$Wonderjs.batchDisposeFlyCameraControllerComponent(state$6, BatchGetComponentGameObjectMainService$Wonderjs.batchGetFlyCameraControllerComponent(uidArray, state$6)); var state$8 = DisposeComponentGameObjectMainService$Wonderjs.batchDisposeMeshRendererComponent(state$7, BatchGetComponentGameObjectMainService$Wonderjs.batchGetMeshRendererComponent(uidArray, state$7)); var state$9 = DisposeComponentGameObjectMainService$Wonderjs.batchDisposeDirectionLightComponent(state$8, BatchGetComponentGameObjectMainService$Wonderjs.batchGetDirectionLightComponent(uidArray, state$8)); var state$10 = DisposeComponentGameObjectMainService$Wonderjs.batchDisposePointLightComponent(state$9, BatchGetComponentGameObjectMainService$Wonderjs.batchGetPointLightComponent(uidArray, state$9)); var match$1 = DisposeComponentGameObjectMainService$Wonderjs.batchDisposeSourceInstanceComponent(state$10, /* tuple */[ isKeepOrder, isRemoveGeometry, isRemoveMaterial, isRemoveTexture ], Curry._1(param$1[2], /* tuple */[ batchDisposeBasicMaterialComponentFunc, batchDisposeLightMaterialComponentFunc ]), BatchGetComponentGameObjectMainService$Wonderjs.batchGetSourceInstanceComponent(uidArray, state$10)); var state$11 = match$1[0]; var state$12 = DisposeComponentGameObjectMainService$Wonderjs.batchDisposeObjectInstanceComponent(state$11, BatchGetComponentGameObjectMainService$Wonderjs.batchGetObjectInstanceComponent(uidArray, state$11)); return /* tuple */[ state$12, match[1], match$1[1] ]; } exports._getSharableComponentDataArr = _getSharableComponentDataArr; exports._batchDisposeSharableComponents = _batchDisposeSharableComponents; exports.batchDispose = batchDispose; /* ArrayMapService-Wonderjs Not a pure module */