(window.framework = {}), (window.__extends = (this && this.__extends) || (function () { var t = Object.setPrototypeOf || ({ __proto__: [] } instanceof Array && function (t, e) { t.__proto__ = e; }) || function (t, e) { for (var n in e) e.hasOwnProperty(n) && (t[n] = e[n]); }; return function (e, n) { function i() { this.constructor = e; } t(e, n), (e.prototype = null === n ? Object.create(n) : ((i.prototype = n.prototype), new i())); }; })()); var __awaiter = (this && this.__awaiter) || function (t, e, n, i) { return new (n || (n = Promise))(function (o, r) { function s(t) { try { h(i.next(t)); } catch (t) { r(t); } } function a(t) { try { h(i.throw(t)); } catch (t) { r(t); } } function h(t) { t.done ? o(t.value) : new n(function (e) { e(t.value); }).then(s, a); } h((i = i.apply(t, e || [])).next()); }); }, __generator = (this && this.__generator) || function (t, e) { var n, i, o, r, s = { label: 0, sent: function () { if (1 & o[0]) throw o[1]; return o[1]; }, trys: [], ops: [], }; return ( (r = { next: a(0), throw: a(1), return: a(2) }), "function" == typeof Symbol && (r[Symbol.iterator] = function () { return this; }), r ); function a(r) { return function (a) { return (function (r) { if (n) throw new TypeError("Generator is already executing."); for (; s; ) try { if ( ((n = 1), i && (o = 2 & r[0] ? i.return : r[0] ? i.throw || ((o = i.return) && o.call(i), 0) : i.next) && !(o = o.call(i, r[1])).done) ) return o; switch (((i = 0), o && (r = [2 & r[0], o.value]), r[0])) { case 0: case 1: o = r; break; case 4: return s.label++, { value: r[1], done: !1 }; case 5: s.label++, (i = r[1]), (r = [0]); continue; case 7: (r = s.ops.pop()), s.trys.pop(); continue; default: if ( !(o = (o = s.trys).length > 0 && o[o.length - 1]) && (6 === r[0] || 2 === r[0]) ) { s = 0; continue; } if (3 === r[0] && (!o || (r[1] > o[0] && r[1] < o[3]))) { s.label = r[1]; break; } if (6 === r[0] && s.label < o[1]) { (s.label = o[1]), (o = r); break; } if (o && s.label < o[2]) { (s.label = o[2]), s.ops.push(r); break; } o[2] && s.ops.pop(), s.trys.pop(); continue; } r = e.call(t, s); } catch (t) { (r = [6, t]), (i = 0); } finally { n = o = 0; } if (5 & r[0]) throw r[1]; return { value: r[0] ? r[1] : void 0, done: !0 }; })([r, a]); }; } }; (Array.prototype.findIndex = function (t) { return (function (t, e) { for (var n = 0, i = t.length; n < i; n++) if (e.call(arguments[2], t[n], n, t)) return n; return -1; })(this, t); }), (Array.prototype.any = function (t) { return (function (t, e) { return t.findIndex(e) > -1; })(this, t); }), (Array.prototype.firstOrDefault = function (t) { return (function (t, e) { var n = t.findIndex(e); return -1 == n ? null : t[n]; })(this, t); }), (Array.prototype.find = function (t) { return (function (t, e) { return t.firstOrDefault(e); })(this, t); }), (Array.prototype.where = function (t) { return (function (t, e) { if ("function" == typeof t.reduce) return t.reduce(function (n, i, o) { return e.call(arguments[2], i, o, t) && n.push(i), n; }, []); for (var n = [], i = 0, o = t.length; i < o; i++) { var r = t[i]; e.call(arguments[2], r, i, t) && n.push(r); } return n; })(this, t); }), (Array.prototype.count = function (t) { return (function (t, e) { return t.where(e).length; })(this, t); }), (Array.prototype.findAll = function (t) { return (function (t, e) { return t.where(e); })(this, t); }), (Array.prototype.contains = function (t) { return (function (t, e) { for (var n = 0, i = t.length; n < i; n++) if (t[n] == e) return !0; return !1; })(this, t); }), (Array.prototype.removeAll = function (t) { !(function (t, e) { var n; do { (n = t.findIndex(e)) >= 0 && t.splice(n, 1); } while (n >= 0); })(this, t); }), (Array.prototype.remove = function (t) { return (function (t, e) { var n = t.findIndex(function (t) { return t === e; }); return n >= 0 && (t.splice(n, 1), !0); })(this, t); }), (Array.prototype.removeAt = function (t) { return (function (t, e) { t.splice(e, 1); })(this, t); }), (Array.prototype.removeRange = function (t, e) { return (function (t, e, n) { t.splice(e, n); })(this, t, e); }), (Array.prototype.select = function (t) { return (function (t, e) { if ("function" == typeof t.reduce) return t.reduce(function (n, i, o) { return n.push(e.call(arguments[2], i, o, t)), n; }, []); for (var n = [], i = 0, o = t.length; i < o; i++) n.push(e.call(arguments[2], t[i], i, t)); return n; })(this, t); }), (Array.prototype.orderBy = function (t, e) { return (function (t, e, n) { return ( t.sort(function (t, i) { var o = e(t), r = e(i); return n ? n(o, r) : o > r ? 1 : -1; }), t ); })(this, t, e); }), (Array.prototype.orderByDescending = function (t, e) { return (function (t, e, n) { return ( t.sort(function (t, i) { var o = e(t), r = e(i); return n ? -n(o, r) : o < r ? 1 : -1; }), t ); })(this, t, e); }), (Array.prototype.groupBy = function (t) { return (function (t, e) { if ("function" == typeof t.reduce) { var n = []; return t.reduce(function (i, o, r) { var s = JSON.stringify(e.call(arguments[1], o, r, t)), a = n.findIndex(function (t) { return t === s; }); return ( a < 0 && (a = n.push(s) - 1), i[a] || (i[a] = []), i[a].push(o), i ); }, []); } for ( var i = [], o = [], r = function (n, r) { var a = JSON.stringify(e.call(s[1], t[n], n, t)), h = o.findIndex(function (t) { return t === a; }); h < 0 && (h = o.push(a) - 1), i[h] || (i[h] = []), i[h].push(t[n]); }, s = arguments, a = 0, h = t.length; a < h; a++ ) r(a); return i; })(this, t); }), (Array.prototype.sum = function (t) { return (function (t, e) { for (var n, i = 0, o = t.length; i < o; i++) 0 == i ? (n = e ? e.call(arguments[2], t[i], i, t) : t[i]) : (n += e ? e.call(arguments[2], t[i], i, t) : t[i]); return n; })(this, t); }); var DirtyType, ComponentTransform, PriorityQueueNode = (function () { return function () { (this.priority = 0), (this.insertionIndex = 0), (this.queueIndex = 0); }; })(), AStarPathfinder = (function () { function t() {} return ( (t.search = function (t, e, n) { var i = this, o = !1, r = new Map(); r.set(e, e); var s = new Map(), a = new PriorityQueue(1e3); a.enqueue(new AStarNode(e), 0), s.set(e, 0); for ( var h = function () { var e = a.dequeue(); if (JSON.stringify(e.data) == JSON.stringify(n)) return (o = !0), "break"; t.getNeighbors(e.data).forEach(function (o) { var h = s.get(e.data) + t.cost(e.data, o); if (!i.hasKey(s, o) || h < s.get(o)) { s.set(o, h); var c = h + t.heuristic(o, n); a.enqueue(new AStarNode(o), c), r.set(o, e.data); } }); }; a.count > 0; ) { if ("break" === h()) break; } return o ? this.recontructPath(r, e, n) : null; }), (t.hasKey = function (t, e) { for (var n, i = t.keys(); !(n = i.next()).done; ) if (JSON.stringify(n.value) == JSON.stringify(e)) return !0; return !1; }), (t.getKey = function (t, e) { for ( var n, i, o = t.keys(), r = t.values(); (n = o.next()), (i = r.next()), !n.done; ) if (JSON.stringify(n.value) == JSON.stringify(e)) return i.value; return null; }), (t.recontructPath = function (t, e, n) { var i = [], o = n; for (i.push(n); o != e; ) (o = this.getKey(t, o)), i.push(o); return i.reverse(), i; }), t ); })(), AStarNode = (function (t) { function e(e) { var n = t.call(this) || this; return (n.data = e), n; } return __extends(e, t), e; })(PriorityQueueNode), AstarGridGraph = (function () { function t(t, e) { (this.dirs = [ new Point(1, 0), new Point(0, -1), new Point(-1, 0), new Point(0, 1), ]), (this.walls = []), (this.weightedNodes = []), (this.defaultWeight = 1), (this.weightedNodeWeight = 5), (this._neighbors = new Array(4)), (this._width = t), (this._height = e); } return ( (t.prototype.isNodeInBounds = function (t) { return 0 <= t.x && t.x < this._width && 0 <= t.y && t.y < this._height; }), (t.prototype.isNodePassable = function (t) { return !this.walls.firstOrDefault(function (e) { return JSON.stringify(e) == JSON.stringify(t); }); }), (t.prototype.search = function (t, e) { return AStarPathfinder.search(this, t, e); }), (t.prototype.getNeighbors = function (t) { var e = this; return ( (this._neighbors.length = 0), this.dirs.forEach(function (n) { var i = new Point(t.x + n.x, t.y + n.y); e.isNodeInBounds(i) && e.isNodePassable(i) && e._neighbors.push(i); }), this._neighbors ); }), (t.prototype.cost = function (t, e) { return this.weightedNodes.find(function (t) { return JSON.stringify(t) == JSON.stringify(e); }) ? this.weightedNodeWeight : this.defaultWeight; }), (t.prototype.heuristic = function (t, e) { return Math.abs(t.x - e.x) + Math.abs(t.y - e.y); }), t ); })(), PriorityQueue = (function () { function t(t) { (this._numNodes = 0), (this._nodes = new Array(t + 1)), (this._numNodesEverEnqueued = 0); } return ( (t.prototype.clear = function () { this._nodes.splice(1, this._numNodes), (this._numNodes = 0); }), Object.defineProperty(t.prototype, "count", { get: function () { return this._numNodes; }, enumerable: !0, configurable: !0, }), (t.prototype.contains = function (t) { return this._nodes[t.queueIndex] == t; }), (t.prototype.enqueue = function (t, e) { (t.priority = e), this._numNodes++, (this._nodes[this._numNodes] = t), (t.queueIndex = this._numNodes), (t.insertionIndex = this._numNodesEverEnqueued++), this.cascadeUp(this._nodes[this._numNodes]); }), (t.prototype.dequeue = function () { var t = this._nodes[1]; return this.remove(t), t; }), (t.prototype.remove = function (t) { if (t.queueIndex == this._numNodes) return (this._nodes[this._numNodes] = null), void this._numNodes--; var e = this._nodes[this._numNodes]; this.swap(t, e), delete this._nodes[this._numNodes], this._numNodes--, this.onNodeUpdated(e); }), (t.prototype.isValidQueue = function () { for (var t = 1; t < this._nodes.length; t++) if (this._nodes[t]) { var e = 2 * t; if ( e < this._nodes.length && this._nodes[e] && this.hasHigherPriority(this._nodes[e], this._nodes[t]) ) return !1; var n = e + 1; if ( n < this._nodes.length && this._nodes[n] && this.hasHigherPriority(this._nodes[n], this._nodes[t]) ) return !1; } return !0; }), (t.prototype.onNodeUpdated = function (t) { var e = Math.floor(t.queueIndex / 2), n = this._nodes[e]; e > 0 && this.hasHigherPriority(t, n) ? this.cascadeUp(t) : this.cascadeDown(t); }), (t.prototype.cascadeDown = function (t) { for (var e, n = t.queueIndex; ; ) { e = t; var i = 2 * n; if (i > this._numNodes) { (t.queueIndex = n), (this._nodes[n] = t); break; } var o = this._nodes[i]; this.hasHigherPriority(o, e) && (e = o); var r = i + 1; if (r <= this._numNodes) { var s = this._nodes[r]; this.hasHigherPriority(s, e) && (e = s); } if (e == t) { (t.queueIndex = n), (this._nodes[n] = t); break; } this._nodes[n] = e; var a = e.queueIndex; (e.queueIndex = n), (n = a); } }), (t.prototype.cascadeUp = function (t) { for (var e = Math.floor(t.queueIndex / 2); e >= 1; ) { var n = this._nodes[e]; if (this.hasHigherPriority(n, t)) break; this.swap(t, n), (e = Math.floor(t.queueIndex / 2)); } }), (t.prototype.swap = function (t, e) { (this._nodes[t.queueIndex] = e), (this._nodes[e.queueIndex] = t); var n = t.queueIndex; (t.queueIndex = e.queueIndex), (e.queueIndex = n); }), (t.prototype.hasHigherPriority = function (t, e) { return ( t.priority < e.priority || (t.priority == e.priority && t.insertionIndex < e.insertionIndex) ); }), t ); })(), BreadthFirstPathfinder = (function () { function t() {} return ( (t.search = function (t, e, n) { var i = this, o = !1, r = []; r.unshift(e); var s = new Map(); s.set(e, e); for ( var a = function () { var e = r.shift(); if (JSON.stringify(e) == JSON.stringify(n)) return (o = !0), "break"; t.getNeighbors(e).forEach(function (t) { i.hasKey(s, t) || (r.unshift(t), s.set(t, e)); }); }; r.length > 0; ) { if ("break" === a()) break; } return o ? AStarPathfinder.recontructPath(s, e, n) : null; }), (t.hasKey = function (t, e) { for (var n, i = t.keys(); !(n = i.next()).done; ) if (JSON.stringify(n.value) == JSON.stringify(e)) return !0; return !1; }), t ); })(), UnweightedGraph = (function () { function t() { this.edges = new Map(); } return ( (t.prototype.addEdgesForNode = function (t, e) { return this.edges.set(t, e), this; }), (t.prototype.getNeighbors = function (t) { return this.edges.get(t); }), t ); })(), Point = (function () { return function (t, e) { (this.x = t || 0), (this.y = e || this.x); }; })(), UnweightedGridGraph = (function () { function t(e, n, i) { void 0 === i && (i = !1), (this.walls = []), (this._neighbors = new Array(4)), (this._width = e), (this._hegiht = n), (this._dirs = i ? t.COMPASS_DIRS : t.CARDINAL_DIRS); } return ( (t.prototype.isNodeInBounds = function (t) { return 0 <= t.x && t.x < this._width && 0 <= t.y && t.y < this._hegiht; }), (t.prototype.isNodePassable = function (t) { return !this.walls.firstOrDefault(function (e) { return JSON.stringify(e) == JSON.stringify(t); }); }), (t.prototype.getNeighbors = function (t) { var e = this; return ( (this._neighbors.length = 0), this._dirs.forEach(function (n) { var i = new Point(t.x + n.x, t.y + n.y); e.isNodeInBounds(i) && e.isNodePassable(i) && e._neighbors.push(i); }), this._neighbors ); }), (t.prototype.search = function (t, e) { return BreadthFirstPathfinder.search(this, t, e); }), (t.CARDINAL_DIRS = [ new Point(1, 0), new Point(0, -1), new Point(-1, 0), new Point(0, -1), ]), (t.COMPASS_DIRS = [ new Point(1, 0), new Point(1, -1), new Point(0, -1), new Point(-1, -1), new Point(-1, 0), new Point(-1, 1), new Point(0, 1), new Point(1, 1), ]), t ); })(), WeightedGridGraph = (function () { function t(e, n, i) { void 0 === i && (i = !1), (this.walls = []), (this.weightedNodes = []), (this.defaultWeight = 1), (this.weightedNodeWeight = 5), (this._neighbors = new Array(4)), (this._width = e), (this._height = n), (this._dirs = i ? t.COMPASS_DIRS : t.CARDINAL_DIRS); } return ( (t.prototype.isNodeInBounds = function (t) { return 0 <= t.x && t.x < this._width && 0 <= t.y && t.y < this._height; }), (t.prototype.isNodePassable = function (t) { return !this.walls.firstOrDefault(function (e) { return JSON.stringify(e) == JSON.stringify(t); }); }), (t.prototype.search = function (t, e) { return WeightedPathfinder.search(this, t, e); }), (t.prototype.getNeighbors = function (t) { var e = this; return ( (this._neighbors.length = 0), this._dirs.forEach(function (n) { var i = new Point(t.x + n.x, t.y + n.y); e.isNodeInBounds(i) && e.isNodePassable(i) && e._neighbors.push(i); }), this._neighbors ); }), (t.prototype.cost = function (t, e) { return this.weightedNodes.find(function (t) { return JSON.stringify(t) == JSON.stringify(e); }) ? this.weightedNodeWeight : this.defaultWeight; }), (t.CARDINAL_DIRS = [ new Point(1, 0), new Point(0, -1), new Point(-1, 0), new Point(0, 1), ]), (t.COMPASS_DIRS = [ new Point(1, 0), new Point(1, -1), new Point(0, -1), new Point(-1, -1), new Point(-1, 0), new Point(-1, 1), new Point(0, 1), new Point(1, 1), ]), t ); })(), WeightedNode = (function (t) { function e(e) { var n = t.call(this) || this; return (n.data = e), n; } return __extends(e, t), e; })(PriorityQueueNode), WeightedPathfinder = (function () { function t() {} return ( (t.search = function (t, e, n) { var i = this, o = !1, r = new Map(); r.set(e, e); var s = new Map(), a = new PriorityQueue(1e3); a.enqueue(new WeightedNode(e), 0), s.set(e, 0); for ( var h = function () { var e = a.dequeue(); if (JSON.stringify(e.data) == JSON.stringify(n)) return (o = !0), "break"; t.getNeighbors(e.data).forEach(function (n) { var o = s.get(e.data) + t.cost(e.data, n); if (!i.hasKey(s, n) || o < s.get(n)) { s.set(n, o); var h = o; a.enqueue(new WeightedNode(n), h), r.set(n, e.data); } }); }; a.count > 0; ) { if ("break" === h()) break; } return o ? this.recontructPath(r, e, n) : null; }), (t.hasKey = function (t, e) { for (var n, i = t.keys(); !(n = i.next()).done; ) if (JSON.stringify(n.value) == JSON.stringify(e)) return !0; return !1; }), (t.getKey = function (t, e) { for ( var n, i, o = t.keys(), r = t.values(); (n = o.next()), (i = r.next()), !n.done; ) if (JSON.stringify(n.value) == JSON.stringify(e)) return i.value; return null; }), (t.recontructPath = function (t, e, n) { var i = [], o = n; for (i.push(n); o != e; ) (o = this.getKey(t, o)), i.push(o); return i.reverse(), i; }), t ); })(), DebugDefaults = (function () { function t() {} return (t.verletParticle = 14431326), (t.verletConstraintEdge = 4406838), t; })(), Component = (function (t) { function e() { var e = (null !== t && t.apply(this, arguments)) || this; return (e._enabled = !0), (e.updateInterval = 1), e; } return ( __extends(e, t), Object.defineProperty(e.prototype, "enabled", { get: function () { return this.entity ? this.entity.enabled && this._enabled : this._enabled; }, set: function (t) { this.setEnabled(t); }, enumerable: !0, configurable: !0, }), (e.prototype.setEnabled = function (t) { return ( this._enabled != t && ((this._enabled = t), this._enabled ? this.onEnabled() : this.onDisabled()), this ); }), (e.prototype.initialize = function () {}), (e.prototype.onAddedToEntity = function () {}), (e.prototype.onRemovedFromEntity = function () {}), (e.prototype.onEnabled = function () {}), (e.prototype.onDisabled = function () {}), (e.prototype.onEntityTransformChanged = function (t) {}), (e.prototype.update = function () {}), (e.prototype.debugRender = function () {}), (e.prototype.registerComponent = function () { this.entity.componentBits.set( ComponentTypeManager.getIndexFor(this), !1 ), this.entity.scene.entityProcessors.onComponentAdded(this.entity); }), (e.prototype.deregisterComponent = function () { this.entity.componentBits.set(ComponentTypeManager.getIndexFor(this)), this.entity.scene.entityProcessors.onComponentRemoved(this.entity); }), e ); })(egret.DisplayObjectContainer), Entity = (function (t) { function e(n) { var i = t.call(this) || this; return ( (i._position = Vector2.zero), (i._updateOrder = 0), (i._enabled = !0), (i._tag = 0), (i.name = n), (i.components = new ComponentList(i)), (i.id = e._idGenerator++), (i.componentBits = new BitSet()), i ); } return ( __extends(e, t), Object.defineProperty(e.prototype, "isDestoryed", { get: function () { return this._isDestoryed; }, enumerable: !0, configurable: !0, }), Object.defineProperty(e.prototype, "position", { get: function () { return this._position; }, set: function (t) { this._position = t; }, enumerable: !0, configurable: !0, }), Object.defineProperty(e.prototype, "scale", { get: function () { return new Vector2(this.scaleX, this.scaleY); }, set: function (t) { (this.scaleX = t.x), (this.scaleY = t.y); }, enumerable: !0, configurable: !0, }), Object.defineProperty(e.prototype, "enabled", { get: function () { return this._enabled; }, set: function (t) { this.setEnabled(t); }, enumerable: !0, configurable: !0, }), (e.prototype.setEnabled = function (t) { return this._enabled != t && (this._enabled = t), this; }), Object.defineProperty(e.prototype, "tag", { get: function () { return this._tag; }, set: function (t) { this.setTag(t); }, enumerable: !0, configurable: !0, }), Object.defineProperty(e.prototype, "stage", { get: function () { return this.scene ? this.scene.stage : null; }, enumerable: !0, configurable: !0, }), Object.defineProperty(e.prototype, "updateOrder", { get: function () { return this._updateOrder; }, set: function (t) { this.setUpdateOrder(t); }, enumerable: !0, configurable: !0, }), (e.prototype.roundPosition = function () { this.position = Vector2Ext.round(this.position); }), (e.prototype.setUpdateOrder = function (t) { if (this._updateOrder != t) return (this._updateOrder = t), this.scene, this; }), (e.prototype.setTag = function (t) { return ( this._tag != t && (this.scene && this.scene.entities.removeFromTagList(this), (this._tag = t), this.scene && this.scene.entities.addToTagList(this)), this ); }), (e.prototype.attachToScene = function (t) { (this.scene = t), t.entities.add(this), this.components.registerAllComponents(); for (var e = 0; e < this.numChildren; e++) this.getChildAt(e).entity.attachToScene(t); }), (e.prototype.detachFromScene = function () { this.scene.entities.remove(this), this.components.deregisterAllComponents(); for (var t = 0; t < this.numChildren; t++) this.getChildAt(t).entity.detachFromScene(); }), (e.prototype.addComponent = function (t) { return ( (t.entity = this), this.components.add(t), this.addChild(t), t.initialize(), t ); }), (e.prototype.hasComponent = function (t) { return null != this.components.getComponent(t, !1); }), (e.prototype.getOrCreateComponent = function (t) { var e = this.components.getComponent(t, !0); return e || (e = this.addComponent(t)), e; }), (e.prototype.getComponent = function (t) { return this.components.getComponent(t, !1); }), (e.prototype.getComponents = function (t, e) { return this.components.getComponents(t, e); }), (e.prototype.removeComponentForType = function (t) { var e = this.getComponent(t); return !!e && (this.removeComponent(e), !0); }), (e.prototype.removeComponent = function (t) { this.components.remove(t); }), (e.prototype.removeAllComponents = function () { for (var t = 0; t < this.components.count; t++) this.removeComponent(this.components.buffer[t]); }), (e.prototype.update = function () { this.components.update(); }), (e.prototype.onAddedToScene = function () {}), (e.prototype.onRemovedFromScene = function () { this._isDestoryed && this.components.removeAllComponents(); }), (e.prototype.onTransformChanged = function (t) { this.components.onEntityTransformChanged(t); }), (e.prototype.destroy = function () { (this._isDestoryed = !0), this.scene.entities.remove(this), this.removeChildren(); for (var t = this.numChildren - 1; t >= 0; t--) { this.getChildAt(t).entity.destroy(); } }), e ); })(egret.DisplayObjectContainer), Scene = (function (t) { function e() { var e = t.call(this) || this; return ( (e.enablePostProcessing = !0), (e._renderers = []), (e._postProcessors = []), (e.entityProcessors = new EntityProcessorList()), (e.renderableComponents = new RenderableComponentList()), (e.entities = new EntityList(e)), (e.content = new ContentManager()), (e.width = SceneManager.stage.stageWidth), (e.height = SceneManager.stage.stageHeight), e.addEventListener(egret.Event.ACTIVATE, e.onActive, e), e.addEventListener(egret.Event.DEACTIVATE, e.onDeactive, e), e ); } return ( __extends(e, t), (e.prototype.createEntity = function (t) { var e = new Entity(t); return (e.position = new Vector2(0, 0)), this.addEntity(e); }), (e.prototype.addEntity = function (t) { this.entities.add(t), (t.scene = this), this.addChild(t); for (var e = 0; e < t.numChildren; e++) this.addEntity(t.getChildAt(e).entity); return t; }), (e.prototype.destroyAllEntities = function () { for (var t = 0; t < this.entities.count; t++) this.entities.buffer[t].destroy(); }), (e.prototype.findEntity = function (t) { return this.entities.findEntity(t); }), (e.prototype.addEntityProcessor = function (t) { return (t.scene = this), this.entityProcessors.add(t), t; }), (e.prototype.removeEntityProcessor = function (t) { this.entityProcessors.remove(t); }), (e.prototype.getEntityProcessor = function () { return this.entityProcessors.getProcessor(); }), (e.prototype.addRenderer = function (t) { return ( this._renderers.push(t), this._renderers.sort(), t.onAddedToScene(this), t ); }), (e.prototype.getRenderer = function (t) { for (var e = 0; e < this._renderers.length; e++) if (this._renderers[e] instanceof t) return this._renderers[e]; return null; }), (e.prototype.removeRenderer = function (t) { this._renderers.remove(t), t.unload(); }), (e.prototype.begin = function () { SceneManager.sceneTransition ? SceneManager.stage.addChildAt( this, SceneManager.stage.numChildren - 1 ) : SceneManager.stage.addChild(this), 0 == this._renderers.length && (this.addRenderer(new DefaultRenderer()), console.warn( "场景开始时没有渲染器 自动添加DefaultRenderer以保证能够正常渲染" )), (this.camera = this.createEntity("camera").getOrCreateComponent( new Camera() )), Physics.reset(), this.entityProcessors && this.entityProcessors.begin(), this.camera.onSceneSizeChanged( this.stage.stageWidth, this.stage.stageHeight ), (this._didSceneBegin = !0), this.onStart(); }), (e.prototype.end = function () { (this._didSceneBegin = !1), this.removeEventListener( egret.Event.DEACTIVATE, this.onDeactive, this ), this.removeEventListener(egret.Event.ACTIVATE, this.onActive, this); for (var t = 0; t < this._renderers.length; t++) this._renderers[t].unload(); for (t = 0; t < this._postProcessors.length; t++) this._postProcessors[t].unload(); this.entities.removeAllEntities(), this.removeChildren(), Physics.clear(), (this.camera = null), this.content.dispose(), this.entityProcessors && this.entityProcessors.end(), this.unload(); }), (e.prototype.onStart = function () { return __awaiter(this, void 0, void 0, function () { return __generator(this, function (t) { return [2]; }); }); }), (e.prototype.onActive = function () {}), (e.prototype.onDeactive = function () {}), (e.prototype.unload = function () {}), (e.prototype.update = function () { this.entities.updateLists(), this.entityProcessors && this.entityProcessors.update(), this.entities.update(), this.entityProcessors && this.entityProcessors.lateUpdate(), this.renderableComponents.updateList(); }), (e.prototype.postRender = function () { var t = 0; if (this.enablePostProcessing) for (var e = 0; e < this._postProcessors.length; e++) if (this._postProcessors[e].enable) { MathHelper.isEven(t); t++, this._postProcessors[e].process(); } }), (e.prototype.render = function () { for (var t = 0; t < this._renderers.length; t++) this._renderers[t].render(this); }), (e.prototype.addPostProcessor = function (t) { return ( this._postProcessors.push(t), this._postProcessors.sort(), t.onAddedToScene(this), this._didSceneBegin && t.onSceneBackBufferSizeChanged( this.stage.stageWidth, this.stage.stageHeight ), t ); }), e ); })(egret.DisplayObjectContainer), SceneManager = (function () { function t(e) { e.addEventListener(egret.Event.ENTER_FRAME, t.update, this), (t.stage = e), t.initialize(e); } return ( Object.defineProperty(t, "scene", { get: function () { return this._scene; }, set: function (t) { if (!t) throw new Error("场景不能为空"); null == this._scene ? ((this._scene = t), this._scene.begin()) : (this._nextScene = t); }, enumerable: !0, configurable: !0, }), (t.initialize = function (t) { Input.initialize(t); }), (t.update = function () { if ((Time.update(egret.getTimer()), t._scene)) { for (var e = GlobalManager.globalManagers.length - 1; e >= 0; e--) GlobalManager.globalManagers[e].enabled && GlobalManager.globalManagers[e].update(); if ( ((t.sceneTransition && (!t.sceneTransition || (t.sceneTransition.loadsNewScene && !t.sceneTransition.isNewSceneLoaded))) || t._scene.update(), t._nextScene) ) { t._scene.end(); for (e = 0; e < t._scene.entities.buffer.length; e++) { t._scene.entities.buffer[e].destroy(); } (t._scene = t._nextScene), (t._nextScene = null), t._scene.begin(); } } t.render(); }), (t.render = function () { this.sceneTransition ? (this.sceneTransition.preRender(), this._scene && !this.sceneTransition.hasPreviousSceneRender ? (this._scene.render(), this._scene.postRender(), this.sceneTransition.onBeginTransition()) : this.sceneTransition && (this._scene && this.sceneTransition.isNewSceneLoaded && (this._scene.render(), this._scene.postRender()), this.sceneTransition.render())) : this._scene && (this._scene.render(), this._scene.postRender()); }), (t.startSceneTransition = function (t) { if (!this.sceneTransition) return (this.sceneTransition = t), t; console.warn("在前一个场景完成之前,不能开始一个新的场景转换。"); }), t ); })(); !(function (t) { (t[(t.clean = 0)] = "clean"), (t[(t.positionDirty = 1)] = "positionDirty"), (t[(t.scaleDirty = 2)] = "scaleDirty"), (t[(t.rotationDirty = 3)] = "rotationDirty"); })(DirtyType || (DirtyType = {})), (function (t) { (t[(t.position = 0)] = "position"), (t[(t.scale = 1)] = "scale"), (t[(t.rotation = 2)] = "rotation"); })(ComponentTransform || (ComponentTransform = {})); var CameraStyle, Transform = (function () { function t(t) { (this._localRotation = 0), (this._worldTransform = Matrix2D.identity), (this._worldToLocalTransform = Matrix2D.identity), (this._worldInverseTransform = Matrix2D.identity), (this._rotation = 0), (this.entity = t), (this._scale = this._localScale = Vector2.one), (this._children = []); } return ( Object.defineProperty(t.prototype, "childCount", { get: function () { return this._children.length; }, enumerable: !0, configurable: !0, }), (t.prototype.getChild = function (t) { return this._children[t]; }), Object.defineProperty(t.prototype, "worldInverseTransform", { get: function () { return ( this.updateTransform(), this._worldInverseDirty && ((this._worldInverseTransform = Matrix2D.invert( this._worldTransform, this._worldInverseTransform )), (this._worldInverseDirty = !1)), this._worldInverseTransform ); }, enumerable: !0, configurable: !0, }), Object.defineProperty(t.prototype, "localToWorldTransform", { get: function () { return this.updateTransform(), this._worldTransform; }, enumerable: !0, configurable: !0, }), Object.defineProperty(t.prototype, "worldToLocalTransform", { get: function () { return ( this._worldToLocalDirty && (this.parent ? (this.parent.updateTransform(), (this._worldToLocalTransform = Matrix2D.invert( this.parent._worldTransform, this._worldToLocalTransform ))) : (this._worldInverseTransform = new Matrix2D()), (this._worldToLocalDirty = !1)), this._worldToLocalTransform ); }, enumerable: !0, configurable: !0, }), Object.defineProperty(t.prototype, "parent", { get: function () { return this._parent; }, set: function (t) { this.setParent(t); }, enumerable: !0, configurable: !0, }), (t.prototype.setParent = function (t) { return this._parent == t ? this : (this._parent && this._parent._children.remove(this), t && t._children.push(this), (this._parent = t), this); }), Object.defineProperty(t.prototype, "rotation", { get: function () { return this.updateTransform(), this._rotation; }, set: function (t) { this.setRotation(t); }, enumerable: !0, configurable: !0, }), Object.defineProperty(t.prototype, "localRotation", { get: function () { return this.updateTransform(), this._localRotation; }, set: function (t) { this.setLocalRotation(t); }, enumerable: !0, configurable: !0, }), Object.defineProperty(t.prototype, "position", { get: function () { return ( this.updateTransform(), this._positionDirty && (this.parent ? (this.parent.updateTransform(), (this._position = Vector2Ext.transformR( this._localPosition, this.parent._worldTransform ))) : (this._position = this._localPosition), (this._positionDirty = !1)), this._position ); }, set: function (t) { this.setPosition(t); }, enumerable: !0, configurable: !0, }), Object.defineProperty(t.prototype, "localPosition", { get: function () { return this.updateTransform(), this._localPosition; }, set: function (t) { this.setLocalPosition(t); }, enumerable: !0, configurable: !0, }), Object.defineProperty(t.prototype, "scale", { get: function () { return this.updateTransform(), this._scale; }, set: function (t) { this.setScale(t); }, enumerable: !0, configurable: !0, }), Object.defineProperty(t.prototype, "localScale", { get: function () { return this.updateTransform(), this._localScale; }, set: function (t) { this.setLocalScale(t); }, enumerable: !0, configurable: !0, }), Object.defineProperty(t.prototype, "rotationDegrees", { get: function () { return MathHelper.toDegrees(this._rotation); }, set: function (t) { this.setRotation(MathHelper.toRadians(t)); }, enumerable: !0, configurable: !0, }), Object.defineProperty(t.prototype, "localRotationDegrees", { get: function () { return MathHelper.toDegrees(this._localRotation); }, set: function (t) { this.localRotation = MathHelper.toRadians(t); }, enumerable: !0, configurable: !0, }), (t.prototype.setLocalScale = function (t) { return ( (this._localScale = t), (this._localDirty = this._positionDirty = this._localScaleDirty = !0), this.setDirty(DirtyType.scaleDirty), this ); }), (t.prototype.setScale = function (t) { return ( (this._scale = t), this.parent ? (this.localScale = Vector2.divide(t, this.parent._scale)) : (this.localScale = t), this ); }), (t.prototype.setLocalRotationDegrees = function (t) { return this.setLocalRotation(MathHelper.toRadians(t)); }), (t.prototype.setLocalRotation = function (t) { return ( (this._localRotation = t), (this._localDirty = this._positionDirty = this._localPositionDirty = this._localRotationDirty = this._localScaleDirty = !0), this.setDirty(DirtyType.rotationDirty), this ); }), (t.prototype.setRotation = function (t) { return ( (this._rotation = t), this.parent ? (this.localRotation = this.parent.rotation + t) : (this.localRotation = t), this ); }), (t.prototype.setRotationDegrees = function (t) { return this.setRotation(MathHelper.toRadians(t)); }), (t.prototype.setLocalPosition = function (t) { return t == this._localPosition ? this : ((this._localPosition = t), (this._localDirty = this._positionDirty = this._localPositionDirty = this._localRotationDirty = this._localScaleDirty = !0), this.setDirty(DirtyType.positionDirty), this); }), (t.prototype.setPosition = function (t) { return t == this._position ? this : ((this._position = t), this.parent ? (this.localPosition = Vector2.transform( this._position, this._worldToLocalTransform )) : (this.localPosition = t), (this._positionDirty = !1), this); }), (t.prototype.setDirty = function (t) { if (0 == (this._hierachyDirty & t)) { switch (((this._hierachyDirty |= t), t)) { case DirtyType.positionDirty: this.entity.onTransformChanged(ComponentTransform.position); break; case DirtyType.rotationDirty: this.entity.onTransformChanged(ComponentTransform.rotation); break; case DirtyType.scaleDirty: this.entity.onTransformChanged(ComponentTransform.scale); } null == this._children && (this._children = []); for (var e = 0; e < this._children.length; e++) this._children[e].setDirty(t); } }), (t.prototype.roundPosition = function () { this.position = this._position.round(); }), (t.prototype.updateTransform = function () { this._hierachyDirty != DirtyType.clean && (this.parent && this.parent.updateTransform(), this._localDirty && (this._localPositionDirty && ((this._translationMatrix = Matrix2D.createTranslation( this._localPosition.x, this._localPosition.y )), (this._localPositionDirty = !1)), this._localRotationDirty && ((this._rotationMatrix = Matrix2D.createRotation( this._localRotation )), (this._localRotationDirty = !1)), this._localScaleDirty && ((this._scaleMatrix = Matrix2D.createScale( this._localScale.x, this._localScale.y )), (this._localScaleDirty = !1)), (this._localTransform = Matrix2D.multiply( this._scaleMatrix, this._rotationMatrix )), (this._localTransform = Matrix2D.multiply( this._localTransform, this._translationMatrix )), this.parent || ((this._worldTransform = this._localTransform), (this._rotation = this._localRotation), (this._scale = this._localScale), (this._worldInverseDirty = !0)), (this._localDirty = !1)), this.parent && ((this._worldTransform = Matrix2D.multiply( this._localTransform, this.parent._worldTransform )), (this._rotation = this._localRotation + this.parent._rotation), (this._scale = Vector2.multiply( this.parent._scale, this._localScale )), (this._worldInverseDirty = !0)), (this._worldToLocalDirty = !0), (this._positionDirty = !0), (this._hierachyDirty = DirtyType.clean)); }), t ); })(), Camera = (function (t) { function e() { var e = t.call(this) || this; return ( (e._origin = Vector2.zero), (e._minimumZoom = 0.3), (e._maximumZoom = 3), (e.followLerp = 0.1), (e.deadzone = new Rectangle()), (e.focusOffset = new Vector2()), (e.mapLockEnabled = !1), (e.mapSize = new Vector2()), (e._worldSpaceDeadZone = new Rectangle()), (e._desiredPositionDelta = new Vector2()), (e.cameraStyle = CameraStyle.lockOn), (e.width = SceneManager.stage.stageWidth), (e.height = SceneManager.stage.stageHeight), e.setZoom(0), e ); } return ( __extends(e, t), Object.defineProperty(e.prototype, "zoom", { get: function () { return 0 == this._zoom ? 1 : this._zoom < 1 ? MathHelper.map(this._zoom, this._minimumZoom, 1, -1, 0) : MathHelper.map(this._zoom, 1, this._maximumZoom, 0, 1); }, set: function (t) { this.setZoom(t); }, enumerable: !0, configurable: !0, }), Object.defineProperty(e.prototype, "minimumZoom", { get: function () { return this._minimumZoom; }, set: function (t) { this.setMinimumZoom(t); }, enumerable: !0, configurable: !0, }), Object.defineProperty(e.prototype, "maximumZoom", { get: function () { return this._maximumZoom; }, set: function (t) { this.setMaximumZoom(t); }, enumerable: !0, configurable: !0, }), Object.defineProperty(e.prototype, "origin", { get: function () { return this._origin; }, set: function (t) { this._origin != t && (this._origin = t); }, enumerable: !0, configurable: !0, }), Object.defineProperty(e.prototype, "position", { get: function () { return this.entity.position; }, set: function (t) { this.entity.position = t; }, enumerable: !0, configurable: !0, }), (e.prototype.onSceneSizeChanged = function (t, e) { var n = this._origin; (this.origin = new Vector2(t / 2, e / 2)), (this.entity.position = Vector2.add( this.entity.position, Vector2.subtract(this._origin, n) )); }), (e.prototype.setMinimumZoom = function (t) { return ( this._zoom < t && (this._zoom = this.minimumZoom), (this._minimumZoom = t), this ); }), (e.prototype.setMaximumZoom = function (t) { return ( this._zoom > t && (this._zoom = t), (this._maximumZoom = t), this ); }), (e.prototype.setZoom = function (t) { var e = MathHelper.clamp(t, -1, 1); return ( (this._zoom = 0 == e ? 1 : e < 0 ? MathHelper.map(e, -1, 0, this._minimumZoom, 1) : MathHelper.map(e, 0, 1, 1, this._maximumZoom)), (SceneManager.scene.scaleX = this._zoom), (SceneManager.scene.scaleY = this._zoom), this ); }), (e.prototype.setRotation = function (t) { return (SceneManager.scene.rotation = t), this; }), (e.prototype.setPosition = function (t) { return (this.entity.position = t), this; }), (e.prototype.follow = function (t, e) { void 0 === e && (e = CameraStyle.cameraWindow), (this.targetEntity = t), (this.cameraStyle = e); var n = new Rectangle( 0, 0, SceneManager.stage.stageWidth, SceneManager.stage.stageHeight ); switch (this.cameraStyle) { case CameraStyle.cameraWindow: var i = n.width / 6, o = n.height / 3; this.deadzone = new Rectangle( (n.width - i) / 2, (n.height - o) / 2, i, o ); break; case CameraStyle.lockOn: this.deadzone = new Rectangle(n.width / 2, n.height / 2, 10, 10); } }), (e.prototype.update = function () { var t = new Rectangle( 0, 0, SceneManager.stage.stageWidth, SceneManager.stage.stageHeight ), e = Vector2.multiply( new Vector2(t.width, t.height), new Vector2(0.5) ); (this._worldSpaceDeadZone.x = this.position.x - e.x + this.deadzone.x + this.focusOffset.x), (this._worldSpaceDeadZone.y = this.position.y - e.y + this.deadzone.y + this.focusOffset.y), (this._worldSpaceDeadZone.width = this.deadzone.width), (this._worldSpaceDeadZone.height = this.deadzone.height), this.targetEntity && this.updateFollow(), (this.position = Vector2.lerp( this.position, Vector2.add(this.position, this._desiredPositionDelta), this.followLerp )), this.entity.roundPosition(), this.mapLockEnabled && ((this.position = this.clampToMapSize(this.position)), this.entity.roundPosition()); }), (e.prototype.clampToMapSize = function (t) { var e = new Rectangle( 0, 0, SceneManager.stage.stageWidth, SceneManager.stage.stageHeight ), n = Vector2.multiply( new Vector2(e.width, e.height), new Vector2(0.5) ), i = new Vector2(this.mapSize.x - n.x, this.mapSize.y - n.y); return Vector2.clamp(t, n, i); }), (e.prototype.updateFollow = function () { if ( ((this._desiredPositionDelta.x = this._desiredPositionDelta.y = 0), this.cameraStyle == CameraStyle.lockOn) ) { var t = this.targetEntity.position.x, e = this.targetEntity.position.y; this._worldSpaceDeadZone.x > t ? (this._desiredPositionDelta.x = t - this._worldSpaceDeadZone.x) : this._worldSpaceDeadZone.x < t && (this._desiredPositionDelta.x = t - this._worldSpaceDeadZone.x), this._worldSpaceDeadZone.y < e ? (this._desiredPositionDelta.y = e - this._worldSpaceDeadZone.y) : this._worldSpaceDeadZone.y > e && (this._desiredPositionDelta.y = e - this._worldSpaceDeadZone.y); } else { if ( !this._targetCollider && ((this._targetCollider = this.targetEntity.getComponent(Collider)), !this._targetCollider) ) return; var n = this.targetEntity.getComponent(Collider).bounds; this._worldSpaceDeadZone.containsRect(n) || (this._worldSpaceDeadZone.left > n.left ? (this._desiredPositionDelta.x = n.left - this._worldSpaceDeadZone.left) : this._worldSpaceDeadZone.right < n.right && (this._desiredPositionDelta.x = n.right - this._worldSpaceDeadZone.right), this._worldSpaceDeadZone.bottom < n.bottom ? (this._desiredPositionDelta.y = n.bottom - this._worldSpaceDeadZone.bottom) : this._worldSpaceDeadZone.top > n.top && (this._desiredPositionDelta.y = n.top - this._worldSpaceDeadZone.top)); } }), e ); })(Component); !(function (t) { (t[(t.lockOn = 0)] = "lockOn"), (t[(t.cameraWindow = 1)] = "cameraWindow"); })(CameraStyle || (CameraStyle = {})); var PointSectors, ComponentPool = (function () { function t(t) { (this._type = t), (this._cache = []); } return ( (t.prototype.obtain = function () { try { return this._cache.length > 0 ? this._cache.shift() : new this._type(); } catch (t) { throw new Error(this._type + t); } }), (t.prototype.free = function (t) { t.reset(), this._cache.push(t); }), t ); })(), Mesh = (function (t) { function e() { return (null !== t && t.apply(this, arguments)) || this; } return ( __extends(e, t), (e.prototype.initialize = function () {}), (e.prototype.setVertPosition = function (t) { (!this._verts || this._verts.length != t.length) && (this._verts = new Array(t.length)); for (var e = 0; e < this._verts.length; e++) this._verts[e] = new VertexPosition(t[e]); return this; }), (e.prototype.setTriangles = function (t) { return ( (this._primitiveCount = t.length / 3), (this._triangles = t), this ); }), (e.prototype.recalculateBounds = function () { this._topLeftVertPosition = new Vector2( Number.MAX_VALUE, Number.MAX_VALUE ); for ( var t = new Vector2(Number.MIN_VALUE, Number.MIN_VALUE), e = 0; e < this._verts.length; e++ ) (this._topLeftVertPosition.x = Math.min( this._topLeftVertPosition.x, this._verts[e].position.x )), (this._topLeftVertPosition.y = Math.min( this._topLeftVertPosition.y, this._verts[e].position.y )), (t.x = Math.max(t.x, this._verts[e].position.x)), (t.y = Math.max(t.y, this._verts[e].position.y)); return ( (this._width = t.x - this._topLeftVertPosition.x), (this._height = t.y - this._topLeftVertPosition.y), this ); }), (e.prototype.render = function () {}), e ); })(Component), VertexPosition = (function () { return function (t) { this.position = t; }; })(), PolygonMesh = (function (t) { function e(e, n) { void 0 === n && (n = !0); var i = t.call(this) || this, o = new Triangulator(); return ( o.triangulate(e, n), i.setVertPosition(e), i.setTriangles(o.triangleIndices), i.recalculateBounds(), i ); } return __extends(e, t), e; })(Mesh), PooledComponent = (function (t) { function e() { return (null !== t && t.apply(this, arguments)) || this; } return __extends(e, t), e; })(Component), RenderableComponent = (function (t) { function e() { var e = (null !== t && t.apply(this, arguments)) || this; return ( (e._areBoundsDirty = !0), (e._bounds = new Rectangle()), (e._localOffset = Vector2.zero), (e.color = 0), e ); } return ( __extends(e, t), Object.defineProperty(e.prototype, "width", { get: function () { return this.getWidth(); }, enumerable: !0, configurable: !0, }), Object.defineProperty(e.prototype, "height", { get: function () { return this.getHeight(); }, enumerable: !0, configurable: !0, }), Object.defineProperty(e.prototype, "isVisible", { get: function () { return this._isVisible; }, set: function (t) { (this._isVisible = t), this._isVisible ? this.onBecameVisible() : this.onBecameInvisible(); }, enumerable: !0, configurable: !0, }), Object.defineProperty(e.prototype, "bounds", { get: function () { return new Rectangle( this.getBounds().x, this.getBounds().y, this.getBounds().width, this.getBounds().height ); }, enumerable: !0, configurable: !0, }), (e.prototype.getWidth = function () { return this.bounds.width; }), (e.prototype.getHeight = function () { return this.bounds.height; }), (e.prototype.onBecameVisible = function () {}), (e.prototype.onBecameInvisible = function () {}), (e.prototype.isVisibleFromCamera = function (t) { return ( (this.isVisible = t.getBounds().intersects(this.getBounds())), this.isVisible ); }), (e.prototype.onEntityTransformChanged = function (t) { this._areBoundsDirty = !0; }), e ); })(PooledComponent), ScreenSpaceCamera = (function (t) { function e() { return (null !== t && t.apply(this, arguments)) || this; } return __extends(e, t), (e.prototype.updateMatrixes = function () {}), e; })(Camera), Sprite = (function () { return function (t, e, n) { void 0 === e && (e = new Rectangle(0, 0, t.textureWidth, t.textureHeight)), void 0 === n && (n = e.getHalfSize()), (this.uvs = new Rectangle()), (this.texture2D = t), (this.sourceRect = e), (this.center = new Vector2(0.5 * e.width, 0.5 * e.height)), (this.origin = n); var i = 1 / t.textureWidth, o = 1 / t.textureHeight; (this.uvs.x = e.x * i), (this.uvs.y = e.y * o), (this.uvs.width = e.width * i), (this.uvs.height = e.height * o); }; })(), SpriteRenderer = (function (t) { function e() { return (null !== t && t.apply(this, arguments)) || this; } return ( __extends(e, t), Object.defineProperty(e.prototype, "origin", { get: function () { return this._origin; }, set: function (t) { this.setOrigin(t); }, enumerable: !0, configurable: !0, }), (e.prototype.setOrigin = function (t) { return this._origin != t && (this._origin = t), this; }), (e.prototype.setSprite = function (t) { return ( this.removeChildren(), (this._sprite = t), this._sprite && (this._origin = this._sprite.origin), (this._bitmap = new egret.Bitmap(t.texture2D)), this.addChild(this._bitmap), this ); }), (e.prototype.setColor = function (t) { var e = [1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0]; (e[0] = Math.floor(t / 256 / 256) / 255), (e[6] = Math.floor((t / 256) % 256) / 255), (e[12] = (t % 256) / 255); var n = new egret.ColorMatrixFilter(e); return (this.filters = [n]), this; }), (e.prototype.isVisibleFromCamera = function (t) { return ( (this.isVisible = new Rectangle( 0, 0, this.stage.stageWidth, this.stage.stageHeight ).intersects(this.bounds)), (this.visible = this.isVisible), this.isVisible ); }), (e.prototype.render = function (t) { (this.x = this.entity.position.x - this.origin.x - t.position.x + t.origin.x), (this.y = this.entity.position.y - this.origin.y - t.position.y + t.origin.y); }), (e.prototype.onRemovedFromEntity = function () { this.parent && this.parent.removeChild(this); }), (e.prototype.reset = function () {}), e ); })(RenderableComponent), Mover = (function (t) { function e() { return (null !== t && t.apply(this, arguments)) || this; } return ( __extends(e, t), (e.prototype.onAddedToEntity = function () { this._triggerHelper = new ColliderTriggerHelper(this.entity); }), (e.prototype.calculateMovement = function (t) { var e = new CollisionResult(); if (!this.entity.getComponent(Collider) || !this._triggerHelper) return null; for ( var n = this.entity.getComponents(Collider), i = 0; i < n.length; i++ ) { var o = n[i]; if (!o.isTrigger) { var r = o.bounds; (r.x += t.x), (r.y += t.y); for ( var s = Physics.boxcastBroadphaseExcludingSelf( o, r, o.collidesWithLayers ), a = 0; a < s.length; a++ ) { var h = s[a]; if (!h.isTrigger) { var c = o.collidesWith(h, t); c && ((t = Vector2.subtract(t, c.minimumTranslationVector)), c.collider && (e = c)); } } } } return ListPool.free(n), e; }), (e.prototype.applyMovement = function (t) { (this.entity.position = Vector2.add(this.entity.position, t)), this._triggerHelper && this._triggerHelper.update(); }), (e.prototype.move = function (t) { var e = this.calculateMovement(t); return this.applyMovement(t), e; }), e ); })(Component), Collider = (function (t) { function e() { var e = (null !== t && t.apply(this, arguments)) || this; return ( (e.physicsLayer = 1), (e.shouldColliderScaleAndRotationWithTransform = !0), (e.collidesWithLayers = Physics.allLayers), (e._isPositionDirty = !0), (e._isRotationDirty = !0), (e._localOffset = new Vector2(0, 0)), e ); } return ( __extends(e, t), Object.defineProperty(e.prototype, "bounds", { get: function () { return ( (this._isPositionDirty || this._isRotationDirty) && (this.shape.recalculateBounds(this), (this._isPositionDirty = this._isRotationDirty = !1)), this.shape.bounds ); }, enumerable: !0, configurable: !0, }), Object.defineProperty(e.prototype, "localOffset", { get: function () { return this._localOffset; }, set: function (t) { this.setLocalOffset(t); }, enumerable: !0, configurable: !0, }), (e.prototype.setLocalOffset = function (t) { this._localOffset != t && (this.unregisterColliderWithPhysicsSystem(), (this._localOffset = t), (this._localOffsetLength = this._localOffset.length()), (this._isPositionDirty = !0), this.registerColliderWithPhysicsSystem()); }), (e.prototype.registerColliderWithPhysicsSystem = function () { this._isParentEntityAddedToScene && !this._isColliderRegistered && (Physics.addCollider(this), (this._isColliderRegistered = !0)); }), (e.prototype.unregisterColliderWithPhysicsSystem = function () { this._isParentEntityAddedToScene && this._isColliderRegistered && Physics.removeCollider(this), (this._isColliderRegistered = !1); }), (e.prototype.overlaps = function (t) { return this.shape.overlaps(t.shape); }), (e.prototype.collidesWith = function (t, e) { var n = this.shape.position; this.shape.position = Vector2.add(this.shape.position, e); var i = this.shape.collidesWithShape(t.shape); return i && (i.collider = t), (this.shape.position = n), i; }), (e.prototype.onAddedToEntity = function () { if (this._colliderRequiresAutoSizing) { this instanceof BoxCollider || console.error( "Only box and circle colliders can be created automatically" ); var t = this.entity.getComponent(RenderableComponent); if (t) { var e = t.bounds, n = e.width / this.entity.scale.x, i = e.height / this.entity.scale.y; if (this instanceof BoxCollider) { (this.width = n), (this.height = i), (this.localOffset = Vector2.subtract( e.center, this.entity.position )); } } } (this._isParentEntityAddedToScene = !0), this.registerColliderWithPhysicsSystem(); }), (e.prototype.onRemovedFromEntity = function () { this.unregisterColliderWithPhysicsSystem(), (this._isParentEntityAddedToScene = !1); }), (e.prototype.onEntityTransformChanged = function (t) { switch (t) { case ComponentTransform.position: case ComponentTransform.scale: this._isPositionDirty = !0; break; case ComponentTransform.rotation: this._isRotationDirty = !0; } this._isColliderRegistered && Physics.updateCollider(this); }), (e.prototype.onEnabled = function () { this.registerColliderWithPhysicsSystem(), (this._isPositionDirty = this._isRotationDirty = !0); }), (e.prototype.onDisabled = function () { this.unregisterColliderWithPhysicsSystem(); }), e ); })(Component), BoxCollider = (function (t) { function e() { var e = t.call(this) || this; return (e.shape = new Box(1, 1)), (e._colliderRequiresAutoSizing = !0), e; } return ( __extends(e, t), Object.defineProperty(e.prototype, "width", { get: function () { return this.shape.width; }, set: function (t) { this.setWidth(t); }, enumerable: !0, configurable: !0, }), (e.prototype.setWidth = function (t) { this._colliderRequiresAutoSizing = !1; var e = this.shape; return ( t != e.width && (e.updateBox(t, e.height), (this._isPositionDirty = !0), this.entity && this._isParentEntityAddedToScene && Physics.updateCollider(this)), this ); }), Object.defineProperty(e.prototype, "height", { get: function () { return this.shape.height; }, set: function (t) { this.setHeight(t); }, enumerable: !0, configurable: !0, }), (e.prototype.setHeight = function (t) { this._colliderRequiresAutoSizing = !1; var e = this.shape; t != e.height && (e.updateBox(e.width, t), (this._isPositionDirty = !0), this.entity && this._isParentEntityAddedToScene && Physics.updateCollider(this)); }), (e.prototype.setSize = function (t, e) { this._colliderRequiresAutoSizing = !1; var n = this.shape; return ( (t == n.width && e == n.height) || (n.updateBox(t, e), (this._isPositionDirty = !0), this.entity && this._isParentEntityAddedToScene && Physics.updateCollider(this)), this ); }), e ); })(Collider), EntitySystem = (function () { function t(t) { (this._entities = []), (this._matcher = t || Matcher.empty()); } return ( Object.defineProperty(t.prototype, "matcher", { get: function () { return this._matcher; }, enumerable: !0, configurable: !0, }), Object.defineProperty(t.prototype, "scene", { get: function () { return this._scene; }, set: function (t) { (this._scene = t), (this._entities = []); }, enumerable: !0, configurable: !0, }), (t.prototype.initialize = function () {}), (t.prototype.onChanged = function (t) { var e = this._entities.contains(t), n = this._matcher.IsIntersted(t); n && !e ? this.add(t) : !n && e && this.remove(t); }), (t.prototype.add = function (t) { this._entities.push(t), this.onAdded(t); }), (t.prototype.onAdded = function (t) {}), (t.prototype.remove = function (t) { this._entities.remove(t), this.onRemoved(t); }), (t.prototype.onRemoved = function (t) {}), (t.prototype.update = function () { this.begin(), this.process(this._entities); }), (t.prototype.lateUpdate = function () { this.lateProcess(this._entities), this.end(); }), (t.prototype.begin = function () {}), (t.prototype.process = function (t) {}), (t.prototype.lateProcess = function (t) {}), (t.prototype.end = function () {}), t ); })(), EntityProcessingSystem = (function (t) { function e(e) { return t.call(this, e) || this; } return ( __extends(e, t), (e.prototype.lateProcessEntity = function (t) {}), (e.prototype.process = function (t) { var e = this; t.forEach(function (t) { return e.processEntity(t); }); }), (e.prototype.lateProcess = function (t) { var e = this; t.forEach(function (t) { return e.lateProcessEntity(t); }); }), e ); })(EntitySystem), PassiveSystem = (function (t) { function e() { return (null !== t && t.apply(this, arguments)) || this; } return ( __extends(e, t), (e.prototype.onChanged = function (t) {}), (e.prototype.process = function (t) { this.begin(), this.end(); }), e ); })(EntitySystem), ProcessingSystem = (function (t) { function e() { return (null !== t && t.apply(this, arguments)) || this; } return ( __extends(e, t), (e.prototype.onChanged = function (t) {}), (e.prototype.process = function (t) { this.begin(), this.processSystem(), this.end(); }), e ); })(EntitySystem), BitSet = (function () { function t(e) { void 0 === e && (e = 64); var n = e >> 6; 0 != (e & t.LONG_MASK) && n++, (this._bits = new Array(n)); } return ( (t.prototype.and = function (t) { for ( var e, n = Math.min(this._bits.length, t._bits.length), i = 0; i < n; ++i ) this._bits[i] &= t._bits[i]; for (; e < this._bits.length; ) this._bits[e++] = 0; }), (t.prototype.andNot = function (t) { for (var e = Math.min(this._bits.length, t._bits.length); --e >= 0; ) this._bits[e] &= ~t._bits[e]; }), (t.prototype.cardinality = function () { for (var t = 0, e = this._bits.length - 1; e >= 0; e--) { var n = this._bits[e]; if (0 != n) if (-1 != n) { var i = ((n = (((n = ((n >> 1) & 0x5555555555555400) + (0x5555555555555400 & n)) >> 2) & 0x3333333333333400) + (0x3333333333333400 & n)) >> 32) + n; t += (((i = (((i = ((i >> 4) & 252645135) + (252645135 & i)) >> 8) & 16711935) + (16711935 & i)) >> 16) & 65535) + (65535 & i); } else t += 64; } return t; }), (t.prototype.clear = function (t) { if (null != t) { var e = t >> 6; this.ensure(e), (this._bits[e] &= ~(1 << t)); } else for (var n = 0; n < this._bits.length; n++) this._bits[n] = 0; }), (t.prototype.ensure = function (t) { if (t >= this._bits.length) { var e = new Number[t + 1](); (e = this._bits.copyWithin(0, 0, this._bits.length)), (this._bits = e); } }), (t.prototype.get = function (t) { var e = t >> 6; return !(e >= this._bits.length) && 0 != (this._bits[e] & (1 << t)); }), (t.prototype.intersects = function (t) { for (var e = Math.min(this._bits.length, t._bits.length); --e >= 0; ) if (0 != (this._bits[e] & t._bits[e])) return !0; return !1; }), (t.prototype.isEmpty = function () { for (var t = this._bits.length - 1; t >= 0; t--) if (this._bits[t]) return !1; return !0; }), (t.prototype.nextSetBit = function (t) { for (var e = t >> 6, n = 1 << t; e < this._bits.length; ) { var i = this._bits[e]; do { if (0 != (i & n)) return t; (n <<= 1), t++; } while (0 != n); (n = 1), e++; } return -1; }), (t.prototype.set = function (t, e) { if ((void 0 === e && (e = !0), e)) { var n = t >> 6; this.ensure(n), (this._bits[n] |= 1 << t); } else this.clear(t); }), (t.LONG_MASK = 63), t ); })(), ComponentList = (function () { function t(t) { (this._components = []), (this._componentsToAdd = []), (this._componentsToRemove = []), (this._tempBufferList = []), (this._entity = t); } return ( Object.defineProperty(t.prototype, "count", { get: function () { return this._components.length; }, enumerable: !0, configurable: !0, }), Object.defineProperty(t.prototype, "buffer", { get: function () { return this._components; }, enumerable: !0, configurable: !0, }), (t.prototype.add = function (t) { this._componentsToAdd.push(t); }), (t.prototype.remove = function (t) { this._componentsToAdd.contains(t) ? this._componentsToAdd.remove(t) : this._componentsToRemove.push(t); }), (t.prototype.removeAllComponents = function () { for (var t = 0; t < this._components.length; t++) this.handleRemove(this._components[t]); (this._components.length = 0), (this._componentsToAdd.length = 0), (this._componentsToRemove.length = 0); }), (t.prototype.deregisterAllComponents = function () { for (var t = 0; t < this._components.length; t++) { var e = this._components[t]; e instanceof RenderableComponent && this._entity.scene.renderableComponents.remove(e), this._entity.componentBits.set( ComponentTypeManager.getIndexFor(e), !1 ), this._entity.scene.entityProcessors.onComponentRemoved( this._entity ); } }), (t.prototype.registerAllComponents = function () { for (var t = 0; t < this._components.length; t++) { var e = this._components[t]; e instanceof RenderableComponent && this._entity.scene.renderableComponents.add(e), this._entity.componentBits.set(ComponentTypeManager.getIndexFor(e)), this._entity.scene.entityProcessors.onComponentAdded(this._entity); } }), (t.prototype.updateLists = function () { if (this._componentsToRemove.length > 0) { for (var t = 0; t < this._componentsToRemove.length; t++) this.handleRemove(this._componentsToRemove[t]), this._components.remove(this._componentsToRemove[t]); this._componentsToRemove.length = 0; } if (this._componentsToAdd.length > 0) { t = 0; for (var e = this._componentsToAdd.length; t < e; t++) { (n = this._componentsToAdd[t]) instanceof RenderableComponent && this._entity.scene.renderableComponents.add(n), this._entity.componentBits.set( ComponentTypeManager.getIndexFor(n) ), this._entity.scene.entityProcessors.onComponentAdded( this._entity ), this._components.push(n), this._tempBufferList.push(n); } this._componentsToAdd.length = 0; for (t = 0; t < this._tempBufferList.length; t++) { var n; (n = this._tempBufferList[t]).onAddedToEntity(), n.enabled && n.onEnabled(); } this._tempBufferList.length = 0; } }), (t.prototype.handleRemove = function (t) { t instanceof RenderableComponent && this._entity.scene.renderableComponents.remove(t), this._entity.componentBits.set( ComponentTypeManager.getIndexFor(t), !1 ), this._entity.scene.entityProcessors.onComponentRemoved(this._entity), t.onRemovedFromEntity(), (t.entity = null); }), (t.prototype.getComponent = function (t, e) { for (var n = 0; n < this._components.length; n++) { if ((i = this._components[n]) instanceof t) return i; } if (!e) for (n = 0; n < this._componentsToAdd.length; n++) { var i; if ((i = this._componentsToAdd[n]) instanceof t) return i; } return null; }), (t.prototype.getComponents = function (t, e) { e || (e = []); for (var n = 0; n < this._components.length; n++) { var i = this._components[n]; "string" == typeof t ? egret.is(i, t) && e.push(i) : i instanceof t && e.push(i); } for (n = 0; n < this._componentsToAdd.length; n++) { i = this._componentsToAdd[n]; "string" == typeof t ? egret.is(i, t) && e.push(i) : i instanceof t && e.push(i); } return e; }), (t.prototype.update = function () { this.updateLists(); for (var t = 0; t < this._components.length; t++) { var e = this._components[t]; !e.enabled || (1 != e.updateInterval && Time.frameCount % e.updateInterval != 0) || e.update(); } }), (t.prototype.onEntityTransformChanged = function (t) { for (var e = 0; e < this._components.length; e++) this._components[e].enabled && this._components[e].onEntityTransformChanged(t); for (e = 0; e < this._componentsToAdd.length; e++) this._componentsToAdd[e].enabled && this._componentsToAdd[e].onEntityTransformChanged(t); }), t ); })(), ComponentTypeManager = (function () { function t() {} return ( (t.add = function (t) { this._componentTypesMask.has(t) || (this._componentTypesMask[t] = this._componentTypesMask.size); }), (t.getIndexFor = function (t) { var e = -1; return ( this._componentTypesMask.has(t) || (this.add(t), (e = this._componentTypesMask.get(t))), e ); }), (t._componentTypesMask = new Map()), t ); })(), EntityList = (function () { function t(t) { (this._entitiesToRemove = []), (this._entitiesToAdded = []), (this._tempEntityList = []), (this._entities = []), (this._entityDict = new Map()), (this._unsortedTags = []), (this.scene = t); } return ( Object.defineProperty(t.prototype, "count", { get: function () { return this._entities.length; }, enumerable: !0, configurable: !0, }), Object.defineProperty(t.prototype, "buffer", { get: function () { return this._entities; }, enumerable: !0, configurable: !0, }), (t.prototype.add = function (t) { -1 == this._entitiesToAdded.indexOf(t) && this._entitiesToAdded.push(t); }), (t.prototype.remove = function (t) { this._entitiesToAdded.contains(t) ? this._entitiesToAdded.remove(t) : this._entitiesToRemove.contains(t) || this._entitiesToRemove.push(t); }), (t.prototype.findEntity = function (t) { for (var e = 0; e < this._entities.length; e++) if (this._entities[e].name == t) return this._entities[e]; return this._entitiesToAdded.firstOrDefault(function (e) { return e.name == t; }); }), (t.prototype.getTagList = function (t) { var e = this._entityDict.get(t); return ( e || ((e = []), this._entityDict.set(t, e)), this._entityDict.get(t) ); }), (t.prototype.addToTagList = function (t) { var e = this.getTagList(t.tag); e.contains(t) || (e.push(t), this._unsortedTags.push(t.tag)); }), (t.prototype.removeFromTagList = function (t) { var e = this._entityDict.get(t.tag); e && e.remove(t); }), (t.prototype.update = function () { for (var t = 0; t < this._entities.length; t++) { var e = this._entities[t]; e.enabled && e.update(); } }), (t.prototype.removeAllEntities = function () { (this._entitiesToAdded.length = 0), this.updateLists(); for (var t = 0; t < this._entities.length; t++) (this._entities[t]._isDestoryed = !0), this._entities[t].onRemovedFromScene(), (this._entities[t].scene = null); (this._entities.length = 0), this._entityDict.clear(); }), (t.prototype.updateLists = function () { var t = this; if (this._entitiesToRemove.length > 0) { var e = this._entitiesToRemove; (this._entitiesToRemove = this._tempEntityList), (this._tempEntityList = e), this._tempEntityList.forEach(function (e) { t._entities.remove(e), (e.scene = null), t.scene.entityProcessors.onEntityRemoved(e); }), (this._tempEntityList.length = 0); } if (this._entitiesToAdded.length > 0) { e = this._entitiesToAdded; (this._entitiesToAdded = this._tempEntityList), (this._tempEntityList = e), this._tempEntityList.forEach(function (e) { t._entities.contains(e) || (t._entities.push(e), (e.scene = t.scene), t.scene.entityProcessors.onEntityAdded(e)); }), this._tempEntityList.forEach(function (t) { return t.onAddedToScene(); }), (this._tempEntityList.length = 0); } this._unsortedTags.length > 0 && (this._unsortedTags.forEach(function (e) { t._entityDict.get(e).sort(); }), (this._unsortedTags.length = 0)); }), t ); })(), EntityProcessorList = (function () { function t() { this._processors = []; } return ( (t.prototype.add = function (t) { this._processors.push(t); }), (t.prototype.remove = function (t) { this._processors.remove(t); }), (t.prototype.onComponentAdded = function (t) { this.notifyEntityChanged(t); }), (t.prototype.onComponentRemoved = function (t) { this.notifyEntityChanged(t); }), (t.prototype.onEntityAdded = function (t) { this.notifyEntityChanged(t); }), (t.prototype.onEntityRemoved = function (t) { this.removeFromProcessors(t); }), (t.prototype.notifyEntityChanged = function (t) { for (var e = 0; e < this._processors.length; e++) this._processors[e].onChanged(t); }), (t.prototype.removeFromProcessors = function (t) { for (var e = 0; e < this._processors.length; e++) this._processors[e].remove(t); }), (t.prototype.begin = function () {}), (t.prototype.update = function () { for (var t = 0; t < this._processors.length; t++) this._processors[t].update(); }), (t.prototype.lateUpdate = function () { for (var t = 0; t < this._processors.length; t++) this._processors[t].lateUpdate(); }), (t.prototype.end = function () {}), (t.prototype.getProcessor = function () { for (var t = 0; t < this._processors.length; t++) { var e = this._processors[t]; if (e instanceof EntitySystem) return e; } return null; }), t ); })(), Matcher = (function () { function t() { (this.allSet = new BitSet()), (this.exclusionSet = new BitSet()), (this.oneSet = new BitSet()); } return ( (t.empty = function () { return new t(); }), (t.prototype.getAllSet = function () { return this.allSet; }), (t.prototype.getExclusionSet = function () { return this.exclusionSet; }), (t.prototype.getOneSet = function () { return this.oneSet; }), (t.prototype.IsIntersted = function (t) { if (!this.allSet.isEmpty()) for ( var e = this.allSet.nextSetBit(0); e >= 0; e = this.allSet.nextSetBit(e + 1) ) if (!t.componentBits.get(e)) return !1; return ( !( !this.exclusionSet.isEmpty() && this.exclusionSet.intersects(t.componentBits) ) && !(!this.oneSet.isEmpty() && !this.oneSet.intersects(t.componentBits)) ); }), (t.prototype.all = function () { for (var t = this, e = [], n = 0; n < arguments.length; n++) e[n] = arguments[n]; return ( e.forEach(function (e) { t.allSet.set(ComponentTypeManager.getIndexFor(e)); }), this ); }), (t.prototype.exclude = function () { for (var t = this, e = [], n = 0; n < arguments.length; n++) e[n] = arguments[n]; return ( e.forEach(function (e) { t.exclusionSet.set(ComponentTypeManager.getIndexFor(e)); }), this ); }), (t.prototype.one = function () { for (var t = this, e = [], n = 0; n < arguments.length; n++) e[n] = arguments[n]; return ( e.forEach(function (e) { t.oneSet.set(ComponentTypeManager.getIndexFor(e)); }), this ); }), t ); })(), RenderableComponentList = (function () { function t() { this._components = []; } return ( Object.defineProperty(t.prototype, "count", { get: function () { return this._components.length; }, enumerable: !0, configurable: !0, }), Object.defineProperty(t.prototype, "buffer", { get: function () { return this._components; }, enumerable: !0, configurable: !0, }), (t.prototype.add = function (t) { this._components.push(t); }), (t.prototype.remove = function (t) { this._components.remove(t); }), (t.prototype.updateList = function () {}), t ); })(), Time = (function () { function t() {} return ( (t.update = function (t) { var e = (t - this._lastTime) / 1e3; (this.deltaTime = e * this.timeScale), (this.unscaledDeltaTime = e), this.frameCount++, (this._lastTime = t); }), (t.deltaTime = 0), (t.timeScale = 1), (t.frameCount = 0), (t._lastTime = 0), t ); })(), GraphicsCapabilities = (function () { function t() {} return ( (t.prototype.initialize = function (t) { this.platformInitialize(t); }), (t.prototype.platformInitialize = function (t) { var e = new egret.sys.RenderBuffer().context.getInstance(); (this.supportsNonPowerOfTwo = !1), (this.supportsTextureFilterAnisotropic = null != e.getExtension("EXT_texture_filter_anisotropic")), (this.supportsDepth24 = !0), (this.supportsPackedDepthStencil = !0), (this.supportsDepthNonLinear = !1), (this.supportsTextureMaxLevel = !0), (this.supportsS3tc = null != e.getExtension("WEBGL_compressed_texture_s3tc") || null != e.getExtension("WEBGL_compressed_texture_s3tc_srgb")), (this.supportsDxt1 = this.supportsS3tc), (this.supportsPvrtc = !1), (this.supportsAtitc = null != e.getExtension("WEBGL_compressed_texture_astc")), (this.supportsFramebufferObjectARB = !1); }), t ); })(), GraphicsDevice = (function () { return function () { (this.graphicsCapabilities = new GraphicsCapabilities()), this.graphicsCapabilities.initialize(this); }; })(), Viewport = (function () { function t(t, e, n, i) { (this._x = t), (this._y = e), (this._width = n), (this._height = i), (this._minDepth = 0), (this._maxDepth = 1); } return ( Object.defineProperty(t.prototype, "aspectRatio", { get: function () { return 0 != this._height && 0 != this._width ? this._width / this._height : 0; }, enumerable: !0, configurable: !0, }), Object.defineProperty(t.prototype, "bounds", { get: function () { return new Rectangle(this._x, this._y, this._width, this._height); }, set: function (t) { (this._x = t.x), (this._y = t.y), (this._width = t.width), (this._height = t.height); }, enumerable: !0, configurable: !0, }), t ); })(), GraphicsResource = (function () { return function () {}; })(), GaussianBlurEffect = (function (t) { function e() { return ( t.call(this, PostProcessor.default_vert, e.blur_frag, { screenWidth: SceneManager.stage.stageWidth, screenHeight: SceneManager.stage.stageHeight, }) || this ); } return ( __extends(e, t), (e.blur_frag = "precision mediump float;\nuniform sampler2D uSampler;\nuniform float screenWidth;\nuniform float screenHeight;\nfloat normpdf(in float x, in float sigma)\n{\nreturn 0.39894*exp(-0.5*x*x/(sigma*sigma))/sigma;\n}\nvoid main()\n{\nvec3 c = texture2D(uSampler, gl_FragCoord.xy / vec2(screenWidth, screenHeight).xy).rgb;\nconst int mSize = 11;\nconst int kSize = (mSize - 1)/2;\nfloat kernel[mSize];\nvec3 final_colour = vec3(0.0);\nfloat sigma = 7.0;\nfloat z = 0.0;\nfor (int j = 0; j <= kSize; ++j)\n{\nkernel[kSize+j] = kernel[kSize-j] = normpdf(float(j),sigma);\n}\nfor (int j = 0; j < mSize; ++j)\n{\nz += kernel[j];\n}\nfor (int i = -kSize; i <= kSize; ++i)\n{\nfor (int j = -kSize; j <= kSize; ++j)\n{\nfinal_colour += kernel[kSize+j]*kernel[kSize+i]*texture2D(uSampler, (gl_FragCoord.xy+vec2(float(i),float(j))) / vec2(screenWidth, screenHeight).xy).rgb;\n}\n}\ngl_FragColor = vec4(final_colour/(z*z), 1.0);\n}"), e ); })(egret.CustomFilter), PolygonLightEffect = (function (t) { function e() { return t.call(this, e.vertSrc, e.fragmentSrc) || this; } return ( __extends(e, t), (e.vertSrc = "attribute vec2 aVertexPosition;\nattribute vec2 aTextureCoord;\nuniform vec2 projectionVector;\nvarying vec2 vTextureCoord;\nconst vec2 center = vec2(-1.0, 1.0);\nvoid main(void) {\n gl_Position = vec4( (aVertexPosition / projectionVector) + center , 0.0, 1.0);\n vTextureCoord = aTextureCoord;\n}"), (e.fragmentSrc = "precision lowp float;\nvarying vec2 vTextureCoord;\nuniform sampler2D uSampler;\n#define SAMPLE_COUNT 15\nuniform vec2 _sampleOffsets[SAMPLE_COUNT];\nuniform float _sampleWeights[SAMPLE_COUNT];\nvoid main(void) {\nvec4 c = vec4(0, 0, 0, 0);\nfor( int i = 0; i < SAMPLE_COUNT; i++ )\n c += texture2D( uSampler, vTextureCoord + _sampleOffsets[i] ) * _sampleWeights[i];\ngl_FragColor = c;\n}"), e ); })(egret.CustomFilter), PostProcessor = (function () { function t(t) { void 0 === t && (t = null), (this.enable = !0), (this.effect = t); } return ( (t.prototype.onAddedToScene = function (t) { (this.scene = t), (this.shape = new egret.Shape()), this.shape.graphics.beginFill(16777215, 1), this.shape.graphics.drawRect( 0, 0, SceneManager.stage.stageWidth, SceneManager.stage.stageHeight ), this.shape.graphics.endFill(), t.addChild(this.shape); }), (t.prototype.process = function () { this.drawFullscreenQuad(); }), (t.prototype.onSceneBackBufferSizeChanged = function (t, e) {}), (t.prototype.drawFullscreenQuad = function () { this.scene.filters = [this.effect]; }), (t.prototype.unload = function () { this.effect && (this.effect = null), this.scene.removeChild(this.shape), (this.scene = null); }), (t.default_vert = "attribute vec2 aVertexPosition;\nattribute vec2 aTextureCoord;\nattribute vec2 aColor;\nuniform vec2 projectionVector;\nvarying vec2 vTextureCoord;\nvarying vec4 vColor;\nconst vec2 center = vec2(-1.0, 1.0);\nvoid main(void) {\ngl_Position = vec4( (aVertexPosition / projectionVector) + center , 0.0, 1.0);\nvTextureCoord = aTextureCoord;\nvColor = vec4(aColor.x, aColor.x, aColor.x, aColor.x);\n}"), t ); })(), BloomSettings = (function () { function t(t, e, n, i, o, r) { (this.threshold = t), (this.blurAmount = e), (this.intensity = n), (this.baseIntensity = i), (this.saturation = o), (this.baseStaturation = r); } return ( (t.presetSettings = [ new t(0.1, 0.6, 2, 1, 1, 0), new t(0, 3, 1, 1, 1, 1), new t(0.5, 8, 2, 1, 0, 1), new t(0.25, 8, 1.3, 1, 1, 0), new t(0, 2, 1, 0.1, 1, 1), new t(0.5, 2, 1, 1, 1, 1), ]), t ); })(), GaussianBlurPostProcessor = (function (t) { function e() { return (null !== t && t.apply(this, arguments)) || this; } return ( __extends(e, t), (e.prototype.onAddedToScene = function (e) { t.prototype.onAddedToScene.call(this, e), (this.effect = new GaussianBlurEffect()); }), e ); })(PostProcessor), Renderer = (function () { function t() {} return ( (t.prototype.onAddedToScene = function (t) {}), (t.prototype.beginRender = function (t) {}), (t.prototype.unload = function () {}), (t.prototype.renderAfterStateCheck = function (t, e) { t.render(e); }), t ); })(), DefaultRenderer = (function (t) { function e() { return (null !== t && t.apply(this, arguments)) || this; } return ( __extends(e, t), (e.prototype.render = function (t) { var e = this.camera ? this.camera : t.camera; this.beginRender(e); for (var n = 0; n < t.renderableComponents.count; n++) { var i = t.renderableComponents.buffer[n]; i.enabled && i.isVisibleFromCamera(e) && this.renderAfterStateCheck(i, e); } }), e ); })(Renderer), ScreenSpaceRenderer = (function (t) { function e() { return (null !== t && t.apply(this, arguments)) || this; } return __extends(e, t), (e.prototype.render = function (t) {}), e; })(Renderer), PolyLight = (function (t) { function e(e, n, i) { var o = t.call(this) || this; return ( (o._indices = []), (o.radius = e), (o.power = i), (o.color = n), o.computeTriangleIndices(), o ); } return ( __extends(e, t), Object.defineProperty(e.prototype, "radius", { get: function () { return this._radius; }, set: function (t) { this.setRadius(t); }, enumerable: !0, configurable: !0, }), (e.prototype.computeTriangleIndices = function (t) { void 0 === t && (t = 20), (this._indices.length = 0); for (var e = 0; e < t; e += 2) this._indices.push(0), this._indices.push(e + 2), this._indices.push(e + 1); }), (e.prototype.setRadius = function (t) { t != this._radius && ((this._radius = t), (this._areBoundsDirty = !0)); }), (e.prototype.render = function (t) {}), (e.prototype.reset = function () {}), e ); })(RenderableComponent), SceneTransition = (function () { function t(t) { (this.sceneLoadAction = t), (this.loadsNewScene = null != t); } return ( Object.defineProperty(t.prototype, "hasPreviousSceneRender", { get: function () { return ( !!this._hasPreviousSceneRender || ((this._hasPreviousSceneRender = !0), !1) ); }, enumerable: !0, configurable: !0, }), (t.prototype.preRender = function () {}), (t.prototype.render = function () {}), (t.prototype.onBeginTransition = function () { return __awaiter(this, void 0, void 0, function () { return __generator(this, function (t) { switch (t.label) { case 0: return [4, this.loadNextScene()]; case 1: return t.sent(), this.transitionComplete(), [2]; } }); }); }), (t.prototype.transitionComplete = function () { (SceneManager.sceneTransition = null), this.onTransitionCompleted && this.onTransitionCompleted(); }), (t.prototype.loadNextScene = function () { return __awaiter(this, void 0, void 0, function () { var t; return __generator(this, function (e) { switch (e.label) { case 0: return ( this.onScreenObscured && this.onScreenObscured(), this.loadsNewScene || (this.isNewSceneLoaded = !0), (t = SceneManager), [4, this.sceneLoadAction()] ); case 1: return (t.scene = e.sent()), (this.isNewSceneLoaded = !0), [2]; } }); }); }), (t.prototype.tickEffectProgressProperty = function (t, e, n, i) { return ( void 0 === i && (i = !1), new Promise(function (o) { var r = i ? 1 : 0, s = i ? 0 : 1; egret.Tween.get(t.uniforms) .set({ _progress: r }) .to({ _progress: s }, 1e3 * e, n) .call(function () { o(); }); }) ); }), t ); })(), FadeTransition = (function (t) { function e(e) { var n = t.call(this, e) || this; return ( (n.fadeToColor = 0), (n.fadeOutDuration = 0.4), (n.fadeEaseType = egret.Ease.quadInOut), (n.delayBeforeFadeInDuration = 0.1), (n._alpha = 0), (n._mask = new egret.Shape()), n ); } return ( __extends(e, t), (e.prototype.onBeginTransition = function () { return __awaiter(this, void 0, void 0, function () { var t = this; return __generator(this, function (e) { return ( this._mask.graphics.beginFill(this.fadeToColor, 1), this._mask.graphics.drawRect( 0, 0, SceneManager.stage.stageWidth, SceneManager.stage.stageHeight ), this._mask.graphics.endFill(), SceneManager.stage.addChild(this._mask), egret.Tween.get(this) .to( { _alpha: 1 }, 1e3 * this.fadeOutDuration, this.fadeEaseType ) .call(function () { return __awaiter(t, void 0, void 0, function () { return __generator(this, function (t) { switch (t.label) { case 0: return [4, this.loadNextScene()]; case 1: return t.sent(), [2]; } }); }); }) .wait(this.delayBeforeFadeInDuration) .call(function () { egret.Tween.get(t) .to({ _alpha: 0 }, 1e3 * t.fadeOutDuration, t.fadeEaseType) .call(function () { t.transitionComplete(), SceneManager.stage.removeChild(t._mask); }); }), [2] ); }); }); }), (e.prototype.render = function () { this._mask.graphics.clear(), this._mask.graphics.beginFill(this.fadeToColor, this._alpha), this._mask.graphics.drawRect( 0, 0, SceneManager.stage.stageWidth, SceneManager.stage.stageHeight ), this._mask.graphics.endFill(); }), e ); })(SceneTransition), WindTransition = (function (t) { function e(e) { var n = t.call(this, e) || this; (n.duration = 1), (n.easeType = egret.Ease.quadOut); return ( (n._windEffect = new egret.CustomFilter( "attribute vec2 aVertexPosition;\nattribute vec2 aTextureCoord;\nuniform vec2 projectionVector;\nvarying vec2 vTextureCoord;\nconst vec2 center = vec2(-1.0, 1.0);\nvoid main(void) {\n gl_Position = vec4( (aVertexPosition / projectionVector) + center , 0.0, 1.0);\n vTextureCoord = aTextureCoord;\n}", "precision lowp float;\nvarying vec2 vTextureCoord;\nuniform sampler2D uSampler;\nuniform float _progress;\nuniform float _size;\nuniform float _windSegments;\nvoid main(void) {\nvec2 co = floor(vec2(0.0, vTextureCoord.y * _windSegments));\nfloat x = sin(dot(co.xy, vec2(12.9898, 78.233))) * 43758.5453;\nfloat r = x - floor(x);\nfloat m = smoothstep(0.0, -_size, vTextureCoord.x * (1.0 - _size) + _size * r - (_progress * (1.0 + _size)));\nvec4 fg = texture2D(uSampler, vTextureCoord);\ngl_FragColor = mix(fg, vec4(0, 0, 0, 0), m);\n}", { _progress: 0, _size: 0.3, _windSegments: 100 } )), (n._mask = new egret.Shape()), n._mask.graphics.beginFill(16777215, 1), n._mask.graphics.drawRect( 0, 0, SceneManager.stage.stageWidth, SceneManager.stage.stageHeight ), n._mask.graphics.endFill(), (n._mask.filters = [n._windEffect]), SceneManager.stage.addChild(n._mask), n ); } return ( __extends(e, t), Object.defineProperty(e.prototype, "windSegments", { set: function (t) { this._windEffect.uniforms._windSegments = t; }, enumerable: !0, configurable: !0, }), Object.defineProperty(e.prototype, "size", { set: function (t) { this._windEffect.uniforms._size = t; }, enumerable: !0, configurable: !0, }), (e.prototype.onBeginTransition = function () { return __awaiter(this, void 0, void 0, function () { return __generator(this, function (t) { switch (t.label) { case 0: return ( this.loadNextScene(), [ 4, this.tickEffectProgressProperty( this._windEffect, this.duration, this.easeType ), ] ); case 1: return ( t.sent(), this.transitionComplete(), SceneManager.stage.removeChild(this._mask), [2] ); } }); }); }), e ); })(SceneTransition), BaseView = (function (t) { function e() { return (null !== t && t.apply(this, arguments)) || this; } return ( __extends(e, t), (e.prototype.init = function () {}), (e.prototype.show = function (t) {}), (e.prototype.refreshData = function (t) { this._data = t; }), (e.prototype.refreshView = function () {}), (e.prototype.close = function () {}), (e.prototype.destroy = function () { for ( this.parent && this.parent.removeChild(this); this.numChildren > 0; ) this.removeChildAt(0); }), e ); })(egret.DisplayObjectContainer), BaseFuiView = (function (t) { function e(e) { var n = t.call(this) || this; return (n.name = e), n; } return __extends(e, t), e; })(BaseView), BaseSingle = (function () { function t() {} return ( (t.getInstance = function () { return ( null == this._instance && (this._instance = new this()), this._instance ); }), (t.prototype.clearFuiObj = function (t) { return ( !!t && (egret.Tween.removeTweens(t.displayObject), t.displayObject && t.displayObject.parent && t.displayObject.parent.removeChild(t.displayObject), t.dispose(), (t = null), !0) ); }), t ); })(), ViewManager = (function (t) { function e() { var e = (null !== t && t.apply(this, arguments)) || this; return (e._openDic = []), e; } return ( __extends(e, t), (e.prototype.refreshView = function (t, e) { var n = this.getView(t); n && (n.refreshData(e), n.refreshView()); }), (e.prototype.openView = function (t, e, n) { var i = this.getView(t); if ((i || (i = new t()), this.existView(t))) return i.refreshData(e), void i.refreshView(); this._openDic.push(i); }), (e.prototype.getView = function (t) { return this._openDic.firstOrDefault(function (e) { return e instanceof t; }); }), (e.prototype.existView = function (t) { return ( -1 != this._openDic.findIndex(function (e) { return e instanceof t; }) ); }), e ); })(BaseSingle), Flags = (function () { function t() {} return ( (t.isFlagSet = function (t, e) { return 0 != (t & e); }), (t.isUnshiftedFlagSet = function (t, e) { return 0 != (t & (e = 1 << e)); }), (t.setFlagExclusive = function (t, e) { return 1 << e; }), (t.setFlag = function (t, e) { return t | (1 << e); }), (t.unsetFlag = function (t, e) { return t & ~(e = 1 << e); }), (t.invertFlags = function (t) { return ~t; }), t ); })(), MathHelper = (function () { function t() {} return ( (t.toDegrees = function (t) { return 57.29577951308232 * t; }), (t.toRadians = function (t) { return 0.017453292519943295 * t; }), (t.map = function (t, e, n, i, o) { return i + ((t - e) * (o - i)) / (n - e); }), (t.lerp = function (t, e, n) { return t + (e - t) * n; }), (t.clamp = function (t, e, n) { return t < e ? e : t > n ? n : t; }), (t.pointOnCirlce = function (e, n, i) { var o = t.toRadians(i); return new Vector2(Math.cos(o) * o + e.x, Math.sin(o) * o + e.y); }), (t.isEven = function (t) { return t % 2 == 0; }), (t.Epsilon = 1e-5), (t.Rad2Deg = 57.29578), (t.Deg2Rad = 0.0174532924), t ); })(), Matrix2D = (function () { function t(t, e, n, i, o, r) { (this.m11 = 0), (this.m12 = 0), (this.m21 = 0), (this.m22 = 0), (this.m31 = 0), (this.m32 = 0), (this.m11 = t || 1), (this.m12 = e || 0), (this.m21 = n || 0), (this.m22 = i || 1), (this.m31 = o || 0), (this.m32 = r || 0); } return ( Object.defineProperty(t, "identity", { get: function () { return t._identity; }, enumerable: !0, configurable: !0, }), Object.defineProperty(t.prototype, "translation", { get: function () { return new Vector2(this.m31, this.m32); }, set: function (t) { (this.m31 = t.x), (this.m32 = t.y); }, enumerable: !0, configurable: !0, }), Object.defineProperty(t.prototype, "rotation", { get: function () { return Math.atan2(this.m21, this.m11); }, set: function (t) { var e = Math.cos(t), n = Math.sin(t); (this.m11 = e), (this.m12 = n), (this.m21 = -n), (this.m22 = e); }, enumerable: !0, configurable: !0, }), Object.defineProperty(t.prototype, "rotationDegrees", { get: function () { return MathHelper.toDegrees(this.rotation); }, set: function (t) { this.rotation = MathHelper.toRadians(t); }, enumerable: !0, configurable: !0, }), Object.defineProperty(t.prototype, "scale", { get: function () { return new Vector2(this.m11, this.m22); }, set: function (t) { (this.m11 = t.x), (this.m12 = t.y); }, enumerable: !0, configurable: !0, }), (t.add = function (t, e) { return ( (t.m11 += e.m11), (t.m12 += e.m12), (t.m21 += e.m21), (t.m22 += e.m22), (t.m31 += e.m31), (t.m32 += e.m32), t ); }), (t.divide = function (t, e) { return ( (t.m11 /= e.m11), (t.m12 /= e.m12), (t.m21 /= e.m21), (t.m22 /= e.m22), (t.m31 /= e.m31), (t.m32 /= e.m32), t ); }), (t.multiply = function (e, n) { var i = new t(), o = e.m11 * n.m11 + e.m12 * n.m21, r = e.m11 * n.m12 + e.m12 * n.m22, s = e.m21 * n.m11 + e.m22 * n.m21, a = e.m21 * n.m12 + e.m22 * n.m22, h = e.m31 * n.m11 + e.m32 * n.m21 + n.m31, c = e.m31 * n.m12 + e.m32 * n.m22 + n.m32; return ( (i.m11 = o), (i.m12 = r), (i.m21 = s), (i.m22 = a), (i.m31 = h), (i.m32 = c), i ); }), (t.multiplyTranslation = function (e, n, i) { var o = t.createTranslation(n, i); return t.multiply(e, o); }), (t.prototype.determinant = function () { return this.m11 * this.m22 - this.m12 * this.m21; }), (t.invert = function (e, n) { void 0 === n && (n = new t()); var i = 1 / e.determinant(); return ( (n.m11 = e.m22 * i), (n.m12 = -e.m12 * i), (n.m21 = -e.m21 * i), (n.m22 = e.m11 * i), (n.m31 = (e.m32 * e.m21 - e.m31 * e.m22) * i), (n.m32 = -(e.m32 * e.m11 - e.m31 * e.m12) * i), n ); }), (t.createTranslation = function (e, n, i) { return ( ((i = i || new t()).m11 = 1), (i.m12 = 0), (i.m21 = 0), (i.m22 = 1), (i.m31 = e), (i.m32 = n), i ); }), (t.createRotation = function (e, n) { n = new t(); var i = Math.cos(e), o = Math.sin(e); return (n.m11 = i), (n.m12 = o), (n.m21 = -o), (n.m22 = i), n; }), (t.createScale = function (e, n, i) { return ( void 0 === i && (i = new t()), (i.m11 = e), (i.m12 = 0), (i.m21 = 0), (i.m22 = n), (i.m31 = 0), (i.m32 = 0), i ); }), (t.prototype.toEgretMatrix = function () { return new egret.Matrix( this.m11, this.m12, this.m21, this.m22, this.m31, this.m32 ); }), (t._identity = new t(1, 0, 0, 1, 0, 0)), t ); })(), Rectangle = (function () { function t(t, e, n, i) { (this.x = t || 0), (this.y = e || 0), (this.width = n || 0), (this.height = i || 0); } return ( Object.defineProperty(t.prototype, "left", { get: function () { return this.x; }, enumerable: !0, configurable: !0, }), Object.defineProperty(t.prototype, "right", { get: function () { return this.x + this.width; }, enumerable: !0, configurable: !0, }), Object.defineProperty(t.prototype, "top", { get: function () { return this.y; }, enumerable: !0, configurable: !0, }), Object.defineProperty(t.prototype, "bottom", { get: function () { return this.y + this.height; }, enumerable: !0, configurable: !0, }), Object.defineProperty(t.prototype, "center", { get: function () { return new Vector2(this.x + this.width / 2, this.y + this.height / 2); }, enumerable: !0, configurable: !0, }), Object.defineProperty(t.prototype, "location", { get: function () { return new Vector2(this.x, this.y); }, set: function (t) { (this.x = t.x), (this.y = t.y); }, enumerable: !0, configurable: !0, }), Object.defineProperty(t.prototype, "size", { get: function () { return new Vector2(this.width, this.height); }, set: function (t) { (this.width = t.x), (this.height = t.y); }, enumerable: !0, configurable: !0, }), (t.prototype.intersects = function (t) { return ( t.left < this.right && this.left < t.right && t.top < this.bottom && this.top < t.bottom ); }), (t.prototype.contains = function (t) { return ( this.x <= t.x && t.x < this.x + this.width && this.y <= t.y && t.y < this.y + this.height ); }), (t.prototype.containsRect = function (t) { return ( this.x <= t.x && t.x < this.x + this.width && this.y <= t.y && t.y < this.y + this.height ); }), (t.prototype.getHalfSize = function () { return new Vector2(0.5 * this.width, 0.5 * this.height); }), (t.fromMinMax = function (e, n, i, o) { return new t(e, n, i - e, o - n); }), (t.prototype.getClosestPointOnRectangleBorderToPoint = function (t) { var e = new Vector2(0, 0), n = new Vector2(0, 0); if ( ((n.x = MathHelper.clamp(t.x, this.left, this.right)), (n.y = MathHelper.clamp(t.y, this.top, this.bottom)), this.contains(n)) ) { var i = n.x - this.left, o = this.right - n.x, r = n.y - this.top, s = this.bottom - n.y, a = Math.min(i, o, r, s); a == r ? ((n.y = this.top), (e.y = -1)) : a == s ? ((n.y = this.bottom), (e.y = 1)) : a == i ? ((n.x = this.left), (e.x = -1)) : ((n.x = this.right), (e.x = 1)); } else n.x == this.left && (e.x = -1), n.x == this.right && (e.x = 1), n.y == this.top && (e.y = -1), n.y == this.bottom && (e.y = 1); return { res: n, edgeNormal: e }; }), (t.prototype.calculateBounds = function (t, e, n, i, o, r, s) { if (0 == o) (this.x = t.x + e.x - n.x * i.x), (this.y = t.y + e.y - n.y * i.y), (this.width = r * i.x), (this.height = s * i.y); else { var a = t.x + e.x, h = t.y + e.y; (this._transformMat = Matrix2D.createTranslation(-a - n.x, -h - n.y)), (this._tempMat = Matrix2D.createScale(i.x, i.y)), (this._transformMat = Matrix2D.multiply( this._transformMat, this._tempMat )), (this._tempMat = Matrix2D.createRotation(o)), (this._transformMat = Matrix2D.multiply( this._transformMat, this._tempMat )), (this._tempMat = Matrix2D.createTranslation(a, h)), (this._transformMat = Matrix2D.multiply( this._transformMat, this._tempMat )); var c = new Vector2(a, h), u = new Vector2(a + r, h), l = new Vector2(a, h + s), p = new Vector2(a + r, h + s); (c = Vector2Ext.transformR(c, this._transformMat)), (u = Vector2Ext.transformR(u, this._transformMat)), (l = Vector2Ext.transformR(l, this._transformMat)), (p = Vector2Ext.transformR(p, this._transformMat)); var f = Math.min(c.x, p.x, u.x, l.x), d = Math.max(c.x, p.x, u.x, l.x), y = Math.min(c.y, p.y, u.y, l.y), g = Math.max(c.y, p.y, u.y, l.y); (this.location = new Vector2(f, y)), (this.width = d - f), (this.height = g - y); } }), (t.rectEncompassingPoints = function (t) { for ( var e = Number.POSITIVE_INFINITY, n = Number.POSITIVE_INFINITY, i = Number.NEGATIVE_INFINITY, o = Number.NEGATIVE_INFINITY, r = 0; r < t.length; r++ ) { var s = t[r]; s.x < e && (e = s.x), s.x > i && (i = s.x), s.y < n && (n = s.y), s.y > o && (o = s.y); } return this.fromMinMax(e, n, i, o); }), t ); })(), Vector2 = (function () { function t(t, e) { (this.x = 0), (this.y = 0), (this.x = t || 0), (this.y = e || this.x); } return ( Object.defineProperty(t, "zero", { get: function () { return t.zeroVector2; }, enumerable: !0, configurable: !0, }), Object.defineProperty(t, "one", { get: function () { return t.unitVector2; }, enumerable: !0, configurable: !0, }), Object.defineProperty(t, "unitX", { get: function () { return t.unitXVector; }, enumerable: !0, configurable: !0, }), Object.defineProperty(t, "unitY", { get: function () { return t.unitYVector; }, enumerable: !0, configurable: !0, }), (t.add = function (e, n) { var i = new t(0, 0); return (i.x = e.x + n.x), (i.y = e.y + n.y), i; }), (t.divide = function (e, n) { var i = new t(0, 0); return (i.x = e.x / n.x), (i.y = e.y / n.y), i; }), (t.multiply = function (e, n) { var i = new t(0, 0); return (i.x = e.x * n.x), (i.y = e.y * n.y), i; }), (t.subtract = function (e, n) { var i = new t(0, 0); return (i.x = e.x - n.x), (i.y = e.y - n.y), i; }), (t.prototype.normalize = function () { var t = 1 / Math.sqrt(this.x * this.x + this.y * this.y); (this.x *= t), (this.y *= t); }), (t.prototype.length = function () { return Math.sqrt(this.x * this.x + this.y * this.y); }), (t.prototype.round = function () { return new t(Math.round(this.x), Math.round(this.y)); }), (t.normalize = function (t) { var e = 1 / Math.sqrt(t.x * t.x + t.y * t.y); return (t.x *= e), (t.y *= e), t; }), (t.dot = function (t, e) { return t.x * e.x + t.y * e.y; }), (t.distanceSquared = function (t, e) { var n = t.x - e.x, i = t.y - e.y; return n * n + i * i; }), (t.clamp = function (e, n, i) { return new t( MathHelper.clamp(e.x, n.x, i.x), MathHelper.clamp(e.y, n.y, i.y) ); }), (t.lerp = function (e, n, i) { return new t( MathHelper.lerp(e.x, n.x, i), MathHelper.lerp(e.y, n.y, i) ); }), (t.transform = function (e, n) { return new t(e.x * n.m11 + e.y * n.m21, e.x * n.m12 + e.y * n.m22); }), (t.distance = function (t, e) { var n = t.x - e.x, i = t.y - e.y; return Math.sqrt(n * n + i * i); }), (t.negate = function (e) { var n = new t(); return (n.x = -e.x), (n.y = -e.y), n; }), (t.unitYVector = new t(0, 1)), (t.unitXVector = new t(1, 0)), (t.unitVector2 = new t(1, 1)), (t.zeroVector2 = new t(0, 0)), t ); })(), Vector3 = (function () { return function (t, e, n) { (this.x = t), (this.y = e), (this.z = n); }; })(), ColliderTriggerHelper = (function () { function t(t) { (this._activeTriggerIntersections = []), (this._previousTriggerIntersections = []), (this._tempTriggerList = []), (this._entity = t); } return ( (t.prototype.update = function () { for ( var t = this._entity.getComponents(Collider), e = 0; e < t.length; e++ ) for ( var n = t[e], i = Physics.boxcastBroadphase(n.bounds, n.collidesWithLayers), o = function (t) { var e = i[t]; if (!n.isTrigger && !e.isTrigger) return "continue"; if (n.overlaps(e)) { var o = new Pair(n, e); -1 == r._activeTriggerIntersections.findIndex(function (t) { return t.first == o.first && t.second == o.second; }) && -1 == r._previousTriggerIntersections.findIndex(function (t) { return t.first == o.first && t.second == o.second; }) && r.notifyTriggerListeners(o, !0), r._activeTriggerIntersections.contains(o) || r._activeTriggerIntersections.push(o); } }, r = this, s = 0; s < i.length; s++ ) o(s); ListPool.free(t), this.checkForExitedColliders(); }), (t.prototype.checkForExitedColliders = function () { for ( var t = this, e = function (e) { var i = n._previousTriggerIntersections.findIndex(function (n) { return ( n.first == t._activeTriggerIntersections[e].first && n.second == t._activeTriggerIntersections[e].second ); }); -1 != i && n._previousTriggerIntersections.removeAt(i); }, n = this, i = 0; i < this._activeTriggerIntersections.length; i++ ) e(i); for (i = 0; i < this._previousTriggerIntersections.length; i++) this.notifyTriggerListeners( this._previousTriggerIntersections[i], !1 ); this._previousTriggerIntersections.length = 0; for (i = 0; i < this._activeTriggerIntersections.length; i++) this._previousTriggerIntersections.contains( this._activeTriggerIntersections[i] ) || this._previousTriggerIntersections.push( this._activeTriggerIntersections[i] ); this._activeTriggerIntersections.length = 0; }), (t.prototype.notifyTriggerListeners = function (t, e) { t.first.entity.getComponents("ITriggerListener", this._tempTriggerList); for (var n = 0; n < this._tempTriggerList.length; n++) if ( (e ? this._tempTriggerList[n].onTriggerEnter(t.second, t.first) : this._tempTriggerList[n].onTriggerExit(t.second, t.first), (this._tempTriggerList.length = 0), t.second.entity) ) { t.second.entity.getComponents( "ITriggerListener", this._tempTriggerList ); for (var i = 0; i < this._tempTriggerList.length; i++) e ? this._tempTriggerList[i].onTriggerEnter(t.first, t.second) : this._tempTriggerList[i].onTriggerExit(t.first, t.second); this._tempTriggerList.length = 0; } }), t ); })(); !(function (t) { (t[(t.center = 0)] = "center"), (t[(t.top = 1)] = "top"), (t[(t.bottom = 2)] = "bottom"), (t[(t.topLeft = 9)] = "topLeft"), (t[(t.topRight = 5)] = "topRight"), (t[(t.left = 8)] = "left"), (t[(t.right = 4)] = "right"), (t[(t.bottomLeft = 10)] = "bottomLeft"), (t[(t.bottomRight = 6)] = "bottomRight"); })(PointSectors || (PointSectors = {})); var Collisions = (function () { function t() {} return ( (t.isLineToLine = function (t, e, n, i) { var o = Vector2.subtract(e, t), r = Vector2.subtract(i, n), s = o.x * r.y - o.y * r.x; if (0 == s) return !1; var a = Vector2.subtract(n, t), h = (a.x * r.y - a.y * r.x) / s; if (h < 0 || h > 1) return !1; var c = (a.x * o.y - a.y * o.x) / s; return !(c < 0 || c > 1); }), (t.lineToLineIntersection = function (t, e, n, i) { var o = new Vector2(0, 0), r = Vector2.subtract(e, t), s = Vector2.subtract(i, n), a = r.x * s.y - r.y * s.x; if (0 == a) return o; var h = Vector2.subtract(n, t), c = (h.x * s.y - h.y * s.x) / a; if (c < 0 || c > 1) return o; var u = (h.x * r.y - h.y * r.x) / a; return u < 0 || u > 1 ? o : (o = Vector2.add(t, new Vector2(c * r.x, c * r.y))); }), (t.closestPointOnLine = function (t, e, n) { var i = Vector2.subtract(e, t), o = Vector2.subtract(n, t), r = Vector2.dot(o, i) / Vector2.dot(i, i); return ( (r = MathHelper.clamp(r, 0, 1)), Vector2.add(t, new Vector2(i.x * r, i.y * r)) ); }), (t.isCircleToCircle = function (t, e, n, i) { return Vector2.distanceSquared(t, n) < (e + i) * (e + i); }), (t.isCircleToLine = function (t, e, n, i) { return ( Vector2.distanceSquared(t, this.closestPointOnLine(n, i, t)) < e * e ); }), (t.isCircleToPoint = function (t, e, n) { return Vector2.distanceSquared(t, n) < e * e; }), (t.isRectToCircle = function (t, e, n) { var i = 0.5 * t.width, o = 0.5 * t.height, r = Math.max(0, Math.max(e.x - t.x) - i), s = Math.max(0, Math.max(e.y - t.y) - o); return r * r + s * s < n * n; }), (t.isRectToLine = function (t, e, n) { var i = this.getSector(t.x, t.y, t.width, t.height, e), o = this.getSector(t.x, t.y, t.width, t.height, n); if (i == PointSectors.center || o == PointSectors.center) return !0; if (0 != (i & o)) return !1; var r = i | o, s = void 0, a = void 0; return ( !( 0 == (r & PointSectors.top) || ((s = new Vector2(t.x, t.y)), (a = new Vector2(t.x + t.width, t.y)), !this.isLineToLine(s, a, e, n)) ) || !( 0 == (r & PointSectors.bottom) || ((s = new Vector2(t.x, t.y + t.height)), (a = new Vector2(t.x + t.width, t.y + t.height)), !this.isLineToLine(s, a, e, n)) ) || !( 0 == (r & PointSectors.left) || ((s = new Vector2(t.x, t.y)), (a = new Vector2(t.x, t.y + t.height)), !this.isLineToLine(s, a, e, n)) ) || !( 0 == (r & PointSectors.right) || ((s = new Vector2(t.x + t.width, t.y)), (a = new Vector2(t.x + t.width, t.y + t.height)), !this.isLineToLine(s, a, e, n)) ) ); }), (t.isRectToPoint = function (t, e, n, i, o) { return o.x >= t && o.y >= e && o.x < t + n && o.y < e + i; }), (t.getSector = function (t, e, n, i, o) { var r = PointSectors.center; return ( o.x < t ? (r |= PointSectors.left) : o.x >= t + n && (r |= PointSectors.right), o.y < e ? (r |= PointSectors.top) : o.y >= e + i && (r |= PointSectors.bottom), r ); }), t ); })(), Physics = (function () { function t() {} return ( (t.reset = function () { this._spatialHash = new SpatialHash(this.spatialHashCellSize); }), (t.clear = function () { this._spatialHash.clear(); }), (t.overlapCircleAll = function (t, e, n, i) { return ( void 0 === i && (i = -1), this._spatialHash.overlapCircle(t, e, n, i) ); }), (t.boxcastBroadphase = function (t, e) { return ( void 0 === e && (e = this.allLayers), this._spatialHash.aabbBroadphase(t, null, e) ); }), (t.boxcastBroadphaseExcludingSelf = function (t, e, n) { return ( void 0 === n && (n = this.allLayers), this._spatialHash.aabbBroadphase(e, t, n) ); }), (t.addCollider = function (e) { t._spatialHash.register(e); }), (t.removeCollider = function (e) { t._spatialHash.remove(e); }), (t.updateCollider = function (t) { this._spatialHash.remove(t), this._spatialHash.register(t); }), (t.spatialHashCellSize = 100), (t.allLayers = -1), t ); })(), Shape = (function () { return function () {}; })(), Polygon = (function (t) { function e(e, n) { var i = t.call(this) || this; return ( (i.isUnrotated = !0), (i._areEdgeNormalsDirty = !0), i.setPoints(e), (i.isBox = n), i ); } return ( __extends(e, t), Object.defineProperty(e.prototype, "edgeNormals", { get: function () { return ( this._areEdgeNormalsDirty && this.buildEdgeNormals(), this._edgeNormals ); }, enumerable: !0, configurable: !0, }), (e.prototype.buildEdgeNormals = function () { var t, e = this.isBox ? 2 : this.points.length; (null != this._edgeNormals && this._edgeNormals.length == e) || (this._edgeNormals = new Array(e)); for (var n = 0; n < e; n++) { var i = this.points[n]; t = n + 1 >= this.points.length ? this.points[0] : this.points[n + 1]; var o = Vector2Ext.perpendicular(i, t); (o = Vector2.normalize(o)), (this._edgeNormals[n] = o); } }), (e.prototype.setPoints = function (t) { (this.points = t), this.recalculateCenterAndEdgeNormals(), (this._originalPoints = []); for (var e = 0; e < this.points.length; e++) this._originalPoints.push(this.points[e]); }), (e.prototype.collidesWithShape = function (t) { var n = new CollisionResult(); if (t instanceof e) return ShapeCollisions.polygonToPolygon(this, t); if (t instanceof Circle) return (n = ShapeCollisions.circleToPolygon(t, this)) ? (n.invertResult(), n) : null; throw new Error("overlaps of Polygon to " + t + " are not supported"); }), (e.prototype.recalculateCenterAndEdgeNormals = function () { (this._polygonCenter = e.findPolygonCenter(this.points)), (this._areEdgeNormalsDirty = !0); }), (e.prototype.overlaps = function (t) { var n; if (t instanceof e) return ShapeCollisions.polygonToPolygon(this, t); if (t instanceof Circle) return ( !!(n = ShapeCollisions.circleToPolygon(t, this)) && (n.invertResult(), !0) ); throw new Error("overlaps of Pologon to " + t + " are not supported"); }), (e.findPolygonCenter = function (t) { for (var e = 0, n = 0, i = 0; i < t.length; i++) (e += t[i].x), (n += t[i].y); return new Vector2(e / t.length, n / t.length); }), (e.getClosestPointOnPolygonToPoint = function (t, e) { for ( var n, i = Number.MAX_VALUE, o = new Vector2(0, 0), r = new Vector2(0, 0), s = 0; s < t.length; s++ ) { var a = s + 1; a == t.length && (a = 0); var h = ShapeCollisions.closestPointOnLine(t[s], t[a], e); if ((n = Vector2.distanceSquared(e, h)) < i) { (i = n), (r = h); var c = Vector2.subtract(t[a], t[s]); (o.x = -c.y), (o.y = c.x); } } return { closestPoint: r, distanceSquared: i, edgeNormal: (o = Vector2.normalize(o)), }; }), (e.prototype.pointCollidesWithShape = function (t) { return ShapeCollisions.pointToPoly(t, this); }), (e.prototype.containsPoint = function (t) { t = Vector2.subtract(t, this.position); for ( var e = !1, n = 0, i = this.points.length - 1; n < this.points.length; i = n++ ) this.points[n].y > t.y != this.points[i].y > t.y && t.x < ((this.points[i].x - this.points[n].x) * (t.y - this.points[n].y)) / (this.points[i].y - this.points[n].y) + this.points[n].x && (e = !e); return e; }), (e.buildSymmertricalPolygon = function (t, e) { for (var n = new Array(t), i = 0; i < t; i++) { var o = 2 * Math.PI * (i / t); n[i] = new Vector2(Math.cos(o), Math.sin(o) * e); } return n; }), (e.prototype.recalculateBounds = function (t) { if ( ((this.center = t.localOffset), t.shouldColliderScaleAndRotationWithTransform) ) { var e = !0, n = void 0, i = Matrix2D.createTranslation( -this._polygonCenter.x, -this._polygonCenter.y ); if (t.entity.scale != Vector2.one) { (n = Matrix2D.createScale(t.entity.scale.x, t.entity.scale.y)), (i = Matrix2D.multiply(i, n)), (e = !1); var o = Vector2.multiply(t.localOffset, t.entity.scale); this.center = o; } if (0 != t.entity.rotation) { (n = Matrix2D.createRotation(t.entity.rotation)), (i = Matrix2D.multiply(i, n)); var r = Math.atan2(t.localOffset.y, t.localOffset.x) * MathHelper.Rad2Deg, s = e ? t._localOffsetLength : Vector2.multiply(t.localOffset, t.entity.scale).length(); this.center = MathHelper.pointOnCirlce( Vector2.zero, s, MathHelper.toDegrees(t.entity.rotation) + r ); } (n = Matrix2D.createTranslation( this._polygonCenter.x, this._polygonCenter.y )), (i = Matrix2D.multiply(i, n)), Vector2Ext.transform(this._originalPoints, i, this.points), (this.isUnrotated = 0 == t.entity.rotation), t._isRotationDirty && (this._areEdgeNormalsDirty = !0); } (this.position = Vector2.add(t.entity.position, this.center)), (this.bounds = Rectangle.rectEncompassingPoints(this.points)), (this.bounds.location = Vector2.add( this.bounds.location, this.position )); }), e ); })(Shape), Box = (function (t) { function e(n, i) { var o = t.call(this, e.buildBox(n, i), !0) || this; return (o.width = n), (o.height = i), o; } return ( __extends(e, t), (e.buildBox = function (t, e) { var n = t / 2, i = e / 2, o = new Array(4); return ( (o[0] = new Vector2(-n, -i)), (o[1] = new Vector2(n, -i)), (o[2] = new Vector2(n, i)), (o[3] = new Vector2(-n, i)), o ); }), (e.prototype.updateBox = function (t, e) { (this.width = t), (this.height = e); var n = t / 2, i = e / 2; (this.points[0] = new Vector2(-n, -i)), (this.points[1] = new Vector2(n, -i)), (this.points[2] = new Vector2(n, i)), (this.points[3] = new Vector2(-n, i)); for (var o = 0; o < this.points.length; o++) this._originalPoints[o] = this.points[o]; }), (e.prototype.containsPoint = function (e) { return this.isUnrotated ? this.bounds.contains(e) : t.prototype.containsPoint.call(this, e); }), e ); })(Polygon), Circle = (function (t) { function e(e) { var n = t.call(this) || this; return (n.radius = e), (n._originalRadius = e), n; } return ( __extends(e, t), (e.prototype.pointCollidesWithShape = function (t) { return ShapeCollisions.pointToCircle(t, this); }), (e.prototype.collidesWithShape = function (t) { if (t instanceof Box && t.isUnrotated) return ShapeCollisions.circleToBox(this, t); if (t instanceof e) return ShapeCollisions.circleToCircle(this, t); if (t instanceof Polygon) return ShapeCollisions.circleToPolygon(this, t); throw new Error("Collisions of Circle to " + t + " are not supported"); }), (e.prototype.recalculateBounds = function (t) { if ( ((this.center = t.localOffset), t.shouldColliderScaleAndRotationWithTransform) ) { var e = t.entity.scale, n = 1 == e.x && 1 == e.y, i = Math.max(e.x, e.y); if ( ((this.radius = this._originalRadius * i), 0 != t.entity.rotation) ) { var o = Math.atan2(t.localOffset.y, t.localOffset.x) * MathHelper.Rad2Deg, r = n ? t._localOffsetLength : Vector2.multiply(t.localOffset, t.entity.scale).length(); this.center = MathHelper.pointOnCirlce( Vector2.zero, r, MathHelper.toDegrees(t.entity.rotation) + o ); } } (this.position = Vector2.add(t.entity.position, this.center)), (this.bounds = new Rectangle( this.position.x - this.radius, this.position.y - this.radius, 2 * this.radius, 2 * this.radius )); }), (e.prototype.overlaps = function (t) { if (t instanceof Box && t.isUnrotated) return Collisions.isRectToCircle( t.bounds, this.position, this.radius ); if (t instanceof e) return Collisions.isCircleToCircle( this.position, this.radius, t.position, t.radius ); if (t instanceof Polygon) return ShapeCollisions.circleToPolygon(this, t); throw new Error("overlaps of circle to " + t + " are not supported"); }), e ); })(Shape), CollisionResult = (function () { function t() {} return ( (t.prototype.invertResult = function () { (this.minimumTranslationVector = Vector2.negate( this.minimumTranslationVector )), (this.normal = Vector2.negate(this.normal)); }), t ); })(), ShapeCollisions = (function () { function t() {} return ( (t.polygonToPolygon = function (t, e) { for ( var n, i = new CollisionResult(), o = !0, r = t.edgeNormals, s = e.edgeNormals, a = Number.POSITIVE_INFINITY, h = new Vector2(), c = Vector2.subtract(t.position, e.position), u = 0; u < r.length + s.length; u++ ) { n = u < r.length ? r[u] : s[u - r.length]; var l = 0, p = 0, f = 0, d = 0, y = 0, g = this.getInterval(n, t, l, f); (l = g.min), (p = g.max); var m = this.getInterval(n, e, p, d); (p = m.min), (d = m.max); var _ = Vector2.dot(c, n); if ( ((l += _), (f += _), (y = this.intervalDistance(l, f, p, d)) > 0 && (o = !1), !o) ) return null; (y = Math.abs(y)) < a && ((a = y), (h = n), Vector2.dot(h, c) < 0 && (h = new Vector2(-h))); } return ( (i.normal = h), (i.minimumTranslationVector = Vector2.multiply( new Vector2(-h), new Vector2(a) )), i ); }), (t.intervalDistance = function (t, e, n, i) { return t < n ? n - e : t - n; }), (t.getInterval = function (t, e, n, i) { var o = Vector2.dot(e.points[0], t); n = i = o; for (var r = 1; r < e.points.length; r++) (o = Vector2.dot(e.points[r], t)) < n ? (n = o) : o > i && (i = o); return { min: n, max: i }; }), (t.circleToPolygon = function (t, e) { var n = new CollisionResult(), i = Vector2.subtract(t.position, e.position), o = Polygon.getClosestPointOnPolygonToPoint(e.points, i), r = o.closestPoint, s = o.distanceSquared; n.normal = o.edgeNormal; var a, h = e.containsPoint(t.position); if (s > t.radius * t.radius && !h) return null; if (h) a = Vector2.multiply(n.normal, new Vector2(Math.sqrt(s) - t.radius)); else if (0 == s) a = Vector2.multiply(n.normal, new Vector2(t.radius)); else { var c = Math.sqrt(s); a = Vector2.multiply( new Vector2(-Vector2.subtract(i, r)), new Vector2((t.radius - s) / c) ); } return ( (n.minimumTranslationVector = a), (n.point = Vector2.add(r, e.position)), n ); }), (t.circleToBox = function (t, e) { var n = new CollisionResult(), i = e.bounds.getClosestPointOnRectangleBorderToPoint(t.position).res; if (e.containsPoint(t.position)) { n.point = i; var o = Vector2.add( i, Vector2.subtract(n.normal, new Vector2(t.radius)) ); return ( (n.minimumTranslationVector = Vector2.subtract(t.position, o)), n ); } var r = Vector2.distanceSquared(i, t.position); if (0 == r) n.minimumTranslationVector = Vector2.multiply( n.normal, new Vector2(t.radius) ); else if (r <= t.radius * t.radius) { n.normal = Vector2.subtract(t.position, i); var s = n.normal.length() - t.radius; return ( (n.normal = Vector2Ext.normalize(n.normal)), (n.minimumTranslationVector = Vector2.multiply( new Vector2(s), n.normal )), n ); } return null; }), (t.pointToCircle = function (t, e) { var n = new CollisionResult(), i = Vector2.distanceSquared(t, e.position), o = 1 + e.radius; if (i < o * o) { n.normal = Vector2.normalize(Vector2.subtract(t, e.position)); var r = o - Math.sqrt(i); return ( (n.minimumTranslationVector = Vector2.multiply( new Vector2(-r, -r), n.normal )), (n.point = Vector2.add( e.position, Vector2.multiply(n.normal, new Vector2(e.radius, e.radius)) )), n ); } return null; }), (t.closestPointOnLine = function (t, e, n) { var i = Vector2.subtract(e, t), o = Vector2.subtract(n, t), r = Vector2.dot(o, i) / Vector2.dot(i, i); return ( (r = MathHelper.clamp(r, 0, 1)), Vector2.add(t, Vector2.multiply(i, new Vector2(r, r))) ); }), (t.pointToPoly = function (t, e) { var n = new CollisionResult(); if (e.containsPoint(t)) { var i, o = Polygon.getClosestPointOnPolygonToPoint( e.points, Vector2.subtract(t, e.position) ), r = o.closestPoint; return ( (i = o.distanceSquared), (n.normal = o.edgeNormal), (n.minimumTranslationVector = Vector2.multiply( n.normal, new Vector2(Math.sqrt(i), Math.sqrt(i)) )), (n.point = Vector2.add(r, e.position)), n ); } return null; }), (t.circleToCircle = function (t, e) { var n = new CollisionResult(), i = Vector2.distanceSquared(t.position, e.position), o = t.radius + e.radius; if (i < o * o) { n.normal = Vector2.normalize( Vector2.subtract(t.position, e.position) ); var r = o - Math.sqrt(i); return ( (n.minimumTranslationVector = Vector2.multiply( new Vector2(-r), n.normal )), (n.point = Vector2.add( e.position, Vector2.multiply(n.normal, new Vector2(e.radius)) )), n ); } return null; }), t ); })(), SpatialHash = (function () { function t(t) { void 0 === t && (t = 100), (this.gridBounds = new Rectangle()), (this._tempHashSet = []), (this._cellDict = new NumberDictionary()), (this._cellSize = t), (this._inverseCellSize = 1 / this._cellSize), (this._raycastParser = new RaycastResultParser()); } return ( (t.prototype.remove = function (t) { for ( var e = t.registeredPhysicsBounds, n = this.cellCoords(e.x, e.y), i = this.cellCoords(e.right, e.bottom), o = n.x; o <= i.x; o++ ) for (var r = n.y; r <= i.y; r++) { var s = this.cellAtPosition(o, r); s ? s.remove(t) : console.error( "removing Collider [" + t + "] from a cell that it is not present in" ); } }), (t.prototype.register = function (t) { var e = t.bounds; t.registeredPhysicsBounds = e; var n = this.cellCoords(e.x, e.y), i = this.cellCoords(e.right, e.bottom); this.gridBounds.contains(new Vector2(n.x, n.y)) || (this.gridBounds = RectangleExt.union(this.gridBounds, n)), this.gridBounds.contains(new Vector2(i.x, i.y)) || (this.gridBounds = RectangleExt.union(this.gridBounds, i)); for (var o = n.x; o <= i.x; o++) for (var r = n.y; r <= i.y; r++) { this.cellAtPosition(o, r, !0).push(t); } }), (t.prototype.clear = function () { this._cellDict.clear(); }), (t.prototype.overlapCircle = function (t, e, n, i) { var o = new Rectangle(t.x - e, t.y - e, 2 * e, 2 * e); (this._overlapTestCircle.radius = e), (this._overlapTestCircle.position = t); for ( var r = 0, s = this.aabbBroadphase(o, null, i), a = 0; a < s.length; a++ ) { var h = s[a]; if (!(h instanceof BoxCollider)) throw new Error( "overlapCircle against this collider type is not implemented!" ); if (((n[r] = h), ++r == n.length)) return r; } return r; }), (t.prototype.aabbBroadphase = function (t, e, n) { this._tempHashSet.length = 0; for ( var i = this.cellCoords(t.x, t.y), o = this.cellCoords(t.right, t.bottom), r = i.x; r <= o.x; r++ ) for (var s = i.y; s <= o.y; s++) { var a = this.cellAtPosition(r, s); if (a) for (var h = 0; h < a.length; h++) { var c = a[h]; c != e && Flags.isFlagSet(n, c.physicsLayer) && t.intersects(c.bounds) && -1 == this._tempHashSet.indexOf(c) && this._tempHashSet.push(c); } } return this._tempHashSet; }), (t.prototype.cellAtPosition = function (t, e, n) { void 0 === n && (n = !1); var i = this._cellDict.tryGetValue(t, e); return i || (n && ((i = []), this._cellDict.add(t, e, i))), i; }), (t.prototype.cellCoords = function (t, e) { return new Point( Math.floor(t * this._inverseCellSize), Math.floor(e * this._inverseCellSize) ); }), t ); })(), RaycastResultParser = (function () { return function () {}; })(), NumberDictionary = (function () { function t() { this._store = new Map(); } return ( (t.prototype.getKey = function (t, e) { return Long.fromNumber(t) .shiftLeft(32) .or(this.intToUint(e)) .toString(); }), (t.prototype.intToUint = function (t) { return t >= 0 ? t : 4294967296 + t; }), (t.prototype.add = function (t, e, n) { this._store.set(this.getKey(t, e), n); }), (t.prototype.remove = function (t) { this._store.forEach(function (e) { e.contains(t) && e.remove(t); }); }), (t.prototype.tryGetValue = function (t, e) { return this._store.get(this.getKey(t, e)); }), (t.prototype.clear = function () { this._store.clear(); }), t ); })(), ContentManager = (function () { function t() { this.loadedAssets = new Map(); } return ( (t.prototype.loadRes = function (t, e) { var n = this; return ( void 0 === e && (e = !0), new Promise(function (i, o) { var r = n.loadedAssets.get(t); r ? i(r) : e ? RES.getResAsync(t) .then(function (e) { n.loadedAssets.set(t, e), i(e); }) .catch(function (e) { console.error("资源加载错误:", t, e), o(e); }) : RES.getResByUrl(t) .then(function (e) { n.loadedAssets.set(t, e), i(e); }) .catch(function (e) { console.error("资源加载错误:", t, e), o(e); }); }) ); }), (t.prototype.dispose = function () { this.loadedAssets.forEach(function (t) { t.dispose(); }), this.loadedAssets.clear(); }), t ); })(), Emitter = (function () { function t() { this._messageTable = new Map(); } return ( (t.prototype.addObserver = function (t, e) { var n = this._messageTable.get(t); n || ((n = []), this._messageTable.set(t, n)), n.contains(e) && console.warn("您试图添加相同的观察者两次"), n.push(e); }), (t.prototype.removeObserver = function (t, e) { this._messageTable.get(t).remove(e); }), (t.prototype.emit = function (t, e) { var n = this._messageTable.get(t); if (n) for (var i = n.length - 1; i >= 0; i--) n[i](e); }), t ); })(), GlobalManager = (function () { function t() {} return ( Object.defineProperty(t.prototype, "enabled", { get: function () { return this._enabled; }, set: function (t) { this.setEnabled(t); }, enumerable: !0, configurable: !0, }), (t.prototype.setEnabled = function (t) { this._enabled != t && ((this._enabled = t), this._enabled ? this.onEnabled() : this.onDisabled()); }), (t.prototype.onEnabled = function () {}), (t.prototype.onDisabled = function () {}), (t.prototype.update = function () {}), (t.registerGlobalManager = function (t) { this.globalManagers.push(t), (t.enabled = !0); }), (t.unregisterGlobalManager = function (t) { this.globalManagers.remove(t), (t.enabled = !1); }), (t.getGlobalManager = function (t) { for (var e = 0; e < this.globalManagers.length; e++) if (this.globalManagers[e] instanceof t) return this.globalManagers[e]; return null; }), (t.globalManagers = []), t ); })(), TouchState = (function () { function t() { (this.x = 0), (this.y = 0), (this.touchPoint = -1), (this.touchDown = !1); } return ( Object.defineProperty(t.prototype, "position", { get: function () { return new Vector2(this.x, this.y); }, enumerable: !0, configurable: !0, }), (t.prototype.reset = function () { (this.x = 0), (this.y = 0), (this.touchDown = !1), (this.touchPoint = -1); }), t ); })(), Input = (function () { function t() {} return ( Object.defineProperty(t, "touchPosition", { get: function () { return this._gameTouchs[0] ? this._gameTouchs[0].position : Vector2.zero; }, enumerable: !0, configurable: !0, }), Object.defineProperty(t, "maxSupportedTouch", { get: function () { return this._stage.maxTouches; }, set: function (t) { (this._stage.maxTouches = t), this.initTouchCache(); }, enumerable: !0, configurable: !0, }), Object.defineProperty(t, "resolutionScale", { get: function () { return this._resolutionScale; }, enumerable: !0, configurable: !0, }), Object.defineProperty(t, "totalTouchCount", { get: function () { return this._totalTouchCount; }, enumerable: !0, configurable: !0, }), Object.defineProperty(t, "gameTouchs", { get: function () { return this._gameTouchs; }, enumerable: !0, configurable: !0, }), Object.defineProperty(t, "touchPositionDelta", { get: function () { var t = Vector2.subtract( this.touchPosition, this._previousTouchState.position ); return ( t.length() > 0 && this.setpreviousTouchState(this._gameTouchs[0]), t ); }, enumerable: !0, configurable: !0, }), (t.initialize = function (t) { this._init || ((this._init = !0), (this._stage = t), this._stage.addEventListener( egret.TouchEvent.TOUCH_BEGIN, this.touchBegin, this ), this._stage.addEventListener( egret.TouchEvent.TOUCH_MOVE, this.touchMove, this ), this._stage.addEventListener( egret.TouchEvent.TOUCH_END, this.touchEnd, this ), this._stage.addEventListener( egret.TouchEvent.TOUCH_CANCEL, this.touchEnd, this ), this._stage.addEventListener( egret.TouchEvent.TOUCH_RELEASE_OUTSIDE, this.touchEnd, this ), this.initTouchCache()); }), (t.initTouchCache = function () { (this._totalTouchCount = 0), (this._touchIndex = 0), (this._gameTouchs.length = 0); for (var t = 0; t < this.maxSupportedTouch; t++) this._gameTouchs.push(new TouchState()); }), (t.touchBegin = function (t) { this._touchIndex < this.maxSupportedTouch && ((this._gameTouchs[this._touchIndex].touchPoint = t.touchPointID), (this._gameTouchs[this._touchIndex].touchDown = t.touchDown), (this._gameTouchs[this._touchIndex].x = t.stageX), (this._gameTouchs[this._touchIndex].y = t.stageY), 0 == this._touchIndex && this.setpreviousTouchState(this._gameTouchs[0]), this._touchIndex++, this._totalTouchCount++); }), (t.touchMove = function (t) { t.touchPointID == this._gameTouchs[0].touchPoint && this.setpreviousTouchState(this._gameTouchs[0]); var e = this._gameTouchs.findIndex(function (e) { return e.touchPoint == t.touchPointID; }); if (-1 != e) { var n = this._gameTouchs[e]; (n.x = t.stageX), (n.y = t.stageY); } }), (t.touchEnd = function (t) { var e = this._gameTouchs.findIndex(function (e) { return e.touchPoint == t.touchPointID; }); -1 != e && (this._gameTouchs[e].reset(), 0 == e && this._previousTouchState.reset(), this._totalTouchCount--, 0 == this.totalTouchCount && (this._touchIndex = 0)); }), (t.setpreviousTouchState = function (t) { (this._previousTouchState = new TouchState()), (this._previousTouchState.x = t.position.x), (this._previousTouchState.y = t.position.y), (this._previousTouchState.touchPoint = t.touchPoint), (this._previousTouchState.touchDown = t.touchDown); }), (t.scaledPosition = function (t) { var e = new Vector2( t.x - this._resolutionOffset.x, t.y - this._resolutionOffset.y ); return Vector2.multiply(e, this.resolutionScale); }), (t._init = !1), (t._previousTouchState = new TouchState()), (t._gameTouchs = []), (t._resolutionOffset = new Vector2()), (t._resolutionScale = Vector2.one), (t._touchIndex = 0), (t._totalTouchCount = 0), t ); })(), ListPool = (function () { function t() {} return ( (t.warmCache = function (t) { if ((t -= this._objectQueue.length) > 0) for (var e = 0; e < t; e++) this._objectQueue.unshift([]); }), (t.trimCache = function (t) { for (; t > this._objectQueue.length; ) this._objectQueue.shift(); }), (t.clearCache = function () { this._objectQueue.length = 0; }), (t.obtain = function () { return this._objectQueue.length > 0 ? this._objectQueue.shift() : []; }), (t.free = function (t) { this._objectQueue.unshift(t), (t.length = 0); }), (t._objectQueue = []), t ); })(), Pair = (function () { function t(t, e) { (this.first = t), (this.second = e); } return ( (t.prototype.clear = function () { this.first = this.second = null; }), (t.prototype.equals = function (t) { return this.first == t.first && this.second == t.second; }), t ); })(), RectangleExt = (function () { function t() {} return ( (t.union = function (t, e) { var n = new Rectangle(e.x, e.y, 0, 0); return this.unionR(t, n); }), (t.unionR = function (t, e) { var n = new Rectangle(); return ( (n.x = Math.min(t.x, e.x)), (n.y = Math.min(t.y, e.y)), (n.width = Math.max(t.right, e.right) - n.x), (n.height = Math.max(t.bottom, e.bottom) - n.y), n ); }), t ); })(), Triangulator = (function () { function t() { (this.triangleIndices = []), (this._triPrev = new Array(12)), (this._triNext = new Array(12)); } return ( (t.prototype.triangulate = function (e, n) { void 0 === n && (n = !0); var i = e.length; this.initialize(i); for (var o = 0, r = 0; i > 3 && o < 500; ) { o++; var s = !0, a = e[this._triPrev[r]], h = e[r], c = e[this._triNext[r]]; if (Vector2Ext.isTriangleCCW(a, h, c)) { var u = this._triNext[this._triNext[r]]; do { if (t.testPointTriangle(e[u], a, h, c)) { s = !1; break; } u = this._triNext[u]; } while (u != this._triPrev[r]); } else s = !1; s ? (this.triangleIndices.push(this._triPrev[r]), this.triangleIndices.push(r), this.triangleIndices.push(this._triNext[r]), (this._triNext[this._triPrev[r]] = this._triNext[r]), (this._triPrev[this._triNext[r]] = this._triPrev[r]), i--, (r = this._triPrev[r])) : (r = this._triNext[r]); } this.triangleIndices.push(this._triPrev[r]), this.triangleIndices.push(r), this.triangleIndices.push(this._triNext[r]), n || this.triangleIndices.reverse(); }), (t.prototype.initialize = function (t) { (this.triangleIndices.length = 0), this._triNext.length < t && (this._triNext.reverse(), (this._triNext = new Array(Math.max(2 * this._triNext.length, t)))), this._triPrev.length < t && (this._triPrev.reverse(), (this._triPrev = new Array(Math.max(2 * this._triPrev.length, t)))); for (var e = 0; e < t; e++) (this._triPrev[e] = e - 1), (this._triNext[e] = e + 1); (this._triPrev[0] = t - 1), (this._triNext[t - 1] = 0); }), (t.testPointTriangle = function (t, e, n, i) { return ( !( Vector2Ext.cross(Vector2.subtract(t, e), Vector2.subtract(n, e)) < 0 ) && !( Vector2Ext.cross(Vector2.subtract(t, n), Vector2.subtract(i, n)) < 0 ) && !( Vector2Ext.cross(Vector2.subtract(t, i), Vector2.subtract(e, i)) < 0 ) ); }), t ); })(), Vector2Ext = (function () { function t() {} return ( (t.isTriangleCCW = function (t, e, n) { return this.cross(Vector2.subtract(e, t), Vector2.subtract(n, e)) < 0; }), (t.cross = function (t, e) { return t.y * e.x - t.x * e.y; }), (t.perpendicular = function (t, e) { return new Vector2(-1 * (e.y - t.y), e.x - t.x); }), (t.normalize = function (t) { var e = Math.sqrt(t.x * t.x + t.y * t.y); return ( e > MathHelper.Epsilon ? (t = Vector2.divide(t, new Vector2(e))) : (t.x = t.y = 0), t ); }), (t.transformA = function (t, e, n, i, o, r) { for (var s = 0; s < r; s++) { var a = t[e + s], h = i[o + s]; (h.x = a.x * n.m11 + a.y * n.m21 + n.m31), (h.y = a.x * n.m12 + a.y * n.m22 + n.m32), (i[o + s] = h); } }), (t.transformR = function (t, e) { var n = t.x * e.m11 + t.y * e.m21 + e.m31, i = t.x * e.m12 + t.y * e.m22 + e.m32; return new Vector2(n, i); }), (t.transform = function (t, e, n) { this.transformA(t, 0, e, n, 0, t.length); }), (t.round = function (t) { return new Vector2(Math.round(t.x), Math.round(t.y)); }), t ); })();