UNPKG

oxygen-core

Version:

Oxygen game engine (Xenon Core for browsers)

961 lines (859 loc) 29.9 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.lazyInitialization = lazyInitialization; Object.defineProperty(exports, "JSONAsset", { enumerable: true, get: function get() { return _JSONAsset.default; } }); Object.defineProperty(exports, "TextAsset", { enumerable: true, get: function get() { return _TextAsset.default; } }); Object.defineProperty(exports, "BinaryAsset", { enumerable: true, get: function get() { return _BinaryAsset.default; } }); Object.defineProperty(exports, "ImageAsset", { enumerable: true, get: function get() { return _ImageAsset.default; } }); Object.defineProperty(exports, "ShaderAsset", { enumerable: true, get: function get() { return _ShaderAsset.default; } }); Object.defineProperty(exports, "SceneAsset", { enumerable: true, get: function get() { return _SceneAsset.default; } }); Object.defineProperty(exports, "AtlasAsset", { enumerable: true, get: function get() { return _AtlasAsset.default; } }); Object.defineProperty(exports, "FontAsset", { enumerable: true, get: function get() { return _FontAsset.default; } }); Object.defineProperty(exports, "SoundAsset", { enumerable: true, get: function get() { return _SoundAsset.default; } }); Object.defineProperty(exports, "MusicAsset", { enumerable: true, get: function get() { return _MusicAsset.default; } }); Object.defineProperty(exports, "ParticleSystemAsset", { enumerable: true, get: function get() { return _ParticleSystemAsset.default; } }); Object.defineProperty(exports, "PackAsset", { enumerable: true, get: function get() { return _PackAsset.default; } }); Object.defineProperty(exports, "SkeletonAsset", { enumerable: true, get: function get() { return _SkeletonAsset.default; } }); Object.defineProperty(exports, "SVGAsset", { enumerable: true, get: function get() { return _SVGAsset.default; } }); Object.defineProperty(exports, "SetAsset", { enumerable: true, get: function get() { return _SetAsset.default; } }); Object.defineProperty(exports, "AssemblyAsset", { enumerable: true, get: function get() { return _AssemblyAsset.default; } }); Object.defineProperty(exports, "PostprocessRackEffectAsset", { enumerable: true, get: function get() { return _PostprocessRackEffectAsset.default; } }); Object.defineProperty(exports, "Camera", { enumerable: true, get: function get() { return _Camera.default; } }); Object.defineProperty(exports, "PostprocessPass", { enumerable: true, get: function get() { return _Camera.PostprocessPass; } }); Object.defineProperty(exports, "Camera2D", { enumerable: true, get: function get() { return _Camera2D.default; } }); Object.defineProperty(exports, "CameraDirector2D", { enumerable: true, get: function get() { return _CameraDirector2D.default; } }); Object.defineProperty(exports, "InputHandler", { enumerable: true, get: function get() { return _InputHandler.default; } }); Object.defineProperty(exports, "GestureListener", { enumerable: true, get: function get() { return _GestureListener.default; } }); Object.defineProperty(exports, "Particles", { enumerable: true, get: function get() { return _Particles.default; } }); Object.defineProperty(exports, "PhysicsBody", { enumerable: true, get: function get() { return _PhysicsBody.default; } }); Object.defineProperty(exports, "PhysicsWorld", { enumerable: true, get: function get() { return _PhysicsWorld.default; } }); Object.defineProperty(exports, "PrefabInstance", { enumerable: true, get: function get() { return _PrefabInstance.default; } }); Object.defineProperty(exports, "RectangleRenderer", { enumerable: true, get: function get() { return _RectangleRenderer.default; } }); Object.defineProperty(exports, "Script", { enumerable: true, get: function get() { return _Script.default; } }); Object.defineProperty(exports, "Sprite", { enumerable: true, get: function get() { return _Sprite.default; } }); Object.defineProperty(exports, "AtlasSprite", { enumerable: true, get: function get() { return _AtlasSprite.default; } }); Object.defineProperty(exports, "TextRenderer", { enumerable: true, get: function get() { return _TextRenderer.default; } }); Object.defineProperty(exports, "VerticesRenderer", { enumerable: true, get: function get() { return _VerticesRenderer.default; } }); Object.defineProperty(exports, "UiSprite", { enumerable: true, get: function get() { return _UiSprite.default; } }); Object.defineProperty(exports, "UiLayout", { enumerable: true, get: function get() { return _UiLayout.default; } }); Object.defineProperty(exports, "Skeleton", { enumerable: true, get: function get() { return _Skeleton.default; } }); Object.defineProperty(exports, "SortedActions", { enumerable: true, get: function get() { return _SortedActions.default; } }); Object.defineProperty(exports, "DeferredRenderer", { enumerable: true, get: function get() { return _DeferredRenderer.default; } }); Object.defineProperty(exports, "DeferredPipeline", { enumerable: true, get: function get() { return _DeferredRenderer.DeferredPipeline; } }); Object.defineProperty(exports, "MultipassRenderer", { enumerable: true, get: function get() { return _MultipassRenderer.default; } }); Object.defineProperty(exports, "MultipassPipeline", { enumerable: true, get: function get() { return _MultipassRenderer.MultipassPipeline; } }); Object.defineProperty(exports, "PostprocessRack", { enumerable: true, get: function get() { return _PostprocessRack.default; } }); Object.defineProperty(exports, "PostprocessRackPass", { enumerable: true, get: function get() { return _PostprocessRack.PostprocessRackPass; } }); Object.defineProperty(exports, "PostprocessRackRawEffectPass", { enumerable: true, get: function get() { return _PostprocessRack.PostprocessRackRawEffectPass; } }); Object.defineProperty(exports, "Shape", { enumerable: true, get: function get() { return _Shape.default; } }); Object.defineProperty(exports, "PolygonShape", { enumerable: true, get: function get() { return _PolygonShape.default; } }); Object.defineProperty(exports, "CircleShape", { enumerable: true, get: function get() { return _CircleShape.default; } }); Object.defineProperty(exports, "RectangleShape", { enumerable: true, get: function get() { return _RectangleShape.default; } }); Object.defineProperty(exports, "System", { enumerable: true, get: function get() { return _System.default; } }); Object.defineProperty(exports, "EntitySystem", { enumerable: true, get: function get() { return _EntitySystem.default; } }); Object.defineProperty(exports, "Component", { enumerable: true, get: function get() { return _Component.default; } }); Object.defineProperty(exports, "Entity", { enumerable: true, get: function get() { return _Entity.default; } }); Object.defineProperty(exports, "AssetSystem", { enumerable: true, get: function get() { return _AssetSystem.default; } }); Object.defineProperty(exports, "Asset", { enumerable: true, get: function get() { return _Asset.default; } }); Object.defineProperty(exports, "RenderSystem", { enumerable: true, get: function get() { return _RenderSystem.default; } }); Object.defineProperty(exports, "RenderTargetWrapper", { enumerable: true, get: function get() { return _RenderSystem.RenderTargetWrapper; } }); Object.defineProperty(exports, "Command", { enumerable: true, get: function get() { return _RenderSystem.Command; } }); Object.defineProperty(exports, "Pipeline", { enumerable: true, get: function get() { return _RenderSystem.Pipeline; } }); Object.defineProperty(exports, "RenderFullscreenCommand", { enumerable: true, get: function get() { return _RenderSystem.RenderFullscreenCommand; } }); Object.defineProperty(exports, "InputSystem", { enumerable: true, get: function get() { return _InputSystem.default; } }); Object.defineProperty(exports, "StorageSystem", { enumerable: true, get: function get() { return _StorageSystem.default; } }); Object.defineProperty(exports, "AudioSystem", { enumerable: true, get: function get() { return _AudioSystem.default; } }); Object.defineProperty(exports, "AssemblySystem", { enumerable: true, get: function get() { return _AssemblySystem.default; } }); Object.defineProperty(exports, "Events", { enumerable: true, get: function get() { return _Events.default; } }); Object.defineProperty(exports, "glMatrix", { enumerable: true, get: function get() { return _glMatrix.glMatrix; } }); Object.defineProperty(exports, "mat2", { enumerable: true, get: function get() { return _glMatrix.mat2; } }); Object.defineProperty(exports, "mat2d", { enumerable: true, get: function get() { return _glMatrix.mat2d; } }); Object.defineProperty(exports, "mat3", { enumerable: true, get: function get() { return _glMatrix.mat3; } }); Object.defineProperty(exports, "mat4", { enumerable: true, get: function get() { return _glMatrix.mat4; } }); Object.defineProperty(exports, "quat", { enumerable: true, get: function get() { return _glMatrix.quat; } }); Object.defineProperty(exports, "vec2", { enumerable: true, get: function get() { return _glMatrix.vec2; } }); Object.defineProperty(exports, "vec3", { enumerable: true, get: function get() { return _glMatrix.vec3; } }); Object.defineProperty(exports, "vec4", { enumerable: true, get: function get() { return _glMatrix.vec4; } }); Object.defineProperty(exports, "box2d", { enumerable: true, get: function get() { return _utils.box2d; } }); Object.defineProperty(exports, "Utils", { enumerable: true, get: function get() { return _utils.default; } }); Object.defineProperty(exports, "AssetLoaders", { enumerable: true, get: function get() { return _assetLoaders.default; } }); Object.defineProperty(exports, "Components", { enumerable: true, get: function get() { return _components.default; } }); Object.defineProperty(exports, "Systems", { enumerable: true, get: function get() { return _systems.default; } }); exports.EventsController = exports.default = void 0; var _JSONAsset = _interopRequireDefault(require("./asset-loaders/JSONAsset")); var _TextAsset = _interopRequireDefault(require("./asset-loaders/TextAsset")); var _BinaryAsset = _interopRequireDefault(require("./asset-loaders/BinaryAsset")); var _ImageAsset = _interopRequireDefault(require("./asset-loaders/ImageAsset")); var _ShaderAsset = _interopRequireDefault(require("./asset-loaders/ShaderAsset")); var _SceneAsset = _interopRequireDefault(require("./asset-loaders/SceneAsset")); var _AtlasAsset = _interopRequireDefault(require("./asset-loaders/AtlasAsset")); var _FontAsset = _interopRequireDefault(require("./asset-loaders/FontAsset")); var _SoundAsset = _interopRequireDefault(require("./asset-loaders/SoundAsset")); var _MusicAsset = _interopRequireDefault(require("./asset-loaders/MusicAsset")); var _ParticleSystemAsset = _interopRequireDefault(require("./asset-loaders/ParticleSystemAsset")); var _PackAsset = _interopRequireDefault(require("./asset-loaders/PackAsset")); var _SkeletonAsset = _interopRequireDefault(require("./asset-loaders/SkeletonAsset")); var _SVGAsset = _interopRequireDefault(require("./asset-loaders/SVGAsset")); var _SetAsset = _interopRequireDefault(require("./asset-loaders/SetAsset")); var _AssemblyAsset = _interopRequireDefault(require("./asset-loaders/AssemblyAsset")); var _PostprocessRackEffectAsset = _interopRequireDefault(require("./asset-loaders/PostprocessRackEffectAsset")); var _Camera = _interopRequireWildcard(require("./components/Camera")); var _Camera2D = _interopRequireDefault(require("./components/Camera2D")); var _CameraDirector2D = _interopRequireDefault(require("./components/CameraDirector2D")); var _InputHandler = _interopRequireDefault(require("./components/InputHandler")); var _GestureListener = _interopRequireDefault(require("./components/GestureListener")); var _Particles = _interopRequireDefault(require("./components/Particles")); var _PhysicsBody = _interopRequireDefault(require("./components/PhysicsBody")); var _PhysicsWorld = _interopRequireDefault(require("./components/PhysicsWorld")); var _PrefabInstance = _interopRequireDefault(require("./components/PrefabInstance")); var _RectangleRenderer = _interopRequireDefault(require("./components/RectangleRenderer")); var _Script = _interopRequireDefault(require("./components/Script")); var _Sprite = _interopRequireDefault(require("./components/Sprite")); var _AtlasSprite = _interopRequireDefault(require("./components/AtlasSprite")); var _TextRenderer = _interopRequireDefault(require("./components/TextRenderer")); var _VerticesRenderer = _interopRequireDefault(require("./components/VerticesRenderer")); var _UiSprite = _interopRequireDefault(require("./components/UiSprite")); var _UiLayout = _interopRequireDefault(require("./components/UiLayout")); var _Skeleton = _interopRequireDefault(require("./components/Skeleton")); var _SortedActions = _interopRequireDefault(require("./components/SortedActions")); var _DeferredRenderer = _interopRequireWildcard(require("./components/DeferredRenderer")); var _MultipassRenderer = _interopRequireWildcard(require("./components/MultipassRenderer")); var _PostprocessRack = _interopRequireWildcard(require("./components/PostprocessRack")); var _Shape = _interopRequireDefault(require("./components/Shape")); var _PolygonShape = _interopRequireDefault(require("./components/PolygonShape")); var _CircleShape = _interopRequireDefault(require("./components/CircleShape")); var _RectangleShape = _interopRequireDefault(require("./components/RectangleShape")); var _System = _interopRequireDefault(require("./systems/System")); var _EntitySystem = _interopRequireDefault(require("./systems/EntitySystem")); var _Component = _interopRequireDefault(require("./systems/EntitySystem/Component")); var _Entity = _interopRequireDefault(require("./systems/EntitySystem/Entity")); var _AssetSystem = _interopRequireDefault(require("./systems/AssetSystem")); var _Asset = _interopRequireDefault(require("./systems/AssetSystem/Asset")); var _RenderSystem = _interopRequireWildcard(require("./systems/RenderSystem")); var _InputSystem = _interopRequireDefault(require("./systems/InputSystem")); var _StorageSystem = _interopRequireDefault(require("./systems/StorageSystem")); var _AudioSystem = _interopRequireDefault(require("./systems/AudioSystem")); var _AssemblySystem = _interopRequireDefault(require("./systems/AssemblySystem")); var _Events = _interopRequireDefault(require("./utils/Events")); var _glMatrix = require("./utils/gl-matrix"); var _utils = _interopRequireWildcard(require("./utils")); var _assetLoaders = _interopRequireDefault(require("./asset-loaders")); var _components = _interopRequireDefault(require("./components")); var _systems = _interopRequireDefault(require("./systems")); function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) { var desc = Object.defineProperty && Object.getOwnPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : {}; if (desc.get || desc.set) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } } newObj.default = obj; return newObj; } } function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; } var _default = { AssetLoaders: _assetLoaders.default, Components: _components.default, Systems: _systems.default, Utils: _utils.default, JSONAsset: _JSONAsset.default, TextAsset: _TextAsset.default, BinaryAsset: _BinaryAsset.default, ImageAsset: _ImageAsset.default, ShaderAsset: _ShaderAsset.default, SceneAsset: _SceneAsset.default, AtlasAsset: _AtlasAsset.default, FontAsset: _FontAsset.default, SoundAsset: _SoundAsset.default, MusicAsset: _MusicAsset.default, ParticleSystemAsset: _ParticleSystemAsset.default, PackAsset: _PackAsset.default, SkeletonAsset: _SkeletonAsset.default, SVGAsset: _SVGAsset.default, SetAsset: _SetAsset.default, AssemblyAsset: _AssemblyAsset.default, PostprocessRackEffectAsset: _PostprocessRackEffectAsset.default, Camera: _Camera.default, PostprocessPass: _Camera.PostprocessPass, Camera2D: _Camera2D.default, CameraDirector2D: _CameraDirector2D.default, InputHandler: _InputHandler.default, GestureListener: _GestureListener.default, Particles: _Particles.default, PhysicsBody: _PhysicsBody.default, PhysicsWorld: _PhysicsWorld.default, PrefabInstance: _PrefabInstance.default, RectangleRenderer: _RectangleRenderer.default, Script: _Script.default, Sprite: _Sprite.default, AtlasSprite: _AtlasSprite.default, TextRenderer: _TextRenderer.default, VerticesRenderer: _VerticesRenderer.default, UiSprite: _UiSprite.default, UiLayout: _UiLayout.default, Skeleton: _Skeleton.default, SortedActions: _SortedActions.default, DeferredRenderer: _DeferredRenderer.default, DeferredPipeline: _DeferredRenderer.DeferredPipeline, MultipassRenderer: _MultipassRenderer.default, MultipassPipeline: _MultipassRenderer.MultipassPipeline, PostprocessRack: _PostprocessRack.default, PostprocessRackPass: _PostprocessRack.PostprocessRackPass, PostprocessRackRawEffectPass: _PostprocessRack.PostprocessRackRawEffectPass, Shape: _Shape.default, PolygonShape: _PolygonShape.default, CircleShape: _CircleShape.default, RectangleShape: _RectangleShape.default, System: _System.default, EntitySystem: _EntitySystem.default, Component: _Component.default, Entity: _Entity.default, RenderSystem: _RenderSystem.default, RenderTargetWrapper: _RenderSystem.RenderTargetWrapper, Command: _RenderSystem.Command, Pipeline: _RenderSystem.Pipeline, RenderFullscreenCommand: _RenderSystem.RenderFullscreenCommand, InputSystem: _InputSystem.default, StorageSystem: _StorageSystem.default, AssetSystem: _AssetSystem.default, Asset: _Asset.default, AudioSystem: _AudioSystem.default, AssemblySystem: _AssemblySystem.default, Events: _Events.default, glMatrix: _glMatrix.glMatrix, mat2: _glMatrix.mat2, mat2d: _glMatrix.mat2d, mat3: _glMatrix.mat3, mat4: _glMatrix.mat4, quat: _glMatrix.quat, vec2: _glMatrix.vec2, vec3: _glMatrix.vec3, vec4: _glMatrix.vec4, box2d: _utils.box2d }; exports.default = _default; var EventsController = /*#__PURE__*/ function () { _createClass(EventsController, [{ key: "transform", get: function get() { return this._transform; }, set: function set(value) { if (typeof value !== 'boolean') { throw new Error('`value` is not type of Boolean!'); } this._transform = value; } }, { key: "update", get: function get() { return this._update; }, set: function set(value) { if (typeof value !== 'boolean') { throw new Error('`value` is not type of Boolean!'); } this._update = value; } }, { key: "view", get: function get() { return this._view; }, set: function set(value) { if (typeof value !== 'boolean') { throw new Error('`value` is not type of Boolean!'); } this._view = value; } }, { key: "gamepads", get: function get() { return this._gamepads; }, set: function set(value) { if (typeof value !== 'boolean') { throw new Error('`value` is not type of Boolean!'); } this._gamepads = value; } }, { key: "all", get: function get() { return this._transform && this._update && this._view && this._gamepads; }, set: function set(value) { if (typeof value !== 'boolean') { throw new Error('`value` is not type of Boolean!'); } this._transform = this._update = this._view = this._gamepads = value; } }, { key: "none", get: function get() { return !this._transform && !this._update && !this._view && !this._gamepads; }, set: function set(value) { if (typeof value !== 'boolean') { throw new Error('`value` is not type of Boolean!'); } this._transform = this._update = this._view = this._gamepads = !value; } }, { key: "accepted", get: function get() { var result = []; if (!!this._transform) { result.push('transform'); } if (!!this._update) { result.push('update'); } if (!!this._view) { result.push('view'); } if (!!this._gamepads) { result.push('gamepads'); } return result; }, set: function set(value) { if (!Array.isArray(value)) { throw new Error('`value` is not type of Array!'); } this._transform = value.indexOf('transform') >= 0; this._update = value.indexOf('update') >= 0; this._view = value.indexOf('view') >= 0; this._gamepads = value.indexOf('gamepads') >= 0; } }]); function EventsController() { _classCallCheck(this, EventsController); this._transform = true; this._update = true; this._view = true; this._gamepads = true; } return EventsController; }(); /** * Function used to initialize Oxygen Core engine without any effort. * * @param {*} config - engine configuration options. * @return {EventsController} - instance used to dynamically control events processing. * * @example * lazyInitialization({ * entities: { triggerEvents: true }, * asset: { pathPrefix: 'assets/' }, * render: { screen: 'screen-0' }, * input: { triggerEvents: true }, * store: { id: 'my-game-id' }, * events: { transform: true, update: true, view: true, gamepads: true } * }); */ exports.EventsController = EventsController; function lazyInitialization(_ref) { var entity = _ref.entity, asset = _ref.asset, render = _ref.render, input = _ref.input, store = _ref.store, events = _ref.events; var entities = _System.default.register('EntitySystem', new _EntitySystem.default(!!entity ? entity.triggerEvents : true)); var assets = _System.default.register('AssetSystem', new _AssetSystem.default(!!asset ? asset.pathPrefix : null, !!asset ? asset.fetchOptions : null, !!asset ? asset.fetchEngine : null)); var renderer = _System.default.register('RenderSystem', new _RenderSystem.default(!!render ? render.screen : null, !!render ? render.optimize : true, !!render ? render.extensions : null, !!render ? render.version : 1, !!render ? render.manualMode : false)); var inputs = _System.default.register('InputSystem', new _InputSystem.default(renderer.canvas, !!input ? input.triggerEvents : true)); var storage = _System.default.register('StorageSystem', new _StorageSystem.default(!!store ? store.id : 'oxygen-data')); var audio = _System.default.register('AudioSystem', new _AudioSystem.default()); var assembly = _System.default.register('AssemblySystem', new _AssemblySystem.default()); var controller = new EventsController(); controller.transform = !!events ? !!events.transform : true; controller.update = !!events ? !!events.update : true; controller.view = !!events ? !!events.view : true; controller.gamepads = !!events ? !!events.gamepads : true; entities.registerComponent('Camera2D', _Camera2D.default.factory); entities.registerComponent('CameraDirector2D', _CameraDirector2D.default.factory); entities.registerComponent('InputHandler', _InputHandler.default.factory); entities.registerComponent('GestureListener', _GestureListener.default.factory); entities.registerComponent('Particles', _Particles.default.factory); entities.registerComponent('PhysicsBody', _PhysicsBody.default.factory); entities.registerComponent('PhysicsWorld', _PhysicsWorld.default.factory); entities.registerComponent('PrefabInstance', _PrefabInstance.default.factory); entities.registerComponent('RectangleRenderer', _RectangleRenderer.default.factory); entities.registerComponent('Script', _Script.default.factory); entities.registerComponent('Sprite', _Sprite.default.factory); entities.registerComponent('AtlasSprite', _AtlasSprite.default.factory); entities.registerComponent('TextRenderer', _TextRenderer.default.factory); entities.registerComponent('VerticesRenderer', _VerticesRenderer.default.factory); entities.registerComponent('UiSprite', _UiSprite.default.factory); entities.registerComponent('UiLayout', _UiLayout.default.factory); entities.registerComponent('Skeleton', _Skeleton.default.factory); entities.registerComponent('SortedActions', _SortedActions.default.factory); entities.registerComponent('DeferredRenderer', _DeferredRenderer.default.factory); entities.registerComponent('MultipassRenderer', _MultipassRenderer.default.factory); entities.registerComponent('PostprocessRack', _PostprocessRack.default.factory); entities.registerComponent('PolygonShape', _PolygonShape.default.factory); entities.registerComponent('CircleShape', _CircleShape.default.factory); entities.registerComponent('RectangleShape', _RectangleShape.default.factory); assets.registerProtocol('json', _JSONAsset.default.factory); assets.registerProtocol('text', _TextAsset.default.factory); assets.registerProtocol('binary', _BinaryAsset.default.factory); assets.registerProtocol('image', _ImageAsset.default.factory); assets.registerProtocol('shader', _ShaderAsset.default.factory); assets.registerProtocol('scene', _SceneAsset.default.factory); assets.registerProtocol('atlas', _AtlasAsset.default.factory); assets.registerProtocol('font', _FontAsset.default.factory); assets.registerProtocol('sound', _SoundAsset.default.factory); assets.registerProtocol('music', _MusicAsset.default.factory); assets.registerProtocol('particles', _ParticleSystemAsset.default.factory); assets.registerProtocol('pack', _PackAsset.default.factory); assets.registerProtocol('skeleton', _SkeletonAsset.default.factory); assets.registerProtocol('svg', _SVGAsset.default.factory); assets.registerProtocol('set', _SetAsset.default.factory); assets.registerProtocol('wasm', _AssemblyAsset.default.factory); assets.registerProtocol('postprocess', _PostprocessRackEffectAsset.default.factory); assets.events.on('load', function (asset) { var protocol = asset.protocol, filename = asset.filename, data = asset.data; if (protocol === 'image' || protocol === 'svg') { renderer.registerTexture(filename, data, !!asset.options && !!asset.options.mipmap); } else if (protocol === 'shader') { renderer.registerShader(filename, data.vertex, data.fragment, data.layout, data.uniforms, data.samplers, data.blending, data.extensions); } else if (protocol === 'sound') { audio.registerSound(filename, data); } else if (protocol === 'music') { audio.registerMusic(filename, data); } else if (protocol === 'particles') { _Particles.default.registerProcessor(filename, data); } else if (protocol === 'wasm') { assembly.registerAssembly(filename, data, !!asset.options && !!asset.options.imports ? assembly.getImports(asset.options.imports) || {} : null); } }); assets.events.on('unload', function (asset) { var protocol = asset.protocol, filename = asset.filename; if (protocol === 'image' || protocol === 'svg') { renderer.unregisterTexture(filename); } else if (protocol === 'shader') { renderer.unregisterShader(filename); } else if (protocol === 'sound') { audio.unregisterSound(filename); } else if (protocol === 'music') { audio.unregisterMusic(filename); } else if (protocol === 'particles') { _Particles.default.unregisterProcessor(filename); } else if (protocol === 'wasm') { assembly.unregisterAssembly(filename); } }); renderer.events.on('render', function (context, renderer, deltaTime) { !!controller.transform && entities.updateTransforms(); !!controller.update && entities.performAction('update', deltaTime); !!controller.view && entities.performAction('view', context, renderer, deltaTime); !!controller.gamepads && inputs.scanForGamepads(); }); _System.default.events.on('change-scene', function (path) { var asset = assets.get(path); if (!asset) { throw new Error("There is no asset loaded: ".concat(path)); } if (!(asset instanceof _SceneAsset.default)) { throw new Error("Asset is not type of SceneAsset: ".concat(path)); } entities.root = entities.buildEntity(asset.data); }); _System.default.events.on('clear-scene', function () { entities.root = null; }); return controller; }