wonder.js
Version:
283 lines (275 loc) • 12.4 kB
JavaScript
'use strict';
var ArrayService$Wonderjs = require("../../../service/atom/ArrayService.js");
var GameObjectAPI$Wonderjs = require("../../../api/GameObjectAPI.js");
var AddNodeDataSystem$Wonderjs = require("./AddNodeDataSystem.js");
var ArrayService$WonderCommonlib = require("wonder-commonlib/lib/js/src/ArrayService.js");
var HierachyTransformService$Wonderjs = require("../../../service/record/main/transform/HierachyTransformService.js");
var GameObjectTransformService$Wonderjs = require("../../../service/record/main/transform/GameObjectTransformService.js");
var GetNodeComponentDataSystem$Wonderjs = require("./GetNodeComponentDataSystem.js");
var RecordTransformMainService$Wonderjs = require("../../../service/state/main/transform/RecordTransformMainService.js");
var IsRootGameObjectMainService$Wonderjs = require("../../../service/state/main/gameObject/IsRootGameObjectMainService.js");
var MutableSparseMapService$WonderCommonlib = require("wonder-commonlib/lib/js/src/MutableSparseMapService.js");
var GetIsActiveGameObjectMainService$Wonderjs = require("../../../service/state/main/gameObject/GetIsActiveGameObjectMainService.js");
var _getChildren = HierachyTransformService$Wonderjs.unsafeGetChildren;
function _setChildren(gameObjectChildrenMap, gameObjectNodeIndexMap, nodeDataArr) {
return ArrayService$WonderCommonlib.reduceOneParam((function (newNodeDataArr, nodeData) {
var match = MutableSparseMapService$WonderCommonlib.get(nodeData[/* gameObject */0], gameObjectChildrenMap);
return ArrayService$Wonderjs.push(/* record */[
/* gameObject */nodeData[/* gameObject */0],
/* children */match !== undefined ? match.map((function (childGameObject) {
return MutableSparseMapService$WonderCommonlib.unsafeGet(childGameObject, gameObjectNodeIndexMap);
})) : undefined,
/* translation */nodeData[/* translation */2],
/* rotation */nodeData[/* rotation */3],
/* scale */nodeData[/* scale */4],
/* mesh */nodeData[/* mesh */5],
/* camera */nodeData[/* camera */6],
/* extras */nodeData[/* extras */7],
/* extensions */nodeData[/* extensions */8]
], newNodeDataArr);
}), /* array */[], nodeDataArr);
}
function _getNodeData(transform, nodeIndex, param, state) {
var gameObjectChildrenMap = param[0];
var transformRecord = RecordTransformMainService$Wonderjs.getRecord(state);
var gameObject = GameObjectTransformService$Wonderjs.unsafeGetGameObject(transform, transformRecord);
var childrenTransformArr = HierachyTransformService$Wonderjs.unsafeGetChildren(transform, transformRecord);
var childrenGameObjectArr = childrenTransformArr.map((function (transform) {
return GameObjectTransformService$Wonderjs.unsafeGetGameObject(transform, transformRecord);
}));
var match = childrenGameObjectArr.length;
var gameObjectChildrenMap$1 = match !== 0 ? MutableSparseMapService$WonderCommonlib.set(gameObject, childrenGameObjectArr, gameObjectChildrenMap) : gameObjectChildrenMap;
var gameObjectNodeIndexMap = MutableSparseMapService$WonderCommonlib.set(gameObject, nodeIndex, param[1]);
var isActive = GetIsActiveGameObjectMainService$Wonderjs.getIsActive(gameObject, state);
var isRoot = IsRootGameObjectMainService$Wonderjs.getIsRoot(gameObject, state);
return /* tuple */[
transformRecord,
gameObject,
childrenTransformArr,
childrenGameObjectArr,
gameObjectChildrenMap$1,
gameObjectNodeIndexMap,
isActive,
isRoot
];
}
function _getNodeAndItsComponentsData(state, param, getPointsDataFuncTuple) {
var match = param[3];
var match$1 = param[2];
var match$2 = param[1];
var match$3 = param[0];
return ArrayService$WonderCommonlib.reduceOneParam((function (param, transform) {
var state = param[0];
var match = param[3];
var match$1 = param[2];
var match$2 = param[1];
var nodeIndex = match$2[0];
var match$3 = _getNodeData(transform, nodeIndex, /* tuple */[
match$1[3],
match$1[4]
], state);
var match$4 = match$3[0];
var localPositions = match$4[/* localPositions */3];
var localRotations = match$4[/* localRotations */4];
var localScales = match$4[/* localScales */5];
var gameObject = match$3[1];
var match$5 = GetNodeComponentDataSystem$Wonderjs.getAllComponentData(/* tuple */[
gameObject,
state,
/* tuple */[
match$2[1],
match$2[2],
match$2[3],
match$2[4],
match$2[5],
match$2[6],
match$2[7],
match$2[8],
match$2[9],
match$2[10]
],
/* tuple */[
match$1[0],
match$1[1],
match$1[2]
],
/* tuple */[
match[0],
match[1],
match[2],
match[3],
match[4],
match[5],
match[6],
match[7],
match[8],
match[9]
]
], getPointsDataFuncTuple);
var match$6 = match$5[4];
var match$7 = match$5[3];
var match$8 = match$5[2];
var match$9 = match$5[1];
return _getNodeAndItsComponentsData(match$5[0], /* tuple */[
/* tuple */[
nodeIndex + 1 | 0,
match$8[0],
match$8[1],
match$8[2],
match$8[3],
match$8[4],
match$8[5],
match$8[6],
match$8[7],
match$8[8],
match$8[9]
],
/* tuple */[
match$7[0],
match$7[1],
match$7[2],
match$3[4],
match$3[5]
],
/* tuple */[
match$6[0],
match$6[1],
match$6[2],
match$6[3],
match$6[4],
match$6[5],
match$6[6],
match$6[7],
match$6[8],
match$6[9]
],
/* tuple */[
match$3[2],
AddNodeDataSystem$Wonderjs.addNodeAndItsComponentData(gameObject, /* tuple */[
match$3[6],
match$3[7]
], /* tuple */[
/* tuple */[
transform,
localPositions,
localRotations,
localScales,
match$4[/* defaultLocalPosition */12],
match$4[/* defaultLocalRotation */13],
match$4[/* defaultLocalScale */14]
],
match$9[0],
match$9[1],
match$9[4],
match$9[5],
match$9[6],
match$9[7],
match$9[2],
match$9[3],
match$9[8],
match$9[9]
], param[4])
]
], getPointsDataFuncTuple);
}), /* tuple */[
state,
/* tuple */[
match$3[0],
match$3[1],
match$3[2],
match$3[3],
match$3[4],
match$3[5],
match$3[6],
match$3[7],
match$3[8],
match$3[9],
match$3[10]
],
/* tuple */[
match$2[0],
match$2[1],
match$2[2],
match$2[3],
match$2[4]
],
/* tuple */[
match$1[0],
match$1[1],
match$1[2],
match$1[3],
match$1[4],
match$1[5],
match$1[6],
match$1[7],
match$1[8],
match$1[9]
],
match[1]
], match[0]);
}
function getAllNodeData(rootGameObject, getPointsDataFuncTuple, state) {
var match = _getNodeAndItsComponentsData(state, /* tuple */[
/* tuple */[
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0
],
/* tuple */[
MutableSparseMapService$WonderCommonlib.createEmpty(/* () */0),
MutableSparseMapService$WonderCommonlib.createEmpty(/* () */0),
MutableSparseMapService$WonderCommonlib.createEmpty(/* () */0),
MutableSparseMapService$WonderCommonlib.createEmpty(/* () */0),
MutableSparseMapService$WonderCommonlib.createEmpty(/* () */0)
],
/* tuple */[
MutableSparseMapService$WonderCommonlib.createEmpty(/* () */0),
MutableSparseMapService$WonderCommonlib.createEmpty(/* () */0),
MutableSparseMapService$WonderCommonlib.createEmpty(/* () */0),
MutableSparseMapService$WonderCommonlib.createEmpty(/* () */0),
MutableSparseMapService$WonderCommonlib.createEmpty(/* () */0),
MutableSparseMapService$WonderCommonlib.createEmpty(/* () */0),
MutableSparseMapService$WonderCommonlib.createEmpty(/* () */0),
MutableSparseMapService$WonderCommonlib.createEmpty(/* () */0),
MutableSparseMapService$WonderCommonlib.createEmpty(/* () */0),
MutableSparseMapService$WonderCommonlib.createEmpty(/* () */0)
],
/* tuple */[
/* array */[GameObjectAPI$Wonderjs.unsafeGetGameObjectTransformComponent(rootGameObject, state)],
/* array */[]
]
], getPointsDataFuncTuple);
var match$1 = match[3];
var match$2 = match[2];
var nodeDataArr = _setChildren(match$2[3], match$2[4], match[4]);
return /* tuple */[
match[0],
/* tuple */[
match$1[0],
match$1[1],
match$1[2],
match$1[3],
match$1[4],
match$1[5],
match$1[6],
match$1[7],
match$1[8],
match$1[9]
],
nodeDataArr
];
}
exports._getChildren = _getChildren;
exports._setChildren = _setChildren;
exports._getNodeData = _getNodeData;
exports._getNodeAndItsComponentsData = _getNodeAndItsComponentsData;
exports.getAllNodeData = getAllNodeData;
/* ArrayService-Wonderjs Not a pure module */