wonder.js
Version:
92 lines (86 loc) • 6.45 kB
JavaScript
'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 */