UNPKG

wonder.js

Version:
315 lines (279 loc) 18.1 kB
'use strict'; var Curry = require("bs-platform/lib/js/curry.js"); var Js_option = require("bs-platform/lib/js/js_option.js"); var Caml_array = require("bs-platform/lib/js/caml_array.js"); var Log$WonderLog = require("wonder-log/lib/js/src/Log.js"); var OptionService$Wonderjs = require("../../../atom/OptionService.js"); var ArrayService$WonderCommonlib = require("wonder-commonlib/lib/js/src/ArrayService.js"); var ImmutableHashMapService$WonderCommonlib = require("wonder-commonlib/lib/js/src/ImmutableHashMapService.js"); function getLoadedRAB(rabRelativePath, state) { return ImmutableHashMapService$WonderCommonlib.get(rabRelativePath, state[/* assetBundleRecord */47][/* assembleRABData */0][/* loadedRABMap */1]); } function unsafeGetLoadedRAB(rabRelativePath, state) { return OptionService$Wonderjs.unsafeGetWithMessage(Log$WonderLog.buildAssertMessage("rab arrayBuffer in rabRelativePath:" + (String(rabRelativePath) + " loaded"), "not"), getLoadedRAB(rabRelativePath, state)); } function setLoadedRAB(rabRelativePath, rab, state) { var assetBundleRecord = state[/* assetBundleRecord */47]; var newrecord = Caml_array.caml_array_dup(state); var init = assetBundleRecord[/* assembleRABData */0]; newrecord[/* assetBundleRecord */47] = /* record */[ /* assembleRABData : record */[ /* isLoadedMap */init[/* isLoadedMap */0], /* loadedRABMap */ImmutableHashMapService$WonderCommonlib.set(rabRelativePath, rab, assetBundleRecord[/* assembleRABData */0][/* loadedRABMap */1]), /* isAssembledMap */init[/* isAssembledMap */2], /* basicSourceTextureMap */init[/* basicSourceTextureMap */3], /* cubemapTextureMap */init[/* cubemapTextureMap */4], /* imageMap */init[/* imageMap */5], /* basicMaterialMap */init[/* basicMaterialMap */6], /* lightMaterialMap */init[/* lightMaterialMap */7], /* geometryMap */init[/* geometryMap */8], /* scriptEventFunctionDataMap */init[/* scriptEventFunctionDataMap */9], /* scriptAttributeMap */init[/* scriptAttributeMap */10] ], /* assembleSABData */assetBundleRecord[/* assembleSABData */1], /* wabData */assetBundleRecord[/* wabData */2] ]; return newrecord; } function _markIsLoaded(rabRelativePath, isLoaded, state) { var assetBundleRecord = state[/* assetBundleRecord */47]; var newrecord = Caml_array.caml_array_dup(state); var init = assetBundleRecord[/* assembleRABData */0]; newrecord[/* assetBundleRecord */47] = /* record */[ /* assembleRABData : record */[ /* isLoadedMap */ImmutableHashMapService$WonderCommonlib.set(rabRelativePath, isLoaded, assetBundleRecord[/* assembleRABData */0][/* isLoadedMap */0]), /* loadedRABMap */init[/* loadedRABMap */1], /* isAssembledMap */init[/* isAssembledMap */2], /* basicSourceTextureMap */init[/* basicSourceTextureMap */3], /* cubemapTextureMap */init[/* cubemapTextureMap */4], /* imageMap */init[/* imageMap */5], /* basicMaterialMap */init[/* basicMaterialMap */6], /* lightMaterialMap */init[/* lightMaterialMap */7], /* geometryMap */init[/* geometryMap */8], /* scriptEventFunctionDataMap */init[/* scriptEventFunctionDataMap */9], /* scriptAttributeMap */init[/* scriptAttributeMap */10] ], /* assembleSABData */assetBundleRecord[/* assembleSABData */1], /* wabData */assetBundleRecord[/* wabData */2] ]; return newrecord; } function markLoaded(rabRelativePath, state) { return _markIsLoaded(rabRelativePath, true, state); } function markNotLoaded(rabRelativePath, state) { return _markIsLoaded(rabRelativePath, false, state); } function isLoaded(rabRelativePath, state) { var match = ImmutableHashMapService$WonderCommonlib.get(rabRelativePath, state[/* assetBundleRecord */47][/* assembleRABData */0][/* isLoadedMap */0]); if (match !== undefined) { return match; } else { return false; } } function _markIsAssembled(rabRelativePath, isAssembled, state) { var assetBundleRecord = state[/* assetBundleRecord */47]; var newrecord = Caml_array.caml_array_dup(state); var init = assetBundleRecord[/* assembleRABData */0]; newrecord[/* assetBundleRecord */47] = /* record */[ /* assembleRABData : record */[ /* isLoadedMap */init[/* isLoadedMap */0], /* loadedRABMap */init[/* loadedRABMap */1], /* isAssembledMap */ImmutableHashMapService$WonderCommonlib.set(rabRelativePath, isAssembled, assetBundleRecord[/* assembleRABData */0][/* isAssembledMap */2]), /* basicSourceTextureMap */init[/* basicSourceTextureMap */3], /* cubemapTextureMap */init[/* cubemapTextureMap */4], /* imageMap */init[/* imageMap */5], /* basicMaterialMap */init[/* basicMaterialMap */6], /* lightMaterialMap */init[/* lightMaterialMap */7], /* geometryMap */init[/* geometryMap */8], /* scriptEventFunctionDataMap */init[/* scriptEventFunctionDataMap */9], /* scriptAttributeMap */init[/* scriptAttributeMap */10] ], /* assembleSABData */assetBundleRecord[/* assembleSABData */1], /* wabData */assetBundleRecord[/* wabData */2] ]; return newrecord; } function markAssembled(rabRelativePath, state) { return _markIsAssembled(rabRelativePath, true, state); } function markNotAssembled(rabRelativePath, state) { return _markIsAssembled(rabRelativePath, false, state); } function isAssembled(rabRelativePath, state) { var match = ImmutableHashMapService$WonderCommonlib.get(rabRelativePath, state[/* assetBundleRecord */47][/* assembleRABData */0][/* isAssembledMap */2]); if (match !== undefined) { return match; } else { return false; } } function releaseLoadedRAB(rabRelativePath, state) { var assetBundleRecord = state[/* assetBundleRecord */47]; var newrecord = Caml_array.caml_array_dup(state); var init = assetBundleRecord[/* assembleRABData */0]; newrecord[/* assetBundleRecord */47] = /* record */[ /* assembleRABData : record */[ /* isLoadedMap */init[/* isLoadedMap */0], /* loadedRABMap */ImmutableHashMapService$WonderCommonlib.deleteVal(rabRelativePath, assetBundleRecord[/* assembleRABData */0][/* loadedRABMap */1]), /* isAssembledMap */init[/* isAssembledMap */2], /* basicSourceTextureMap */init[/* basicSourceTextureMap */3], /* cubemapTextureMap */init[/* cubemapTextureMap */4], /* imageMap */init[/* imageMap */5], /* basicMaterialMap */init[/* basicMaterialMap */6], /* lightMaterialMap */init[/* lightMaterialMap */7], /* geometryMap */init[/* geometryMap */8], /* scriptEventFunctionDataMap */init[/* scriptEventFunctionDataMap */9], /* scriptAttributeMap */init[/* scriptAttributeMap */10] ], /* assembleSABData */assetBundleRecord[/* assembleSABData */1], /* wabData */assetBundleRecord[/* wabData */2] ]; return markNotLoaded(rabRelativePath, newrecord); } function releaseAssembleRABData(rabRelativePath, state) { var assetBundleRecord = state[/* assetBundleRecord */47]; var assembleRABData = assetBundleRecord[/* assembleRABData */0]; var newrecord = Caml_array.caml_array_dup(state); return markNotAssembled(rabRelativePath, (newrecord[/* assetBundleRecord */47] = /* record */[ /* assembleRABData : record */[ /* isLoadedMap */assembleRABData[/* isLoadedMap */0], /* loadedRABMap */assembleRABData[/* loadedRABMap */1], /* isAssembledMap */assembleRABData[/* isAssembledMap */2], /* basicSourceTextureMap */ImmutableHashMapService$WonderCommonlib.deleteVal(rabRelativePath, assembleRABData[/* basicSourceTextureMap */3]), /* cubemapTextureMap */ImmutableHashMapService$WonderCommonlib.deleteVal(rabRelativePath, assembleRABData[/* cubemapTextureMap */4]), /* imageMap */ImmutableHashMapService$WonderCommonlib.deleteVal(rabRelativePath, assembleRABData[/* imageMap */5]), /* basicMaterialMap */ImmutableHashMapService$WonderCommonlib.deleteVal(rabRelativePath, assembleRABData[/* basicMaterialMap */6]), /* lightMaterialMap */ImmutableHashMapService$WonderCommonlib.deleteVal(rabRelativePath, assembleRABData[/* lightMaterialMap */7]), /* geometryMap */ImmutableHashMapService$WonderCommonlib.deleteVal(rabRelativePath, assembleRABData[/* geometryMap */8]), /* scriptEventFunctionDataMap */ImmutableHashMapService$WonderCommonlib.deleteVal(rabRelativePath, assembleRABData[/* scriptEventFunctionDataMap */9]), /* scriptAttributeMap */ImmutableHashMapService$WonderCommonlib.deleteVal(rabRelativePath, assembleRABData[/* scriptAttributeMap */10]) ], /* assembleSABData */assetBundleRecord[/* assembleSABData */1], /* wabData */assetBundleRecord[/* wabData */2] ], newrecord)); } function setAssembleRABData(rabRelativePath, param, state) { var assetBundleRecord = state[/* assetBundleRecord */47]; var assembleRABData = assetBundleRecord[/* assembleRABData */0]; var newrecord = Caml_array.caml_array_dup(state); newrecord[/* assetBundleRecord */47] = /* record */[ /* assembleRABData : record */[ /* isLoadedMap */assembleRABData[/* isLoadedMap */0], /* loadedRABMap */assembleRABData[/* loadedRABMap */1], /* isAssembledMap */assembleRABData[/* isAssembledMap */2], /* basicSourceTextureMap */ImmutableHashMapService$WonderCommonlib.set(rabRelativePath, param[1], assembleRABData[/* basicSourceTextureMap */3]), /* cubemapTextureMap */ImmutableHashMapService$WonderCommonlib.set(rabRelativePath, param[2], assembleRABData[/* cubemapTextureMap */4]), /* imageMap */ImmutableHashMapService$WonderCommonlib.set(rabRelativePath, param[0], assembleRABData[/* imageMap */5]), /* basicMaterialMap */ImmutableHashMapService$WonderCommonlib.set(rabRelativePath, param[3], assembleRABData[/* basicMaterialMap */6]), /* lightMaterialMap */ImmutableHashMapService$WonderCommonlib.set(rabRelativePath, param[4], assembleRABData[/* lightMaterialMap */7]), /* geometryMap */ImmutableHashMapService$WonderCommonlib.set(rabRelativePath, param[5], assembleRABData[/* geometryMap */8]), /* scriptEventFunctionDataMap */ImmutableHashMapService$WonderCommonlib.set(rabRelativePath, param[6], assembleRABData[/* scriptEventFunctionDataMap */9]), /* scriptAttributeMap */ImmutableHashMapService$WonderCommonlib.set(rabRelativePath, param[7], assembleRABData[/* scriptAttributeMap */10]) ], /* assembleSABData */assetBundleRecord[/* assembleSABData */1], /* wabData */assetBundleRecord[/* wabData */2] ]; return newrecord; } function findDataInAllDependencyRABByName(allDependencyRABRelativePath, name, state, findDataByNameFunc) { return ArrayService$WonderCommonlib.reduceOneParam((function (result, dependencyAbRelativePath) { var match = Js_option.isSome(result); if (match) { return result; } else { return Curry._3(findDataByNameFunc, dependencyAbRelativePath, name, state); } }), undefined, allDependencyRABRelativePath); } function unsafeFindDataInAllDependencyRABByName(allDependencyRABRelativePath, name, state, findDataByNameFunc) { return OptionService$Wonderjs.unsafeGetWithMessage(Log$WonderLog.buildAssertMessage("data by name:" + (String(name) + " exist in all dependency rabs"), "not"), findDataInAllDependencyRABByName(allDependencyRABRelativePath, name, state, findDataByNameFunc)); } function _findDataByName(rabRelativePath, name, dataMap) { return Js_option.andThen((function (map) { return ImmutableHashMapService$WonderCommonlib.get(name, map); }), ImmutableHashMapService$WonderCommonlib.get(rabRelativePath, dataMap)); } function findBasicMaterialByName(rabRelativePath, name, state) { return _findDataByName(rabRelativePath, name, state[/* assetBundleRecord */47][/* assembleRABData */0][/* basicMaterialMap */6]); } function unsafeFindBasicMaterialByName(rabRelativePath, name, state) { return OptionService$Wonderjs.unsafeGetWithMessage(Log$WonderLog.buildAssertMessage("basicMaterial by name:" + (String(name) + (" exist in rabRelativePath:" + (String(rabRelativePath) + ""))), "not"), findBasicMaterialByName(rabRelativePath, name, state)); } function findLightMaterialByName(rabRelativePath, name, state) { return _findDataByName(rabRelativePath, name, state[/* assetBundleRecord */47][/* assembleRABData */0][/* lightMaterialMap */7]); } function unsafeFindLightMaterialByName(rabRelativePath, name, state) { return OptionService$Wonderjs.unsafeGetWithMessage(Log$WonderLog.buildAssertMessage("lightMaterial by name:" + (String(name) + (" exist in rabRelativePath:" + (String(rabRelativePath) + ""))), "not"), findLightMaterialByName(rabRelativePath, name, state)); } function findImageByName(rabRelativePath, name, state) { return _findDataByName(rabRelativePath, name, state[/* assetBundleRecord */47][/* assembleRABData */0][/* imageMap */5]); } function unsafeFindImageByName(rabRelativePath, name, state) { return OptionService$Wonderjs.unsafeGetWithMessage(Log$WonderLog.buildAssertMessage("image by name:" + (String(name) + (" exist in rabRelativePath:" + (String(rabRelativePath) + ""))), "not"), findImageByName(rabRelativePath, name, state)); } function findBasicSourceTextureByName(rabRelativePath, name, state) { return _findDataByName(rabRelativePath, name, state[/* assetBundleRecord */47][/* assembleRABData */0][/* basicSourceTextureMap */3]); } function unsafeFindBasicSourceTextureByName(rabRelativePath, name, state) { return OptionService$Wonderjs.unsafeGetWithMessage(Log$WonderLog.buildAssertMessage("basic source texture by name:" + (String(name) + (" exist in rabRelativePath:" + (String(rabRelativePath) + ""))), "not"), findBasicSourceTextureByName(rabRelativePath, name, state)); } function findCubemapTextureByName(rabRelativePath, name, state) { return _findDataByName(rabRelativePath, name, state[/* assetBundleRecord */47][/* assembleRABData */0][/* cubemapTextureMap */4]); } function unsafeFindCubemapTextureByName(rabRelativePath, name, state) { return OptionService$Wonderjs.unsafeGetWithMessage(Log$WonderLog.buildAssertMessage("cubemap texture by name:" + (String(name) + (" exist in rabRelativePath:" + (String(rabRelativePath) + ""))), "not"), findCubemapTextureByName(rabRelativePath, name, state)); } function findGeometryByName(rabRelativePath, name, state) { return _findDataByName(rabRelativePath, name, state[/* assetBundleRecord */47][/* assembleRABData */0][/* geometryMap */8]); } function unsafeFindGeometryByName(rabRelativePath, name, state) { return OptionService$Wonderjs.unsafeGetWithMessage(Log$WonderLog.buildAssertMessage("geometry by name:" + (String(name) + (" exist in rabRelativePath:" + (String(rabRelativePath) + ""))), "not"), findGeometryByName(rabRelativePath, name, state)); } function findScriptEventFunctionDataByName(rabRelativePath, name, state) { return _findDataByName(rabRelativePath, name, state[/* assetBundleRecord */47][/* assembleRABData */0][/* scriptEventFunctionDataMap */9]); } function unsafeFindScriptEventFunctionDataByName(rabRelativePath, name, state) { return OptionService$Wonderjs.unsafeGetWithMessage(Log$WonderLog.buildAssertMessage("scriptEventFunction data by name:" + (String(name) + (" exist in rabRelativePath:" + (String(rabRelativePath) + ""))), "not"), findScriptEventFunctionDataByName(rabRelativePath, name, state)); } function findScriptAttributeByName(rabRelativePath, name, state) { return _findDataByName(rabRelativePath, name, state[/* assetBundleRecord */47][/* assembleRABData */0][/* scriptAttributeMap */10]); } function unsafeFindScriptAttributeByName(rabRelativePath, name, state) { return OptionService$Wonderjs.unsafeGetWithMessage(Log$WonderLog.buildAssertMessage("scriptAttribute by name:" + (String(name) + (" exist in rabRelativePath:" + (String(rabRelativePath) + ""))), "not"), findScriptAttributeByName(rabRelativePath, name, state)); } exports.getLoadedRAB = getLoadedRAB; exports.unsafeGetLoadedRAB = unsafeGetLoadedRAB; exports.setLoadedRAB = setLoadedRAB; exports._markIsLoaded = _markIsLoaded; exports.markLoaded = markLoaded; exports.markNotLoaded = markNotLoaded; exports.isLoaded = isLoaded; exports._markIsAssembled = _markIsAssembled; exports.markAssembled = markAssembled; exports.markNotAssembled = markNotAssembled; exports.isAssembled = isAssembled; exports.releaseLoadedRAB = releaseLoadedRAB; exports.releaseAssembleRABData = releaseAssembleRABData; exports.setAssembleRABData = setAssembleRABData; exports.findDataInAllDependencyRABByName = findDataInAllDependencyRABByName; exports.unsafeFindDataInAllDependencyRABByName = unsafeFindDataInAllDependencyRABByName; exports._findDataByName = _findDataByName; exports.findBasicMaterialByName = findBasicMaterialByName; exports.unsafeFindBasicMaterialByName = unsafeFindBasicMaterialByName; exports.findLightMaterialByName = findLightMaterialByName; exports.unsafeFindLightMaterialByName = unsafeFindLightMaterialByName; exports.findImageByName = findImageByName; exports.unsafeFindImageByName = unsafeFindImageByName; exports.findBasicSourceTextureByName = findBasicSourceTextureByName; exports.unsafeFindBasicSourceTextureByName = unsafeFindBasicSourceTextureByName; exports.findCubemapTextureByName = findCubemapTextureByName; exports.unsafeFindCubemapTextureByName = unsafeFindCubemapTextureByName; exports.findGeometryByName = findGeometryByName; exports.unsafeFindGeometryByName = unsafeFindGeometryByName; exports.findScriptEventFunctionDataByName = findScriptEventFunctionDataByName; exports.unsafeFindScriptEventFunctionDataByName = unsafeFindScriptEventFunctionDataByName; exports.findScriptAttributeByName = findScriptAttributeByName; exports.unsafeFindScriptAttributeByName = unsafeFindScriptAttributeByName; /* Log-WonderLog Not a pure module */