wonder.js
Version:
90 lines (78 loc) • 5.05 kB
JavaScript
'use strict';
var Most = require("most");
var Curry = require("bs-platform/lib/js/curry.js");
var OptionService$Wonderjs = require("../../service/atom/OptionService.js");
var StateDataMain$Wonderjs = require("../../service/state/main/data/StateDataMain.js");
var AssembleCommon$Wonderjs = require("./AssembleCommon.js");
var ArrayService$WonderCommonlib = require("wonder-commonlib/lib/js/src/ArrayService.js");
var ExecIMGUIMainService$Wonderjs = require("../../service/state/main/imgui/ExecIMGUIMainService.js");
var StateDataMainService$Wonderjs = require("../../service/state/main/state/StateDataMainService.js");
var ExtendIMGUIMainService$Wonderjs = require("../../service/state/main/imgui/extend/ExtendIMGUIMainService.js");
var SerializeAllIMGUIService$Wonderjs = require("../../service/record/all/imgui/SerializeAllIMGUIService.js");
var SetAssetIMGUIMainService$Wonderjs = require("../../service/state/main/imgui/SetAssetIMGUIMainService.js");
function _setExtendData(param, state) {
return Curry._2(ExtendIMGUIMainService$Wonderjs.ExtendData[/* Skin */2][/* setAllSkinDataMap */1], SerializeAllIMGUIService$Wonderjs.Skin[/* deserializeAllSkinDataMap */1](param[/* skinData */1][/* allSkinDataMap */0]), Curry._2(ExtendIMGUIMainService$Wonderjs.ExtendData[/* CustomControl */1][/* setFuncMap */1], SerializeAllIMGUIService$Wonderjs.CustomControl[/* deserializeFuncMap */1](param[/* customControlData */0][/* funcMap */0]), state));
}
function _setFontData(fontData, param, binBuffer, state) {
var match = OptionService$Wonderjs.isJsonSerializedValueNone(fontData);
if (match) {
return state;
} else {
var match$1 = OptionService$Wonderjs.unsafeGetJsonSerializedValue(fontData);
var bitmapData = match$1[/* bitmapData */1];
var fntData = match$1[/* fntData */0];
return SetAssetIMGUIMainService$Wonderjs.setSettedAssetBitmapData(bitmapData[/* name */0], AssembleCommon$Wonderjs.getArrayBuffer(binBuffer, bitmapData[/* bufferView */1], param[/* bufferViews */9]), SetAssetIMGUIMainService$Wonderjs.setSettedAssetFntData(fntData[/* name */0], fntData[/* content */1], state));
}
}
function _setCustomImagesData(customImagesData, param, binBuffer, state) {
var bufferViews = param[/* bufferViews */9];
var match = OptionService$Wonderjs.isJsonSerializedValueNone(customImagesData);
if (match) {
return state;
} else {
var match$1 = OptionService$Wonderjs.unsafeGetJsonSerializedValue(customImagesData);
return ArrayService$WonderCommonlib.reduceOneParam((function (state, param) {
return SetAssetIMGUIMainService$Wonderjs.addSettedAssetCustomImageData(/* tuple */[
AssembleCommon$Wonderjs.getArrayBuffer(binBuffer, param[/* bufferView */1], bufferViews),
param[/* id */0],
param[/* mimeType */2]
], state);
}), state, match$1[/* customImages */0]);
}
}
function _setAndInitAssetData(param, wd, binBuffer, state) {
return SetAssetIMGUIMainService$Wonderjs.initSettedAssets(_setCustomImagesData(param[/* customImagesData */1], wd, binBuffer, _setFontData(param[/* fontData */0], wd, binBuffer, state)));
}
function _addAllExecFuncData(execFuncDataArr, state) {
return ArrayService$WonderCommonlib.reduceOneParam((function (state, param) {
return ExecIMGUIMainService$Wonderjs.addExecFuncData(param[/* name */3], param[/* customData */1], param[/* execOrder */2], param[/* execFunc */0], state);
}), state, SerializeAllIMGUIService$Wonderjs.Exec[/* deserializeExecFuncDataArrToWonderType */5](execFuncDataArr));
}
function _setExecData(param, state) {
return _addAllExecFuncData(param[/* execFuncDataArr */0], ExecIMGUIMainService$Wonderjs.clearExecFuncDataArr(state));
}
function _handle(wd, binBuffer, state) {
var match = OptionService$Wonderjs.unsafeGetJsonSerializedValue(wd[/* scene */1][/* imgui */2]);
return _setAndInitAssetData(match[/* assetData */0], wd, binBuffer, _setExtendData(match[/* extendData */2], _setExecData(match[/* execData */1], state)));
}
function getHasIMGUIData(wd) {
return !OptionService$Wonderjs.isJsonSerializedValueNone(wd[/* scene */1][/* imgui */2]);
}
function handleIMGUI(isHandleIMGUI, wd, binBuffer, state) {
var hasIMGUIData = getHasIMGUIData(wd);
var match = isHandleIMGUI && hasIMGUIData;
return Most.map((function (state) {
StateDataMainService$Wonderjs.setState(StateDataMain$Wonderjs.stateData, state);
return /* () */0;
}), match ? _handle(wd, binBuffer, state) : Most.just(state));
}
exports._setExtendData = _setExtendData;
exports._setFontData = _setFontData;
exports._setCustomImagesData = _setCustomImagesData;
exports._setAndInitAssetData = _setAndInitAssetData;
exports._addAllExecFuncData = _addAllExecFuncData;
exports._setExecData = _setExecData;
exports._handle = _handle;
exports.getHasIMGUIData = getHasIMGUIData;
exports.handleIMGUI = handleIMGUI;
/* most Not a pure module */