wonder.js
Version:
141 lines (129 loc) • 5.86 kB
JavaScript
;
var ArrayService$WonderCommonlib = require("wonder-commonlib/lib/js/src/ArrayService.js");
var HierachyTransformService$Wonderjs = require("../../../../record/main/transform/HierachyTransformService.js");
var RecordTransformMainService$Wonderjs = require("../../transform/RecordTransformMainService.js");
var MutableHashMapService$WonderCommonlib = require("wonder-commonlib/lib/js/src/MutableHashMapService.js");
var GetComponentGameObjectService$Wonderjs = require("../../../../record/main/gameObject/GetComponentGameObjectService.js");
var MutableSparseMapService$WonderCommonlib = require("wonder-commonlib/lib/js/src/MutableSparseMapService.js");
function _triggerHandleFunc(customEvent, arr, state) {
return ArrayService$WonderCommonlib.reduceOneParam((function (param, param$1) {
var customEvent = param[1];
var state = param[0];
var match = customEvent[/* isStopPropagation */2];
if (match) {
return /* tuple */[
state,
customEvent
];
} else {
return param$1[/* handleFunc */1](customEvent, state);
}
}), /* tuple */[
state,
customEvent
], arr);
}
function stopPropagation(customEvent) {
return /* record */[
/* name */customEvent[/* name */0],
/* target */customEvent[/* target */1],
/* isStopPropagation */true,
/* phase */customEvent[/* phase */3],
/* userData */customEvent[/* userData */4]
];
}
function triggerGlobalEvent(customEvent, state) {
var match = MutableHashMapService$WonderCommonlib.get(customEvent[/* name */0], state[/* eventRecord */43][/* customGlobalEventArrMap */4]);
if (match !== undefined) {
return _triggerHandleFunc(customEvent, match, state);
} else {
return /* tuple */[
state,
customEvent
];
}
}
function triggerGameObjectEvent(target, customEvent, state) {
var match = MutableHashMapService$WonderCommonlib.get(customEvent[/* name */0], state[/* eventRecord */43][/* customGameObjectEventArrMap */5]);
if (match !== undefined) {
var match$1 = MutableSparseMapService$WonderCommonlib.get(target, match);
if (match$1 !== undefined) {
return _triggerHandleFunc(/* record */[
/* name */customEvent[/* name */0],
/* target */target,
/* isStopPropagation */customEvent[/* isStopPropagation */2],
/* phase */customEvent[/* phase */3],
/* userData */customEvent[/* userData */4]
], match$1, state);
} else {
return /* tuple */[
state,
customEvent
];
}
} else {
return /* tuple */[
state,
customEvent
];
}
}
function _broadcastGameObjectEvent(eventName, target, customEvent, state) {
var match = triggerGameObjectEvent(target, customEvent, state);
var customEvent$1 = match[1];
var state$1 = match[0];
var transformRecord = RecordTransformMainService$Wonderjs.getRecord(state$1);
return ArrayService$WonderCommonlib.reduceOneParam((function (state, child) {
return _broadcastGameObjectEvent(eventName, child, customEvent$1, state);
}), state$1, HierachyTransformService$Wonderjs.unsafeGetChildren(GetComponentGameObjectService$Wonderjs.unsafeGetTransformComponent(target, state$1[/* gameObjectRecord */10]), transformRecord));
}
function broadcastGameObjectEvent(target, customEvent, state) {
return _broadcastGameObjectEvent(customEvent[/* name */0], target, /* record */[
/* name */customEvent[/* name */0],
/* target */customEvent[/* target */1],
/* isStopPropagation */customEvent[/* isStopPropagation */2],
/* phase *//* Broadcast */0,
/* userData */customEvent[/* userData */4]
], state);
}
function _emitGameObjectEvent(eventName, _target, _customEvent, _state) {
while(true) {
var state = _state;
var customEvent = _customEvent;
var target = _target;
var match = triggerGameObjectEvent(target, customEvent, state);
var state$1 = match[0];
var transformRecord = RecordTransformMainService$Wonderjs.getRecord(state$1);
var match$1 = HierachyTransformService$Wonderjs.getParent(GetComponentGameObjectService$Wonderjs.unsafeGetTransformComponent(target, state$1[/* gameObjectRecord */10]), transformRecord);
if (match$1 !== undefined) {
_state = state$1;
_customEvent = match[1];
_target = match$1;
continue ;
} else {
return state$1;
}
};
}
function emitGameObjectEvent(target, customEvent, state) {
return _emitGameObjectEvent(customEvent[/* name */0], target, /* record */[
/* name */customEvent[/* name */0],
/* target */customEvent[/* target */1],
/* isStopPropagation */customEvent[/* isStopPropagation */2],
/* phase *//* Emit */1,
/* userData */customEvent[/* userData */4]
], state);
}
function getCustomEventUserData(customEvent) {
return customEvent[/* userData */4];
}
exports._triggerHandleFunc = _triggerHandleFunc;
exports.stopPropagation = stopPropagation;
exports.triggerGlobalEvent = triggerGlobalEvent;
exports.triggerGameObjectEvent = triggerGameObjectEvent;
exports._broadcastGameObjectEvent = _broadcastGameObjectEvent;
exports.broadcastGameObjectEvent = broadcastGameObjectEvent;
exports._emitGameObjectEvent = _emitGameObjectEvent;
exports.emitGameObjectEvent = emitGameObjectEvent;
exports.getCustomEventUserData = getCustomEventUserData;
/* HierachyTransformService-Wonderjs Not a pure module */