From 4c8b6add9856edf0e61bde842e11b8803e688187 Mon Sep 17 00:00:00 2001 From: "Restyled.io" Date: Wed, 1 Jul 2020 06:57:33 +0000 Subject: [PATCH 1/2] Restyled by clang-format --- demo/libs/framework/framework.js | 10153 ++++++++++++------------- demo/libs/framework/framework.min.js | 3478 ++++++++- source/bin/framework.js | 10153 ++++++++++++------------- source/bin/framework.min.js | 3478 ++++++++- 4 files changed, 17060 insertions(+), 10202 deletions(-) diff --git a/demo/libs/framework/framework.js b/demo/libs/framework/framework.js index cffffdbd..d1c2f5ea 100644 --- a/demo/libs/framework/framework.js +++ b/demo/libs/framework/framework.js @@ -1,3016 +1,3259 @@ -var __extends = (this && this.__extends) || (function () { - var extendStatics = Object.setPrototypeOf || - ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) || - function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; }; - return function (d, b) { - extendStatics(d, b); - function __() { this.constructor = d; } - d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); - }; -})(); -var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { - return new (P || (P = Promise))(function (resolve, reject) { - function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } - function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } - function step(result) { result.done ? resolve(result.value) : new P(function (resolve) { resolve(result.value); }).then(fulfilled, rejected); } +var __extends = (this && this.__extends) || (function() { + var extendStatics = Object.setPrototypeOf || + ({__proto__ : []} instanceof Array && + function(d, b) { d.__proto__ = b; }) || + function(d, b) { + for (var p in b) + if (b.hasOwnProperty(p)) + d[p] = b[p]; + }; + return function(d, b) { + extendStatics(d, b); + function __() { this.constructor = d; } + d.prototype = b === null + ? Object.create(b) + : (__.prototype = b.prototype, new __()); + }; + })(); +var __awaiter = + (this && this.__awaiter) || function(thisArg, _arguments, P, generator) { + return new (P || (P = Promise))(function(resolve, reject) { + function fulfilled(value) { + try { + step(generator.next(value)); + } catch (e) { + reject(e); + } + } + function rejected(value) { + try { + step(generator["throw"](value)); + } catch (e) { + reject(e); + } + } + function step(result) { + result.done ? resolve(result.value) + : new P(function(resolve) { resolve(result.value); }) + .then(fulfilled, rejected); + } step((generator = generator.apply(thisArg, _arguments || [])).next()); - }); -}; -var __generator = (this && this.__generator) || function (thisArg, body) { - var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g; - return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g; - function verb(n) { return function (v) { return step([n, v]); }; } - function step(op) { - if (f) throw new TypeError("Generator is already executing."); - while (_) try { - if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t; - if (y = 0, t) op = [op[0] & 2, t.value]; - switch (op[0]) { - case 0: case 1: t = op; break; - case 4: _.label++; return { value: op[1], done: false }; - case 5: _.label++; y = op[1]; op = [0]; continue; - case 7: op = _.ops.pop(); _.trys.pop(); continue; - default: - if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; } - if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; } - if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; } - if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; } - if (t[2]) _.ops.pop(); - _.trys.pop(); continue; - } - op = body.call(thisArg, _); - } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; } - if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true }; - } -}; -Array.prototype.findIndex = function (predicate) { - function findIndex(array, predicate) { - for (var i = 0, len = array.length; i < len; i++) { - if (predicate.call(arguments[2], array[i], i, array)) { - return i; - } + }); + }; +var __generator = (this && this.__generator) || function(thisArg, body) { + var _ = { + label : 0, + sent : function() { + if (t[0] & 1) + throw t[1]; + return t[1]; + }, + trys : [], + ops : [] + }, + f, y, t, g; + return g = {next : verb(0), "throw" : verb(1), "return" : verb(2)}, + typeof Symbol === "function" && + (g[Symbol.iterator] = function() { return this; }), + g; + function verb(n) { + return function(v) { return step([ n, v ]); }; + } + function step(op) { + if (f) + throw new TypeError("Generator is already executing."); + while (_) + try { + if (f = 1, + y && + (t = op[0] & 2 ? y["return"] + : op[0] ? y["throw"] || + ((t = y["return"]) && t.call(y), 0) + : y.next) && + !(t = t.call(y, op[1])).done) + return t; + if (y = 0, t) + op = [ op[0] & 2, t.value ]; + switch (op[0]) { + case 0: + case 1: + t = op; + break; + case 4: + _.label++; + return {value : op[1], done : false}; + case 5: + _.label++; + y = op[1]; + op = [ 0 ]; + continue; + case 7: + op = _.ops.pop(); + _.trys.pop(); + continue; + default: + if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && + (op[0] === 6 || op[0] === 2)) { + _ = 0; + continue; + } + if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { + _.label = op[1]; + break; + } + if (op[0] === 6 && _.label < t[1]) { + _.label = t[1]; + t = op; + break; + } + if (t && _.label < t[2]) { + _.label = t[2]; + _.ops.push(op); + break; + } + if (t[2]) + _.ops.pop(); + _.trys.pop(); + continue; } - return -1; - } - return findIndex(this, predicate); + op = body.call(thisArg, _); + } catch (e) { + op = [ 6, e ]; + y = 0; + } finally { + f = t = 0; + } + if (op[0] & 5) + throw op[1]; + return {value : op[0] ? op[1] : void 0, done : true}; + } }; -Array.prototype.any = function (predicate) { - function any(array, predicate) { - return array.findIndex(predicate) > -1; +Array.prototype.findIndex = function(predicate) { + function findIndex(array, predicate) { + for (var i = 0, len = array.length; i < len; i++) { + if (predicate.call(arguments[2], array[i], i, array)) { + return i; + } } - return any(this, predicate); + return -1; + } + return findIndex(this, predicate); }; -Array.prototype.firstOrDefault = function (predicate) { - function firstOrDefault(array, predicate) { - var index = array.findIndex(predicate); - return index == -1 ? null : array[index]; - } - return firstOrDefault(this, predicate); +Array.prototype.any = function(predicate) { + function any(array, predicate) { return array.findIndex(predicate) > -1; } + return any(this, predicate); }; -Array.prototype.find = function (predicate) { - function find(array, predicate) { - return array.firstOrDefault(predicate); - } - return find(this, predicate); +Array.prototype.firstOrDefault = function(predicate) { + function firstOrDefault(array, predicate) { + var index = array.findIndex(predicate); + return index == -1 ? null : array[index]; + } + return firstOrDefault(this, predicate); }; -Array.prototype.where = function (predicate) { - function where(array, predicate) { - if (typeof (array.reduce) === "function") { - return array.reduce(function (ret, element, index) { - if (predicate.call(arguments[2], element, index, array)) { - ret.push(element); - } - return ret; - }, []); - } - else { - var ret = []; - for (var i = 0, len = array.length; i < len; i++) { - var element = array[i]; - if (predicate.call(arguments[2], element, i, array)) { - ret.push(element); - } - } - return ret; - } - } - return where(this, predicate); +Array.prototype.find = function(predicate) { + function find(array, predicate) { return array.firstOrDefault(predicate); } + return find(this, predicate); }; -Array.prototype.count = function (predicate) { - function count(array, predicate) { - return array.where(predicate).length; - } - return count(this, predicate); -}; -Array.prototype.findAll = function (predicate) { - function findAll(array, predicate) { - return array.where(predicate); - } - return findAll(this, predicate); -}; -Array.prototype.contains = function (value) { - function contains(array, value) { - for (var i = 0, len = array.length; i < len; i++) { - if (array[i] == value) { - return true; - } - } - return false; - } - return contains(this, value); -}; -Array.prototype.removeAll = function (predicate) { - function removeAll(array, predicate) { - var index; - do { - index = array.findIndex(predicate); - if (index >= 0) { - array.splice(index, 1); - } - } while (index >= 0); - } - removeAll(this, predicate); -}; -Array.prototype.remove = function (element) { - function remove(array, element) { - var index = array.findIndex(function (x) { - return x === element; - }); - if (index >= 0) { - array.splice(index, 1); - return true; - } - else { - return false; - } - } - return remove(this, element); -}; -Array.prototype.removeAt = function (index) { - function removeAt(array, index) { - array.splice(index, 1); - } - return removeAt(this, index); -}; -Array.prototype.removeRange = function (index, count) { - function removeRange(array, index, count) { - array.splice(index, count); - } - return removeRange(this, index, count); -}; -Array.prototype.select = function (selector) { - function select(array, selector) { - if (typeof (array.reduce) === "function") { - return array.reduce(function (ret, element, index) { - ret.push(selector.call(arguments[2], element, index, array)); - return ret; - }, []); - } - else { - var ret = []; - for (var i = 0, len = array.length; i < len; i++) { - ret.push(selector.call(arguments[2], array[i], i, array)); - } - return ret; - } - } - return select(this, selector); -}; -Array.prototype.orderBy = function (keySelector, comparer) { - function orderBy(array, keySelector, comparer) { - array.sort(function (x, y) { - var v1 = keySelector(x); - var v2 = keySelector(y); - if (comparer) { - return comparer(v1, v2); - } - else { - return (v1 > v2) ? 1 : -1; - } - }); - return array; - } - return orderBy(this, keySelector, comparer); -}; -Array.prototype.orderByDescending = function (keySelector, comparer) { - function orderByDescending(array, keySelector, comparer) { - array.sort(function (x, y) { - var v1 = keySelector(x); - var v2 = keySelector(y); - if (comparer) { - return -comparer(v1, v2); - } - else { - return (v1 < v2) ? 1 : -1; - } - }); - return array; - } - return orderByDescending(this, keySelector, comparer); -}; -Array.prototype.groupBy = function (keySelector) { - function groupBy(array, keySelector) { - if (typeof (array.reduce) === "function") { - var keys_1 = []; - return array.reduce(function (groups, element, index) { - var key = JSON.stringify(keySelector.call(arguments[1], element, index, array)); - var index2 = keys_1.findIndex(function (x) { return x === key; }); - if (index2 < 0) { - index2 = keys_1.push(key) - 1; - } - if (!groups[index2]) { - groups[index2] = []; - } - groups[index2].push(element); - return groups; - }, []); - } - else { - var groups = []; - var keys = []; - var _loop_1 = function (i, len) { - var key = JSON.stringify(keySelector.call(arguments_1[1], array[i], i, array)); - var index = keys.findIndex(function (x) { return x === key; }); - if (index < 0) { - index = keys.push(key) - 1; - } - if (!groups[index]) { - groups[index] = []; - } - groups[index].push(array[i]); - }; - var arguments_1 = arguments; - for (var i = 0, len = array.length; i < len; i++) { - _loop_1(i, len); - } - return groups; - } - } - return groupBy(this, keySelector); -}; -Array.prototype.sum = function (selector) { - function sum(array, selector) { - var ret; - for (var i = 0, len = array.length; i < len; i++) { - if (i == 0) { - if (selector) { - ret = selector.call(arguments[2], array[i], i, array); - } - else { - ret = array[i]; - } - } - else { - if (selector) { - ret += selector.call(arguments[2], array[i], i, array); - } - else { - ret += array[i]; - } - } +Array.prototype.where = function(predicate) { + function where(array, predicate) { + if (typeof (array.reduce) === "function") { + return array.reduce(function(ret, element, index) { + if (predicate.call(arguments[2], element, index, array)) { + ret.push(element); } return ret; + }, []); + } else { + var ret = []; + for (var i = 0, len = array.length; i < len; i++) { + var element = array[i]; + if (predicate.call(arguments[2], element, i, array)) { + ret.push(element); + } + } + return ret; } - return sum(this, selector); + } + return where(this, predicate); }; -var PriorityQueueNode = (function () { - function PriorityQueueNode() { - this.priority = 0; - this.insertionIndex = 0; - this.queueIndex = 0; - } - return PriorityQueueNode; -}()); -var AStarPathfinder = (function () { - function AStarPathfinder() { - } - AStarPathfinder.search = function (graph, start, goal) { - var _this = this; - var foundPath = false; - var cameFrom = new Map(); - cameFrom.set(start, start); - var costSoFar = new Map(); - var frontier = new PriorityQueue(1000); - frontier.enqueue(new AStarNode(start), 0); - costSoFar.set(start, 0); - var _loop_2 = function () { - var current = frontier.dequeue(); - if (JSON.stringify(current.data) == JSON.stringify(goal)) { - foundPath = true; - return "break"; - } - graph.getNeighbors(current.data).forEach(function (next) { - var newCost = costSoFar.get(current.data) + graph.cost(current.data, next); - if (!_this.hasKey(costSoFar, next) || newCost < costSoFar.get(next)) { - costSoFar.set(next, newCost); - var priority = newCost + graph.heuristic(next, goal); - frontier.enqueue(new AStarNode(next), priority); - cameFrom.set(next, current.data); - } - }); - }; - while (frontier.count > 0) { - var state_1 = _loop_2(); - if (state_1 === "break") - break; - } - return foundPath ? this.recontructPath(cameFrom, start, goal) : null; - }; - AStarPathfinder.hasKey = function (map, compareKey) { - var iterator = map.keys(); - var r; - while (r = iterator.next(), !r.done) { - if (JSON.stringify(r.value) == JSON.stringify(compareKey)) - return true; - } - return false; - }; - AStarPathfinder.getKey = function (map, compareKey) { - var iterator = map.keys(); - var valueIterator = map.values(); - var r; - var v; - while (r = iterator.next(), v = valueIterator.next(), !r.done) { - if (JSON.stringify(r.value) == JSON.stringify(compareKey)) - return v.value; - } - return null; - }; - AStarPathfinder.recontructPath = function (cameFrom, start, goal) { - var path = []; - var current = goal; - path.push(goal); - while (current != start) { - current = this.getKey(cameFrom, current); - path.push(current); - } - path.reverse(); - return path; - }; - return AStarPathfinder; -}()); -var AStarNode = (function (_super) { - __extends(AStarNode, _super); - function AStarNode(data) { - var _this = _super.call(this) || this; - _this.data = data; - return _this; - } - return AStarNode; -}(PriorityQueueNode)); -var AstarGridGraph = (function () { - function AstarGridGraph(width, height) { - 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 = width; - this._height = height; - } - AstarGridGraph.prototype.isNodeInBounds = function (node) { - return 0 <= node.x && node.x < this._width && 0 <= node.y && node.y < this._height; - }; - AstarGridGraph.prototype.isNodePassable = function (node) { - return !this.walls.firstOrDefault(function (wall) { return JSON.stringify(wall) == JSON.stringify(node); }); - }; - AstarGridGraph.prototype.search = function (start, goal) { - return AStarPathfinder.search(this, start, goal); - }; - AstarGridGraph.prototype.getNeighbors = function (node) { - var _this = this; - this._neighbors.length = 0; - this.dirs.forEach(function (dir) { - var next = new Point(node.x + dir.x, node.y + dir.y); - if (_this.isNodeInBounds(next) && _this.isNodePassable(next)) - _this._neighbors.push(next); - }); - return this._neighbors; - }; - AstarGridGraph.prototype.cost = function (from, to) { - return this.weightedNodes.find(function (p) { return JSON.stringify(p) == JSON.stringify(to); }) ? this.weightedNodeWeight : this.defaultWeight; - }; - AstarGridGraph.prototype.heuristic = function (node, goal) { - return Math.abs(node.x - goal.x) + Math.abs(node.y - goal.y); - }; - return AstarGridGraph; -}()); -var PriorityQueue = (function () { - function PriorityQueue(maxNodes) { - this._numNodes = 0; - this._nodes = new Array(maxNodes + 1); - this._numNodesEverEnqueued = 0; - } - PriorityQueue.prototype.clear = function () { - this._nodes.splice(1, this._numNodes); - this._numNodes = 0; - }; - Object.defineProperty(PriorityQueue.prototype, "count", { - get: function () { - return this._numNodes; - }, - enumerable: true, - configurable: true - }); - PriorityQueue.prototype.contains = function (node) { - return (this._nodes[node.queueIndex] == node); - }; - PriorityQueue.prototype.enqueue = function (node, priority) { - node.priority = priority; - this._numNodes++; - this._nodes[this._numNodes] = node; - node.queueIndex = this._numNodes; - node.insertionIndex = this._numNodesEverEnqueued++; - this.cascadeUp(this._nodes[this._numNodes]); - }; - PriorityQueue.prototype.dequeue = function () { - var returnMe = this._nodes[1]; - this.remove(returnMe); - return returnMe; - }; - PriorityQueue.prototype.remove = function (node) { - if (node.queueIndex == this._numNodes) { - this._nodes[this._numNodes] = null; - this._numNodes--; - return; - } - var formerLastNode = this._nodes[this._numNodes]; - this.swap(node, formerLastNode); - delete this._nodes[this._numNodes]; - this._numNodes--; - this.onNodeUpdated(formerLastNode); - }; - PriorityQueue.prototype.isValidQueue = function () { - for (var i = 1; i < this._nodes.length; i++) { - if (this._nodes[i]) { - var childLeftIndex = 2 * i; - if (childLeftIndex < this._nodes.length && this._nodes[childLeftIndex] && - this.hasHigherPriority(this._nodes[childLeftIndex], this._nodes[i])) - return false; - var childRightIndex = childLeftIndex + 1; - if (childRightIndex < this._nodes.length && this._nodes[childRightIndex] && - this.hasHigherPriority(this._nodes[childRightIndex], this._nodes[i])) - return false; - } - } +Array.prototype.count = function(predicate) { + function count(array, predicate) { return array.where(predicate).length; } + return count(this, predicate); +}; +Array.prototype.findAll = function(predicate) { + function findAll(array, predicate) { return array.where(predicate); } + return findAll(this, predicate); +}; +Array.prototype.contains = function(value) { + function contains(array, value) { + for (var i = 0, len = array.length; i < len; i++) { + if (array[i] == value) { return true; - }; - PriorityQueue.prototype.onNodeUpdated = function (node) { - var parentIndex = Math.floor(node.queueIndex / 2); - var parentNode = this._nodes[parentIndex]; - if (parentIndex > 0 && this.hasHigherPriority(node, parentNode)) { - this.cascadeUp(node); - } - else { - this.cascadeDown(node); - } - }; - PriorityQueue.prototype.cascadeDown = function (node) { - var newParent; - var finalQueueIndex = node.queueIndex; - while (true) { - newParent = node; - var childLeftIndex = 2 * finalQueueIndex; - if (childLeftIndex > this._numNodes) { - node.queueIndex = finalQueueIndex; - this._nodes[finalQueueIndex] = node; - break; - } - var childLeft = this._nodes[childLeftIndex]; - if (this.hasHigherPriority(childLeft, newParent)) { - newParent = childLeft; - } - var childRightIndex = childLeftIndex + 1; - if (childRightIndex <= this._numNodes) { - var childRight = this._nodes[childRightIndex]; - if (this.hasHigherPriority(childRight, newParent)) { - newParent = childRight; - } - } - if (newParent != node) { - this._nodes[finalQueueIndex] = newParent; - var temp = newParent.queueIndex; - newParent.queueIndex = finalQueueIndex; - finalQueueIndex = temp; - } - else { - node.queueIndex = finalQueueIndex; - this._nodes[finalQueueIndex] = node; - break; - } - } - }; - PriorityQueue.prototype.cascadeUp = function (node) { - var parent = Math.floor(node.queueIndex / 2); - while (parent >= 1) { - var parentNode = this._nodes[parent]; - if (this.hasHigherPriority(parentNode, node)) - break; - this.swap(node, parentNode); - parent = Math.floor(node.queueIndex / 2); - } - }; - PriorityQueue.prototype.swap = function (node1, node2) { - this._nodes[node1.queueIndex] = node2; - this._nodes[node2.queueIndex] = node1; - var temp = node1.queueIndex; - node1.queueIndex = node2.queueIndex; - node2.queueIndex = temp; - }; - PriorityQueue.prototype.hasHigherPriority = function (higher, lower) { - return (higher.priority < lower.priority || - (higher.priority == lower.priority && higher.insertionIndex < lower.insertionIndex)); - }; - return PriorityQueue; -}()); -var BreadthFirstPathfinder = (function () { - function BreadthFirstPathfinder() { + } } - BreadthFirstPathfinder.search = function (graph, start, goal) { - var _this = this; - var foundPath = false; - var frontier = []; - frontier.unshift(start); - var cameFrom = new Map(); - cameFrom.set(start, start); - var _loop_3 = function () { - var current = frontier.shift(); - if (JSON.stringify(current) == JSON.stringify(goal)) { - foundPath = true; - return "break"; - } - graph.getNeighbors(current).forEach(function (next) { - if (!_this.hasKey(cameFrom, next)) { - frontier.unshift(next); - cameFrom.set(next, current); - } - }); - }; - while (frontier.length > 0) { - var state_2 = _loop_3(); - if (state_2 === "break") - break; + return false; + } + return contains(this, value); +}; +Array.prototype.removeAll = function(predicate) { + function removeAll(array, predicate) { + var index; + do { + index = array.findIndex(predicate); + if (index >= 0) { + array.splice(index, 1); + } + } while (index >= 0); + } + removeAll(this, predicate); +}; +Array.prototype.remove = function(element) { + function remove(array, element) { + var index = array.findIndex(function(x) { return x === element; }); + if (index >= 0) { + array.splice(index, 1); + return true; + } else { + return false; + } + } + return remove(this, element); +}; +Array.prototype.removeAt = function(index) { + function removeAt(array, index) { array.splice(index, 1); } + return removeAt(this, index); +}; +Array.prototype.removeRange = function(index, count) { + function removeRange(array, index, count) { array.splice(index, count); } + return removeRange(this, index, count); +}; +Array.prototype.select = function(selector) { + function select(array, selector) { + if (typeof (array.reduce) === "function") { + return array.reduce(function(ret, element, index) { + ret.push(selector.call(arguments[2], element, index, array)); + return ret; + }, []); + } else { + var ret = []; + for (var i = 0, len = array.length; i < len; i++) { + ret.push(selector.call(arguments[2], array[i], i, array)); + } + return ret; + } + } + return select(this, selector); +}; +Array.prototype.orderBy = function(keySelector, comparer) { + function orderBy(array, keySelector, comparer) { + array.sort(function(x, y) { + var v1 = keySelector(x); + var v2 = keySelector(y); + if (comparer) { + return comparer(v1, v2); + } else { + return (v1 > v2) ? 1 : -1; + } + }); + return array; + } + return orderBy(this, keySelector, comparer); +}; +Array.prototype.orderByDescending = function(keySelector, comparer) { + function orderByDescending(array, keySelector, comparer) { + array.sort(function(x, y) { + var v1 = keySelector(x); + var v2 = keySelector(y); + if (comparer) { + return -comparer(v1, v2); + } else { + return (v1 < v2) ? 1 : -1; + } + }); + return array; + } + return orderByDescending(this, keySelector, comparer); +}; +Array.prototype.groupBy = function(keySelector) { + function groupBy(array, keySelector) { + if (typeof (array.reduce) === "function") { + var keys_1 = []; + return array.reduce(function(groups, element, index) { + var key = JSON.stringify( + keySelector.call(arguments[1], element, index, array)); + var index2 = keys_1.findIndex(function(x) { return x === key; }); + if (index2 < 0) { + index2 = keys_1.push(key) - 1; } - return foundPath ? AStarPathfinder.recontructPath(cameFrom, start, goal) : null; - }; - BreadthFirstPathfinder.hasKey = function (map, compareKey) { - var iterator = map.keys(); - var r; - while (r = iterator.next(), !r.done) { - if (JSON.stringify(r.value) == JSON.stringify(compareKey)) - return true; + if (!groups[index2]) { + groups[index2] = []; } - return false; - }; - return BreadthFirstPathfinder; -}()); -var UnweightedGraph = (function () { - function UnweightedGraph() { - this.edges = new Map(); + groups[index2].push(element); + return groups; + }, []); + } else { + var groups = []; + var keys = []; + var _loop_1 = function(i, len) { + var key = JSON.stringify( + keySelector.call(arguments_1[1], array[i], i, array)); + var index = keys.findIndex(function(x) { return x === key; }); + if (index < 0) { + index = keys.push(key) - 1; + } + if (!groups[index]) { + groups[index] = []; + } + groups[index].push(array[i]); + }; + var arguments_1 = arguments; + for (var i = 0, len = array.length; i < len; i++) { + _loop_1(i, len); + } + return groups; } - UnweightedGraph.prototype.addEdgesForNode = function (node, edges) { - this.edges.set(node, edges); - return this; - }; - UnweightedGraph.prototype.getNeighbors = function (node) { - return this.edges.get(node); - }; - return UnweightedGraph; -}()); -var Point = (function () { - function Point(x, y) { - this.x = x ? x : 0; - this.y = y ? y : this.x; + } + return groupBy(this, keySelector); +}; +Array.prototype.sum = function(selector) { + function sum(array, selector) { + var ret; + for (var i = 0, len = array.length; i < len; i++) { + if (i == 0) { + if (selector) { + ret = selector.call(arguments[2], array[i], i, array); + } else { + ret = array[i]; + } + } else { + if (selector) { + ret += selector.call(arguments[2], array[i], i, array); + } else { + ret += array[i]; + } + } } - return Point; + return ret; + } + return sum(this, selector); +}; +var PriorityQueueNode = (function() { + function PriorityQueueNode() { + this.priority = 0; + this.insertionIndex = 0; + this.queueIndex = 0; + } + return PriorityQueueNode; }()); -var UnweightedGridGraph = (function () { - function UnweightedGridGraph(width, height, allowDiagonalSearch) { - if (allowDiagonalSearch === void 0) { allowDiagonalSearch = false; } - this.walls = []; - this._neighbors = new Array(4); - this._width = width; - this._hegiht = height; - this._dirs = allowDiagonalSearch ? UnweightedGridGraph.COMPASS_DIRS : UnweightedGridGraph.CARDINAL_DIRS; +var AStarPathfinder = (function() { + function AStarPathfinder() {} + AStarPathfinder.search = function(graph, start, goal) { + var _this = this; + var foundPath = false; + var cameFrom = new Map(); + cameFrom.set(start, start); + var costSoFar = new Map(); + var frontier = new PriorityQueue(1000); + frontier.enqueue(new AStarNode(start), 0); + costSoFar.set(start, 0); + var _loop_2 = function() { + var current = frontier.dequeue(); + if (JSON.stringify(current.data) == JSON.stringify(goal)) { + foundPath = true; + return "break"; + } + graph.getNeighbors(current.data).forEach(function(next) { + var newCost = + costSoFar.get(current.data) + graph.cost(current.data, next); + if (!_this.hasKey(costSoFar, next) || newCost < costSoFar.get(next)) { + costSoFar.set(next, newCost); + var priority = newCost + graph.heuristic(next, goal); + frontier.enqueue(new AStarNode(next), priority); + cameFrom.set(next, current.data); + } + }); + }; + while (frontier.count > 0) { + var state_1 = _loop_2(); + if (state_1 === "break") + break; } - UnweightedGridGraph.prototype.isNodeInBounds = function (node) { - return 0 <= node.x && node.x < this._width && 0 <= node.y && node.y < this._hegiht; - }; - UnweightedGridGraph.prototype.isNodePassable = function (node) { - return !this.walls.firstOrDefault(function (wall) { return JSON.stringify(wall) == JSON.stringify(node); }); - }; - UnweightedGridGraph.prototype.getNeighbors = function (node) { - var _this = this; - this._neighbors.length = 0; - this._dirs.forEach(function (dir) { - var next = new Point(node.x + dir.x, node.y + dir.y); - if (_this.isNodeInBounds(next) && _this.isNodePassable(next)) - _this._neighbors.push(next); - }); - return this._neighbors; - }; - UnweightedGridGraph.prototype.search = function (start, goal) { - return BreadthFirstPathfinder.search(this, start, goal); - }; - UnweightedGridGraph.CARDINAL_DIRS = [ - new Point(1, 0), - new Point(0, -1), - new Point(-1, 0), - new Point(0, -1) - ]; - UnweightedGridGraph.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), - ]; - return UnweightedGridGraph; + return foundPath ? this.recontructPath(cameFrom, start, goal) : null; + }; + AStarPathfinder.hasKey = function(map, compareKey) { + var iterator = map.keys(); + var r; + while (r = iterator.next(), !r.done) { + if (JSON.stringify(r.value) == JSON.stringify(compareKey)) + return true; + } + return false; + }; + AStarPathfinder.getKey = function(map, compareKey) { + var iterator = map.keys(); + var valueIterator = map.values(); + var r; + var v; + while (r = iterator.next(), v = valueIterator.next(), !r.done) { + if (JSON.stringify(r.value) == JSON.stringify(compareKey)) + return v.value; + } + return null; + }; + AStarPathfinder.recontructPath = function(cameFrom, start, goal) { + var path = []; + var current = goal; + path.push(goal); + while (current != start) { + current = this.getKey(cameFrom, current); + path.push(current); + } + path.reverse(); + return path; + }; + return AStarPathfinder; }()); -var WeightedGridGraph = (function () { - function WeightedGridGraph(width, height, allowDiagonalSearch) { - if (allowDiagonalSearch === void 0) { allowDiagonalSearch = false; } - this.walls = []; - this.weightedNodes = []; - this.defaultWeight = 1; - this.weightedNodeWeight = 5; - this._neighbors = new Array(4); - this._width = width; - this._height = height; - this._dirs = allowDiagonalSearch ? WeightedGridGraph.COMPASS_DIRS : WeightedGridGraph.CARDINAL_DIRS; - } - WeightedGridGraph.prototype.isNodeInBounds = function (node) { - return 0 <= node.x && node.x < this._width && 0 <= node.y && node.y < this._height; - }; - WeightedGridGraph.prototype.isNodePassable = function (node) { - return !this.walls.firstOrDefault(function (wall) { return JSON.stringify(wall) == JSON.stringify(node); }); - }; - WeightedGridGraph.prototype.search = function (start, goal) { - return WeightedPathfinder.search(this, start, goal); - }; - WeightedGridGraph.prototype.getNeighbors = function (node) { - var _this = this; - this._neighbors.length = 0; - this._dirs.forEach(function (dir) { - var next = new Point(node.x + dir.x, node.y + dir.y); - if (_this.isNodeInBounds(next) && _this.isNodePassable(next)) - _this._neighbors.push(next); - }); - return this._neighbors; - }; - WeightedGridGraph.prototype.cost = function (from, to) { - return this.weightedNodes.find(function (t) { return JSON.stringify(t) == JSON.stringify(to); }) ? this.weightedNodeWeight : this.defaultWeight; - }; - WeightedGridGraph.CARDINAL_DIRS = [ - new Point(1, 0), - new Point(0, -1), - new Point(-1, 0), - new Point(0, 1) - ]; - WeightedGridGraph.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), - ]; - return WeightedGridGraph; -}()); -var WeightedNode = (function (_super) { - __extends(WeightedNode, _super); - function WeightedNode(data) { - var _this = _super.call(this) || this; - _this.data = data; - return _this; - } - return WeightedNode; +var AStarNode = (function(_super) { + __extends(AStarNode, _super); + function AStarNode(data) { + var _this = _super.call(this) || this; + _this.data = data; + return _this; + } + return AStarNode; }(PriorityQueueNode)); -var WeightedPathfinder = (function () { - function WeightedPathfinder() { - } - WeightedPathfinder.search = function (graph, start, goal) { - var _this = this; - var foundPath = false; - var cameFrom = new Map(); - cameFrom.set(start, start); - var costSoFar = new Map(); - var frontier = new PriorityQueue(1000); - frontier.enqueue(new WeightedNode(start), 0); - costSoFar.set(start, 0); - var _loop_4 = function () { - var current = frontier.dequeue(); - if (JSON.stringify(current.data) == JSON.stringify(goal)) { - foundPath = true; - return "break"; - } - graph.getNeighbors(current.data).forEach(function (next) { - var newCost = costSoFar.get(current.data) + graph.cost(current.data, next); - if (!_this.hasKey(costSoFar, next) || newCost < costSoFar.get(next)) { - costSoFar.set(next, newCost); - var priprity = newCost; - frontier.enqueue(new WeightedNode(next), priprity); - cameFrom.set(next, current.data); - } - }); - }; - while (frontier.count > 0) { - var state_3 = _loop_4(); - if (state_3 === "break") - break; - } - return foundPath ? this.recontructPath(cameFrom, start, goal) : null; - }; - WeightedPathfinder.hasKey = function (map, compareKey) { - var iterator = map.keys(); - var r; - while (r = iterator.next(), !r.done) { - if (JSON.stringify(r.value) == JSON.stringify(compareKey)) - return true; - } - return false; - }; - WeightedPathfinder.getKey = function (map, compareKey) { - var iterator = map.keys(); - var valueIterator = map.values(); - var r; - var v; - while (r = iterator.next(), v = valueIterator.next(), !r.done) { - if (JSON.stringify(r.value) == JSON.stringify(compareKey)) - return v.value; - } - return null; - }; - WeightedPathfinder.recontructPath = function (cameFrom, start, goal) { - var path = []; - var current = goal; - path.push(goal); - while (current != start) { - current = this.getKey(cameFrom, current); - path.push(current); - } - path.reverse(); - return path; - }; - return WeightedPathfinder; +var AstarGridGraph = (function() { + function AstarGridGraph(width, height) { + 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 = width; + this._height = height; + } + AstarGridGraph.prototype.isNodeInBounds = function(node) { + return 0 <= node.x && node.x < this._width && 0 <= node.y && + node.y < this._height; + }; + AstarGridGraph.prototype.isNodePassable = function(node) { + return !this.walls.firstOrDefault(function( + wall) { return JSON.stringify(wall) == JSON.stringify(node); }); + }; + AstarGridGraph.prototype.search = function( + start, goal) { return AStarPathfinder.search(this, start, goal); }; + AstarGridGraph.prototype.getNeighbors = function(node) { + var _this = this; + this._neighbors.length = 0; + this.dirs.forEach(function(dir) { + var next = new Point(node.x + dir.x, node.y + dir.y); + if (_this.isNodeInBounds(next) && _this.isNodePassable(next)) + _this._neighbors.push(next); + }); + return this._neighbors; + }; + AstarGridGraph.prototype.cost = function(from, to) { + return this.weightedNodes.find(function( + p) { return JSON.stringify(p) == JSON.stringify(to); }) + ? this.weightedNodeWeight + : this.defaultWeight; + }; + AstarGridGraph.prototype.heuristic = function( + node, + goal) { return Math.abs(node.x - goal.x) + Math.abs(node.y - goal.y); }; + return AstarGridGraph; }()); -var DebugDefaults = (function () { - function DebugDefaults() { +var PriorityQueue = (function() { + function PriorityQueue(maxNodes) { + this._numNodes = 0; + this._nodes = new Array(maxNodes + 1); + this._numNodesEverEnqueued = 0; + } + PriorityQueue.prototype.clear = function() { + this._nodes.splice(1, this._numNodes); + this._numNodes = 0; + }; + Object.defineProperty(PriorityQueue.prototype, "count", { + get : function() { return this._numNodes; }, + enumerable : true, + configurable : true + }); + PriorityQueue.prototype.contains = function( + node) { return (this._nodes[node.queueIndex] == node); }; + PriorityQueue.prototype.enqueue = function(node, priority) { + node.priority = priority; + this._numNodes++; + this._nodes[this._numNodes] = node; + node.queueIndex = this._numNodes; + node.insertionIndex = this._numNodesEverEnqueued++; + this.cascadeUp(this._nodes[this._numNodes]); + }; + PriorityQueue.prototype.dequeue = function() { + var returnMe = this._nodes[1]; + this.remove(returnMe); + return returnMe; + }; + PriorityQueue.prototype.remove = function(node) { + if (node.queueIndex == this._numNodes) { + this._nodes[this._numNodes] = null; + this._numNodes--; + return; } - DebugDefaults.verletParticle = 0xDC345E; - DebugDefaults.verletConstraintEdge = 0x433E36; - return DebugDefaults; + var formerLastNode = this._nodes[this._numNodes]; + this.swap(node, formerLastNode); + delete this._nodes[this._numNodes]; + this._numNodes--; + this.onNodeUpdated(formerLastNode); + }; + PriorityQueue.prototype.isValidQueue = function() { + for (var i = 1; i < this._nodes.length; i++) { + if (this._nodes[i]) { + var childLeftIndex = 2 * i; + if (childLeftIndex < this._nodes.length && + this._nodes[childLeftIndex] && + this.hasHigherPriority(this._nodes[childLeftIndex], this._nodes[i])) + return false; + var childRightIndex = childLeftIndex + 1; + if (childRightIndex < this._nodes.length && + this._nodes[childRightIndex] && + this.hasHigherPriority(this._nodes[childRightIndex], + this._nodes[i])) + return false; + } + } + return true; + }; + PriorityQueue.prototype.onNodeUpdated = function(node) { + var parentIndex = Math.floor(node.queueIndex / 2); + var parentNode = this._nodes[parentIndex]; + if (parentIndex > 0 && this.hasHigherPriority(node, parentNode)) { + this.cascadeUp(node); + } else { + this.cascadeDown(node); + } + }; + PriorityQueue.prototype.cascadeDown = function(node) { + var newParent; + var finalQueueIndex = node.queueIndex; + while (true) { + newParent = node; + var childLeftIndex = 2 * finalQueueIndex; + if (childLeftIndex > this._numNodes) { + node.queueIndex = finalQueueIndex; + this._nodes[finalQueueIndex] = node; + break; + } + var childLeft = this._nodes[childLeftIndex]; + if (this.hasHigherPriority(childLeft, newParent)) { + newParent = childLeft; + } + var childRightIndex = childLeftIndex + 1; + if (childRightIndex <= this._numNodes) { + var childRight = this._nodes[childRightIndex]; + if (this.hasHigherPriority(childRight, newParent)) { + newParent = childRight; + } + } + if (newParent != node) { + this._nodes[finalQueueIndex] = newParent; + var temp = newParent.queueIndex; + newParent.queueIndex = finalQueueIndex; + finalQueueIndex = temp; + } else { + node.queueIndex = finalQueueIndex; + this._nodes[finalQueueIndex] = node; + break; + } + } + }; + PriorityQueue.prototype.cascadeUp = function(node) { + var parent = Math.floor(node.queueIndex / 2); + while (parent >= 1) { + var parentNode = this._nodes[parent]; + if (this.hasHigherPriority(parentNode, node)) + break; + this.swap(node, parentNode); + parent = Math.floor(node.queueIndex / 2); + } + }; + PriorityQueue.prototype.swap = function(node1, node2) { + this._nodes[node1.queueIndex] = node2; + this._nodes[node2.queueIndex] = node1; + var temp = node1.queueIndex; + node1.queueIndex = node2.queueIndex; + node2.queueIndex = temp; + }; + PriorityQueue.prototype.hasHigherPriority = function(higher, lower) { + return (higher.priority < lower.priority || + (higher.priority == lower.priority && + higher.insertionIndex < lower.insertionIndex)); + }; + return PriorityQueue; }()); -var Component = (function (_super) { - __extends(Component, _super); - function Component() { - var _this = _super !== null && _super.apply(this, arguments) || this; - _this._enabled = true; - _this.updateInterval = 1; - return _this; - } - Object.defineProperty(Component.prototype, "enabled", { - get: function () { - return this.entity ? this.entity.enabled && this._enabled : this._enabled; - }, - set: function (value) { - this.setEnabled(value); - }, - enumerable: true, - configurable: true - }); - Component.prototype.setEnabled = function (isEnabled) { - if (this._enabled != isEnabled) { - this._enabled = isEnabled; - if (this._enabled) { - this.onEnabled(); - } - else { - this.onDisabled(); - } +var BreadthFirstPathfinder = (function() { + function BreadthFirstPathfinder() {} + BreadthFirstPathfinder.search = function(graph, start, goal) { + var _this = this; + var foundPath = false; + var frontier = []; + frontier.unshift(start); + var cameFrom = new Map(); + cameFrom.set(start, start); + var _loop_3 = function() { + var current = frontier.shift(); + if (JSON.stringify(current) == JSON.stringify(goal)) { + foundPath = true; + return "break"; + } + graph.getNeighbors(current).forEach(function(next) { + if (!_this.hasKey(cameFrom, next)) { + frontier.unshift(next); + cameFrom.set(next, current); } - return this; + }); }; - Component.prototype.initialize = function () { + while (frontier.length > 0) { + var state_2 = _loop_3(); + if (state_2 === "break") + break; + } + return foundPath ? AStarPathfinder.recontructPath(cameFrom, start, goal) + : null; + }; + BreadthFirstPathfinder.hasKey = function(map, compareKey) { + var iterator = map.keys(); + var r; + while (r = iterator.next(), !r.done) { + if (JSON.stringify(r.value) == JSON.stringify(compareKey)) + return true; + } + return false; + }; + return BreadthFirstPathfinder; +}()); +var UnweightedGraph = (function() { + function UnweightedGraph() { this.edges = new Map(); } + UnweightedGraph.prototype.addEdgesForNode = function(node, edges) { + this.edges.set(node, edges); + return this; + }; + UnweightedGraph.prototype.getNeighbors = function( + node) { return this.edges.get(node); }; + return UnweightedGraph; +}()); +var Point = (function() { + function Point(x, y) { + this.x = x ? x : 0; + this.y = y ? y : this.x; + } + return Point; +}()); +var UnweightedGridGraph = (function() { + function UnweightedGridGraph(width, height, allowDiagonalSearch) { + if (allowDiagonalSearch === void 0) { + allowDiagonalSearch = false; + } + this.walls = []; + this._neighbors = new Array(4); + this._width = width; + this._hegiht = height; + this._dirs = allowDiagonalSearch ? UnweightedGridGraph.COMPASS_DIRS + : UnweightedGridGraph.CARDINAL_DIRS; + } + UnweightedGridGraph.prototype.isNodeInBounds = function(node) { + return 0 <= node.x && node.x < this._width && 0 <= node.y && + node.y < this._hegiht; + }; + UnweightedGridGraph.prototype.isNodePassable = function(node) { + return !this.walls.firstOrDefault(function( + wall) { return JSON.stringify(wall) == JSON.stringify(node); }); + }; + UnweightedGridGraph.prototype.getNeighbors = function(node) { + var _this = this; + this._neighbors.length = 0; + this._dirs.forEach(function(dir) { + var next = new Point(node.x + dir.x, node.y + dir.y); + if (_this.isNodeInBounds(next) && _this.isNodePassable(next)) + _this._neighbors.push(next); + }); + return this._neighbors; + }; + UnweightedGridGraph.prototype.search = function( + start, goal) { return BreadthFirstPathfinder.search(this, start, goal); }; + UnweightedGridGraph.CARDINAL_DIRS = + [ new Point(1, 0), new Point(0, -1), new Point(-1, 0), new Point(0, -1) ]; + UnweightedGridGraph.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), + ]; + return UnweightedGridGraph; +}()); +var WeightedGridGraph = (function() { + function WeightedGridGraph(width, height, allowDiagonalSearch) { + if (allowDiagonalSearch === void 0) { + allowDiagonalSearch = false; + } + this.walls = []; + this.weightedNodes = []; + this.defaultWeight = 1; + this.weightedNodeWeight = 5; + this._neighbors = new Array(4); + this._width = width; + this._height = height; + this._dirs = allowDiagonalSearch ? WeightedGridGraph.COMPASS_DIRS + : WeightedGridGraph.CARDINAL_DIRS; + } + WeightedGridGraph.prototype.isNodeInBounds = function(node) { + return 0 <= node.x && node.x < this._width && 0 <= node.y && + node.y < this._height; + }; + WeightedGridGraph.prototype.isNodePassable = function(node) { + return !this.walls.firstOrDefault(function( + wall) { return JSON.stringify(wall) == JSON.stringify(node); }); + }; + WeightedGridGraph.prototype.search = function( + start, goal) { return WeightedPathfinder.search(this, start, goal); }; + WeightedGridGraph.prototype.getNeighbors = function(node) { + var _this = this; + this._neighbors.length = 0; + this._dirs.forEach(function(dir) { + var next = new Point(node.x + dir.x, node.y + dir.y); + if (_this.isNodeInBounds(next) && _this.isNodePassable(next)) + _this._neighbors.push(next); + }); + return this._neighbors; + }; + WeightedGridGraph.prototype.cost = function(from, to) { + return this.weightedNodes.find(function( + t) { return JSON.stringify(t) == JSON.stringify(to); }) + ? this.weightedNodeWeight + : this.defaultWeight; + }; + WeightedGridGraph.CARDINAL_DIRS = + [ new Point(1, 0), new Point(0, -1), new Point(-1, 0), new Point(0, 1) ]; + WeightedGridGraph.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), + ]; + return WeightedGridGraph; +}()); +var WeightedNode = (function(_super) { + __extends(WeightedNode, _super); + function WeightedNode(data) { + var _this = _super.call(this) || this; + _this.data = data; + return _this; + } + return WeightedNode; +}(PriorityQueueNode)); +var WeightedPathfinder = (function() { + function WeightedPathfinder() {} + WeightedPathfinder.search = function(graph, start, goal) { + var _this = this; + var foundPath = false; + var cameFrom = new Map(); + cameFrom.set(start, start); + var costSoFar = new Map(); + var frontier = new PriorityQueue(1000); + frontier.enqueue(new WeightedNode(start), 0); + costSoFar.set(start, 0); + var _loop_4 = function() { + var current = frontier.dequeue(); + if (JSON.stringify(current.data) == JSON.stringify(goal)) { + foundPath = true; + return "break"; + } + graph.getNeighbors(current.data).forEach(function(next) { + var newCost = + costSoFar.get(current.data) + graph.cost(current.data, next); + if (!_this.hasKey(costSoFar, next) || newCost < costSoFar.get(next)) { + costSoFar.set(next, newCost); + var priprity = newCost; + frontier.enqueue(new WeightedNode(next), priprity); + cameFrom.set(next, current.data); + } + }); }; - Component.prototype.onAddedToEntity = function () { - }; - Component.prototype.onRemovedFromEntity = function () { - }; - Component.prototype.onEnabled = function () { - }; - Component.prototype.onDisabled = function () { - }; - Component.prototype.onEntityTransformChanged = function (comp) { - }; - Component.prototype.update = function () { - }; - Component.prototype.debugRender = function () { - }; - Component.prototype.registerComponent = function () { - this.entity.componentBits.set(ComponentTypeManager.getIndexFor(this), false); - this.entity.scene.entityProcessors.onComponentAdded(this.entity); - }; - Component.prototype.deregisterComponent = function () { - this.entity.componentBits.set(ComponentTypeManager.getIndexFor(this)); - this.entity.scene.entityProcessors.onComponentRemoved(this.entity); - }; - return Component; + while (frontier.count > 0) { + var state_3 = _loop_4(); + if (state_3 === "break") + break; + } + return foundPath ? this.recontructPath(cameFrom, start, goal) : null; + }; + WeightedPathfinder.hasKey = function(map, compareKey) { + var iterator = map.keys(); + var r; + while (r = iterator.next(), !r.done) { + if (JSON.stringify(r.value) == JSON.stringify(compareKey)) + return true; + } + return false; + }; + WeightedPathfinder.getKey = function(map, compareKey) { + var iterator = map.keys(); + var valueIterator = map.values(); + var r; + var v; + while (r = iterator.next(), v = valueIterator.next(), !r.done) { + if (JSON.stringify(r.value) == JSON.stringify(compareKey)) + return v.value; + } + return null; + }; + WeightedPathfinder.recontructPath = function(cameFrom, start, goal) { + var path = []; + var current = goal; + path.push(goal); + while (current != start) { + current = this.getKey(cameFrom, current); + path.push(current); + } + path.reverse(); + return path; + }; + return WeightedPathfinder; +}()); +var DebugDefaults = (function() { + function DebugDefaults() {} + DebugDefaults.verletParticle = 0xDC345E; + DebugDefaults.verletConstraintEdge = 0x433E36; + return DebugDefaults; +}()); +var Component = (function(_super) { + __extends(Component, _super); + function Component() { + var _this = _super !== null && _super.apply(this, arguments) || this; + _this._enabled = true; + _this.updateInterval = 1; + return _this; + } + Object.defineProperty(Component.prototype, "enabled", { + get : function() { + return this.entity ? this.entity.enabled && this._enabled : this._enabled; + }, + set : function(value) { this.setEnabled(value); }, + enumerable : true, + configurable : true + }); + Component.prototype.setEnabled = function(isEnabled) { + if (this._enabled != isEnabled) { + this._enabled = isEnabled; + if (this._enabled) { + this.onEnabled(); + } else { + this.onDisabled(); + } + } + return this; + }; + Component.prototype.initialize = function() {}; + Component.prototype.onAddedToEntity = function() {}; + Component.prototype.onRemovedFromEntity = function() {}; + Component.prototype.onEnabled = function() {}; + Component.prototype.onDisabled = function() {}; + Component.prototype.onEntityTransformChanged = function(comp) {}; + Component.prototype.update = function() {}; + Component.prototype.debugRender = function() {}; + Component.prototype.registerComponent = function() { + this.entity.componentBits.set(ComponentTypeManager.getIndexFor(this), + false); + this.entity.scene.entityProcessors.onComponentAdded(this.entity); + }; + Component.prototype.deregisterComponent = function() { + this.entity.componentBits.set(ComponentTypeManager.getIndexFor(this)); + this.entity.scene.entityProcessors.onComponentRemoved(this.entity); + }; + return Component; }(egret.DisplayObjectContainer)); -var Entity = (function (_super) { - __extends(Entity, _super); - function Entity(name) { - var _this = _super.call(this) || this; - _this._position = Vector2.zero; - _this._updateOrder = 0; - _this._enabled = true; - _this._tag = 0; - _this.name = name; - _this.components = new ComponentList(_this); - _this.id = Entity._idGenerator++; - _this.componentBits = new BitSet(); - return _this; +var Entity = (function(_super) { + __extends(Entity, _super); + function Entity(name) { + var _this = _super.call(this) || this; + _this._position = Vector2.zero; + _this._updateOrder = 0; + _this._enabled = true; + _this._tag = 0; + _this.name = name; + _this.components = new ComponentList(_this); + _this.id = Entity._idGenerator++; + _this.componentBits = new BitSet(); + return _this; + } + Object.defineProperty(Entity.prototype, "isDestoryed", { + get : function() { return this._isDestoryed; }, + enumerable : true, + configurable : true + }); + Object.defineProperty(Entity.prototype, "position", { + get : function() { return this._position; }, + set : function(value) { this._position = value; }, + enumerable : true, + configurable : true + }); + Object.defineProperty(Entity.prototype, "scale", { + get : function() { return new Vector2(this.scaleX, this.scaleY); }, + set : function(value) { + this.scaleX = value.x; + this.scaleY = value.y; + }, + enumerable : true, + configurable : true + }); + Object.defineProperty(Entity.prototype, "enabled", { + get : function() { return this._enabled; }, + set : function(value) { this.setEnabled(value); }, + enumerable : true, + configurable : true + }); + Entity.prototype.setEnabled = function(isEnabled) { + if (this._enabled != isEnabled) { + this._enabled = isEnabled; } - Object.defineProperty(Entity.prototype, "isDestoryed", { - get: function () { - return this._isDestoryed; - }, - enumerable: true, - configurable: true - }); - Object.defineProperty(Entity.prototype, "position", { - get: function () { - return this._position; - }, - set: function (value) { - this._position = value; - }, - enumerable: true, - configurable: true - }); - Object.defineProperty(Entity.prototype, "scale", { - get: function () { - return new Vector2(this.scaleX, this.scaleY); - }, - set: function (value) { - this.scaleX = value.x; - this.scaleY = value.y; - }, - enumerable: true, - configurable: true - }); - Object.defineProperty(Entity.prototype, "enabled", { - get: function () { - return this._enabled; - }, - set: function (value) { - this.setEnabled(value); - }, - enumerable: true, - configurable: true - }); - Entity.prototype.setEnabled = function (isEnabled) { - if (this._enabled != isEnabled) { - this._enabled = isEnabled; - } - return this; - }; - Object.defineProperty(Entity.prototype, "tag", { - get: function () { - return this._tag; - }, - set: function (value) { - this.setTag(value); - }, - enumerable: true, - configurable: true - }); - Object.defineProperty(Entity.prototype, "stage", { - get: function () { - if (!this.scene) - return null; - return this.scene.stage; - }, - enumerable: true, - configurable: true - }); - Object.defineProperty(Entity.prototype, "updateOrder", { - get: function () { - return this._updateOrder; - }, - set: function (value) { - this.setUpdateOrder(value); - }, - enumerable: true, - configurable: true - }); - Entity.prototype.roundPosition = function () { - this.position = Vector2Ext.round(this.position); - }; - Entity.prototype.setUpdateOrder = function (updateOrder) { - if (this._updateOrder != updateOrder) { - this._updateOrder = updateOrder; - if (this.scene) { - } - return this; - } - }; - Entity.prototype.setTag = function (tag) { - if (this._tag != tag) { - if (this.scene) { - this.scene.entities.removeFromTagList(this); - } - this._tag = tag; - if (this.scene) { - this.scene.entities.addToTagList(this); - } - } - return this; - }; - Entity.prototype.attachToScene = function (newScene) { - this.scene = newScene; - newScene.entities.add(this); - this.components.registerAllComponents(); - for (var i = 0; i < this.numChildren; i++) { - this.getChildAt(i).entity.attachToScene(newScene); - } - }; - Entity.prototype.detachFromScene = function () { - this.scene.entities.remove(this); - this.components.deregisterAllComponents(); - for (var i = 0; i < this.numChildren; i++) - this.getChildAt(i).entity.detachFromScene(); - }; - Entity.prototype.addComponent = function (component) { - component.entity = this; - this.components.add(component); - this.addChild(component); - component.initialize(); - return component; - }; - Entity.prototype.hasComponent = function (type) { - return this.components.getComponent(type, false) != null; - }; - Entity.prototype.getOrCreateComponent = function (type) { - var comp = this.components.getComponent(type, true); - if (!comp) { - comp = this.addComponent(type); - } - return comp; - }; - Entity.prototype.getComponent = function (type) { - return this.components.getComponent(type, false); - }; - Entity.prototype.getComponents = function (typeName, componentList) { - return this.components.getComponents(typeName, componentList); - }; - Entity.prototype.removeComponentForType = function (type) { - var comp = this.getComponent(type); - if (comp) { - this.removeComponent(comp); - return true; - } - return false; - }; - Entity.prototype.removeComponent = function (component) { - this.components.remove(component); - }; - Entity.prototype.removeAllComponents = function () { - for (var i = 0; i < this.components.count; i++) { - this.removeComponent(this.components.buffer[i]); - } - }; - Entity.prototype.update = function () { - this.components.update(); - }; - Entity.prototype.onAddedToScene = function () { - }; - Entity.prototype.onRemovedFromScene = function () { - if (this._isDestoryed) - this.components.removeAllComponents(); - }; - Entity.prototype.onTransformChanged = function (comp) { - this.components.onEntityTransformChanged(comp); - }; - Entity.prototype.destroy = function () { - this._isDestoryed = true; - this.scene.entities.remove(this); - this.removeChildren(); - for (var i = this.numChildren - 1; i >= 0; i--) { - var child = this.getChildAt(i); - child.entity.destroy(); - } - }; - return Entity; -}(egret.DisplayObjectContainer)); -var Scene = (function (_super) { - __extends(Scene, _super); - function Scene() { - var _this = _super.call(this) || this; - _this.enablePostProcessing = true; - _this._renderers = []; - _this._postProcessors = []; - _this.entityProcessors = new EntityProcessorList(); - _this.renderableComponents = new RenderableComponentList(); - _this.entities = new EntityList(_this); - _this.content = new ContentManager(); - _this.width = SceneManager.stage.stageWidth; - _this.height = SceneManager.stage.stageHeight; - _this.addEventListener(egret.Event.ACTIVATE, _this.onActive, _this); - _this.addEventListener(egret.Event.DEACTIVATE, _this.onDeactive, _this); - return _this; - } - Scene.prototype.createEntity = function (name) { - var entity = new Entity(name); - entity.position = new Vector2(0, 0); - return this.addEntity(entity); - }; - Scene.prototype.addEntity = function (entity) { - this.entities.add(entity); - entity.scene = this; - this.addChild(entity); - for (var i = 0; i < entity.numChildren; i++) - this.addEntity(entity.getChildAt(i).entity); - return entity; - }; - Scene.prototype.destroyAllEntities = function () { - for (var i = 0; i < this.entities.count; i++) { - this.entities.buffer[i].destroy(); - } - }; - Scene.prototype.findEntity = function (name) { - return this.entities.findEntity(name); - }; - Scene.prototype.addEntityProcessor = function (processor) { - processor.scene = this; - this.entityProcessors.add(processor); - return processor; - }; - Scene.prototype.removeEntityProcessor = function (processor) { - this.entityProcessors.remove(processor); - }; - Scene.prototype.getEntityProcessor = function () { - return this.entityProcessors.getProcessor(); - }; - Scene.prototype.addRenderer = function (renderer) { - this._renderers.push(renderer); - this._renderers.sort(); - renderer.onAddedToScene(this); - return renderer; - }; - Scene.prototype.getRenderer = function (type) { - for (var i = 0; i < this._renderers.length; i++) { - if (this._renderers[i] instanceof type) - return this._renderers[i]; - } + return this; + }; + Object.defineProperty(Entity.prototype, "tag", { + get : function() { return this._tag; }, + set : function(value) { this.setTag(value); }, + enumerable : true, + configurable : true + }); + Object.defineProperty(Entity.prototype, "stage", { + get : function() { + if (!this.scene) return null; - }; - Scene.prototype.removeRenderer = function (renderer) { - this._renderers.remove(renderer); - renderer.unload(); - }; - Scene.prototype.begin = function () { - if (SceneManager.sceneTransition) { - SceneManager.stage.addChildAt(this, SceneManager.stage.numChildren - 1); - } - else { - SceneManager.stage.addChild(this); - } - if (this._renderers.length == 0) { - this.addRenderer(new DefaultRenderer()); - console.warn("场景开始时没有渲染器 自动添加DefaultRenderer以保证能够正常渲染"); - } - this.camera = this.createEntity("camera").getOrCreateComponent(new Camera()); - Physics.reset(); - if (this.entityProcessors) - this.entityProcessors.begin(); - this.camera.onSceneSizeChanged(this.stage.stageWidth, this.stage.stageHeight); - this._didSceneBegin = true; - this.onStart(); - }; - Scene.prototype.end = function () { - this._didSceneBegin = false; - this.removeEventListener(egret.Event.DEACTIVATE, this.onDeactive, this); - this.removeEventListener(egret.Event.ACTIVATE, this.onActive, this); - for (var i = 0; i < this._renderers.length; i++) { - this._renderers[i].unload(); - } - for (var i = 0; i < this._postProcessors.length; i++) { - this._postProcessors[i].unload(); - } - this.entities.removeAllEntities(); - this.removeChildren(); - Physics.clear(); - this.camera = null; - this.content.dispose(); - if (this.entityProcessors) - this.entityProcessors.end(); - this.unload(); - }; - Scene.prototype.onStart = function () { - return __awaiter(this, void 0, void 0, function () { - return __generator(this, function (_a) { - return [2]; - }); - }); - }; - Scene.prototype.onActive = function () { - }; - Scene.prototype.onDeactive = function () { - }; - Scene.prototype.unload = function () { }; - Scene.prototype.update = function () { - this.entities.updateLists(); - if (this.entityProcessors) - this.entityProcessors.update(); - this.entities.update(); - if (this.entityProcessors) - this.entityProcessors.lateUpdate(); - this.renderableComponents.updateList(); - }; - Scene.prototype.postRender = function () { - var enabledCounter = 0; - if (this.enablePostProcessing) { - for (var i = 0; i < this._postProcessors.length; i++) { - if (this._postProcessors[i].enable) { - var isEven = MathHelper.isEven(enabledCounter); - enabledCounter++; - this._postProcessors[i].process(); - } - } - } - }; - Scene.prototype.render = function () { - for (var i = 0; i < this._renderers.length; i++) { - this._renderers[i].render(this); - } - }; - Scene.prototype.addPostProcessor = function (postProcessor) { - this._postProcessors.push(postProcessor); - this._postProcessors.sort(); - postProcessor.onAddedToScene(this); - if (this._didSceneBegin) { - postProcessor.onSceneBackBufferSizeChanged(this.stage.stageWidth, this.stage.stageHeight); - } - return postProcessor; - }; - return Scene; -}(egret.DisplayObjectContainer)); -var SceneManager = (function () { - function SceneManager(stage) { - stage.addEventListener(egret.Event.ENTER_FRAME, SceneManager.update, this); - SceneManager.stage = stage; - SceneManager.initialize(stage); + return this.scene.stage; + }, + enumerable : true, + configurable : true + }); + Object.defineProperty(Entity.prototype, "updateOrder", { + get : function() { return this._updateOrder; }, + set : function(value) { this.setUpdateOrder(value); }, + enumerable : true, + configurable : true + }); + Entity.prototype.roundPosition = + function() { this.position = Vector2Ext.round(this.position); }; + Entity.prototype.setUpdateOrder = function(updateOrder) { + if (this._updateOrder != updateOrder) { + this._updateOrder = updateOrder; + if (this.scene) { + } + return this; } - Object.defineProperty(SceneManager, "scene", { - get: function () { - return this._scene; - }, - set: function (value) { - if (!value) - throw new Error("场景不能为空"); - if (this._scene == null) { - this._scene = value; - this._scene.begin(); - } - else { - this._nextScene = value; - } - }, - enumerable: true, - configurable: true + }; + Entity.prototype.setTag = function(tag) { + if (this._tag != tag) { + if (this.scene) { + this.scene.entities.removeFromTagList(this); + } + this._tag = tag; + if (this.scene) { + this.scene.entities.addToTagList(this); + } + } + return this; + }; + Entity.prototype.attachToScene = function(newScene) { + this.scene = newScene; + newScene.entities.add(this); + this.components.registerAllComponents(); + for (var i = 0; i < this.numChildren; i++) { + this.getChildAt(i).entity.attachToScene(newScene); + } + }; + Entity.prototype.detachFromScene = function() { + this.scene.entities.remove(this); + this.components.deregisterAllComponents(); + for (var i = 0; i < this.numChildren; i++) + this.getChildAt(i).entity.detachFromScene(); + }; + Entity.prototype.addComponent = function(component) { + component.entity = this; + this.components.add(component); + this.addChild(component); + component.initialize(); + return component; + }; + Entity.prototype.hasComponent = function( + type) { return this.components.getComponent(type, false) != null; }; + Entity.prototype.getOrCreateComponent = function(type) { + var comp = this.components.getComponent(type, true); + if (!comp) { + comp = this.addComponent(type); + } + return comp; + }; + Entity.prototype.getComponent = function( + type) { return this.components.getComponent(type, false); }; + Entity.prototype.getComponents = function(typeName, componentList) { + return this.components.getComponents(typeName, componentList); + }; + Entity.prototype.removeComponentForType = function(type) { + var comp = this.getComponent(type); + if (comp) { + this.removeComponent(comp); + return true; + } + return false; + }; + Entity.prototype.removeComponent = function( + component) { this.components.remove(component); }; + Entity.prototype.removeAllComponents = function() { + for (var i = 0; i < this.components.count; i++) { + this.removeComponent(this.components.buffer[i]); + } + }; + Entity.prototype.update = function() { this.components.update(); }; + Entity.prototype.onAddedToScene = function() {}; + Entity.prototype.onRemovedFromScene = function() { + if (this._isDestoryed) + this.components.removeAllComponents(); + }; + Entity.prototype.onTransformChanged = function( + comp) { this.components.onEntityTransformChanged(comp); }; + Entity.prototype.destroy = function() { + this._isDestoryed = true; + this.scene.entities.remove(this); + this.removeChildren(); + for (var i = this.numChildren - 1; i >= 0; i--) { + var child = this.getChildAt(i); + child.entity.destroy(); + } + }; + return Entity; +}(egret.DisplayObjectContainer)); +var Scene = (function(_super) { + __extends(Scene, _super); + function Scene() { + var _this = _super.call(this) || this; + _this.enablePostProcessing = true; + _this._renderers = []; + _this._postProcessors = []; + _this.entityProcessors = new EntityProcessorList(); + _this.renderableComponents = new RenderableComponentList(); + _this.entities = new EntityList(_this); + _this.content = new ContentManager(); + _this.width = SceneManager.stage.stageWidth; + _this.height = SceneManager.stage.stageHeight; + _this.addEventListener(egret.Event.ACTIVATE, _this.onActive, _this); + _this.addEventListener(egret.Event.DEACTIVATE, _this.onDeactive, _this); + return _this; + } + Scene.prototype.createEntity = function(name) { + var entity = new Entity(name); + entity.position = new Vector2(0, 0); + return this.addEntity(entity); + }; + Scene.prototype.addEntity = function(entity) { + this.entities.add(entity); + entity.scene = this; + this.addChild(entity); + for (var i = 0; i < entity.numChildren; i++) + this.addEntity(entity.getChildAt(i).entity); + return entity; + }; + Scene.prototype.destroyAllEntities = function() { + for (var i = 0; i < this.entities.count; i++) { + this.entities.buffer[i].destroy(); + } + }; + Scene.prototype.findEntity = function( + name) { return this.entities.findEntity(name); }; + Scene.prototype.addEntityProcessor = function(processor) { + processor.scene = this; + this.entityProcessors.add(processor); + return processor; + }; + Scene.prototype.removeEntityProcessor = function( + processor) { this.entityProcessors.remove(processor); }; + Scene.prototype.getEntityProcessor = + function() { return this.entityProcessors.getProcessor(); }; + Scene.prototype.addRenderer = function(renderer) { + this._renderers.push(renderer); + this._renderers.sort(); + renderer.onAddedToScene(this); + return renderer; + }; + Scene.prototype.getRenderer = function(type) { + for (var i = 0; i < this._renderers.length; i++) { + if (this._renderers[i] instanceof type) + return this._renderers[i]; + } + return null; + }; + Scene.prototype.removeRenderer = function(renderer) { + this._renderers.remove(renderer); + renderer.unload(); + }; + Scene.prototype.begin = function() { + if (SceneManager.sceneTransition) { + SceneManager.stage.addChildAt(this, SceneManager.stage.numChildren - 1); + } else { + SceneManager.stage.addChild(this); + } + if (this._renderers.length == 0) { + this.addRenderer(new DefaultRenderer()); + console.warn( + "场景开始时没有渲染器 自动添加DefaultRenderer以保证能够正常渲染"); + } + this.camera = + this.createEntity("camera").getOrCreateComponent(new Camera()); + Physics.reset(); + if (this.entityProcessors) + this.entityProcessors.begin(); + this.camera.onSceneSizeChanged(this.stage.stageWidth, + this.stage.stageHeight); + this._didSceneBegin = true; + this.onStart(); + }; + Scene.prototype.end = function() { + this._didSceneBegin = false; + this.removeEventListener(egret.Event.DEACTIVATE, this.onDeactive, this); + this.removeEventListener(egret.Event.ACTIVATE, this.onActive, this); + for (var i = 0; i < this._renderers.length; i++) { + this._renderers[i].unload(); + } + for (var i = 0; i < this._postProcessors.length; i++) { + this._postProcessors[i].unload(); + } + this.entities.removeAllEntities(); + this.removeChildren(); + Physics.clear(); + this.camera = null; + this.content.dispose(); + if (this.entityProcessors) + this.entityProcessors.end(); + this.unload(); + }; + Scene.prototype.onStart = function() { + return __awaiter(this, void 0, void 0, function() { + return __generator(this, function(_a) { return [ 2 ]; }); }); - SceneManager.initialize = function (stage) { - Input.initialize(stage); - }; - SceneManager.update = function () { - Time.update(egret.getTimer()); - if (SceneManager._scene) { - for (var i = GlobalManager.globalManagers.length - 1; i >= 0; i--) { - if (GlobalManager.globalManagers[i].enabled) - GlobalManager.globalManagers[i].update(); - } - if (!SceneManager.sceneTransition || - (SceneManager.sceneTransition && (!SceneManager.sceneTransition.loadsNewScene || SceneManager.sceneTransition.isNewSceneLoaded))) { - SceneManager._scene.update(); - } - if (SceneManager._nextScene) { - SceneManager._scene.end(); - for (var i = 0; i < SceneManager._scene.entities.buffer.length; i++) { - var entity = SceneManager._scene.entities.buffer[i]; - entity.destroy(); - } - SceneManager._scene = SceneManager._nextScene; - SceneManager._nextScene = null; - SceneManager._scene.begin(); - } + }; + Scene.prototype.onActive = function() {}; + Scene.prototype.onDeactive = function() {}; + Scene.prototype.unload = function() {}; + Scene.prototype.update = function() { + this.entities.updateLists(); + if (this.entityProcessors) + this.entityProcessors.update(); + this.entities.update(); + if (this.entityProcessors) + this.entityProcessors.lateUpdate(); + this.renderableComponents.updateList(); + }; + Scene.prototype.postRender = function() { + var enabledCounter = 0; + if (this.enablePostProcessing) { + for (var i = 0; i < this._postProcessors.length; i++) { + if (this._postProcessors[i].enable) { + var isEven = MathHelper.isEven(enabledCounter); + enabledCounter++; + this._postProcessors[i].process(); } - SceneManager.render(); - }; - SceneManager.render = function () { - if (this.sceneTransition) { - this.sceneTransition.preRender(); - if (this._scene && !this.sceneTransition.hasPreviousSceneRender) { - this._scene.render(); - this._scene.postRender(); - this.sceneTransition.onBeginTransition(); - } - else if (this.sceneTransition) { - if (this._scene && this.sceneTransition.isNewSceneLoaded) { - this._scene.render(); - this._scene.postRender(); - } - this.sceneTransition.render(); - } + } + } + }; + Scene.prototype.render = function() { + for (var i = 0; i < this._renderers.length; i++) { + this._renderers[i].render(this); + } + }; + Scene.prototype.addPostProcessor = function(postProcessor) { + this._postProcessors.push(postProcessor); + this._postProcessors.sort(); + postProcessor.onAddedToScene(this); + if (this._didSceneBegin) { + postProcessor.onSceneBackBufferSizeChanged(this.stage.stageWidth, + this.stage.stageHeight); + } + return postProcessor; + }; + return Scene; +}(egret.DisplayObjectContainer)); +var SceneManager = (function() { + function SceneManager(stage) { + stage.addEventListener(egret.Event.ENTER_FRAME, SceneManager.update, this); + SceneManager.stage = stage; + SceneManager.initialize(stage); + } + Object.defineProperty(SceneManager, "scene", { + get : function() { return this._scene; }, + set : function(value) { + if (!value) + throw new Error("场景不能为空"); + if (this._scene == null) { + this._scene = value; + this._scene.begin(); + } else { + this._nextScene = value; + } + }, + enumerable : true, + configurable : true + }); + SceneManager.initialize = function(stage) { Input.initialize(stage); }; + SceneManager.update = function() { + Time.update(egret.getTimer()); + if (SceneManager._scene) { + for (var i = GlobalManager.globalManagers.length - 1; i >= 0; i--) { + if (GlobalManager.globalManagers[i].enabled) + GlobalManager.globalManagers[i].update(); + } + if (!SceneManager.sceneTransition || + (SceneManager.sceneTransition && + (!SceneManager.sceneTransition.loadsNewScene || + SceneManager.sceneTransition.isNewSceneLoaded))) { + SceneManager._scene.update(); + } + if (SceneManager._nextScene) { + SceneManager._scene.end(); + for (var i = 0; i < SceneManager._scene.entities.buffer.length; i++) { + var entity = SceneManager._scene.entities.buffer[i]; + entity.destroy(); } - else if (this._scene) { - this._scene.render(); - this._scene.postRender(); + SceneManager._scene = SceneManager._nextScene; + SceneManager._nextScene = null; + SceneManager._scene.begin(); + } + } + SceneManager.render(); + }; + SceneManager.render = function() { + if (this.sceneTransition) { + this.sceneTransition.preRender(); + if (this._scene && !this.sceneTransition.hasPreviousSceneRender) { + this._scene.render(); + this._scene.postRender(); + this.sceneTransition.onBeginTransition(); + } else if (this.sceneTransition) { + if (this._scene && this.sceneTransition.isNewSceneLoaded) { + this._scene.render(); + this._scene.postRender(); } - }; - SceneManager.startSceneTransition = function (sceneTransition) { - if (this.sceneTransition) { - console.warn("在前一个场景完成之前,不能开始一个新的场景转换。"); - return; - } - this.sceneTransition = sceneTransition; - return sceneTransition; - }; - return SceneManager; + this.sceneTransition.render(); + } + } else if (this._scene) { + this._scene.render(); + this._scene.postRender(); + } + }; + SceneManager.startSceneTransition = function(sceneTransition) { + if (this.sceneTransition) { + console.warn("在前一个场景完成之前,不能开始一个新的场景转换。"); + return; + } + this.sceneTransition = sceneTransition; + return sceneTransition; + }; + return SceneManager; }()); var DirtyType; -(function (DirtyType) { - DirtyType[DirtyType["clean"] = 0] = "clean"; - DirtyType[DirtyType["positionDirty"] = 1] = "positionDirty"; - DirtyType[DirtyType["scaleDirty"] = 2] = "scaleDirty"; - DirtyType[DirtyType["rotationDirty"] = 3] = "rotationDirty"; +(function(DirtyType) { +DirtyType[DirtyType["clean"] = 0] = "clean"; +DirtyType[DirtyType["positionDirty"] = 1] = "positionDirty"; +DirtyType[DirtyType["scaleDirty"] = 2] = "scaleDirty"; +DirtyType[DirtyType["rotationDirty"] = 3] = "rotationDirty"; })(DirtyType || (DirtyType = {})); var ComponentTransform; -(function (ComponentTransform) { - ComponentTransform[ComponentTransform["position"] = 0] = "position"; - ComponentTransform[ComponentTransform["scale"] = 1] = "scale"; - ComponentTransform[ComponentTransform["rotation"] = 2] = "rotation"; +(function(ComponentTransform) { +ComponentTransform[ComponentTransform["position"] = 0] = "position"; +ComponentTransform[ComponentTransform["scale"] = 1] = "scale"; +ComponentTransform[ComponentTransform["rotation"] = 2] = "rotation"; })(ComponentTransform || (ComponentTransform = {})); -var Transform = (function () { - function Transform(entity) { - this._localRotation = 0; - this._worldTransform = Matrix2D.identity; - this._worldToLocalTransform = Matrix2D.identity; - this._worldInverseTransform = Matrix2D.identity; - this._rotation = 0; - this.entity = entity; - this._scale = this._localScale = Vector2.one; - this._children = []; - } - Object.defineProperty(Transform.prototype, "childCount", { - get: function () { - return this._children.length; - }, - enumerable: true, - configurable: true - }); - Transform.prototype.getChild = function (index) { - return this._children[index]; - }; - Object.defineProperty(Transform.prototype, "worldInverseTransform", { - get: function () { - this.updateTransform(); - if (this._worldInverseDirty) { - this._worldInverseTransform = Matrix2D.invert(this._worldTransform, this._worldInverseTransform); - this._worldInverseDirty = false; - } - return this._worldInverseTransform; - }, - enumerable: true, - configurable: true - }); - Object.defineProperty(Transform.prototype, "localToWorldTransform", { - get: function () { - this.updateTransform(); - return this._worldTransform; - }, - enumerable: true, - configurable: true - }); - Object.defineProperty(Transform.prototype, "worldToLocalTransform", { - get: function () { - if (this._worldToLocalDirty) { - if (!this.parent) { - this._worldInverseTransform = new Matrix2D(); - } - else { - this.parent.updateTransform(); - this._worldToLocalTransform = Matrix2D.invert(this.parent._worldTransform, this._worldToLocalTransform); - } - this._worldToLocalDirty = false; - } - return this._worldToLocalTransform; - }, - enumerable: true, - configurable: true - }); - Object.defineProperty(Transform.prototype, "parent", { - get: function () { - return this._parent; - }, - set: function (value) { - this.setParent(value); - }, - enumerable: true, - configurable: true - }); - Transform.prototype.setParent = function (parent) { - if (this._parent == parent) - return this; - if (this._parent) - this._parent._children.remove(this); - if (parent) - parent._children.push(this); - this._parent = parent; - return this; - }; - Object.defineProperty(Transform.prototype, "rotation", { - get: function () { - this.updateTransform(); - return this._rotation; - }, - set: function (value) { - this.setRotation(value); - }, - enumerable: true, - configurable: true - }); - Object.defineProperty(Transform.prototype, "localRotation", { - get: function () { - this.updateTransform(); - return this._localRotation; - }, - set: function (value) { - this.setLocalRotation(value); - }, - enumerable: true, - configurable: true - }); - Object.defineProperty(Transform.prototype, "position", { - get: function () { - this.updateTransform(); - if (this._positionDirty) { - if (!this.parent) { - this._position = this._localPosition; - } - else { - this.parent.updateTransform(); - this._position = Vector2Ext.transformR(this._localPosition, this.parent._worldTransform); - } - this._positionDirty = false; - } - return this._position; - }, - set: function (value) { - this.setPosition(value); - }, - enumerable: true, - configurable: true - }); - Object.defineProperty(Transform.prototype, "localPosition", { - get: function () { - this.updateTransform(); - return this._localPosition; - }, - set: function (value) { - this.setLocalPosition(value); - }, - enumerable: true, - configurable: true - }); - Object.defineProperty(Transform.prototype, "scale", { - get: function () { - this.updateTransform(); - return this._scale; - }, - set: function (value) { - this.setScale(value); - }, - enumerable: true, - configurable: true - }); - Object.defineProperty(Transform.prototype, "localScale", { - get: function () { - this.updateTransform(); - return this._localScale; - }, - set: function (value) { - this.setLocalScale(value); - }, - enumerable: true, - configurable: true - }); - Object.defineProperty(Transform.prototype, "rotationDegrees", { - get: function () { - return MathHelper.toDegrees(this._rotation); - }, - set: function (value) { - this.setRotation(MathHelper.toRadians(value)); - }, - enumerable: true, - configurable: true - }); - Object.defineProperty(Transform.prototype, "localRotationDegrees", { - get: function () { - return MathHelper.toDegrees(this._localRotation); - }, - set: function (value) { - this.localRotation = MathHelper.toRadians(value); - }, - enumerable: true, - configurable: true - }); - Transform.prototype.setLocalScale = function (scale) { - this._localScale = scale; - this._localDirty = this._positionDirty = this._localScaleDirty = true; - this.setDirty(DirtyType.scaleDirty); - return this; - }; - Transform.prototype.setScale = function (scale) { - this._scale = scale; - if (this.parent) { - this.localScale = Vector2.divide(scale, this.parent._scale); +var Transform = (function() { + function Transform(entity) { + this._localRotation = 0; + this._worldTransform = Matrix2D.identity; + this._worldToLocalTransform = Matrix2D.identity; + this._worldInverseTransform = Matrix2D.identity; + this._rotation = 0; + this.entity = entity; + this._scale = this._localScale = Vector2.one; + this._children = []; + } + Object.defineProperty(Transform.prototype, "childCount", { + get : function() { return this._children.length; }, + enumerable : true, + configurable : true + }); + Transform.prototype.getChild = function( + index) { return this._children[index]; }; + Object.defineProperty(Transform.prototype, "worldInverseTransform", { + get : function() { + this.updateTransform(); + if (this._worldInverseDirty) { + this._worldInverseTransform = + Matrix2D.invert(this._worldTransform, this._worldInverseTransform); + this._worldInverseDirty = false; + } + return this._worldInverseTransform; + }, + enumerable : true, + configurable : true + }); + Object.defineProperty(Transform.prototype, "localToWorldTransform", { + get : function() { + this.updateTransform(); + return this._worldTransform; + }, + enumerable : true, + configurable : true + }); + Object.defineProperty(Transform.prototype, "worldToLocalTransform", { + get : function() { + if (this._worldToLocalDirty) { + if (!this.parent) { + this._worldInverseTransform = new Matrix2D(); + } else { + this.parent.updateTransform(); + this._worldToLocalTransform = Matrix2D.invert( + this.parent._worldTransform, this._worldToLocalTransform); } - else { - this.localScale = scale; - } - return this; - }; - Transform.prototype.setLocalRotationDegrees = function (degrees) { - return this.setLocalRotation(MathHelper.toRadians(degrees)); - }; - Transform.prototype.setLocalRotation = function (radians) { - this._localRotation = radians; - this._localDirty = this._positionDirty = this._localPositionDirty = this._localRotationDirty = this._localScaleDirty = true; - this.setDirty(DirtyType.rotationDirty); - return this; - }; - Transform.prototype.setRotation = function (radians) { - this._rotation = radians; - if (this.parent) { - this.localRotation = this.parent.rotation + radians; - } - else { - this.localRotation = radians; - } - return this; - }; - Transform.prototype.setRotationDegrees = function (degrees) { - return this.setRotation(MathHelper.toRadians(degrees)); - }; - Transform.prototype.setLocalPosition = function (localPosition) { - if (localPosition == this._localPosition) - return this; - this._localPosition = localPosition; - this._localDirty = this._positionDirty = this._localPositionDirty = this._localRotationDirty = this._localScaleDirty = true; - this.setDirty(DirtyType.positionDirty); - return this; - }; - Transform.prototype.setPosition = function (position) { - if (position == this._position) - return this; - this._position = position; - if (this.parent) { - this.localPosition = Vector2.transform(this._position, this._worldToLocalTransform); - } - else { - this.localPosition = position; + this._worldToLocalDirty = false; + } + return this._worldToLocalTransform; + }, + enumerable : true, + configurable : true + }); + Object.defineProperty(Transform.prototype, "parent", { + get : function() { return this._parent; }, + set : function(value) { this.setParent(value); }, + enumerable : true, + configurable : true + }); + Transform.prototype.setParent = function(parent) { + if (this._parent == parent) + return this; + if (this._parent) + this._parent._children.remove(this); + if (parent) + parent._children.push(this); + this._parent = parent; + return this; + }; + Object.defineProperty(Transform.prototype, "rotation", { + get : function() { + this.updateTransform(); + return this._rotation; + }, + set : function(value) { this.setRotation(value); }, + enumerable : true, + configurable : true + }); + Object.defineProperty(Transform.prototype, "localRotation", { + get : function() { + this.updateTransform(); + return this._localRotation; + }, + set : function(value) { this.setLocalRotation(value); }, + enumerable : true, + configurable : true + }); + Object.defineProperty(Transform.prototype, "position", { + get : function() { + this.updateTransform(); + if (this._positionDirty) { + if (!this.parent) { + this._position = this._localPosition; + } else { + this.parent.updateTransform(); + this._position = Vector2Ext.transformR(this._localPosition, + this.parent._worldTransform); } this._positionDirty = false; - return this; - }; - Transform.prototype.setDirty = function (dirtyFlagType) { - if ((this._hierachyDirty & dirtyFlagType) == 0) { - this._hierachyDirty |= dirtyFlagType; - switch (dirtyFlagType) { - 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); - break; - } - if (this._children == null) - this._children = []; - for (var i = 0; i < this._children.length; i++) { - this._children[i].setDirty(dirtyFlagType); - } - } - }; - Transform.prototype.roundPosition = function () { - this.position = this._position.round(); - }; - Transform.prototype.updateTransform = function () { - if (this._hierachyDirty != DirtyType.clean) { - if (this.parent) - this.parent.updateTransform(); - if (this._localDirty) { - if (this._localPositionDirty) { - this._translationMatrix = Matrix2D.createTranslation(this._localPosition.x, this._localPosition.y); - this._localPositionDirty = false; - } - if (this._localRotationDirty) { - this._rotationMatrix = Matrix2D.createRotation(this._localRotation); - this._localRotationDirty = false; - } - if (this._localScaleDirty) { - this._scaleMatrix = Matrix2D.createScale(this._localScale.x, this._localScale.y); - this._localScaleDirty = false; - } - this._localTransform = Matrix2D.multiply(this._scaleMatrix, this._rotationMatrix); - this._localTransform = Matrix2D.multiply(this._localTransform, this._translationMatrix); - if (!this.parent) { - this._worldTransform = this._localTransform; - this._rotation = this._localRotation; - this._scale = this._localScale; - this._worldInverseDirty = true; - } - this._localDirty = false; - } - if (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 = true; - } - this._worldToLocalDirty = true; - this._positionDirty = true; - this._hierachyDirty = DirtyType.clean; - } - }; - return Transform; -}()); -var Camera = (function (_super) { - __extends(Camera, _super); - function Camera() { - var _this = _super.call(this) || this; - _this._origin = Vector2.zero; - _this._minimumZoom = 0.3; - _this._maximumZoom = 3; - _this.followLerp = 0.1; - _this.deadzone = new Rectangle(); - _this.focusOffset = new Vector2(); - _this.mapLockEnabled = false; - _this.mapSize = new Vector2(); - _this._worldSpaceDeadZone = new Rectangle(); - _this._desiredPositionDelta = new Vector2(); - _this.cameraStyle = CameraStyle.lockOn; - _this.width = SceneManager.stage.stageWidth; - _this.height = SceneManager.stage.stageHeight; - _this.setZoom(0); - return _this; + } + return this._position; + }, + set : function(value) { this.setPosition(value); }, + enumerable : true, + configurable : true + }); + Object.defineProperty(Transform.prototype, "localPosition", { + get : function() { + this.updateTransform(); + return this._localPosition; + }, + set : function(value) { this.setLocalPosition(value); }, + enumerable : true, + configurable : true + }); + Object.defineProperty(Transform.prototype, "scale", { + get : function() { + this.updateTransform(); + return this._scale; + }, + set : function(value) { this.setScale(value); }, + enumerable : true, + configurable : true + }); + Object.defineProperty(Transform.prototype, "localScale", { + get : function() { + this.updateTransform(); + return this._localScale; + }, + set : function(value) { this.setLocalScale(value); }, + enumerable : true, + configurable : true + }); + Object.defineProperty(Transform.prototype, "rotationDegrees", { + get : function() { return MathHelper.toDegrees(this._rotation); }, + set : function(value) { this.setRotation(MathHelper.toRadians(value)); }, + enumerable : true, + configurable : true + }); + Object.defineProperty(Transform.prototype, "localRotationDegrees", { + get : function() { return MathHelper.toDegrees(this._localRotation); }, + set : function(value) { this.localRotation = MathHelper.toRadians(value); }, + enumerable : true, + configurable : true + }); + Transform.prototype.setLocalScale = function(scale) { + this._localScale = scale; + this._localDirty = this._positionDirty = this._localScaleDirty = true; + this.setDirty(DirtyType.scaleDirty); + return this; + }; + Transform.prototype.setScale = function(scale) { + this._scale = scale; + if (this.parent) { + this.localScale = Vector2.divide(scale, this.parent._scale); + } else { + this.localScale = scale; } - Object.defineProperty(Camera.prototype, "zoom", { - get: function () { - if (this._zoom == 0) - return 1; - if (this._zoom < 1) - return MathHelper.map(this._zoom, this._minimumZoom, 1, -1, 0); - return MathHelper.map(this._zoom, 1, this._maximumZoom, 0, 1); - }, - set: function (value) { - this.setZoom(value); - }, - enumerable: true, - configurable: true - }); - Object.defineProperty(Camera.prototype, "minimumZoom", { - get: function () { - return this._minimumZoom; - }, - set: function (value) { - this.setMinimumZoom(value); - }, - enumerable: true, - configurable: true - }); - Object.defineProperty(Camera.prototype, "maximumZoom", { - get: function () { - return this._maximumZoom; - }, - set: function (value) { - this.setMaximumZoom(value); - }, - enumerable: true, - configurable: true - }); - Object.defineProperty(Camera.prototype, "origin", { - get: function () { - return this._origin; - }, - set: function (value) { - if (this._origin != value) { - this._origin = value; - } - }, - enumerable: true, - configurable: true - }); - Object.defineProperty(Camera.prototype, "position", { - get: function () { - return this.entity.position; - }, - set: function (value) { - this.entity.position = value; - }, - enumerable: true, - configurable: true - }); - Camera.prototype.onSceneSizeChanged = function (newWidth, newHeight) { - var oldOrigin = this._origin; - this.origin = new Vector2(newWidth / 2, newHeight / 2); - this.entity.position = Vector2.add(this.entity.position, Vector2.subtract(this._origin, oldOrigin)); - }; - Camera.prototype.setMinimumZoom = function (minZoom) { - if (this._zoom < minZoom) - this._zoom = this.minimumZoom; - this._minimumZoom = minZoom; - return this; - }; - Camera.prototype.setMaximumZoom = function (maxZoom) { - if (this._zoom > maxZoom) - this._zoom = maxZoom; - this._maximumZoom = maxZoom; - return this; - }; - Camera.prototype.setZoom = function (zoom) { - var newZoom = MathHelper.clamp(zoom, -1, 1); - if (newZoom == 0) { - this._zoom = 1; + return this; + }; + Transform.prototype.setLocalRotationDegrees = function( + degrees) { return this.setLocalRotation(MathHelper.toRadians(degrees)); }; + Transform.prototype.setLocalRotation = function(radians) { + this._localRotation = radians; + this._localDirty = this._positionDirty = this._localPositionDirty = + this._localRotationDirty = this._localScaleDirty = true; + this.setDirty(DirtyType.rotationDirty); + return this; + }; + Transform.prototype.setRotation = function(radians) { + this._rotation = radians; + if (this.parent) { + this.localRotation = this.parent.rotation + radians; + } else { + this.localRotation = radians; + } + return this; + }; + Transform.prototype.setRotationDegrees = function( + degrees) { return this.setRotation(MathHelper.toRadians(degrees)); }; + Transform.prototype.setLocalPosition = function(localPosition) { + if (localPosition == this._localPosition) + return this; + this._localPosition = localPosition; + this._localDirty = this._positionDirty = this._localPositionDirty = + this._localRotationDirty = this._localScaleDirty = true; + this.setDirty(DirtyType.positionDirty); + return this; + }; + Transform.prototype.setPosition = function(position) { + if (position == this._position) + return this; + this._position = position; + if (this.parent) { + this.localPosition = + Vector2.transform(this._position, this._worldToLocalTransform); + } else { + this.localPosition = position; + } + this._positionDirty = false; + return this; + }; + Transform.prototype.setDirty = function(dirtyFlagType) { + if ((this._hierachyDirty & dirtyFlagType) == 0) { + this._hierachyDirty |= dirtyFlagType; + switch (dirtyFlagType) { + 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); + break; + } + if (this._children == null) + this._children = []; + for (var i = 0; i < this._children.length; i++) { + this._children[i].setDirty(dirtyFlagType); + } + } + }; + Transform.prototype.roundPosition = + function() { this.position = this._position.round(); }; + Transform.prototype.updateTransform = function() { + if (this._hierachyDirty != DirtyType.clean) { + if (this.parent) + this.parent.updateTransform(); + if (this._localDirty) { + if (this._localPositionDirty) { + this._translationMatrix = Matrix2D.createTranslation( + this._localPosition.x, this._localPosition.y); + this._localPositionDirty = false; } - else if (newZoom < 0) { - this._zoom = MathHelper.map(newZoom, -1, 0, this._minimumZoom, 1); + if (this._localRotationDirty) { + this._rotationMatrix = Matrix2D.createRotation(this._localRotation); + this._localRotationDirty = false; } - else { - this._zoom = MathHelper.map(newZoom, 0, 1, 1, this._maximumZoom); + if (this._localScaleDirty) { + this._scaleMatrix = + Matrix2D.createScale(this._localScale.x, this._localScale.y); + this._localScaleDirty = false; } - SceneManager.scene.scaleX = this._zoom; - SceneManager.scene.scaleY = this._zoom; - return this; - }; - Camera.prototype.setRotation = function (rotation) { - SceneManager.scene.rotation = rotation; - return this; - }; - Camera.prototype.setPosition = function (position) { - this.entity.position = position; - return this; - }; - Camera.prototype.follow = function (targetEntity, cameraStyle) { - if (cameraStyle === void 0) { cameraStyle = CameraStyle.cameraWindow; } - this.targetEntity = targetEntity; - this.cameraStyle = cameraStyle; - var cameraBounds = new Rectangle(0, 0, SceneManager.stage.stageWidth, SceneManager.stage.stageHeight); - switch (this.cameraStyle) { - case CameraStyle.cameraWindow: - var w = cameraBounds.width / 6; - var h = cameraBounds.height / 3; - this.deadzone = new Rectangle((cameraBounds.width - w) / 2, (cameraBounds.height - h) / 2, w, h); - break; - case CameraStyle.lockOn: - this.deadzone = new Rectangle(cameraBounds.width / 2, cameraBounds.height / 2, 10, 10); - break; + this._localTransform = + Matrix2D.multiply(this._scaleMatrix, this._rotationMatrix); + this._localTransform = + Matrix2D.multiply(this._localTransform, this._translationMatrix); + if (!this.parent) { + this._worldTransform = this._localTransform; + this._rotation = this._localRotation; + this._scale = this._localScale; + this._worldInverseDirty = true; } - }; - Camera.prototype.update = function () { - var cameraBounds = new Rectangle(0, 0, SceneManager.stage.stageWidth, SceneManager.stage.stageHeight); - var halfScreen = Vector2.multiply(new Vector2(cameraBounds.width, cameraBounds.height), new Vector2(0.5)); - this._worldSpaceDeadZone.x = this.position.x - halfScreen.x + this.deadzone.x + this.focusOffset.x; - this._worldSpaceDeadZone.y = this.position.y - halfScreen.y + this.deadzone.y + this.focusOffset.y; - this._worldSpaceDeadZone.width = this.deadzone.width; - this._worldSpaceDeadZone.height = this.deadzone.height; - if (this.targetEntity) - this.updateFollow(); - this.position = Vector2.lerp(this.position, Vector2.add(this.position, this._desiredPositionDelta), this.followLerp); - this.entity.roundPosition(); - if (this.mapLockEnabled) { - this.position = this.clampToMapSize(this.position); - this.entity.roundPosition(); - } - }; - Camera.prototype.clampToMapSize = function (position) { - var cameraBounds = new Rectangle(0, 0, SceneManager.stage.stageWidth, SceneManager.stage.stageHeight); - var halfScreen = Vector2.multiply(new Vector2(cameraBounds.width, cameraBounds.height), new Vector2(0.5)); - var cameraMax = new Vector2(this.mapSize.x - halfScreen.x, this.mapSize.y - halfScreen.y); - return Vector2.clamp(position, halfScreen, cameraMax); - }; - Camera.prototype.updateFollow = function () { - this._desiredPositionDelta.x = this._desiredPositionDelta.y = 0; - if (this.cameraStyle == CameraStyle.lockOn) { - var targetX = this.targetEntity.position.x; - var targetY = this.targetEntity.position.y; - if (this._worldSpaceDeadZone.x > targetX) - this._desiredPositionDelta.x = targetX - this._worldSpaceDeadZone.x; - else if (this._worldSpaceDeadZone.x < targetX) - this._desiredPositionDelta.x = targetX - this._worldSpaceDeadZone.x; - if (this._worldSpaceDeadZone.y < targetY) - this._desiredPositionDelta.y = targetY - this._worldSpaceDeadZone.y; - else if (this._worldSpaceDeadZone.y > targetY) - this._desiredPositionDelta.y = targetY - this._worldSpaceDeadZone.y; - } - else { - if (!this._targetCollider) { - this._targetCollider = this.targetEntity.getComponent(Collider); - if (!this._targetCollider) - return; - } - var targetBounds = this.targetEntity.getComponent(Collider).bounds; - if (!this._worldSpaceDeadZone.containsRect(targetBounds)) { - if (this._worldSpaceDeadZone.left > targetBounds.left) - this._desiredPositionDelta.x = targetBounds.left - this._worldSpaceDeadZone.left; - else if (this._worldSpaceDeadZone.right < targetBounds.right) - this._desiredPositionDelta.x = targetBounds.right - this._worldSpaceDeadZone.right; - if (this._worldSpaceDeadZone.bottom < targetBounds.bottom) - this._desiredPositionDelta.y = targetBounds.bottom - this._worldSpaceDeadZone.bottom; - else if (this._worldSpaceDeadZone.top > targetBounds.top) - this._desiredPositionDelta.y = targetBounds.top - this._worldSpaceDeadZone.top; - } - } - }; - return Camera; + this._localDirty = false; + } + if (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 = true; + } + this._worldToLocalDirty = true; + this._positionDirty = true; + this._hierachyDirty = DirtyType.clean; + } + }; + return Transform; +}()); +var Camera = (function(_super) { + __extends(Camera, _super); + function Camera() { + var _this = _super.call(this) || this; + _this._origin = Vector2.zero; + _this._minimumZoom = 0.3; + _this._maximumZoom = 3; + _this.followLerp = 0.1; + _this.deadzone = new Rectangle(); + _this.focusOffset = new Vector2(); + _this.mapLockEnabled = false; + _this.mapSize = new Vector2(); + _this._worldSpaceDeadZone = new Rectangle(); + _this._desiredPositionDelta = new Vector2(); + _this.cameraStyle = CameraStyle.lockOn; + _this.width = SceneManager.stage.stageWidth; + _this.height = SceneManager.stage.stageHeight; + _this.setZoom(0); + return _this; + } + Object.defineProperty(Camera.prototype, "zoom", { + get : function() { + if (this._zoom == 0) + return 1; + if (this._zoom < 1) + return MathHelper.map(this._zoom, this._minimumZoom, 1, -1, 0); + return MathHelper.map(this._zoom, 1, this._maximumZoom, 0, 1); + }, + set : function(value) { this.setZoom(value); }, + enumerable : true, + configurable : true + }); + Object.defineProperty(Camera.prototype, "minimumZoom", { + get : function() { return this._minimumZoom; }, + set : function(value) { this.setMinimumZoom(value); }, + enumerable : true, + configurable : true + }); + Object.defineProperty(Camera.prototype, "maximumZoom", { + get : function() { return this._maximumZoom; }, + set : function(value) { this.setMaximumZoom(value); }, + enumerable : true, + configurable : true + }); + Object.defineProperty(Camera.prototype, "origin", { + get : function() { return this._origin; }, + set : function(value) { + if (this._origin != value) { + this._origin = value; + } + }, + enumerable : true, + configurable : true + }); + Object.defineProperty(Camera.prototype, "position", { + get : function() { return this.entity.position; }, + set : function(value) { this.entity.position = value; }, + enumerable : true, + configurable : true + }); + Camera.prototype.onSceneSizeChanged = function(newWidth, newHeight) { + var oldOrigin = this._origin; + this.origin = new Vector2(newWidth / 2, newHeight / 2); + this.entity.position = Vector2.add( + this.entity.position, Vector2.subtract(this._origin, oldOrigin)); + }; + Camera.prototype.setMinimumZoom = function(minZoom) { + if (this._zoom < minZoom) + this._zoom = this.minimumZoom; + this._minimumZoom = minZoom; + return this; + }; + Camera.prototype.setMaximumZoom = function(maxZoom) { + if (this._zoom > maxZoom) + this._zoom = maxZoom; + this._maximumZoom = maxZoom; + return this; + }; + Camera.prototype.setZoom = function(zoom) { + var newZoom = MathHelper.clamp(zoom, -1, 1); + if (newZoom == 0) { + this._zoom = 1; + } else if (newZoom < 0) { + this._zoom = MathHelper.map(newZoom, -1, 0, this._minimumZoom, 1); + } else { + this._zoom = MathHelper.map(newZoom, 0, 1, 1, this._maximumZoom); + } + SceneManager.scene.scaleX = this._zoom; + SceneManager.scene.scaleY = this._zoom; + return this; + }; + Camera.prototype.setRotation = function(rotation) { + SceneManager.scene.rotation = rotation; + return this; + }; + Camera.prototype.setPosition = function(position) { + this.entity.position = position; + return this; + }; + Camera.prototype.follow = function(targetEntity, cameraStyle) { + if (cameraStyle === void 0) { + cameraStyle = CameraStyle.cameraWindow; + } + this.targetEntity = targetEntity; + this.cameraStyle = cameraStyle; + var cameraBounds = new Rectangle(0, 0, SceneManager.stage.stageWidth, + SceneManager.stage.stageHeight); + switch (this.cameraStyle) { + case CameraStyle.cameraWindow: + var w = cameraBounds.width / 6; + var h = cameraBounds.height / 3; + this.deadzone = new Rectangle((cameraBounds.width - w) / 2, + (cameraBounds.height - h) / 2, w, h); + break; + case CameraStyle.lockOn: + this.deadzone = new Rectangle(cameraBounds.width / 2, + cameraBounds.height / 2, 10, 10); + break; + } + }; + Camera.prototype.update = function() { + var cameraBounds = new Rectangle(0, 0, SceneManager.stage.stageWidth, + SceneManager.stage.stageHeight); + var halfScreen = Vector2.multiply( + new Vector2(cameraBounds.width, cameraBounds.height), new Vector2(0.5)); + this._worldSpaceDeadZone.x = + this.position.x - halfScreen.x + this.deadzone.x + this.focusOffset.x; + this._worldSpaceDeadZone.y = + this.position.y - halfScreen.y + this.deadzone.y + this.focusOffset.y; + this._worldSpaceDeadZone.width = this.deadzone.width; + this._worldSpaceDeadZone.height = this.deadzone.height; + if (this.targetEntity) + this.updateFollow(); + this.position = Vector2.lerp( + this.position, Vector2.add(this.position, this._desiredPositionDelta), + this.followLerp); + this.entity.roundPosition(); + if (this.mapLockEnabled) { + this.position = this.clampToMapSize(this.position); + this.entity.roundPosition(); + } + }; + Camera.prototype.clampToMapSize = function(position) { + var cameraBounds = new Rectangle(0, 0, SceneManager.stage.stageWidth, + SceneManager.stage.stageHeight); + var halfScreen = Vector2.multiply( + new Vector2(cameraBounds.width, cameraBounds.height), new Vector2(0.5)); + var cameraMax = new Vector2(this.mapSize.x - halfScreen.x, + this.mapSize.y - halfScreen.y); + return Vector2.clamp(position, halfScreen, cameraMax); + }; + Camera.prototype.updateFollow = function() { + this._desiredPositionDelta.x = this._desiredPositionDelta.y = 0; + if (this.cameraStyle == CameraStyle.lockOn) { + var targetX = this.targetEntity.position.x; + var targetY = this.targetEntity.position.y; + if (this._worldSpaceDeadZone.x > targetX) + this._desiredPositionDelta.x = targetX - this._worldSpaceDeadZone.x; + else if (this._worldSpaceDeadZone.x < targetX) + this._desiredPositionDelta.x = targetX - this._worldSpaceDeadZone.x; + if (this._worldSpaceDeadZone.y < targetY) + this._desiredPositionDelta.y = targetY - this._worldSpaceDeadZone.y; + else if (this._worldSpaceDeadZone.y > targetY) + this._desiredPositionDelta.y = targetY - this._worldSpaceDeadZone.y; + } else { + if (!this._targetCollider) { + this._targetCollider = this.targetEntity.getComponent(Collider); + if (!this._targetCollider) + return; + } + var targetBounds = this.targetEntity.getComponent(Collider).bounds; + if (!this._worldSpaceDeadZone.containsRect(targetBounds)) { + if (this._worldSpaceDeadZone.left > targetBounds.left) + this._desiredPositionDelta.x = + targetBounds.left - this._worldSpaceDeadZone.left; + else if (this._worldSpaceDeadZone.right < targetBounds.right) + this._desiredPositionDelta.x = + targetBounds.right - this._worldSpaceDeadZone.right; + if (this._worldSpaceDeadZone.bottom < targetBounds.bottom) + this._desiredPositionDelta.y = + targetBounds.bottom - this._worldSpaceDeadZone.bottom; + else if (this._worldSpaceDeadZone.top > targetBounds.top) + this._desiredPositionDelta.y = + targetBounds.top - this._worldSpaceDeadZone.top; + } + } + }; + return Camera; }(Component)); var CameraStyle; -(function (CameraStyle) { - CameraStyle[CameraStyle["lockOn"] = 0] = "lockOn"; - CameraStyle[CameraStyle["cameraWindow"] = 1] = "cameraWindow"; +(function(CameraStyle) { +CameraStyle[CameraStyle["lockOn"] = 0] = "lockOn"; +CameraStyle[CameraStyle["cameraWindow"] = 1] = "cameraWindow"; })(CameraStyle || (CameraStyle = {})); -var ComponentPool = (function () { - function ComponentPool(typeClass) { - this._type = typeClass; - this._cache = []; +var ComponentPool = (function() { + function ComponentPool(typeClass) { + this._type = typeClass; + this._cache = []; + } + ComponentPool.prototype.obtain = function() { + try { + return this._cache.length > 0 ? this._cache.shift() : new this._type(); + } catch (err) { + throw new Error(this._type + err); } - ComponentPool.prototype.obtain = function () { - try { - return this._cache.length > 0 ? this._cache.shift() : new this._type(); - } - catch (err) { - throw new Error(this._type + err); - } - }; - ComponentPool.prototype.free = function (component) { - component.reset(); - this._cache.push(component); - }; - return ComponentPool; + }; + ComponentPool.prototype.free = function(component) { + component.reset(); + this._cache.push(component); + }; + return ComponentPool; }()); -var Mesh = (function (_super) { - __extends(Mesh, _super); - function Mesh() { - return _super !== null && _super.apply(this, arguments) || this; +var Mesh = (function(_super) { + __extends(Mesh, _super); + function Mesh() { + return _super !== null && _super.apply(this, arguments) || this; + } + Mesh.prototype.initialize = function() {}; + Mesh.prototype.setVertPosition = function(positions) { + var createVerts = !this._verts || this._verts.length != positions.length; + if (createVerts) + this._verts = new Array(positions.length); + for (var i = 0; i < this._verts.length; i++) { + this._verts[i] = new VertexPosition(positions[i]); } - Mesh.prototype.initialize = function () { - }; - Mesh.prototype.setVertPosition = function (positions) { - var createVerts = !this._verts || this._verts.length != positions.length; - if (createVerts) - this._verts = new Array(positions.length); - for (var i = 0; i < this._verts.length; i++) { - this._verts[i] = new VertexPosition(positions[i]); - } - return this; - }; - Mesh.prototype.setTriangles = function (triangles) { - this._primitiveCount = triangles.length / 3; - this._triangles = triangles; - return this; - }; - Mesh.prototype.recalculateBounds = function () { - this._topLeftVertPosition = new Vector2(Number.MAX_VALUE, Number.MAX_VALUE); - var max = new Vector2(Number.MIN_VALUE, Number.MIN_VALUE); - for (var i = 0; i < this._verts.length; i++) { - this._topLeftVertPosition.x = Math.min(this._topLeftVertPosition.x, this._verts[i].position.x); - this._topLeftVertPosition.y = Math.min(this._topLeftVertPosition.y, this._verts[i].position.y); - max.x = Math.max(max.x, this._verts[i].position.x); - max.y = Math.max(max.y, this._verts[i].position.y); - } - this._width = max.x - this._topLeftVertPosition.x; - this._height = max.y - this._topLeftVertPosition.y; - return this; - }; - Mesh.prototype.render = function () { - }; - return Mesh; + return this; + }; + Mesh.prototype.setTriangles = function(triangles) { + this._primitiveCount = triangles.length / 3; + this._triangles = triangles; + return this; + }; + Mesh.prototype.recalculateBounds = function() { + this._topLeftVertPosition = new Vector2(Number.MAX_VALUE, Number.MAX_VALUE); + var max = new Vector2(Number.MIN_VALUE, Number.MIN_VALUE); + for (var i = 0; i < this._verts.length; i++) { + this._topLeftVertPosition.x = + Math.min(this._topLeftVertPosition.x, this._verts[i].position.x); + this._topLeftVertPosition.y = + Math.min(this._topLeftVertPosition.y, this._verts[i].position.y); + max.x = Math.max(max.x, this._verts[i].position.x); + max.y = Math.max(max.y, this._verts[i].position.y); + } + this._width = max.x - this._topLeftVertPosition.x; + this._height = max.y - this._topLeftVertPosition.y; + return this; + }; + Mesh.prototype.render = function() {}; + return Mesh; }(Component)); -var VertexPosition = (function () { - function VertexPosition(position) { - this.position = position; - } - return VertexPosition; +var VertexPosition = (function() { + function VertexPosition(position) { this.position = position; } + return VertexPosition; }()); -var PolygonMesh = (function (_super) { - __extends(PolygonMesh, _super); - function PolygonMesh(points, arePointsCCW) { - if (arePointsCCW === void 0) { arePointsCCW = true; } - var _this = _super.call(this) || this; - var triangulator = new Triangulator(); - triangulator.triangulate(points, arePointsCCW); - _this.setVertPosition(points); - _this.setTriangles(triangulator.triangleIndices); - _this.recalculateBounds(); - return _this; +var PolygonMesh = (function(_super) { + __extends(PolygonMesh, _super); + function PolygonMesh(points, arePointsCCW) { + if (arePointsCCW === void 0) { + arePointsCCW = true; } - return PolygonMesh; + var _this = _super.call(this) || this; + var triangulator = new Triangulator(); + triangulator.triangulate(points, arePointsCCW); + _this.setVertPosition(points); + _this.setTriangles(triangulator.triangleIndices); + _this.recalculateBounds(); + return _this; + } + return PolygonMesh; }(Mesh)); -var PooledComponent = (function (_super) { - __extends(PooledComponent, _super); - function PooledComponent() { - return _super !== null && _super.apply(this, arguments) || this; - } - return PooledComponent; +var PooledComponent = (function(_super) { + __extends(PooledComponent, _super); + function PooledComponent() { + return _super !== null && _super.apply(this, arguments) || this; + } + return PooledComponent; }(Component)); -var RenderableComponent = (function (_super) { - __extends(RenderableComponent, _super); - function RenderableComponent() { - var _this = _super !== null && _super.apply(this, arguments) || this; - _this._areBoundsDirty = true; - _this._bounds = new Rectangle(); - _this._localOffset = Vector2.zero; - _this.color = 0x000000; - return _this; - } - Object.defineProperty(RenderableComponent.prototype, "width", { - get: function () { - return this.getWidth(); - }, - enumerable: true, - configurable: true - }); - Object.defineProperty(RenderableComponent.prototype, "height", { - get: function () { - return this.getHeight(); - }, - enumerable: true, - configurable: true - }); - Object.defineProperty(RenderableComponent.prototype, "isVisible", { - get: function () { - return this._isVisible; - }, - set: function (value) { - this._isVisible = value; - if (this._isVisible) - this.onBecameVisible(); - else - this.onBecameInvisible(); - }, - enumerable: true, - configurable: true - }); - Object.defineProperty(RenderableComponent.prototype, "bounds", { - get: function () { - return new Rectangle(this.getBounds().x, this.getBounds().y, this.getBounds().width, this.getBounds().height); - }, - enumerable: true, - configurable: true - }); - RenderableComponent.prototype.getWidth = function () { - return this.bounds.width; - }; - RenderableComponent.prototype.getHeight = function () { - return this.bounds.height; - }; - RenderableComponent.prototype.onBecameVisible = function () { }; - RenderableComponent.prototype.onBecameInvisible = function () { }; - RenderableComponent.prototype.isVisibleFromCamera = function (camera) { - this.isVisible = camera.getBounds().intersects(this.getBounds()); - return this.isVisible; - }; - RenderableComponent.prototype.onEntityTransformChanged = function (comp) { - this._areBoundsDirty = true; - }; - return RenderableComponent; +var RenderableComponent = (function(_super) { + __extends(RenderableComponent, _super); + function RenderableComponent() { + var _this = _super !== null && _super.apply(this, arguments) || this; + _this._areBoundsDirty = true; + _this._bounds = new Rectangle(); + _this._localOffset = Vector2.zero; + _this.color = 0x000000; + return _this; + } + Object.defineProperty(RenderableComponent.prototype, "width", { + get : function() { return this.getWidth(); }, + enumerable : true, + configurable : true + }); + Object.defineProperty(RenderableComponent.prototype, "height", { + get : function() { return this.getHeight(); }, + enumerable : true, + configurable : true + }); + Object.defineProperty(RenderableComponent.prototype, "isVisible", { + get : function() { return this._isVisible; }, + set : function(value) { + this._isVisible = value; + if (this._isVisible) + this.onBecameVisible(); + else + this.onBecameInvisible(); + }, + enumerable : true, + configurable : true + }); + Object.defineProperty(RenderableComponent.prototype, "bounds", { + get : function() { + return new Rectangle(this.getBounds().x, this.getBounds().y, + this.getBounds().width, this.getBounds().height); + }, + enumerable : true, + configurable : true + }); + RenderableComponent.prototype.getWidth = + function() { return this.bounds.width; }; + RenderableComponent.prototype.getHeight = + function() { return this.bounds.height; }; + RenderableComponent.prototype.onBecameVisible = function() {}; + RenderableComponent.prototype.onBecameInvisible = function() {}; + RenderableComponent.prototype.isVisibleFromCamera = function(camera) { + this.isVisible = camera.getBounds().intersects(this.getBounds()); + return this.isVisible; + }; + RenderableComponent.prototype.onEntityTransformChanged = function( + comp) { this._areBoundsDirty = true; }; + return RenderableComponent; }(PooledComponent)); -var ScreenSpaceCamera = (function (_super) { - __extends(ScreenSpaceCamera, _super); - function ScreenSpaceCamera() { - return _super !== null && _super.apply(this, arguments) || this; - } - ScreenSpaceCamera.prototype.updateMatrixes = function () { - }; - return ScreenSpaceCamera; +var ScreenSpaceCamera = (function(_super) { + __extends(ScreenSpaceCamera, _super); + function ScreenSpaceCamera() { + return _super !== null && _super.apply(this, arguments) || this; + } + ScreenSpaceCamera.prototype.updateMatrixes = function() {}; + return ScreenSpaceCamera; }(Camera)); -var Sprite = (function () { - function Sprite(texture, sourceRect, origin) { - if (sourceRect === void 0) { sourceRect = new Rectangle(0, 0, texture.textureWidth, texture.textureHeight); } - if (origin === void 0) { origin = sourceRect.getHalfSize(); } - this.uvs = new Rectangle(); - this.texture2D = texture; - this.sourceRect = sourceRect; - this.center = new Vector2(sourceRect.width * 0.5, sourceRect.height * 0.5); - this.origin = origin; - var inverseTexW = 1 / texture.textureWidth; - var inverseTexH = 1 / texture.textureHeight; - this.uvs.x = sourceRect.x * inverseTexW; - this.uvs.y = sourceRect.y * inverseTexH; - this.uvs.width = sourceRect.width * inverseTexW; - this.uvs.height = sourceRect.height * inverseTexH; +var Sprite = (function() { + function Sprite(texture, sourceRect, origin) { + if (sourceRect === void 0) { + sourceRect = + new Rectangle(0, 0, texture.textureWidth, texture.textureHeight); } - return Sprite; + if (origin === void 0) { + origin = sourceRect.getHalfSize(); + } + this.uvs = new Rectangle(); + this.texture2D = texture; + this.sourceRect = sourceRect; + this.center = new Vector2(sourceRect.width * 0.5, sourceRect.height * 0.5); + this.origin = origin; + var inverseTexW = 1 / texture.textureWidth; + var inverseTexH = 1 / texture.textureHeight; + this.uvs.x = sourceRect.x * inverseTexW; + this.uvs.y = sourceRect.y * inverseTexH; + this.uvs.width = sourceRect.width * inverseTexW; + this.uvs.height = sourceRect.height * inverseTexH; + } + return Sprite; }()); -var SpriteRenderer = (function (_super) { - __extends(SpriteRenderer, _super); - function SpriteRenderer() { - return _super !== null && _super.apply(this, arguments) || this; +var SpriteRenderer = (function(_super) { + __extends(SpriteRenderer, _super); + function SpriteRenderer() { + return _super !== null && _super.apply(this, arguments) || this; + } + Object.defineProperty(SpriteRenderer.prototype, "origin", { + get : function() { return this._origin; }, + set : function(value) { this.setOrigin(value); }, + enumerable : true, + configurable : true + }); + SpriteRenderer.prototype.setOrigin = function(origin) { + if (this._origin != origin) { + this._origin = origin; } - Object.defineProperty(SpriteRenderer.prototype, "origin", { - get: function () { - return this._origin; - }, - set: function (value) { - this.setOrigin(value); - }, - enumerable: true, - configurable: true - }); - SpriteRenderer.prototype.setOrigin = function (origin) { - if (this._origin != origin) { - this._origin = origin; - } - return this; - }; - SpriteRenderer.prototype.setSprite = function (sprite) { - this.removeChildren(); - this._sprite = sprite; - if (this._sprite) - this._origin = this._sprite.origin; - this._bitmap = new egret.Bitmap(sprite.texture2D); - this.addChild(this._bitmap); - return this; - }; - SpriteRenderer.prototype.setColor = function (color) { - var colorMatrix = [ - 1, 0, 0, 0, 0, - 0, 1, 0, 0, 0, - 0, 0, 1, 0, 0, - 0, 0, 0, 1, 0 - ]; - colorMatrix[0] = Math.floor(color / 256 / 256) / 255; - colorMatrix[6] = Math.floor(color / 256 % 256) / 255; - colorMatrix[12] = color % 256 / 255; - var colorFilter = new egret.ColorMatrixFilter(colorMatrix); - this.filters = [colorFilter]; - return this; - }; - SpriteRenderer.prototype.isVisibleFromCamera = function (camera) { - this.isVisible = new Rectangle(0, 0, this.stage.stageWidth, this.stage.stageHeight).intersects(this.bounds); - this.visible = this.isVisible; - return this.isVisible; - }; - SpriteRenderer.prototype.render = function (camera) { - this.x = this.entity.position.x - this.origin.x - camera.position.x + camera.origin.x; - this.y = this.entity.position.y - this.origin.y - camera.position.y + camera.origin.y; - }; - SpriteRenderer.prototype.onRemovedFromEntity = function () { - if (this.parent) - this.parent.removeChild(this); - }; - SpriteRenderer.prototype.reset = function () { - }; - return SpriteRenderer; + return this; + }; + SpriteRenderer.prototype.setSprite = function(sprite) { + this.removeChildren(); + this._sprite = sprite; + if (this._sprite) + this._origin = this._sprite.origin; + this._bitmap = new egret.Bitmap(sprite.texture2D); + this.addChild(this._bitmap); + return this; + }; + SpriteRenderer.prototype.setColor = function(color) { + var colorMatrix = + [ 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0 ]; + colorMatrix[0] = Math.floor(color / 256 / 256) / 255; + colorMatrix[6] = Math.floor(color / 256 % 256) / 255; + colorMatrix[12] = color % 256 / 255; + var colorFilter = new egret.ColorMatrixFilter(colorMatrix); + this.filters = [ colorFilter ]; + return this; + }; + SpriteRenderer.prototype.isVisibleFromCamera = function(camera) { + this.isVisible = + new Rectangle(0, 0, this.stage.stageWidth, this.stage.stageHeight) + .intersects(this.bounds); + this.visible = this.isVisible; + return this.isVisible; + }; + SpriteRenderer.prototype.render = function(camera) { + this.x = this.entity.position.x - this.origin.x - camera.position.x + + camera.origin.x; + this.y = this.entity.position.y - this.origin.y - camera.position.y + + camera.origin.y; + }; + SpriteRenderer.prototype.onRemovedFromEntity = function() { + if (this.parent) + this.parent.removeChild(this); + }; + SpriteRenderer.prototype.reset = function() {}; + return SpriteRenderer; }(RenderableComponent)); -var Mover = (function (_super) { - __extends(Mover, _super); - function Mover() { - return _super !== null && _super.apply(this, arguments) || this; +var Mover = (function(_super) { + __extends(Mover, _super); + function Mover() { + return _super !== null && _super.apply(this, arguments) || this; + } + Mover.prototype.onAddedToEntity = function() { + this._triggerHelper = new ColliderTriggerHelper(this.entity); + }; + Mover.prototype.calculateMovement = function(motion) { + var collisionResult = new CollisionResult(); + if (!this.entity.getComponent(Collider) || !this._triggerHelper) { + return null; } - Mover.prototype.onAddedToEntity = function () { - this._triggerHelper = new ColliderTriggerHelper(this.entity); - }; - Mover.prototype.calculateMovement = function (motion) { - var collisionResult = new CollisionResult(); - if (!this.entity.getComponent(Collider) || !this._triggerHelper) { - return null; + var colliders = this.entity.getComponents(Collider); + for (var i = 0; i < colliders.length; i++) { + var collider = colliders[i]; + if (collider.isTrigger) + continue; + var bounds = collider.bounds; + bounds.x += motion.x; + bounds.y += motion.y; + var neighbors = Physics.boxcastBroadphaseExcludingSelf( + collider, bounds, collider.collidesWithLayers); + for (var j = 0; j < neighbors.length; j++) { + var neighbor = neighbors[j]; + if (neighbor.isTrigger) + continue; + var _internalcollisionResult = collider.collidesWith(neighbor, motion); + if (_internalcollisionResult) { + motion = Vector2.subtract( + motion, _internalcollisionResult.minimumTranslationVector); + if (_internalcollisionResult.collider) { + collisionResult = _internalcollisionResult; + } } - var colliders = this.entity.getComponents(Collider); - for (var i = 0; i < colliders.length; i++) { - var collider = colliders[i]; - if (collider.isTrigger) - continue; - var bounds = collider.bounds; - bounds.x += motion.x; - bounds.y += motion.y; - var neighbors = Physics.boxcastBroadphaseExcludingSelf(collider, bounds, collider.collidesWithLayers); - for (var j = 0; j < neighbors.length; j++) { - var neighbor = neighbors[j]; - if (neighbor.isTrigger) - continue; - var _internalcollisionResult = collider.collidesWith(neighbor, motion); - if (_internalcollisionResult) { - motion = Vector2.subtract(motion, _internalcollisionResult.minimumTranslationVector); - if (_internalcollisionResult.collider) { - collisionResult = _internalcollisionResult; - } - } - } - } - ListPool.free(colliders); - return collisionResult; - }; - Mover.prototype.applyMovement = function (motion) { - this.entity.position = Vector2.add(this.entity.position, motion); - if (this._triggerHelper) - this._triggerHelper.update(); - }; - Mover.prototype.move = function (motion) { - var collisionResult = this.calculateMovement(motion); - this.applyMovement(motion); - return collisionResult; - }; - return Mover; + } + } + ListPool.free(colliders); + return collisionResult; + }; + Mover.prototype.applyMovement = function(motion) { + this.entity.position = Vector2.add(this.entity.position, motion); + if (this._triggerHelper) + this._triggerHelper.update(); + }; + Mover.prototype.move = function(motion) { + var collisionResult = this.calculateMovement(motion); + this.applyMovement(motion); + return collisionResult; + }; + return Mover; }(Component)); -var Collider = (function (_super) { - __extends(Collider, _super); - function Collider() { - var _this = _super !== null && _super.apply(this, arguments) || this; - _this.physicsLayer = 1 << 0; - _this.shouldColliderScaleAndRotationWithTransform = true; - _this.collidesWithLayers = Physics.allLayers; - _this._isPositionDirty = true; - _this._isRotationDirty = true; - _this._localOffset = new Vector2(0, 0); - return _this; +var Collider = (function(_super) { + __extends(Collider, _super); + function Collider() { + var _this = _super !== null && _super.apply(this, arguments) || this; + _this.physicsLayer = 1 << 0; + _this.shouldColliderScaleAndRotationWithTransform = true; + _this.collidesWithLayers = Physics.allLayers; + _this._isPositionDirty = true; + _this._isRotationDirty = true; + _this._localOffset = new Vector2(0, 0); + return _this; + } + Object.defineProperty(Collider.prototype, "bounds", { + get : function() { + if (this._isPositionDirty || this._isRotationDirty) { + this.shape.recalculateBounds(this); + this._isPositionDirty = this._isRotationDirty = false; + } + return this.shape.bounds; + }, + enumerable : true, + configurable : true + }); + Object.defineProperty(Collider.prototype, "localOffset", { + get : function() { return this._localOffset; }, + set : function(value) { this.setLocalOffset(value); }, + enumerable : true, + configurable : true + }); + Collider.prototype.setLocalOffset = function(offset) { + if (this._localOffset != offset) { + this.unregisterColliderWithPhysicsSystem(); + this._localOffset = offset; + this._localOffsetLength = this._localOffset.length(); + this._isPositionDirty = true; + this.registerColliderWithPhysicsSystem(); } - Object.defineProperty(Collider.prototype, "bounds", { - get: function () { - if (this._isPositionDirty || this._isRotationDirty) { - this.shape.recalculateBounds(this); - this._isPositionDirty = this._isRotationDirty = false; - } - return this.shape.bounds; - }, - enumerable: true, - configurable: true - }); - Object.defineProperty(Collider.prototype, "localOffset", { - get: function () { - return this._localOffset; - }, - set: function (value) { - this.setLocalOffset(value); - }, - enumerable: true, - configurable: true - }); - Collider.prototype.setLocalOffset = function (offset) { - if (this._localOffset != offset) { - this.unregisterColliderWithPhysicsSystem(); - this._localOffset = offset; - this._localOffsetLength = this._localOffset.length(); - this._isPositionDirty = true; - this.registerColliderWithPhysicsSystem(); + }; + Collider.prototype.registerColliderWithPhysicsSystem = function() { + if (this._isParentEntityAddedToScene && !this._isColliderRegistered) { + Physics.addCollider(this); + this._isColliderRegistered = true; + } + }; + Collider.prototype.unregisterColliderWithPhysicsSystem = function() { + if (this._isParentEntityAddedToScene && this._isColliderRegistered) { + Physics.removeCollider(this); + } + this._isColliderRegistered = false; + }; + Collider.prototype.overlaps = function( + other) { return this.shape.overlaps(other.shape); }; + Collider.prototype.collidesWith = function(collider, motion) { + var oldPosition = this.shape.position; + this.shape.position = Vector2.add(this.shape.position, motion); + var result = this.shape.collidesWithShape(collider.shape); + if (result) + result.collider = collider; + this.shape.position = oldPosition; + return result; + }; + Collider.prototype.onAddedToEntity = function() { + if (this._colliderRequiresAutoSizing) { + if (!(this instanceof BoxCollider)) { + console.error( + "Only box and circle colliders can be created automatically"); + } + var renderable = this.entity.getComponent(RenderableComponent); + if (renderable) { + var renderbaleBounds = renderable.bounds; + var width = renderbaleBounds.width / this.entity.scale.x; + var height = renderbaleBounds.height / this.entity.scale.y; + if (this instanceof BoxCollider) { + var boxCollider = this; + boxCollider.width = width; + boxCollider.height = height; + this.localOffset = + Vector2.subtract(renderbaleBounds.center, this.entity.position); } - }; - Collider.prototype.registerColliderWithPhysicsSystem = function () { - if (this._isParentEntityAddedToScene && !this._isColliderRegistered) { - Physics.addCollider(this); - this._isColliderRegistered = true; - } - }; - Collider.prototype.unregisterColliderWithPhysicsSystem = function () { - if (this._isParentEntityAddedToScene && this._isColliderRegistered) { - Physics.removeCollider(this); - } - this._isColliderRegistered = false; - }; - Collider.prototype.overlaps = function (other) { - return this.shape.overlaps(other.shape); - }; - Collider.prototype.collidesWith = function (collider, motion) { - var oldPosition = this.shape.position; - this.shape.position = Vector2.add(this.shape.position, motion); - var result = this.shape.collidesWithShape(collider.shape); - if (result) - result.collider = collider; - this.shape.position = oldPosition; - return result; - }; - Collider.prototype.onAddedToEntity = function () { - if (this._colliderRequiresAutoSizing) { - if (!(this instanceof BoxCollider)) { - console.error("Only box and circle colliders can be created automatically"); - } - var renderable = this.entity.getComponent(RenderableComponent); - if (renderable) { - var renderbaleBounds = renderable.bounds; - var width = renderbaleBounds.width / this.entity.scale.x; - var height = renderbaleBounds.height / this.entity.scale.y; - if (this instanceof BoxCollider) { - var boxCollider = this; - boxCollider.width = width; - boxCollider.height = height; - this.localOffset = Vector2.subtract(renderbaleBounds.center, this.entity.position); - } - } - } - this._isParentEntityAddedToScene = true; - this.registerColliderWithPhysicsSystem(); - }; - Collider.prototype.onRemovedFromEntity = function () { - this.unregisterColliderWithPhysicsSystem(); - this._isParentEntityAddedToScene = false; - }; - Collider.prototype.onEntityTransformChanged = function (comp) { - switch (comp) { - case ComponentTransform.position: - this._isPositionDirty = true; - break; - case ComponentTransform.scale: - this._isPositionDirty = true; - break; - case ComponentTransform.rotation: - this._isRotationDirty = true; - break; - } - if (this._isColliderRegistered) - Physics.updateCollider(this); - }; - Collider.prototype.onEnabled = function () { - this.registerColliderWithPhysicsSystem(); - this._isPositionDirty = this._isRotationDirty = true; - }; - Collider.prototype.onDisabled = function () { - this.unregisterColliderWithPhysicsSystem(); - }; - return Collider; + } + } + this._isParentEntityAddedToScene = true; + this.registerColliderWithPhysicsSystem(); + }; + Collider.prototype.onRemovedFromEntity = function() { + this.unregisterColliderWithPhysicsSystem(); + this._isParentEntityAddedToScene = false; + }; + Collider.prototype.onEntityTransformChanged = function(comp) { + switch (comp) { + case ComponentTransform.position: + this._isPositionDirty = true; + break; + case ComponentTransform.scale: + this._isPositionDirty = true; + break; + case ComponentTransform.rotation: + this._isRotationDirty = true; + break; + } + if (this._isColliderRegistered) + Physics.updateCollider(this); + }; + Collider.prototype.onEnabled = function() { + this.registerColliderWithPhysicsSystem(); + this._isPositionDirty = this._isRotationDirty = true; + }; + Collider.prototype.onDisabled = + function() { this.unregisterColliderWithPhysicsSystem(); }; + return Collider; }(Component)); -var BoxCollider = (function (_super) { - __extends(BoxCollider, _super); - function BoxCollider() { - var _this = _super.call(this) || this; - _this.shape = new Box(1, 1); - _this._colliderRequiresAutoSizing = true; - return _this; +var BoxCollider = (function(_super) { + __extends(BoxCollider, _super); + function BoxCollider() { + var _this = _super.call(this) || this; + _this.shape = new Box(1, 1); + _this._colliderRequiresAutoSizing = true; + return _this; + } + Object.defineProperty(BoxCollider.prototype, "width", { + get : function() { return this.shape.width; }, + set : function(value) { this.setWidth(value); }, + enumerable : true, + configurable : true + }); + BoxCollider.prototype.setWidth = function(width) { + this._colliderRequiresAutoSizing = false; + var box = this.shape; + if (width != box.width) { + box.updateBox(width, box.height); + this._isPositionDirty = true; + if (this.entity && this._isParentEntityAddedToScene) + Physics.updateCollider(this); } - Object.defineProperty(BoxCollider.prototype, "width", { - get: function () { - return this.shape.width; - }, - set: function (value) { - this.setWidth(value); - }, - enumerable: true, - configurable: true - }); - BoxCollider.prototype.setWidth = function (width) { - this._colliderRequiresAutoSizing = false; - var box = this.shape; - if (width != box.width) { - box.updateBox(width, box.height); - this._isPositionDirty = true; - if (this.entity && this._isParentEntityAddedToScene) - Physics.updateCollider(this); - } - return this; - }; - Object.defineProperty(BoxCollider.prototype, "height", { - get: function () { - return this.shape.height; - }, - set: function (value) { - this.setHeight(value); - }, - enumerable: true, - configurable: true - }); - BoxCollider.prototype.setHeight = function (height) { - this._colliderRequiresAutoSizing = false; - var box = this.shape; - if (height != box.height) { - box.updateBox(box.width, height); - this._isPositionDirty = true; - if (this.entity && this._isParentEntityAddedToScene) - Physics.updateCollider(this); - } - }; - BoxCollider.prototype.setSize = function (width, height) { - this._colliderRequiresAutoSizing = false; - var box = this.shape; - if (width != box.width || height != box.height) { - box.updateBox(width, height); - this._isPositionDirty = true; - if (this.entity && this._isParentEntityAddedToScene) - Physics.updateCollider(this); - } - return this; - }; - return BoxCollider; + return this; + }; + Object.defineProperty(BoxCollider.prototype, "height", { + get : function() { return this.shape.height; }, + set : function(value) { this.setHeight(value); }, + enumerable : true, + configurable : true + }); + BoxCollider.prototype.setHeight = function(height) { + this._colliderRequiresAutoSizing = false; + var box = this.shape; + if (height != box.height) { + box.updateBox(box.width, height); + this._isPositionDirty = true; + if (this.entity && this._isParentEntityAddedToScene) + Physics.updateCollider(this); + } + }; + BoxCollider.prototype.setSize = function(width, height) { + this._colliderRequiresAutoSizing = false; + var box = this.shape; + if (width != box.width || height != box.height) { + box.updateBox(width, height); + this._isPositionDirty = true; + if (this.entity && this._isParentEntityAddedToScene) + Physics.updateCollider(this); + } + return this; + }; + return BoxCollider; }(Collider)); -var EntitySystem = (function () { - function EntitySystem(matcher) { - this._entities = []; - this._matcher = matcher ? matcher : Matcher.empty(); - } - Object.defineProperty(EntitySystem.prototype, "matcher", { - get: function () { - return this._matcher; - }, - enumerable: true, - configurable: true - }); - Object.defineProperty(EntitySystem.prototype, "scene", { - get: function () { - return this._scene; - }, - set: function (value) { - this._scene = value; - this._entities = []; - }, - enumerable: true, - configurable: true - }); - EntitySystem.prototype.initialize = function () { - }; - EntitySystem.prototype.onChanged = function (entity) { - var contains = this._entities.contains(entity); - var interest = this._matcher.IsIntersted(entity); - if (interest && !contains) - this.add(entity); - else if (!interest && contains) - this.remove(entity); - }; - EntitySystem.prototype.add = function (entity) { - this._entities.push(entity); - this.onAdded(entity); - }; - EntitySystem.prototype.onAdded = function (entity) { - }; - EntitySystem.prototype.remove = function (entity) { - this._entities.remove(entity); - this.onRemoved(entity); - }; - EntitySystem.prototype.onRemoved = function (entity) { - }; - EntitySystem.prototype.update = function () { - this.begin(); - this.process(this._entities); - }; - EntitySystem.prototype.lateUpdate = function () { - this.lateProcess(this._entities); - this.end(); - }; - EntitySystem.prototype.begin = function () { - }; - EntitySystem.prototype.process = function (entities) { - }; - EntitySystem.prototype.lateProcess = function (entities) { - }; - EntitySystem.prototype.end = function () { - }; - return EntitySystem; +var EntitySystem = (function() { + function EntitySystem(matcher) { + this._entities = []; + this._matcher = matcher ? matcher : Matcher.empty(); + } + Object.defineProperty(EntitySystem.prototype, "matcher", { + get : function() { return this._matcher; }, + enumerable : true, + configurable : true + }); + Object.defineProperty(EntitySystem.prototype, "scene", { + get : function() { return this._scene; }, + set : function(value) { + this._scene = value; + this._entities = []; + }, + enumerable : true, + configurable : true + }); + EntitySystem.prototype.initialize = function() {}; + EntitySystem.prototype.onChanged = function(entity) { + var contains = this._entities.contains(entity); + var interest = this._matcher.IsIntersted(entity); + if (interest && !contains) + this.add(entity); + else if (!interest && contains) + this.remove(entity); + }; + EntitySystem.prototype.add = function(entity) { + this._entities.push(entity); + this.onAdded(entity); + }; + EntitySystem.prototype.onAdded = function(entity) {}; + EntitySystem.prototype.remove = function(entity) { + this._entities.remove(entity); + this.onRemoved(entity); + }; + EntitySystem.prototype.onRemoved = function(entity) {}; + EntitySystem.prototype.update = function() { + this.begin(); + this.process(this._entities); + }; + EntitySystem.prototype.lateUpdate = function() { + this.lateProcess(this._entities); + this.end(); + }; + EntitySystem.prototype.begin = function() {}; + EntitySystem.prototype.process = function(entities) {}; + EntitySystem.prototype.lateProcess = function(entities) {}; + EntitySystem.prototype.end = function() {}; + return EntitySystem; }()); -var EntityProcessingSystem = (function (_super) { - __extends(EntityProcessingSystem, _super); - function EntityProcessingSystem(matcher) { - return _super.call(this, matcher) || this; - } - EntityProcessingSystem.prototype.lateProcessEntity = function (entity) { - }; - EntityProcessingSystem.prototype.process = function (entities) { - var _this = this; - entities.forEach(function (entity) { return _this.processEntity(entity); }); - }; - EntityProcessingSystem.prototype.lateProcess = function (entities) { - var _this = this; - entities.forEach(function (entity) { return _this.lateProcessEntity(entity); }); - }; - return EntityProcessingSystem; +var EntityProcessingSystem = (function(_super) { + __extends(EntityProcessingSystem, _super); + function EntityProcessingSystem(matcher) { + return _super.call(this, matcher) || this; + } + EntityProcessingSystem.prototype.lateProcessEntity = function(entity) {}; + EntityProcessingSystem.prototype.process = function(entities) { + var _this = this; + entities.forEach(function(entity) { return _this.processEntity(entity); }); + }; + EntityProcessingSystem.prototype.lateProcess = function(entities) { + var _this = this; + entities.forEach(function( + entity) { return _this.lateProcessEntity(entity); }); + }; + return EntityProcessingSystem; }(EntitySystem)); -var PassiveSystem = (function (_super) { - __extends(PassiveSystem, _super); - function PassiveSystem() { - return _super !== null && _super.apply(this, arguments) || this; - } - PassiveSystem.prototype.onChanged = function (entity) { - }; - PassiveSystem.prototype.process = function (entities) { - this.begin(); - this.end(); - }; - return PassiveSystem; +var PassiveSystem = (function(_super) { + __extends(PassiveSystem, _super); + function PassiveSystem() { + return _super !== null && _super.apply(this, arguments) || this; + } + PassiveSystem.prototype.onChanged = function(entity) {}; + PassiveSystem.prototype.process = function(entities) { + this.begin(); + this.end(); + }; + return PassiveSystem; }(EntitySystem)); -var ProcessingSystem = (function (_super) { - __extends(ProcessingSystem, _super); - function ProcessingSystem() { - return _super !== null && _super.apply(this, arguments) || this; - } - ProcessingSystem.prototype.onChanged = function (entity) { - }; - ProcessingSystem.prototype.process = function (entities) { - this.begin(); - this.processSystem(); - this.end(); - }; - return ProcessingSystem; +var ProcessingSystem = (function(_super) { + __extends(ProcessingSystem, _super); + function ProcessingSystem() { + return _super !== null && _super.apply(this, arguments) || this; + } + ProcessingSystem.prototype.onChanged = function(entity) {}; + ProcessingSystem.prototype.process = function(entities) { + this.begin(); + this.processSystem(); + this.end(); + }; + return ProcessingSystem; }(EntitySystem)); -var BitSet = (function () { - function BitSet(nbits) { - if (nbits === void 0) { nbits = 64; } - var length = nbits >> 6; - if ((nbits & BitSet.LONG_MASK) != 0) - length++; - this._bits = new Array(length); +var BitSet = (function() { + function BitSet(nbits) { + if (nbits === void 0) { + nbits = 64; } - BitSet.prototype.and = function (bs) { - var max = Math.min(this._bits.length, bs._bits.length); - var i; - for (var i_1 = 0; i_1 < max; ++i_1) - this._bits[i_1] &= bs._bits[i_1]; - while (i < this._bits.length) - this._bits[i++] = 0; - }; - BitSet.prototype.andNot = function (bs) { - var i = Math.min(this._bits.length, bs._bits.length); - while (--i >= 0) - this._bits[i] &= ~bs._bits[i]; - }; - BitSet.prototype.cardinality = function () { - var card = 0; - for (var i = this._bits.length - 1; i >= 0; i--) { - var a = this._bits[i]; - if (a == 0) - continue; - if (a == -1) { - card += 64; - continue; - } - a = ((a >> 1) & 0x5555555555555555) + (a & 0x5555555555555555); - a = ((a >> 2) & 0x3333333333333333) + (a & 0x3333333333333333); - var b = ((a >> 32) + a); - b = ((b >> 4) & 0x0f0f0f0f) + (b & 0x0f0f0f0f); - b = ((b >> 8) & 0x00ff00ff) + (b & 0x00ff00ff); - card += ((b >> 16) & 0x0000ffff) + (b & 0x0000ffff); - } - return card; - }; - BitSet.prototype.clear = function (pos) { - if (pos != undefined) { - var offset = pos >> 6; - this.ensure(offset); - this._bits[offset] &= ~(1 << pos); - } - else { - for (var i = 0; i < this._bits.length; i++) - this._bits[i] = 0; - } - }; - BitSet.prototype.ensure = function (lastElt) { - if (lastElt >= this._bits.length) { - var nd = new Number[lastElt + 1]; - nd = this._bits.copyWithin(0, 0, this._bits.length); - this._bits = nd; - } - }; - BitSet.prototype.get = function (pos) { - var offset = pos >> 6; - if (offset >= this._bits.length) - return false; - return (this._bits[offset] & (1 << pos)) != 0; - }; - BitSet.prototype.intersects = function (set) { - var i = Math.min(this._bits.length, set._bits.length); - while (--i >= 0) { - if ((this._bits[i] & set._bits[i]) != 0) - return true; - } + var length = nbits >> 6; + if ((nbits & BitSet.LONG_MASK) != 0) + length++; + this._bits = new Array(length); + } + BitSet.prototype.and = function(bs) { + var max = Math.min(this._bits.length, bs._bits.length); + var i; + for (var i_1 = 0; i_1 < max; ++i_1) + this._bits[i_1] &= bs._bits[i_1]; + while (i < this._bits.length) + this._bits[i++] = 0; + }; + BitSet.prototype.andNot = function(bs) { + var i = Math.min(this._bits.length, bs._bits.length); + while (--i >= 0) + this._bits[i] &= ~bs._bits[i]; + }; + BitSet.prototype.cardinality = function() { + var card = 0; + for (var i = this._bits.length - 1; i >= 0; i--) { + var a = this._bits[i]; + if (a == 0) + continue; + if (a == -1) { + card += 64; + continue; + } + a = ((a >> 1) & 0x5555555555555555) + (a & 0x5555555555555555); + a = ((a >> 2) & 0x3333333333333333) + (a & 0x3333333333333333); + var b = ((a >> 32) + a); + b = ((b >> 4) & 0x0f0f0f0f) + (b & 0x0f0f0f0f); + b = ((b >> 8) & 0x00ff00ff) + (b & 0x00ff00ff); + card += ((b >> 16) & 0x0000ffff) + (b & 0x0000ffff); + } + return card; + }; + BitSet.prototype.clear = function(pos) { + if (pos != undefined) { + var offset = pos >> 6; + this.ensure(offset); + this._bits[offset] &= ~(1 << pos); + } else { + for (var i = 0; i < this._bits.length; i++) + this._bits[i] = 0; + } + }; + BitSet.prototype.ensure = function(lastElt) { + if (lastElt >= this._bits.length) { + var nd = new Number[lastElt + 1]; + nd = this._bits.copyWithin(0, 0, this._bits.length); + this._bits = nd; + } + }; + BitSet.prototype.get = function(pos) { + var offset = pos >> 6; + if (offset >= this._bits.length) + return false; + return (this._bits[offset] & (1 << pos)) != 0; + }; + BitSet.prototype.intersects = function(set) { + var i = Math.min(this._bits.length, set._bits.length); + while (--i >= 0) { + if ((this._bits[i] & set._bits[i]) != 0) + return true; + } + return false; + }; + BitSet.prototype.isEmpty = function() { + for (var i = this._bits.length - 1; i >= 0; i--) { + if (this._bits[i]) return false; - }; - BitSet.prototype.isEmpty = function () { - for (var i = this._bits.length - 1; i >= 0; i--) { - if (this._bits[i]) - return false; - } - return true; - }; - BitSet.prototype.nextSetBit = function (from) { - var offset = from >> 6; - var mask = 1 << from; - while (offset < this._bits.length) { - var h = this._bits[offset]; - do { - if ((h & mask) != 0) - return from; - mask <<= 1; - from++; - } while (mask != 0); - mask = 1; - offset++; - } - return -1; - }; - BitSet.prototype.set = function (pos, value) { - if (value === void 0) { value = true; } - if (value) { - var offset = pos >> 6; - this.ensure(offset); - this._bits[offset] |= 1 << pos; - } - else { - this.clear(pos); - } - }; - BitSet.LONG_MASK = 0x3f; - return BitSet; -}()); -var ComponentList = (function () { - function ComponentList(entity) { - this._components = []; - this._componentsToAdd = []; - this._componentsToRemove = []; - this._tempBufferList = []; - this._entity = entity; } - Object.defineProperty(ComponentList.prototype, "count", { - get: function () { - return this._components.length; - }, - enumerable: true, - configurable: true - }); - Object.defineProperty(ComponentList.prototype, "buffer", { - get: function () { - return this._components; - }, - enumerable: true, - configurable: true - }); - ComponentList.prototype.add = function (component) { - this._componentsToAdd.push(component); - }; - ComponentList.prototype.remove = function (component) { - if (this._componentsToAdd.contains(component)) { - this._componentsToAdd.remove(component); - return; - } - this._componentsToRemove.push(component); - }; - ComponentList.prototype.removeAllComponents = function () { - for (var i = 0; i < this._components.length; i++) { - this.handleRemove(this._components[i]); - } - this._components.length = 0; - this._componentsToAdd.length = 0; - this._componentsToRemove.length = 0; - }; - ComponentList.prototype.deregisterAllComponents = function () { - for (var i = 0; i < this._components.length; i++) { - var component = this._components[i]; - if (component instanceof RenderableComponent) - this._entity.scene.renderableComponents.remove(component); - this._entity.componentBits.set(ComponentTypeManager.getIndexFor(component), false); - this._entity.scene.entityProcessors.onComponentRemoved(this._entity); - } - }; - ComponentList.prototype.registerAllComponents = function () { - for (var i = 0; i < this._components.length; i++) { - var component = this._components[i]; - if (component instanceof RenderableComponent) - this._entity.scene.renderableComponents.add(component); - this._entity.componentBits.set(ComponentTypeManager.getIndexFor(component)); - this._entity.scene.entityProcessors.onComponentAdded(this._entity); - } - }; - ComponentList.prototype.updateLists = function () { - if (this._componentsToRemove.length > 0) { - for (var i = 0; i < this._componentsToRemove.length; i++) { - this.handleRemove(this._componentsToRemove[i]); - this._components.remove(this._componentsToRemove[i]); - } - this._componentsToRemove.length = 0; - } - if (this._componentsToAdd.length > 0) { - for (var i = 0, count = this._componentsToAdd.length; i < count; i++) { - var component = this._componentsToAdd[i]; - if (component instanceof RenderableComponent) - this._entity.scene.renderableComponents.add(component); - this._entity.componentBits.set(ComponentTypeManager.getIndexFor(component)); - this._entity.scene.entityProcessors.onComponentAdded(this._entity); - this._components.push(component); - this._tempBufferList.push(component); - } - this._componentsToAdd.length = 0; - for (var i = 0; i < this._tempBufferList.length; i++) { - var component = this._tempBufferList[i]; - component.onAddedToEntity(); - if (component.enabled) { - component.onEnabled(); - } - } - this._tempBufferList.length = 0; - } - }; - ComponentList.prototype.handleRemove = function (component) { + return true; + }; + BitSet.prototype.nextSetBit = function(from) { + var offset = from >> 6; + var mask = 1 << from; + while (offset < this._bits.length) { + var h = this._bits[offset]; + do { + if ((h & mask) != 0) + return from; + mask <<= 1; + from++; + } while (mask != 0); + mask = 1; + offset++; + } + return -1; + }; + BitSet.prototype.set = function(pos, value) { + if (value === void 0) { + value = true; + } + if (value) { + var offset = pos >> 6; + this.ensure(offset); + this._bits[offset] |= 1 << pos; + } else { + this.clear(pos); + } + }; + BitSet.LONG_MASK = 0x3f; + return BitSet; +}()); +var ComponentList = (function() { + function ComponentList(entity) { + this._components = []; + this._componentsToAdd = []; + this._componentsToRemove = []; + this._tempBufferList = []; + this._entity = entity; + } + Object.defineProperty(ComponentList.prototype, "count", { + get : function() { return this._components.length; }, + enumerable : true, + configurable : true + }); + Object.defineProperty(ComponentList.prototype, "buffer", { + get : function() { return this._components; }, + enumerable : true, + configurable : true + }); + ComponentList.prototype.add = function( + component) { this._componentsToAdd.push(component); }; + ComponentList.prototype.remove = function(component) { + if (this._componentsToAdd.contains(component)) { + this._componentsToAdd.remove(component); + return; + } + this._componentsToRemove.push(component); + }; + ComponentList.prototype.removeAllComponents = function() { + for (var i = 0; i < this._components.length; i++) { + this.handleRemove(this._components[i]); + } + this._components.length = 0; + this._componentsToAdd.length = 0; + this._componentsToRemove.length = 0; + }; + ComponentList.prototype.deregisterAllComponents = function() { + for (var i = 0; i < this._components.length; i++) { + var component = this._components[i]; + if (component instanceof RenderableComponent) + this._entity.scene.renderableComponents.remove(component); + this._entity.componentBits.set( + ComponentTypeManager.getIndexFor(component), false); + this._entity.scene.entityProcessors.onComponentRemoved(this._entity); + } + }; + ComponentList.prototype.registerAllComponents = function() { + for (var i = 0; i < this._components.length; i++) { + var component = this._components[i]; + if (component instanceof RenderableComponent) + this._entity.scene.renderableComponents.add(component); + this._entity.componentBits.set( + ComponentTypeManager.getIndexFor(component)); + this._entity.scene.entityProcessors.onComponentAdded(this._entity); + } + }; + ComponentList.prototype.updateLists = function() { + if (this._componentsToRemove.length > 0) { + for (var i = 0; i < this._componentsToRemove.length; i++) { + this.handleRemove(this._componentsToRemove[i]); + this._components.remove(this._componentsToRemove[i]); + } + this._componentsToRemove.length = 0; + } + if (this._componentsToAdd.length > 0) { + for (var i = 0, count = this._componentsToAdd.length; i < count; i++) { + var component = this._componentsToAdd[i]; if (component instanceof RenderableComponent) - this._entity.scene.renderableComponents.remove(component); - this._entity.componentBits.set(ComponentTypeManager.getIndexFor(component), false); - this._entity.scene.entityProcessors.onComponentRemoved(this._entity); - component.onRemovedFromEntity(); - component.entity = null; - }; - ComponentList.prototype.getComponent = function (type, onlyReturnInitializedComponents) { - for (var i = 0; i < this._components.length; i++) { - var component = this._components[i]; - if (component instanceof type) - return component; - } - if (!onlyReturnInitializedComponents) { - for (var i = 0; i < this._componentsToAdd.length; i++) { - var component = this._componentsToAdd[i]; - if (component instanceof type) - return component; - } - } - return null; - }; - ComponentList.prototype.getComponents = function (typeName, components) { - if (!components) - components = []; - for (var i = 0; i < this._components.length; i++) { - var component = this._components[i]; - if (typeof (typeName) == "string") { - if (egret.is(component, typeName)) { - components.push(component); - } - } - else { - if (component instanceof typeName) { - components.push(component); - } - } - } - for (var i = 0; i < this._componentsToAdd.length; i++) { - var component = this._componentsToAdd[i]; - if (typeof (typeName) == "string") { - if (egret.is(component, typeName)) { - components.push(component); - } - } - else { - if (component instanceof typeName) { - components.push(component); - } - } - } - return components; - }; - ComponentList.prototype.update = function () { - this.updateLists(); - for (var i = 0; i < this._components.length; i++) { - var component = this._components[i]; - if (component.enabled && (component.updateInterval == 1 || Time.frameCount % component.updateInterval == 0)) - component.update(); - } - }; - ComponentList.prototype.onEntityTransformChanged = function (comp) { - for (var i = 0; i < this._components.length; i++) { - if (this._components[i].enabled) - this._components[i].onEntityTransformChanged(comp); - } - for (var i = 0; i < this._componentsToAdd.length; i++) { - if (this._componentsToAdd[i].enabled) - this._componentsToAdd[i].onEntityTransformChanged(comp); - } - }; - return ComponentList; -}()); -var ComponentTypeManager = (function () { - function ComponentTypeManager() { - } - ComponentTypeManager.add = function (type) { - if (!this._componentTypesMask.has(type)) - this._componentTypesMask[type] = this._componentTypesMask.size; - }; - ComponentTypeManager.getIndexFor = function (type) { - var v = -1; - if (!this._componentTypesMask.has(type)) { - this.add(type); - v = this._componentTypesMask.get(type); - } - return v; - }; - ComponentTypeManager._componentTypesMask = new Map(); - return ComponentTypeManager; -}()); -var EntityList = (function () { - function EntityList(scene) { - this._entitiesToRemove = []; - this._entitiesToAdded = []; - this._tempEntityList = []; - this._entities = []; - this._entityDict = new Map(); - this._unsortedTags = []; - this.scene = scene; - } - Object.defineProperty(EntityList.prototype, "count", { - get: function () { - return this._entities.length; - }, - enumerable: true, - configurable: true - }); - Object.defineProperty(EntityList.prototype, "buffer", { - get: function () { - return this._entities; - }, - enumerable: true, - configurable: true - }); - EntityList.prototype.add = function (entity) { - if (this._entitiesToAdded.indexOf(entity) == -1) - this._entitiesToAdded.push(entity); - }; - EntityList.prototype.remove = function (entity) { - if (this._entitiesToAdded.contains(entity)) { - this._entitiesToAdded.remove(entity); - return; - } - if (!this._entitiesToRemove.contains(entity)) - this._entitiesToRemove.push(entity); - }; - EntityList.prototype.findEntity = function (name) { - for (var i = 0; i < this._entities.length; i++) { - if (this._entities[i].name == name) - return this._entities[i]; - } - return this._entitiesToAdded.firstOrDefault(function (entity) { return entity.name == name; }); - }; - EntityList.prototype.getTagList = function (tag) { - var list = this._entityDict.get(tag); - if (!list) { - list = []; - this._entityDict.set(tag, list); - } - return this._entityDict.get(tag); - }; - EntityList.prototype.addToTagList = function (entity) { - var list = this.getTagList(entity.tag); - if (!list.contains(entity)) { - list.push(entity); - this._unsortedTags.push(entity.tag); - } - }; - EntityList.prototype.removeFromTagList = function (entity) { - var list = this._entityDict.get(entity.tag); - if (list) { - list.remove(entity); - } - }; - EntityList.prototype.update = function () { - for (var i = 0; i < this._entities.length; i++) { - var entity = this._entities[i]; - if (entity.enabled) - entity.update(); - } - }; - EntityList.prototype.removeAllEntities = function () { - this._entitiesToAdded.length = 0; - this.updateLists(); - for (var i = 0; i < this._entities.length; i++) { - this._entities[i]._isDestoryed = true; - this._entities[i].onRemovedFromScene(); - this._entities[i].scene = null; - } - this._entities.length = 0; - this._entityDict.clear(); - }; - EntityList.prototype.updateLists = function () { - var _this = this; - if (this._entitiesToRemove.length > 0) { - var temp = this._entitiesToRemove; - this._entitiesToRemove = this._tempEntityList; - this._tempEntityList = temp; - this._tempEntityList.forEach(function (entity) { - _this._entities.remove(entity); - entity.scene = null; - _this.scene.entityProcessors.onEntityRemoved(entity); - }); - this._tempEntityList.length = 0; - } - if (this._entitiesToAdded.length > 0) { - var temp = this._entitiesToAdded; - this._entitiesToAdded = this._tempEntityList; - this._tempEntityList = temp; - this._tempEntityList.forEach(function (entity) { - if (!_this._entities.contains(entity)) { - _this._entities.push(entity); - entity.scene = _this.scene; - _this.scene.entityProcessors.onEntityAdded(entity); - } - }); - this._tempEntityList.forEach(function (entity) { return entity.onAddedToScene(); }); - this._tempEntityList.length = 0; - } - if (this._unsortedTags.length > 0) { - this._unsortedTags.forEach(function (tag) { - _this._entityDict.get(tag).sort(); - }); - this._unsortedTags.length = 0; - } - }; - return EntityList; -}()); -var EntityProcessorList = (function () { - function EntityProcessorList() { - this._processors = []; - } - EntityProcessorList.prototype.add = function (processor) { - this._processors.push(processor); - }; - EntityProcessorList.prototype.remove = function (processor) { - this._processors.remove(processor); - }; - EntityProcessorList.prototype.onComponentAdded = function (entity) { - this.notifyEntityChanged(entity); - }; - EntityProcessorList.prototype.onComponentRemoved = function (entity) { - this.notifyEntityChanged(entity); - }; - EntityProcessorList.prototype.onEntityAdded = function (entity) { - this.notifyEntityChanged(entity); - }; - EntityProcessorList.prototype.onEntityRemoved = function (entity) { - this.removeFromProcessors(entity); - }; - EntityProcessorList.prototype.notifyEntityChanged = function (entity) { - for (var i = 0; i < this._processors.length; i++) { - this._processors[i].onChanged(entity); - } - }; - EntityProcessorList.prototype.removeFromProcessors = function (entity) { - for (var i = 0; i < this._processors.length; i++) { - this._processors[i].remove(entity); - } - }; - EntityProcessorList.prototype.begin = function () { - }; - EntityProcessorList.prototype.update = function () { - for (var i = 0; i < this._processors.length; i++) { - this._processors[i].update(); - } - }; - EntityProcessorList.prototype.lateUpdate = function () { - for (var i = 0; i < this._processors.length; i++) { - this._processors[i].lateUpdate(); - } - }; - EntityProcessorList.prototype.end = function () { - }; - EntityProcessorList.prototype.getProcessor = function () { - for (var i = 0; i < this._processors.length; i++) { - var processor = this._processors[i]; - if (processor instanceof EntitySystem) - return processor; - } - return null; - }; - return EntityProcessorList; -}()); -var Matcher = (function () { - function Matcher() { - this.allSet = new BitSet(); - this.exclusionSet = new BitSet(); - this.oneSet = new BitSet(); - } - Matcher.empty = function () { - return new Matcher(); - }; - Matcher.prototype.getAllSet = function () { - return this.allSet; - }; - Matcher.prototype.getExclusionSet = function () { - return this.exclusionSet; - }; - Matcher.prototype.getOneSet = function () { - return this.oneSet; - }; - Matcher.prototype.IsIntersted = function (e) { - if (!this.allSet.isEmpty()) { - for (var i = this.allSet.nextSetBit(0); i >= 0; i = this.allSet.nextSetBit(i + 1)) { - if (!e.componentBits.get(i)) - return false; - } - } - if (!this.exclusionSet.isEmpty() && this.exclusionSet.intersects(e.componentBits)) - return false; - if (!this.oneSet.isEmpty() && !this.oneSet.intersects(e.componentBits)) - return false; - return true; - }; - Matcher.prototype.all = function () { - var _this = this; - var types = []; - for (var _i = 0; _i < arguments.length; _i++) { - types[_i] = arguments[_i]; - } - types.forEach(function (type) { - _this.allSet.set(ComponentTypeManager.getIndexFor(type)); - }); - return this; - }; - Matcher.prototype.exclude = function () { - var _this = this; - var types = []; - for (var _i = 0; _i < arguments.length; _i++) { - types[_i] = arguments[_i]; - } - types.forEach(function (type) { - _this.exclusionSet.set(ComponentTypeManager.getIndexFor(type)); - }); - return this; - }; - Matcher.prototype.one = function () { - var _this = this; - var types = []; - for (var _i = 0; _i < arguments.length; _i++) { - types[_i] = arguments[_i]; - } - types.forEach(function (type) { - _this.oneSet.set(ComponentTypeManager.getIndexFor(type)); - }); - return this; - }; - return Matcher; -}()); -var RenderableComponentList = (function () { - function RenderableComponentList() { - this._components = []; - } - Object.defineProperty(RenderableComponentList.prototype, "count", { - get: function () { - return this._components.length; - }, - enumerable: true, - configurable: true - }); - Object.defineProperty(RenderableComponentList.prototype, "buffer", { - get: function () { - return this._components; - }, - enumerable: true, - configurable: true - }); - RenderableComponentList.prototype.add = function (component) { + this._entity.scene.renderableComponents.add(component); + this._entity.componentBits.set( + ComponentTypeManager.getIndexFor(component)); + this._entity.scene.entityProcessors.onComponentAdded(this._entity); this._components.push(component); - }; - RenderableComponentList.prototype.remove = function (component) { - this._components.remove(component); - }; - RenderableComponentList.prototype.updateList = function () { - }; - return RenderableComponentList; -}()); -var Time = (function () { - function Time() { + this._tempBufferList.push(component); + } + this._componentsToAdd.length = 0; + for (var i = 0; i < this._tempBufferList.length; i++) { + var component = this._tempBufferList[i]; + component.onAddedToEntity(); + if (component.enabled) { + component.onEnabled(); + } + } + this._tempBufferList.length = 0; } - ; - Time.update = function (currentTime) { - var dt = (currentTime - this._lastTime) / 1000; - this.deltaTime = dt * this.timeScale; - this.unscaledDeltaTime = dt; - this.frameCount++; - this._lastTime = currentTime; - }; - Time.deltaTime = 0; - Time.timeScale = 1; - Time.frameCount = 0; - Time._lastTime = 0; - return Time; -}()); -var GraphicsCapabilities = (function () { - function GraphicsCapabilities() { + }; + ComponentList.prototype.handleRemove = function(component) { + if (component instanceof RenderableComponent) + this._entity.scene.renderableComponents.remove(component); + this._entity.componentBits.set(ComponentTypeManager.getIndexFor(component), + false); + this._entity.scene.entityProcessors.onComponentRemoved(this._entity); + component.onRemovedFromEntity(); + component.entity = null; + }; + ComponentList.prototype.getComponent = function( + type, onlyReturnInitializedComponents) { + for (var i = 0; i < this._components.length; i++) { + var component = this._components[i]; + if (component instanceof type) + return component; } - GraphicsCapabilities.prototype.initialize = function (device) { - this.platformInitialize(device); - }; - GraphicsCapabilities.prototype.platformInitialize = function (device) { - var gl = new egret.sys.RenderBuffer().context.getInstance(); - this.supportsNonPowerOfTwo = false; - this.supportsTextureFilterAnisotropic = gl.getExtension("EXT_texture_filter_anisotropic") != null; - this.supportsDepth24 = true; - this.supportsPackedDepthStencil = true; - this.supportsDepthNonLinear = false; - this.supportsTextureMaxLevel = true; - this.supportsS3tc = gl.getExtension("WEBGL_compressed_texture_s3tc") != null || - gl.getExtension("WEBGL_compressed_texture_s3tc_srgb") != null; - this.supportsDxt1 = this.supportsS3tc; - this.supportsPvrtc = false; - this.supportsAtitc = gl.getExtension("WEBGL_compressed_texture_astc") != null; - this.supportsFramebufferObjectARB = false; - }; - return GraphicsCapabilities; -}()); -var GraphicsDevice = (function () { - function GraphicsDevice() { - this.graphicsCapabilities = new GraphicsCapabilities(); - this.graphicsCapabilities.initialize(this); + if (!onlyReturnInitializedComponents) { + for (var i = 0; i < this._componentsToAdd.length; i++) { + var component = this._componentsToAdd[i]; + if (component instanceof type) + return component; + } } - return GraphicsDevice; -}()); -var Viewport = (function () { - function Viewport(x, y, width, height) { - this._x = x; - this._y = y; - this._width = width; - this._height = height; - this._minDepth = 0; - this._maxDepth = 1; + return null; + }; + ComponentList.prototype.getComponents = function(typeName, components) { + if (!components) + components = []; + for (var i = 0; i < this._components.length; i++) { + var component = this._components[i]; + if (typeof (typeName) == "string") { + if (egret.is(component, typeName)) { + components.push(component); + } + } else { + if (component instanceof typeName) { + components.push(component); + } + } } - Object.defineProperty(Viewport.prototype, "aspectRatio", { - get: function () { - if ((this._height != 0) && (this._width != 0)) - return (this._width / this._height); - return 0; - }, - enumerable: true, - configurable: true + for (var i = 0; i < this._componentsToAdd.length; i++) { + var component = this._componentsToAdd[i]; + if (typeof (typeName) == "string") { + if (egret.is(component, typeName)) { + components.push(component); + } + } else { + if (component instanceof typeName) { + components.push(component); + } + } + } + return components; + }; + ComponentList.prototype.update = function() { + this.updateLists(); + for (var i = 0; i < this._components.length; i++) { + var component = this._components[i]; + if (component.enabled && + (component.updateInterval == 1 || + Time.frameCount % component.updateInterval == 0)) + component.update(); + } + }; + ComponentList.prototype.onEntityTransformChanged = function(comp) { + for (var i = 0; i < this._components.length; i++) { + if (this._components[i].enabled) + this._components[i].onEntityTransformChanged(comp); + } + for (var i = 0; i < this._componentsToAdd.length; i++) { + if (this._componentsToAdd[i].enabled) + this._componentsToAdd[i].onEntityTransformChanged(comp); + } + }; + return ComponentList; +}()); +var ComponentTypeManager = (function() { + function ComponentTypeManager() {} + ComponentTypeManager.add = function(type) { + if (!this._componentTypesMask.has(type)) + this._componentTypesMask[type] = this._componentTypesMask.size; + }; + ComponentTypeManager.getIndexFor = function(type) { + var v = -1; + if (!this._componentTypesMask.has(type)) { + this.add(type); + v = this._componentTypesMask.get(type); + } + return v; + }; + ComponentTypeManager._componentTypesMask = new Map(); + return ComponentTypeManager; +}()); +var EntityList = (function() { + function EntityList(scene) { + this._entitiesToRemove = []; + this._entitiesToAdded = []; + this._tempEntityList = []; + this._entities = []; + this._entityDict = new Map(); + this._unsortedTags = []; + this.scene = scene; + } + Object.defineProperty(EntityList.prototype, "count", { + get : function() { return this._entities.length; }, + enumerable : true, + configurable : true + }); + Object.defineProperty(EntityList.prototype, "buffer", { + get : function() { return this._entities; }, + enumerable : true, + configurable : true + }); + EntityList.prototype.add = function(entity) { + if (this._entitiesToAdded.indexOf(entity) == -1) + this._entitiesToAdded.push(entity); + }; + EntityList.prototype.remove = function(entity) { + if (this._entitiesToAdded.contains(entity)) { + this._entitiesToAdded.remove(entity); + return; + } + if (!this._entitiesToRemove.contains(entity)) + this._entitiesToRemove.push(entity); + }; + EntityList.prototype.findEntity = function(name) { + for (var i = 0; i < this._entities.length; i++) { + if (this._entities[i].name == name) + return this._entities[i]; + } + return this._entitiesToAdded.firstOrDefault(function( + entity) { return entity.name == name; }); + }; + EntityList.prototype.getTagList = function(tag) { + var list = this._entityDict.get(tag); + if (!list) { + list = []; + this._entityDict.set(tag, list); + } + return this._entityDict.get(tag); + }; + EntityList.prototype.addToTagList = function(entity) { + var list = this.getTagList(entity.tag); + if (!list.contains(entity)) { + list.push(entity); + this._unsortedTags.push(entity.tag); + } + }; + EntityList.prototype.removeFromTagList = function(entity) { + var list = this._entityDict.get(entity.tag); + if (list) { + list.remove(entity); + } + }; + EntityList.prototype.update = function() { + for (var i = 0; i < this._entities.length; i++) { + var entity = this._entities[i]; + if (entity.enabled) + entity.update(); + } + }; + EntityList.prototype.removeAllEntities = function() { + this._entitiesToAdded.length = 0; + this.updateLists(); + for (var i = 0; i < this._entities.length; i++) { + this._entities[i]._isDestoryed = true; + this._entities[i].onRemovedFromScene(); + this._entities[i].scene = null; + } + this._entities.length = 0; + this._entityDict.clear(); + }; + EntityList.prototype.updateLists = function() { + var _this = this; + if (this._entitiesToRemove.length > 0) { + var temp = this._entitiesToRemove; + this._entitiesToRemove = this._tempEntityList; + this._tempEntityList = temp; + this._tempEntityList.forEach(function(entity) { + _this._entities.remove(entity); + entity.scene = null; + _this.scene.entityProcessors.onEntityRemoved(entity); + }); + this._tempEntityList.length = 0; + } + if (this._entitiesToAdded.length > 0) { + var temp = this._entitiesToAdded; + this._entitiesToAdded = this._tempEntityList; + this._tempEntityList = temp; + this._tempEntityList.forEach(function(entity) { + if (!_this._entities.contains(entity)) { + _this._entities.push(entity); + entity.scene = _this.scene; + _this.scene.entityProcessors.onEntityAdded(entity); + } + }); + this._tempEntityList.forEach(function( + entity) { return entity.onAddedToScene(); }); + this._tempEntityList.length = 0; + } + if (this._unsortedTags.length > 0) { + this._unsortedTags.forEach(function( + tag) { _this._entityDict.get(tag).sort(); }); + this._unsortedTags.length = 0; + } + }; + return EntityList; +}()); +var EntityProcessorList = (function() { + function EntityProcessorList() { this._processors = []; } + EntityProcessorList.prototype.add = function( + processor) { this._processors.push(processor); }; + EntityProcessorList.prototype.remove = function( + processor) { this._processors.remove(processor); }; + EntityProcessorList.prototype.onComponentAdded = function( + entity) { this.notifyEntityChanged(entity); }; + EntityProcessorList.prototype.onComponentRemoved = function( + entity) { this.notifyEntityChanged(entity); }; + EntityProcessorList.prototype.onEntityAdded = function( + entity) { this.notifyEntityChanged(entity); }; + EntityProcessorList.prototype.onEntityRemoved = function( + entity) { this.removeFromProcessors(entity); }; + EntityProcessorList.prototype.notifyEntityChanged = function(entity) { + for (var i = 0; i < this._processors.length; i++) { + this._processors[i].onChanged(entity); + } + }; + EntityProcessorList.prototype.removeFromProcessors = function(entity) { + for (var i = 0; i < this._processors.length; i++) { + this._processors[i].remove(entity); + } + }; + EntityProcessorList.prototype.begin = function() {}; + EntityProcessorList.prototype.update = function() { + for (var i = 0; i < this._processors.length; i++) { + this._processors[i].update(); + } + }; + EntityProcessorList.prototype.lateUpdate = function() { + for (var i = 0; i < this._processors.length; i++) { + this._processors[i].lateUpdate(); + } + }; + EntityProcessorList.prototype.end = function() {}; + EntityProcessorList.prototype.getProcessor = function() { + for (var i = 0; i < this._processors.length; i++) { + var processor = this._processors[i]; + if (processor instanceof EntitySystem) + return processor; + } + return null; + }; + return EntityProcessorList; +}()); +var Matcher = (function() { + function Matcher() { + this.allSet = new BitSet(); + this.exclusionSet = new BitSet(); + this.oneSet = new BitSet(); + } + Matcher.empty = function() { return new Matcher(); }; + Matcher.prototype.getAllSet = function() { return this.allSet; }; + Matcher.prototype.getExclusionSet = function() { return this.exclusionSet; }; + Matcher.prototype.getOneSet = function() { return this.oneSet; }; + Matcher.prototype.IsIntersted = function(e) { + if (!this.allSet.isEmpty()) { + for (var i = this.allSet.nextSetBit(0); i >= 0; + i = this.allSet.nextSetBit(i + 1)) { + if (!e.componentBits.get(i)) + return false; + } + } + if (!this.exclusionSet.isEmpty() && + this.exclusionSet.intersects(e.componentBits)) + return false; + if (!this.oneSet.isEmpty() && !this.oneSet.intersects(e.componentBits)) + return false; + return true; + }; + Matcher.prototype.all = function() { + var _this = this; + var types = []; + for (var _i = 0; _i < arguments.length; _i++) { + types[_i] = arguments[_i]; + } + types.forEach(function( + type) { _this.allSet.set(ComponentTypeManager.getIndexFor(type)); }); + return this; + }; + Matcher.prototype.exclude = function() { + var _this = this; + var types = []; + for (var _i = 0; _i < arguments.length; _i++) { + types[_i] = arguments[_i]; + } + types.forEach(function(type) { + _this.exclusionSet.set(ComponentTypeManager.getIndexFor(type)); }); - Object.defineProperty(Viewport.prototype, "bounds", { - get: function () { - return new Rectangle(this._x, this._y, this._width, this._height); - }, - set: function (value) { - this._x = value.x; - this._y = value.y; - this._width = value.width; - this._height = value.height; - }, - enumerable: true, - configurable: true - }); - return Viewport; -}()); -var GraphicsResource = (function () { - function GraphicsResource() { + return this; + }; + Matcher.prototype.one = function() { + var _this = this; + var types = []; + for (var _i = 0; _i < arguments.length; _i++) { + types[_i] = arguments[_i]; } - return GraphicsResource; + types.forEach(function( + type) { _this.oneSet.set(ComponentTypeManager.getIndexFor(type)); }); + return this; + }; + return Matcher; }()); -var GaussianBlurEffect = (function (_super) { - __extends(GaussianBlurEffect, _super); - function GaussianBlurEffect() { - return _super.call(this, PostProcessor.default_vert, GaussianBlurEffect.blur_frag, { - screenWidth: SceneManager.stage.stageWidth, - screenHeight: SceneManager.stage.stageHeight - }) || this; - } - GaussianBlurEffect.blur_frag = "precision mediump float;\n" + - "uniform sampler2D uSampler;\n" + - "uniform float screenWidth;\n" + - "uniform float screenHeight;\n" + - "float normpdf(in float x, in float sigma)\n" + - "{\n" + - "return 0.39894*exp(-0.5*x*x/(sigma*sigma))/sigma;\n" + - "}\n" + - "void main()\n" + - "{\n" + - "vec3 c = texture2D(uSampler, gl_FragCoord.xy / vec2(screenWidth, screenHeight).xy).rgb;\n" + - "const int mSize = 11;\n" + - "const int kSize = (mSize - 1)/2;\n" + - "float kernel[mSize];\n" + - "vec3 final_colour = vec3(0.0);\n" + - "float sigma = 7.0;\n" + - "float z = 0.0;\n" + - "for (int j = 0; j <= kSize; ++j)\n" + - "{\n" + - "kernel[kSize+j] = kernel[kSize-j] = normpdf(float(j),sigma);\n" + - "}\n" + - "for (int j = 0; j < mSize; ++j)\n" + - "{\n" + - "z += kernel[j];\n" + - "}\n" + - "for (int i = -kSize; i <= kSize; ++i)\n" + - "{\n" + - "for (int j = -kSize; j <= kSize; ++j)\n" + - "{\n" + - "final_colour += kernel[kSize+j]*kernel[kSize+i]*texture2D(uSampler, (gl_FragCoord.xy+vec2(float(i),float(j))) / vec2(screenWidth, screenHeight).xy).rgb;\n" + - "}\n}\n" + - "gl_FragColor = vec4(final_colour/(z*z), 1.0);\n" + - "}"; - return GaussianBlurEffect; +var RenderableComponentList = (function() { + function RenderableComponentList() { this._components = []; } + Object.defineProperty(RenderableComponentList.prototype, "count", { + get : function() { return this._components.length; }, + enumerable : true, + configurable : true + }); + Object.defineProperty(RenderableComponentList.prototype, "buffer", { + get : function() { return this._components; }, + enumerable : true, + configurable : true + }); + RenderableComponentList.prototype.add = function( + component) { this._components.push(component); }; + RenderableComponentList.prototype.remove = function( + component) { this._components.remove(component); }; + RenderableComponentList.prototype.updateList = function() {}; + return RenderableComponentList; +}()); +var Time = (function() { + function Time() {}; + Time.update = function(currentTime) { + var dt = (currentTime - this._lastTime) / 1000; + this.deltaTime = dt * this.timeScale; + this.unscaledDeltaTime = dt; + this.frameCount++; + this._lastTime = currentTime; + }; + Time.deltaTime = 0; + Time.timeScale = 1; + Time.frameCount = 0; + Time._lastTime = 0; + return Time; +}()); +var GraphicsCapabilities = (function() { + function GraphicsCapabilities() {} + GraphicsCapabilities.prototype.initialize = function( + device) { this.platformInitialize(device); }; + GraphicsCapabilities.prototype.platformInitialize = function(device) { + var gl = new egret.sys.RenderBuffer().context.getInstance(); + this.supportsNonPowerOfTwo = false; + this.supportsTextureFilterAnisotropic = + gl.getExtension("EXT_texture_filter_anisotropic") != null; + this.supportsDepth24 = true; + this.supportsPackedDepthStencil = true; + this.supportsDepthNonLinear = false; + this.supportsTextureMaxLevel = true; + this.supportsS3tc = + gl.getExtension("WEBGL_compressed_texture_s3tc") != null || + gl.getExtension("WEBGL_compressed_texture_s3tc_srgb") != null; + this.supportsDxt1 = this.supportsS3tc; + this.supportsPvrtc = false; + this.supportsAtitc = + gl.getExtension("WEBGL_compressed_texture_astc") != null; + this.supportsFramebufferObjectARB = false; + }; + return GraphicsCapabilities; +}()); +var GraphicsDevice = (function() { + function GraphicsDevice() { + this.graphicsCapabilities = new GraphicsCapabilities(); + this.graphicsCapabilities.initialize(this); + } + return GraphicsDevice; +}()); +var Viewport = (function() { + function Viewport(x, y, width, height) { + this._x = x; + this._y = y; + this._width = width; + this._height = height; + this._minDepth = 0; + this._maxDepth = 1; + } + Object.defineProperty(Viewport.prototype, "aspectRatio", { + get : function() { + if ((this._height != 0) && (this._width != 0)) + return (this._width / this._height); + return 0; + }, + enumerable : true, + configurable : true + }); + Object.defineProperty(Viewport.prototype, "bounds", { + get : function() { + return new Rectangle(this._x, this._y, this._width, this._height); + }, + set : function(value) { + this._x = value.x; + this._y = value.y; + this._width = value.width; + this._height = value.height; + }, + enumerable : true, + configurable : true + }); + return Viewport; +}()); +var GraphicsResource = (function() { + function GraphicsResource() {} + return GraphicsResource; +}()); +var GaussianBlurEffect = (function(_super) { + __extends(GaussianBlurEffect, _super); + function GaussianBlurEffect() { + return _super.call(this, PostProcessor.default_vert, + GaussianBlurEffect.blur_frag, { + screenWidth : SceneManager.stage.stageWidth, + screenHeight : SceneManager.stage.stageHeight + }) || + this; + } + GaussianBlurEffect.blur_frag = + "precision mediump float;\n" + + "uniform sampler2D uSampler;\n" + + "uniform float screenWidth;\n" + + "uniform float screenHeight;\n" + + "float normpdf(in float x, in float sigma)\n" + + "{\n" + + "return 0.39894*exp(-0.5*x*x/(sigma*sigma))/sigma;\n" + + "}\n" + + "void main()\n" + + "{\n" + + "vec3 c = texture2D(uSampler, gl_FragCoord.xy / vec2(screenWidth, screenHeight).xy).rgb;\n" + + "const int mSize = 11;\n" + + "const int kSize = (mSize - 1)/2;\n" + + "float kernel[mSize];\n" + + "vec3 final_colour = vec3(0.0);\n" + + "float sigma = 7.0;\n" + + "float z = 0.0;\n" + + "for (int j = 0; j <= kSize; ++j)\n" + + "{\n" + + "kernel[kSize+j] = kernel[kSize-j] = normpdf(float(j),sigma);\n" + + "}\n" + + "for (int j = 0; j < mSize; ++j)\n" + + "{\n" + + "z += kernel[j];\n" + + "}\n" + + "for (int i = -kSize; i <= kSize; ++i)\n" + + "{\n" + + "for (int j = -kSize; j <= kSize; ++j)\n" + + "{\n" + + "final_colour += kernel[kSize+j]*kernel[kSize+i]*texture2D(uSampler, (gl_FragCoord.xy+vec2(float(i),float(j))) / vec2(screenWidth, screenHeight).xy).rgb;\n" + + "}\n}\n" + + "gl_FragColor = vec4(final_colour/(z*z), 1.0);\n" + + "}"; + return GaussianBlurEffect; }(egret.CustomFilter)); -var PolygonLightEffect = (function (_super) { - __extends(PolygonLightEffect, _super); - function PolygonLightEffect() { - return _super.call(this, PolygonLightEffect.vertSrc, PolygonLightEffect.fragmentSrc) || this; +var PolygonLightEffect = (function(_super) { + __extends(PolygonLightEffect, _super); + function PolygonLightEffect() { + return _super.call(this, PolygonLightEffect.vertSrc, + PolygonLightEffect.fragmentSrc) || + this; + } + PolygonLightEffect.vertSrc = + "attribute vec2 aVertexPosition;\n" + + "attribute vec2 aTextureCoord;\n" + + "uniform vec2 projectionVector;\n" + + "varying vec2 vTextureCoord;\n" + + "const vec2 center = vec2(-1.0, 1.0);\n" + + "void main(void) {\n" + + " gl_Position = vec4( (aVertexPosition / projectionVector) + center , 0.0, 1.0);\n" + + " vTextureCoord = aTextureCoord;\n" + + "}"; + PolygonLightEffect.fragmentSrc = + "precision lowp float;\n" + + "varying vec2 vTextureCoord;\n" + + "uniform sampler2D uSampler;\n" + + "#define SAMPLE_COUNT 15\n" + + "uniform vec2 _sampleOffsets[SAMPLE_COUNT];\n" + + "uniform float _sampleWeights[SAMPLE_COUNT];\n" + + "void main(void) {\n" + + "vec4 c = vec4(0, 0, 0, 0);\n" + + "for( int i = 0; i < SAMPLE_COUNT; i++ )\n" + + " c += texture2D( uSampler, vTextureCoord + _sampleOffsets[i] ) * _sampleWeights[i];\n" + + "gl_FragColor = c;\n" + + "}"; + return PolygonLightEffect; +}(egret.CustomFilter)); +var PostProcessor = (function() { + function PostProcessor(effect) { + if (effect === void 0) { + effect = null; } - PolygonLightEffect.vertSrc = "attribute vec2 aVertexPosition;\n" + + this.enable = true; + this.effect = effect; + } + PostProcessor.prototype.onAddedToScene = function(scene) { + this.scene = scene; + this.shape = new egret.Shape(); + this.shape.graphics.beginFill(0xFFFFFF, 1); + this.shape.graphics.drawRect(0, 0, SceneManager.stage.stageWidth, + SceneManager.stage.stageHeight); + this.shape.graphics.endFill(); + scene.addChild(this.shape); + }; + PostProcessor.prototype.process = function() { this.drawFullscreenQuad(); }; + PostProcessor.prototype.onSceneBackBufferSizeChanged = function(newWidth, + newHeight) {}; + PostProcessor.prototype.drawFullscreenQuad = + function() { this.scene.filters = [ this.effect ]; }; + PostProcessor.prototype.unload = function() { + if (this.effect) { + this.effect = null; + } + this.scene.removeChild(this.shape); + this.scene = null; + }; + PostProcessor.default_vert = + "attribute vec2 aVertexPosition;\n" + + "attribute vec2 aTextureCoord;\n" + + "attribute vec2 aColor;\n" + + "uniform vec2 projectionVector;\n" + + "varying vec2 vTextureCoord;\n" + + "varying vec4 vColor;\n" + + "const vec2 center = vec2(-1.0, 1.0);\n" + + "void main(void) {\n" + + "gl_Position = vec4( (aVertexPosition / projectionVector) + center , 0.0, 1.0);\n" + + "vTextureCoord = aTextureCoord;\n" + + "vColor = vec4(aColor.x, aColor.x, aColor.x, aColor.x);\n" + + "}"; + return PostProcessor; +}()); +var BloomSettings = (function() { + function BloomSettings(bloomThreshold, blurAmount, bloomIntensity, + baseIntensity, bloomSaturation, baseSaturation) { + this.threshold = bloomThreshold; + this.blurAmount = blurAmount; + this.intensity = bloomIntensity; + this.baseIntensity = baseIntensity; + this.saturation = bloomSaturation; + this.baseStaturation = baseSaturation; + } + BloomSettings.presetSettings = [ + new BloomSettings(0.1, 0.6, 2, 1, 1, 0), + new BloomSettings(0, 3, 1, 1, 1, 1), new BloomSettings(0.5, 8, 2, 1, 0, 1), + new BloomSettings(0.25, 8, 1.3, 1, 1, 0), + new BloomSettings(0, 2, 1, 0.1, 1, 1), new BloomSettings(0.5, 2, 1, 1, 1, 1) + ]; + return BloomSettings; +}()); +var GaussianBlurPostProcessor = (function(_super) { + __extends(GaussianBlurPostProcessor, _super); + function GaussianBlurPostProcessor() { + return _super !== null && _super.apply(this, arguments) || this; + } + GaussianBlurPostProcessor.prototype.onAddedToScene = function(scene) { + _super.prototype.onAddedToScene.call(this, scene); + this.effect = new GaussianBlurEffect(); + }; + return GaussianBlurPostProcessor; +}(PostProcessor)); +var Renderer = (function() { + function Renderer() {} + Renderer.prototype.onAddedToScene = function(scene) {}; + Renderer.prototype.beginRender = function(cam) {}; + Renderer.prototype.unload = function() {}; + Renderer.prototype.renderAfterStateCheck = function( + renderable, cam) { renderable.render(cam); }; + return Renderer; +}()); +var DefaultRenderer = (function(_super) { + __extends(DefaultRenderer, _super); + function DefaultRenderer() { + return _super !== null && _super.apply(this, arguments) || this; + } + DefaultRenderer.prototype.render = function(scene) { + var cam = this.camera ? this.camera : scene.camera; + this.beginRender(cam); + for (var i = 0; i < scene.renderableComponents.count; i++) { + var renderable = scene.renderableComponents.buffer[i]; + if (renderable.enabled && renderable.isVisibleFromCamera(cam)) + this.renderAfterStateCheck(renderable, cam); + } + }; + return DefaultRenderer; +}(Renderer)); +var ScreenSpaceRenderer = (function(_super) { + __extends(ScreenSpaceRenderer, _super); + function ScreenSpaceRenderer() { + return _super !== null && _super.apply(this, arguments) || this; + } + ScreenSpaceRenderer.prototype.render = function(scene) {}; + return ScreenSpaceRenderer; +}(Renderer)); +var PolyLight = (function(_super) { + __extends(PolyLight, _super); + function PolyLight(radius, color, power) { + var _this = _super.call(this) || this; + _this._indices = []; + _this.radius = radius; + _this.power = power; + _this.color = color; + _this.computeTriangleIndices(); + return _this; + } + Object.defineProperty(PolyLight.prototype, "radius", { + get : function() { return this._radius; }, + set : function(value) { this.setRadius(value); }, + enumerable : true, + configurable : true + }); + PolyLight.prototype.computeTriangleIndices = function(totalTris) { + if (totalTris === void 0) { + totalTris = 20; + } + this._indices.length = 0; + for (var i = 0; i < totalTris; i += 2) { + this._indices.push(0); + this._indices.push(i + 2); + this._indices.push(i + 1); + } + }; + PolyLight.prototype.setRadius = function(radius) { + if (radius != this._radius) { + this._radius = radius; + this._areBoundsDirty = true; + } + }; + PolyLight.prototype.render = function(camera) {}; + PolyLight.prototype.reset = function() {}; + return PolyLight; +}(RenderableComponent)); +var SceneTransition = (function() { + function SceneTransition(sceneLoadAction) { + this.sceneLoadAction = sceneLoadAction; + this.loadsNewScene = sceneLoadAction != null; + } + Object.defineProperty(SceneTransition.prototype, "hasPreviousSceneRender", { + get : function() { + if (!this._hasPreviousSceneRender) { + this._hasPreviousSceneRender = true; + return false; + } + return true; + }, + enumerable : true, + configurable : true + }); + SceneTransition.prototype.preRender = function() {}; + SceneTransition.prototype.render = function() {}; + SceneTransition.prototype.onBeginTransition = function() { + return __awaiter(this, void 0, void 0, function() { + return __generator(this, function(_a) { + switch (_a.label) { + case 0: + return [ 4, this.loadNextScene() ]; + case 1: + _a.sent(); + this.transitionComplete(); + return [ 2 ]; + } + }); + }); + }; + SceneTransition.prototype.transitionComplete = function() { + SceneManager.sceneTransition = null; + if (this.onTransitionCompleted) { + this.onTransitionCompleted(); + } + }; + SceneTransition.prototype.loadNextScene = function() { + return __awaiter(this, void 0, void 0, function() { + var _a; + return __generator(this, function(_b) { + switch (_b.label) { + case 0: + if (this.onScreenObscured) + this.onScreenObscured(); + if (!this.loadsNewScene) { + this.isNewSceneLoaded = true; + } + _a = SceneManager; + return [ 4, this.sceneLoadAction() ]; + case 1: + _a.scene = _b.sent(); + this.isNewSceneLoaded = true; + return [ 2 ]; + } + }); + }); + }; + SceneTransition.prototype.tickEffectProgressProperty = function( + filter, duration, easeType, reverseDirection) { + if (reverseDirection === void 0) { + reverseDirection = false; + } + return new Promise(function(resolve) { + var start = reverseDirection ? 1 : 0; + var end = reverseDirection ? 0 : 1; + egret.Tween.get(filter.uniforms) + .set({_progress : start}) + .to({_progress : end}, duration * 1000, easeType) + .call(function() { resolve(); }); + }); + }; + return SceneTransition; +}()); +var FadeTransition = (function(_super) { + __extends(FadeTransition, _super); + function FadeTransition(sceneLoadAction) { + var _this = _super.call(this, sceneLoadAction) || this; + _this.fadeToColor = 0x000000; + _this.fadeOutDuration = 0.4; + _this.fadeEaseType = egret.Ease.quadInOut; + _this.delayBeforeFadeInDuration = 0.1; + _this._alpha = 0; + _this._mask = new egret.Shape(); + return _this; + } + FadeTransition.prototype.onBeginTransition = function() { + return __awaiter(this, void 0, void 0, function() { + var _this = this; + return __generator(this, function(_a) { + 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}, this.fadeOutDuration * 1000, this.fadeEaseType) + .call(function() { + return __awaiter(_this, void 0, void 0, function() { + return __generator(this, function(_a) { + switch (_a.label) { + case 0: + return [ 4, this.loadNextScene() ]; + case 1: + _a.sent(); + return [ 2 ]; + } + }); + }); + }) + .wait(this.delayBeforeFadeInDuration) + .call(function() { + egret.Tween.get(_this) + .to({_alpha : 0}, _this.fadeOutDuration * 1000, + _this.fadeEaseType) + .call(function() { + _this.transitionComplete(); + SceneManager.stage.removeChild(_this._mask); + }); + }); + return [ 2 ]; + }); + }); + }; + FadeTransition.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(); + }; + return FadeTransition; +}(SceneTransition)); +var WindTransition = (function(_super) { + __extends(WindTransition, _super); + function WindTransition(sceneLoadAction) { + var _this = _super.call(this, sceneLoadAction) || this; + _this.duration = 1; + _this.easeType = egret.Ease.quadOut; + var vertexSrc = + "attribute vec2 aVertexPosition;\n" + "attribute vec2 aTextureCoord;\n" + "uniform vec2 projectionVector;\n" + "varying vec2 vTextureCoord;\n" + @@ -3019,2249 +3262,1959 @@ var PolygonLightEffect = (function (_super) { " gl_Position = vec4( (aVertexPosition / projectionVector) + center , 0.0, 1.0);\n" + " vTextureCoord = aTextureCoord;\n" + "}"; - PolygonLightEffect.fragmentSrc = "precision lowp float;\n" + + var fragmentSrc = + "precision lowp float;\n" + "varying vec2 vTextureCoord;\n" + "uniform sampler2D uSampler;\n" + - "#define SAMPLE_COUNT 15\n" + - "uniform vec2 _sampleOffsets[SAMPLE_COUNT];\n" + - "uniform float _sampleWeights[SAMPLE_COUNT];\n" + + "uniform float _progress;\n" + + "uniform float _size;\n" + + "uniform float _windSegments;\n" + "void main(void) {\n" + - "vec4 c = vec4(0, 0, 0, 0);\n" + - "for( int i = 0; i < SAMPLE_COUNT; i++ )\n" + - " c += texture2D( uSampler, vTextureCoord + _sampleOffsets[i] ) * _sampleWeights[i];\n" + - "gl_FragColor = c;\n" + + "vec2 co = floor(vec2(0.0, vTextureCoord.y * _windSegments));\n" + + "float x = sin(dot(co.xy, vec2(12.9898, 78.233))) * 43758.5453;\n" + + "float r = x - floor(x);\n" + + "float m = smoothstep(0.0, -_size, vTextureCoord.x * (1.0 - _size) + _size * r - (_progress * (1.0 + _size)));\n" + + "vec4 fg = texture2D(uSampler, vTextureCoord);\n" + + "gl_FragColor = mix(fg, vec4(0, 0, 0, 0), m);\n" + "}"; - return PolygonLightEffect; -}(egret.CustomFilter)); -var PostProcessor = (function () { - function PostProcessor(effect) { - if (effect === void 0) { effect = null; } - this.enable = true; - this.effect = effect; - } - PostProcessor.prototype.onAddedToScene = function (scene) { - this.scene = scene; - this.shape = new egret.Shape(); - this.shape.graphics.beginFill(0xFFFFFF, 1); - this.shape.graphics.drawRect(0, 0, SceneManager.stage.stageWidth, SceneManager.stage.stageHeight); - this.shape.graphics.endFill(); - scene.addChild(this.shape); - }; - PostProcessor.prototype.process = function () { - this.drawFullscreenQuad(); - }; - PostProcessor.prototype.onSceneBackBufferSizeChanged = function (newWidth, newHeight) { }; - PostProcessor.prototype.drawFullscreenQuad = function () { - this.scene.filters = [this.effect]; - }; - PostProcessor.prototype.unload = function () { - if (this.effect) { - this.effect = null; + _this._windEffect = new egret.CustomFilter( + vertexSrc, fragmentSrc, + {_progress : 0, _size : 0.3, _windSegments : 100}); + _this._mask = new egret.Shape(); + _this._mask.graphics.beginFill(0xFFFFFF, 1); + _this._mask.graphics.drawRect(0, 0, SceneManager.stage.stageWidth, + SceneManager.stage.stageHeight); + _this._mask.graphics.endFill(); + _this._mask.filters = [ _this._windEffect ]; + SceneManager.stage.addChild(_this._mask); + return _this; + } + Object.defineProperty(WindTransition.prototype, "windSegments", { + set : function(value) { this._windEffect.uniforms._windSegments = value; }, + enumerable : true, + configurable : true + }); + Object.defineProperty(WindTransition.prototype, "size", { + set : function(value) { this._windEffect.uniforms._size = value; }, + enumerable : true, + configurable : true + }); + WindTransition.prototype.onBeginTransition = function() { + return __awaiter(this, void 0, void 0, function() { + return __generator(this, function(_a) { + switch (_a.label) { + case 0: + this.loadNextScene(); + return [ + 4, this.tickEffectProgressProperty(this._windEffect, this.duration, + this.easeType) + ]; + case 1: + _a.sent(); + this.transitionComplete(); + SceneManager.stage.removeChild(this._mask); + return [ 2 ]; } - this.scene.removeChild(this.shape); - this.scene = null; - }; - PostProcessor.default_vert = "attribute vec2 aVertexPosition;\n" + - "attribute vec2 aTextureCoord;\n" + - "attribute vec2 aColor;\n" + - "uniform vec2 projectionVector;\n" + - "varying vec2 vTextureCoord;\n" + - "varying vec4 vColor;\n" + - "const vec2 center = vec2(-1.0, 1.0);\n" + - "void main(void) {\n" + - "gl_Position = vec4( (aVertexPosition / projectionVector) + center , 0.0, 1.0);\n" + - "vTextureCoord = aTextureCoord;\n" + - "vColor = vec4(aColor.x, aColor.x, aColor.x, aColor.x);\n" + - "}"; - return PostProcessor; -}()); -var BloomSettings = (function () { - function BloomSettings(bloomThreshold, blurAmount, bloomIntensity, baseIntensity, bloomSaturation, baseSaturation) { - this.threshold = bloomThreshold; - this.blurAmount = blurAmount; - this.intensity = bloomIntensity; - this.baseIntensity = baseIntensity; - this.saturation = bloomSaturation; - this.baseStaturation = baseSaturation; - } - BloomSettings.presetSettings = [ - new BloomSettings(0.1, 0.6, 2, 1, 1, 0), - new BloomSettings(0, 3, 1, 1, 1, 1), - new BloomSettings(0.5, 8, 2, 1, 0, 1), - new BloomSettings(0.25, 8, 1.3, 1, 1, 0), - new BloomSettings(0, 2, 1, 0.1, 1, 1), - new BloomSettings(0.5, 2, 1, 1, 1, 1) - ]; - return BloomSettings; -}()); -var GaussianBlurPostProcessor = (function (_super) { - __extends(GaussianBlurPostProcessor, _super); - function GaussianBlurPostProcessor() { - return _super !== null && _super.apply(this, arguments) || this; - } - GaussianBlurPostProcessor.prototype.onAddedToScene = function (scene) { - _super.prototype.onAddedToScene.call(this, scene); - this.effect = new GaussianBlurEffect(); - }; - return GaussianBlurPostProcessor; -}(PostProcessor)); -var Renderer = (function () { - function Renderer() { - } - Renderer.prototype.onAddedToScene = function (scene) { }; - Renderer.prototype.beginRender = function (cam) { - }; - Renderer.prototype.unload = function () { }; - Renderer.prototype.renderAfterStateCheck = function (renderable, cam) { - renderable.render(cam); - }; - return Renderer; -}()); -var DefaultRenderer = (function (_super) { - __extends(DefaultRenderer, _super); - function DefaultRenderer() { - return _super !== null && _super.apply(this, arguments) || this; - } - DefaultRenderer.prototype.render = function (scene) { - var cam = this.camera ? this.camera : scene.camera; - this.beginRender(cam); - for (var i = 0; i < scene.renderableComponents.count; i++) { - var renderable = scene.renderableComponents.buffer[i]; - if (renderable.enabled && renderable.isVisibleFromCamera(cam)) - this.renderAfterStateCheck(renderable, cam); - } - }; - return DefaultRenderer; -}(Renderer)); -var ScreenSpaceRenderer = (function (_super) { - __extends(ScreenSpaceRenderer, _super); - function ScreenSpaceRenderer() { - return _super !== null && _super.apply(this, arguments) || this; - } - ScreenSpaceRenderer.prototype.render = function (scene) { - }; - return ScreenSpaceRenderer; -}(Renderer)); -var PolyLight = (function (_super) { - __extends(PolyLight, _super); - function PolyLight(radius, color, power) { - var _this = _super.call(this) || this; - _this._indices = []; - _this.radius = radius; - _this.power = power; - _this.color = color; - _this.computeTriangleIndices(); - return _this; - } - Object.defineProperty(PolyLight.prototype, "radius", { - get: function () { - return this._radius; - }, - set: function (value) { - this.setRadius(value); - }, - enumerable: true, - configurable: true + }); }); - PolyLight.prototype.computeTriangleIndices = function (totalTris) { - if (totalTris === void 0) { totalTris = 20; } - this._indices.length = 0; - for (var i = 0; i < totalTris; i += 2) { - this._indices.push(0); - this._indices.push(i + 2); - this._indices.push(i + 1); - } - }; - PolyLight.prototype.setRadius = function (radius) { - if (radius != this._radius) { - this._radius = radius; - this._areBoundsDirty = true; - } - }; - PolyLight.prototype.render = function (camera) { - }; - PolyLight.prototype.reset = function () { - }; - return PolyLight; -}(RenderableComponent)); -var SceneTransition = (function () { - function SceneTransition(sceneLoadAction) { - this.sceneLoadAction = sceneLoadAction; - this.loadsNewScene = sceneLoadAction != null; - } - Object.defineProperty(SceneTransition.prototype, "hasPreviousSceneRender", { - get: function () { - if (!this._hasPreviousSceneRender) { - this._hasPreviousSceneRender = true; - return false; - } - return true; - }, - enumerable: true, - configurable: true - }); - SceneTransition.prototype.preRender = function () { }; - SceneTransition.prototype.render = function () { - }; - SceneTransition.prototype.onBeginTransition = function () { - return __awaiter(this, void 0, void 0, function () { - return __generator(this, function (_a) { - switch (_a.label) { - case 0: return [4, this.loadNextScene()]; - case 1: - _a.sent(); - this.transitionComplete(); - return [2]; - } - }); - }); - }; - SceneTransition.prototype.transitionComplete = function () { - SceneManager.sceneTransition = null; - if (this.onTransitionCompleted) { - this.onTransitionCompleted(); - } - }; - SceneTransition.prototype.loadNextScene = function () { - return __awaiter(this, void 0, void 0, function () { - var _a; - return __generator(this, function (_b) { - switch (_b.label) { - case 0: - if (this.onScreenObscured) - this.onScreenObscured(); - if (!this.loadsNewScene) { - this.isNewSceneLoaded = true; - } - _a = SceneManager; - return [4, this.sceneLoadAction()]; - case 1: - _a.scene = _b.sent(); - this.isNewSceneLoaded = true; - return [2]; - } - }); - }); - }; - SceneTransition.prototype.tickEffectProgressProperty = function (filter, duration, easeType, reverseDirection) { - if (reverseDirection === void 0) { reverseDirection = false; } - return new Promise(function (resolve) { - var start = reverseDirection ? 1 : 0; - var end = reverseDirection ? 0 : 1; - egret.Tween.get(filter.uniforms).set({ _progress: start }).to({ _progress: end }, duration * 1000, easeType).call(function () { - resolve(); - }); - }); - }; - return SceneTransition; -}()); -var FadeTransition = (function (_super) { - __extends(FadeTransition, _super); - function FadeTransition(sceneLoadAction) { - var _this = _super.call(this, sceneLoadAction) || this; - _this.fadeToColor = 0x000000; - _this.fadeOutDuration = 0.4; - _this.fadeEaseType = egret.Ease.quadInOut; - _this.delayBeforeFadeInDuration = 0.1; - _this._alpha = 0; - _this._mask = new egret.Shape(); - return _this; - } - FadeTransition.prototype.onBeginTransition = function () { - return __awaiter(this, void 0, void 0, function () { - var _this = this; - return __generator(this, function (_a) { - 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 }, this.fadeOutDuration * 1000, this.fadeEaseType) - .call(function () { return __awaiter(_this, void 0, void 0, function () { - return __generator(this, function (_a) { - switch (_a.label) { - case 0: return [4, this.loadNextScene()]; - case 1: - _a.sent(); - return [2]; - } - }); - }); }).wait(this.delayBeforeFadeInDuration).call(function () { - egret.Tween.get(_this).to({ _alpha: 0 }, _this.fadeOutDuration * 1000, _this.fadeEaseType).call(function () { - _this.transitionComplete(); - SceneManager.stage.removeChild(_this._mask); - }); - }); - return [2]; - }); - }); - }; - FadeTransition.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(); - }; - return FadeTransition; + }; + return WindTransition; }(SceneTransition)); -var WindTransition = (function (_super) { - __extends(WindTransition, _super); - function WindTransition(sceneLoadAction) { - var _this = _super.call(this, sceneLoadAction) || this; - _this.duration = 1; - _this.easeType = egret.Ease.quadOut; - var vertexSrc = "attribute vec2 aVertexPosition;\n" + - "attribute vec2 aTextureCoord;\n" + - "uniform vec2 projectionVector;\n" + - "varying vec2 vTextureCoord;\n" + - "const vec2 center = vec2(-1.0, 1.0);\n" + - "void main(void) {\n" + - " gl_Position = vec4( (aVertexPosition / projectionVector) + center , 0.0, 1.0);\n" + - " vTextureCoord = aTextureCoord;\n" + - "}"; - var fragmentSrc = "precision lowp float;\n" + - "varying vec2 vTextureCoord;\n" + - "uniform sampler2D uSampler;\n" + - "uniform float _progress;\n" + - "uniform float _size;\n" + - "uniform float _windSegments;\n" + - "void main(void) {\n" + - "vec2 co = floor(vec2(0.0, vTextureCoord.y * _windSegments));\n" + - "float x = sin(dot(co.xy, vec2(12.9898, 78.233))) * 43758.5453;\n" + - "float r = x - floor(x);\n" + - "float m = smoothstep(0.0, -_size, vTextureCoord.x * (1.0 - _size) + _size * r - (_progress * (1.0 + _size)));\n" + - "vec4 fg = texture2D(uSampler, vTextureCoord);\n" + - "gl_FragColor = mix(fg, vec4(0, 0, 0, 0), m);\n" + - "}"; - _this._windEffect = new egret.CustomFilter(vertexSrc, fragmentSrc, { - _progress: 0, - _size: 0.3, - _windSegments: 100 - }); - _this._mask = new egret.Shape(); - _this._mask.graphics.beginFill(0xFFFFFF, 1); - _this._mask.graphics.drawRect(0, 0, SceneManager.stage.stageWidth, SceneManager.stage.stageHeight); - _this._mask.graphics.endFill(); - _this._mask.filters = [_this._windEffect]; - SceneManager.stage.addChild(_this._mask); - return _this; +var BaseView = (function(_super) { + __extends(BaseView, _super); + function BaseView() { + return _super !== null && _super.apply(this, arguments) || this; + } + BaseView.prototype.init = function() {}; + BaseView.prototype.show = function(data) {}; + BaseView.prototype.refreshData = function(data) { this._data = data; }; + BaseView.prototype.refreshView = function() {}; + BaseView.prototype.close = function() {}; + BaseView.prototype.destroy = function() { + if (this.parent) { + this.parent.removeChild(this); } - Object.defineProperty(WindTransition.prototype, "windSegments", { - set: function (value) { - this._windEffect.uniforms._windSegments = value; - }, - enumerable: true, - configurable: true - }); - Object.defineProperty(WindTransition.prototype, "size", { - set: function (value) { - this._windEffect.uniforms._size = value; - }, - enumerable: true, - configurable: true - }); - WindTransition.prototype.onBeginTransition = function () { - return __awaiter(this, void 0, void 0, function () { - return __generator(this, function (_a) { - switch (_a.label) { - case 0: - this.loadNextScene(); - return [4, this.tickEffectProgressProperty(this._windEffect, this.duration, this.easeType)]; - case 1: - _a.sent(); - this.transitionComplete(); - SceneManager.stage.removeChild(this._mask); - return [2]; - } - }); - }); - }; - return WindTransition; -}(SceneTransition)); -var BaseView = (function (_super) { - __extends(BaseView, _super); - function BaseView() { - return _super !== null && _super.apply(this, arguments) || this; + while (this.numChildren > 0) { + this.removeChildAt(0); } - BaseView.prototype.init = function () { - }; - BaseView.prototype.show = function (data) { - }; - BaseView.prototype.refreshData = function (data) { - this._data = data; - }; - BaseView.prototype.refreshView = function () { - }; - BaseView.prototype.close = function () { - }; - BaseView.prototype.destroy = function () { - if (this.parent) { - this.parent.removeChild(this); - } - while (this.numChildren > 0) { - this.removeChildAt(0); - } - }; - return BaseView; + }; + return BaseView; }(egret.DisplayObjectContainer)); -var BaseFuiView = (function (_super) { - __extends(BaseFuiView, _super); - function BaseFuiView(name) { - var _this = _super.call(this) || this; - _this.name = name; - return _this; - } - return BaseFuiView; +var BaseFuiView = (function(_super) { + __extends(BaseFuiView, _super); + function BaseFuiView(name) { + var _this = _super.call(this) || this; + _this.name = name; + return _this; + } + return BaseFuiView; }(BaseView)); -var BaseSingle = (function () { - function BaseSingle() { +var BaseSingle = (function() { + function BaseSingle() {} + BaseSingle.getInstance = function() { + if (this._instance == null) { + this._instance = new this(); } - BaseSingle.getInstance = function () { - if (this._instance == null) { - this._instance = new this(); - } - return this._instance; - }; - BaseSingle.prototype.clearFuiObj = function (obj) { - if (obj) { - egret.Tween.removeTweens(obj.displayObject); - if (obj.displayObject && obj.displayObject.parent) { - obj.displayObject.parent.removeChild(obj.displayObject); - } - obj.dispose(); - obj = null; - return true; - } - return false; - }; - return BaseSingle; + return this._instance; + }; + BaseSingle.prototype.clearFuiObj = function(obj) { + if (obj) { + egret.Tween.removeTweens(obj.displayObject); + if (obj.displayObject && obj.displayObject.parent) { + obj.displayObject.parent.removeChild(obj.displayObject); + } + obj.dispose(); + obj = null; + return true; + } + return false; + }; + return BaseSingle; }()); -var ViewManager = (function (_super) { - __extends(ViewManager, _super); - function ViewManager() { - var _this = _super !== null && _super.apply(this, arguments) || this; - _this._openDic = []; - return _this; +var ViewManager = (function(_super) { + __extends(ViewManager, _super); + function ViewManager() { + var _this = _super !== null && _super.apply(this, arguments) || this; + _this._openDic = []; + return _this; + } + ViewManager.prototype.refreshView = function(viewClass, data) { + var view = this.getView(viewClass); + if (view) { + view.refreshData(data); + view.refreshView(); } - ViewManager.prototype.refreshView = function (viewClass, data) { - var view = this.getView(viewClass); - if (view) { - view.refreshData(data); - view.refreshView(); - } - }; - ViewManager.prototype.openView = function (viewClass, data, complete) { - var newView = this.getView(viewClass); - if (!newView) { - newView = new viewClass(); - } - if (this.existView(viewClass)) { - newView.refreshData(data); - newView.refreshView(); - return; - } - this._openDic.push(newView); - }; - ViewManager.prototype.getView = function (viewClass) { - var result = this._openDic.firstOrDefault(function (a) { - return a instanceof viewClass; - }); - return result; - }; - ViewManager.prototype.existView = function (viewClass) { - return this._openDic.findIndex(function (a) { - return a instanceof viewClass; - }) != -1; - }; - return ViewManager; + }; + ViewManager.prototype.openView = function(viewClass, data, complete) { + var newView = this.getView(viewClass); + if (!newView) { + newView = new viewClass(); + } + if (this.existView(viewClass)) { + newView.refreshData(data); + newView.refreshView(); + return; + } + this._openDic.push(newView); + }; + ViewManager.prototype.getView = function(viewClass) { + var result = this._openDic.firstOrDefault(function( + a) { return a instanceof viewClass; }); + return result; + }; + ViewManager.prototype.existView = function(viewClass) { + return this._openDic.findIndex(function( + a) { return a instanceof viewClass; }) != -1; + }; + return ViewManager; }(BaseSingle)); -var Flags = (function () { - function Flags() { - } - Flags.isFlagSet = function (self, flag) { - return (self & flag) != 0; - }; - Flags.isUnshiftedFlagSet = function (self, flag) { - flag = 1 << flag; - return (self & flag) != 0; - }; - Flags.setFlagExclusive = function (self, flag) { - return 1 << flag; - }; - Flags.setFlag = function (self, flag) { - return (self | 1 << flag); - }; - Flags.unsetFlag = function (self, flag) { - flag = 1 << flag; - return (self & (~flag)); - }; - Flags.invertFlags = function (self) { - return ~self; - }; - return Flags; +var Flags = (function() { + function Flags() {} + Flags.isFlagSet = function(self, flag) { return (self & flag) != 0; }; + Flags.isUnshiftedFlagSet = function(self, flag) { + flag = 1 << flag; + return (self & flag) != 0; + }; + Flags.setFlagExclusive = function(self, flag) { return 1 << flag; }; + Flags.setFlag = function(self, flag) { return (self | 1 << flag); }; + Flags.unsetFlag = function(self, flag) { + flag = 1 << flag; + return (self & (~flag)); + }; + Flags.invertFlags = function(self) { return ~self; }; + return Flags; }()); -var MathHelper = (function () { - function MathHelper() { - } - MathHelper.toDegrees = function (radians) { - return radians * 57.295779513082320876798154814105; - }; - MathHelper.toRadians = function (degrees) { - return degrees * 0.017453292519943295769236907684886; - }; - MathHelper.map = function (value, leftMin, leftMax, rightMin, rightMax) { - return rightMin + (value - leftMin) * (rightMax - rightMin) / (leftMax - leftMin); - }; - MathHelper.lerp = function (value1, value2, amount) { - return value1 + (value2 - value1) * amount; - }; - MathHelper.clamp = function (value, min, max) { - if (value < min) - return min; - if (value > max) - return max; - return value; - }; - MathHelper.pointOnCirlce = function (circleCenter, radius, angleInDegrees) { - var radians = MathHelper.toRadians(angleInDegrees); - return new Vector2(Math.cos(radians) * radians + circleCenter.x, Math.sin(radians) * radians + circleCenter.y); - }; - MathHelper.isEven = function (value) { - return value % 2 == 0; - }; - MathHelper.Epsilon = 0.00001; - MathHelper.Rad2Deg = 57.29578; - MathHelper.Deg2Rad = 0.0174532924; - return MathHelper; +var MathHelper = (function() { + function MathHelper() {} + MathHelper.toDegrees = function( + radians) { return radians * 57.295779513082320876798154814105; }; + MathHelper.toRadians = function( + degrees) { return degrees * 0.017453292519943295769236907684886; }; + MathHelper.map = function(value, leftMin, leftMax, rightMin, rightMax) { + return rightMin + + (value - leftMin) * (rightMax - rightMin) / (leftMax - leftMin); + }; + MathHelper.lerp = function( + value1, value2, amount) { return value1 + (value2 - value1) * amount; }; + MathHelper.clamp = function(value, min, max) { + if (value < min) + return min; + if (value > max) + return max; + return value; + }; + MathHelper.pointOnCirlce = function(circleCenter, radius, angleInDegrees) { + var radians = MathHelper.toRadians(angleInDegrees); + return new Vector2(Math.cos(radians) * radians + circleCenter.x, + Math.sin(radians) * radians + circleCenter.y); + }; + MathHelper.isEven = function(value) { return value % 2 == 0; }; + MathHelper.Epsilon = 0.00001; + MathHelper.Rad2Deg = 57.29578; + MathHelper.Deg2Rad = 0.0174532924; + return MathHelper; }()); -var Matrix2D = (function () { - function Matrix2D(m11, m12, m21, m22, m31, m32) { - this.m11 = 0; - this.m12 = 0; - this.m21 = 0; - this.m22 = 0; - this.m31 = 0; - this.m32 = 0; - this.m11 = m11 ? m11 : 1; - this.m12 = m12 ? m12 : 0; - this.m21 = m21 ? m21 : 0; - this.m22 = m22 ? m22 : 1; - this.m31 = m31 ? m31 : 0; - this.m32 = m32 ? m32 : 0; +var Matrix2D = (function() { + function Matrix2D(m11, m12, m21, m22, m31, m32) { + this.m11 = 0; + this.m12 = 0; + this.m21 = 0; + this.m22 = 0; + this.m31 = 0; + this.m32 = 0; + this.m11 = m11 ? m11 : 1; + this.m12 = m12 ? m12 : 0; + this.m21 = m21 ? m21 : 0; + this.m22 = m22 ? m22 : 1; + this.m31 = m31 ? m31 : 0; + this.m32 = m32 ? m32 : 0; + } + Object.defineProperty(Matrix2D, "identity", { + get : function() { return Matrix2D._identity; }, + enumerable : true, + configurable : true + }); + Object.defineProperty(Matrix2D.prototype, "translation", { + get : function() { return new Vector2(this.m31, this.m32); }, + set : function(value) { + this.m31 = value.x; + this.m32 = value.y; + }, + enumerable : true, + configurable : true + }); + Object.defineProperty(Matrix2D.prototype, "rotation", { + get : function() { return Math.atan2(this.m21, this.m11); }, + set : function(value) { + var val1 = Math.cos(value); + var val2 = Math.sin(value); + this.m11 = val1; + this.m12 = val2; + this.m21 = -val2; + this.m22 = val1; + }, + enumerable : true, + configurable : true + }); + Object.defineProperty(Matrix2D.prototype, "rotationDegrees", { + get : function() { return MathHelper.toDegrees(this.rotation); }, + set : function(value) { this.rotation = MathHelper.toRadians(value); }, + enumerable : true, + configurable : true + }); + Object.defineProperty(Matrix2D.prototype, "scale", { + get : function() { return new Vector2(this.m11, this.m22); }, + set : function(value) { + this.m11 = value.x; + this.m12 = value.y; + }, + enumerable : true, + configurable : true + }); + Matrix2D.add = function(matrix1, matrix2) { + matrix1.m11 += matrix2.m11; + matrix1.m12 += matrix2.m12; + matrix1.m21 += matrix2.m21; + matrix1.m22 += matrix2.m22; + matrix1.m31 += matrix2.m31; + matrix1.m32 += matrix2.m32; + return matrix1; + }; + Matrix2D.divide = function(matrix1, matrix2) { + matrix1.m11 /= matrix2.m11; + matrix1.m12 /= matrix2.m12; + matrix1.m21 /= matrix2.m21; + matrix1.m22 /= matrix2.m22; + matrix1.m31 /= matrix2.m31; + matrix1.m32 /= matrix2.m32; + return matrix1; + }; + Matrix2D.multiply = function(matrix1, matrix2) { + var result = new Matrix2D(); + var m11 = (matrix1.m11 * matrix2.m11) + (matrix1.m12 * matrix2.m21); + var m12 = (matrix1.m11 * matrix2.m12) + (matrix1.m12 * matrix2.m22); + var m21 = (matrix1.m21 * matrix2.m11) + (matrix1.m22 * matrix2.m21); + var m22 = (matrix1.m21 * matrix2.m12) + (matrix1.m22 * matrix2.m22); + var m31 = + (matrix1.m31 * matrix2.m11) + (matrix1.m32 * matrix2.m21) + matrix2.m31; + var m32 = + (matrix1.m31 * matrix2.m12) + (matrix1.m32 * matrix2.m22) + matrix2.m32; + result.m11 = m11; + result.m12 = m12; + result.m21 = m21; + result.m22 = m22; + result.m31 = m31; + result.m32 = m32; + return result; + }; + Matrix2D.multiplyTranslation = function(matrix, x, y) { + var trans = Matrix2D.createTranslation(x, y); + return Matrix2D.multiply(matrix, trans); + }; + Matrix2D.prototype.determinant = + function() { return this.m11 * this.m22 - this.m12 * this.m21; }; + Matrix2D.invert = function(matrix, result) { + if (result === void 0) { + result = new Matrix2D(); } - Object.defineProperty(Matrix2D, "identity", { - get: function () { - return Matrix2D._identity; - }, - enumerable: true, - configurable: true - }); - Object.defineProperty(Matrix2D.prototype, "translation", { - get: function () { - return new Vector2(this.m31, this.m32); - }, - set: function (value) { - this.m31 = value.x; - this.m32 = value.y; - }, - enumerable: true, - configurable: true - }); - Object.defineProperty(Matrix2D.prototype, "rotation", { - get: function () { - return Math.atan2(this.m21, this.m11); - }, - set: function (value) { - var val1 = Math.cos(value); - var val2 = Math.sin(value); - this.m11 = val1; - this.m12 = val2; - this.m21 = -val2; - this.m22 = val1; - }, - enumerable: true, - configurable: true - }); - Object.defineProperty(Matrix2D.prototype, "rotationDegrees", { - get: function () { - return MathHelper.toDegrees(this.rotation); - }, - set: function (value) { - this.rotation = MathHelper.toRadians(value); - }, - enumerable: true, - configurable: true - }); - Object.defineProperty(Matrix2D.prototype, "scale", { - get: function () { - return new Vector2(this.m11, this.m22); - }, - set: function (value) { - this.m11 = value.x; - this.m12 = value.y; - }, - enumerable: true, - configurable: true - }); - Matrix2D.add = function (matrix1, matrix2) { - matrix1.m11 += matrix2.m11; - matrix1.m12 += matrix2.m12; - matrix1.m21 += matrix2.m21; - matrix1.m22 += matrix2.m22; - matrix1.m31 += matrix2.m31; - matrix1.m32 += matrix2.m32; - return matrix1; - }; - Matrix2D.divide = function (matrix1, matrix2) { - matrix1.m11 /= matrix2.m11; - matrix1.m12 /= matrix2.m12; - matrix1.m21 /= matrix2.m21; - matrix1.m22 /= matrix2.m22; - matrix1.m31 /= matrix2.m31; - matrix1.m32 /= matrix2.m32; - return matrix1; - }; - Matrix2D.multiply = function (matrix1, matrix2) { - var result = new Matrix2D(); - var m11 = (matrix1.m11 * matrix2.m11) + (matrix1.m12 * matrix2.m21); - var m12 = (matrix1.m11 * matrix2.m12) + (matrix1.m12 * matrix2.m22); - var m21 = (matrix1.m21 * matrix2.m11) + (matrix1.m22 * matrix2.m21); - var m22 = (matrix1.m21 * matrix2.m12) + (matrix1.m22 * matrix2.m22); - var m31 = (matrix1.m31 * matrix2.m11) + (matrix1.m32 * matrix2.m21) + matrix2.m31; - var m32 = (matrix1.m31 * matrix2.m12) + (matrix1.m32 * matrix2.m22) + matrix2.m32; - result.m11 = m11; - result.m12 = m12; - result.m21 = m21; - result.m22 = m22; - result.m31 = m31; - result.m32 = m32; - return result; - }; - Matrix2D.multiplyTranslation = function (matrix, x, y) { - var trans = Matrix2D.createTranslation(x, y); - return Matrix2D.multiply(matrix, trans); - }; - Matrix2D.prototype.determinant = function () { - return this.m11 * this.m22 - this.m12 * this.m21; - }; - Matrix2D.invert = function (matrix, result) { - if (result === void 0) { result = new Matrix2D(); } - var det = 1 / matrix.determinant(); - result.m11 = matrix.m22 * det; - result.m12 = -matrix.m12 * det; - result.m21 = -matrix.m21 * det; - result.m22 = matrix.m11 * det; - result.m31 = (matrix.m32 * matrix.m21 - matrix.m31 * matrix.m22) * det; - result.m32 = -(matrix.m32 * matrix.m11 - matrix.m31 * matrix.m12) * det; - return result; - }; - Matrix2D.createTranslation = function (xPosition, yPosition, result) { - result = result ? result : new Matrix2D(); - result.m11 = 1; - result.m12 = 0; - result.m21 = 0; - result.m22 = 1; - result.m31 = xPosition; - result.m32 = yPosition; - return result; - }; - Matrix2D.createRotation = function (radians, result) { - result = new Matrix2D(); - var val1 = Math.cos(radians); - var val2 = Math.sin(radians); - result.m11 = val1; - result.m12 = val2; - result.m21 = -val2; - result.m22 = val1; - return result; - }; - Matrix2D.createScale = function (xScale, yScale, result) { - if (result === void 0) { result = new Matrix2D(); } - result.m11 = xScale; - result.m12 = 0; - result.m21 = 0; - result.m22 = yScale; - result.m31 = 0; - result.m32 = 0; - return result; - }; - Matrix2D.prototype.toEgretMatrix = function () { - var matrix = new egret.Matrix(this.m11, this.m12, this.m21, this.m22, this.m31, this.m32); - return matrix; - }; - Matrix2D._identity = new Matrix2D(1, 0, 0, 1, 0, 0); - return Matrix2D; + var det = 1 / matrix.determinant(); + result.m11 = matrix.m22 * det; + result.m12 = -matrix.m12 * det; + result.m21 = -matrix.m21 * det; + result.m22 = matrix.m11 * det; + result.m31 = (matrix.m32 * matrix.m21 - matrix.m31 * matrix.m22) * det; + result.m32 = -(matrix.m32 * matrix.m11 - matrix.m31 * matrix.m12) * det; + return result; + }; + Matrix2D.createTranslation = function(xPosition, yPosition, result) { + result = result ? result : new Matrix2D(); + result.m11 = 1; + result.m12 = 0; + result.m21 = 0; + result.m22 = 1; + result.m31 = xPosition; + result.m32 = yPosition; + return result; + }; + Matrix2D.createRotation = function(radians, result) { + result = new Matrix2D(); + var val1 = Math.cos(radians); + var val2 = Math.sin(radians); + result.m11 = val1; + result.m12 = val2; + result.m21 = -val2; + result.m22 = val1; + return result; + }; + Matrix2D.createScale = function(xScale, yScale, result) { + if (result === void 0) { + result = new Matrix2D(); + } + result.m11 = xScale; + result.m12 = 0; + result.m21 = 0; + result.m22 = yScale; + result.m31 = 0; + result.m32 = 0; + return result; + }; + Matrix2D.prototype.toEgretMatrix = function() { + var matrix = new egret.Matrix(this.m11, this.m12, this.m21, this.m22, + this.m31, this.m32); + return matrix; + }; + Matrix2D._identity = new Matrix2D(1, 0, 0, 1, 0, 0); + return Matrix2D; }()); -var Rectangle = (function () { - function Rectangle(x, y, width, height) { - this.x = x ? x : 0; - this.y = y ? y : 0; - this.width = width ? width : 0; - this.height = height ? height : 0; - } - Object.defineProperty(Rectangle.prototype, "left", { - get: function () { - return this.x; - }, - enumerable: true, - configurable: true - }); - Object.defineProperty(Rectangle.prototype, "right", { - get: function () { - return this.x + this.width; - }, - enumerable: true, - configurable: true - }); - Object.defineProperty(Rectangle.prototype, "top", { - get: function () { - return this.y; - }, - enumerable: true, - configurable: true - }); - Object.defineProperty(Rectangle.prototype, "bottom", { - get: function () { - return this.y + this.height; - }, - enumerable: true, - configurable: true - }); - Object.defineProperty(Rectangle.prototype, "center", { - get: function () { - return new Vector2(this.x + (this.width / 2), this.y + (this.height / 2)); - }, - enumerable: true, - configurable: true - }); - Object.defineProperty(Rectangle.prototype, "location", { - get: function () { - return new Vector2(this.x, this.y); - }, - set: function (value) { - this.x = value.x; - this.y = value.y; - }, - enumerable: true, - configurable: true - }); - Object.defineProperty(Rectangle.prototype, "size", { - get: function () { - return new Vector2(this.width, this.height); - }, - set: function (value) { - this.width = value.x; - this.height = value.y; - }, - enumerable: true, - configurable: true - }); - Rectangle.prototype.intersects = function (value) { - return value.left < this.right && - this.left < value.right && - value.top < this.bottom && - this.top < value.bottom; - }; - Rectangle.prototype.contains = function (value) { - return ((((this.x <= value.x) && (value.x < (this.x + this.width))) && - (this.y <= value.y)) && +var Rectangle = (function() { + function Rectangle(x, y, width, height) { + this.x = x ? x : 0; + this.y = y ? y : 0; + this.width = width ? width : 0; + this.height = height ? height : 0; + } + Object.defineProperty(Rectangle.prototype, "left", { + get : function() { return this.x; }, + enumerable : true, + configurable : true + }); + Object.defineProperty(Rectangle.prototype, "right", { + get : function() { return this.x + this.width; }, + enumerable : true, + configurable : true + }); + Object.defineProperty(Rectangle.prototype, "top", { + get : function() { return this.y; }, + enumerable : true, + configurable : true + }); + Object.defineProperty(Rectangle.prototype, "bottom", { + get : function() { return this.y + this.height; }, + enumerable : true, + configurable : true + }); + Object.defineProperty(Rectangle.prototype, "center", { + get : function() { + return new Vector2(this.x + (this.width / 2), this.y + (this.height / 2)); + }, + enumerable : true, + configurable : true + }); + Object.defineProperty(Rectangle.prototype, "location", { + get : function() { return new Vector2(this.x, this.y); }, + set : function(value) { + this.x = value.x; + this.y = value.y; + }, + enumerable : true, + configurable : true + }); + Object.defineProperty(Rectangle.prototype, "size", { + get : function() { return new Vector2(this.width, this.height); }, + set : function(value) { + this.width = value.x; + this.height = value.y; + }, + enumerable : true, + configurable : true + }); + Rectangle.prototype.intersects = function(value) { + return value.left < this.right && this.left < value.right && + value.top < this.bottom && this.top < value.bottom; + }; + Rectangle.prototype.contains = function(value) { + return ((((this.x <= value.x) && (value.x < (this.x + this.width))) && + (this.y <= value.y)) && (value.y < (this.y + this.height))); - }; - Rectangle.prototype.containsRect = function (value) { - return ((((this.x <= value.x) && (value.x < (this.x + this.width))) && - (this.y <= value.y)) && + }; + Rectangle.prototype.containsRect = function(value) { + return ((((this.x <= value.x) && (value.x < (this.x + this.width))) && + (this.y <= value.y)) && (value.y < (this.y + this.height))); - }; - Rectangle.prototype.getHalfSize = function () { - return new Vector2(this.width * 0.5, this.height * 0.5); - }; - Rectangle.fromMinMax = function (minX, minY, maxX, maxY) { - return new Rectangle(minX, minY, maxX - minX, maxY - minY); - }; - Rectangle.prototype.getClosestPointOnRectangleBorderToPoint = function (point) { - var edgeNormal = new Vector2(0, 0); - var res = new Vector2(0, 0); - res.x = MathHelper.clamp(point.x, this.left, this.right); - res.y = MathHelper.clamp(point.y, this.top, this.bottom); - if (this.contains(res)) { - var dl = res.x - this.left; - var dr = this.right - res.x; - var dt = res.y - this.top; - var db = this.bottom - res.y; - var min = Math.min(dl, dr, dt, db); - if (min == dt) { - res.y = this.top; - edgeNormal.y = -1; - } - else if (min == db) { - res.y = this.bottom; - edgeNormal.y = 1; - } - else if (min == dl) { - res.x = this.left; - edgeNormal.x = -1; - } - else { - res.x = this.right; - edgeNormal.x = 1; - } - } - else { - if (res.x == this.left) { - edgeNormal.x = -1; - } - if (res.x == this.right) { - edgeNormal.x = 1; - } - if (res.y == this.top) { - edgeNormal.y = -1; - } - if (res.y == this.bottom) { - edgeNormal.y = 1; - } - } - return { res: res, edgeNormal: edgeNormal }; - }; - Rectangle.prototype.calculateBounds = function (parentPosition, position, origin, scale, rotation, width, height) { - if (rotation == 0) { - this.x = parentPosition.x + position.x - origin.x * scale.x; - this.y = parentPosition.y + position.y - origin.y * scale.y; - this.width = width * scale.x; - this.height = height * scale.y; - } - else { - var worldPosX = parentPosition.x + position.x; - var worldPosY = parentPosition.y + position.y; - this._transformMat = Matrix2D.createTranslation(-worldPosX - origin.x, -worldPosY - origin.y); - this._tempMat = Matrix2D.createScale(scale.x, scale.y); - this._transformMat = Matrix2D.multiply(this._transformMat, this._tempMat); - this._tempMat = Matrix2D.createRotation(rotation); - this._transformMat = Matrix2D.multiply(this._transformMat, this._tempMat); - this._tempMat = Matrix2D.createTranslation(worldPosX, worldPosY); - this._transformMat = Matrix2D.multiply(this._transformMat, this._tempMat); - var topLeft = new Vector2(worldPosX, worldPosY); - var topRight = new Vector2(worldPosX + width, worldPosY); - var bottomLeft = new Vector2(worldPosX, worldPosY + height); - var bottomRight = new Vector2(worldPosX + width, worldPosY + height); - topLeft = Vector2Ext.transformR(topLeft, this._transformMat); - topRight = Vector2Ext.transformR(topRight, this._transformMat); - bottomLeft = Vector2Ext.transformR(bottomLeft, this._transformMat); - bottomRight = Vector2Ext.transformR(bottomRight, this._transformMat); - var minX = Math.min(topLeft.x, bottomRight.x, topRight.x, bottomLeft.x); - var maxX = Math.max(topLeft.x, bottomRight.x, topRight.x, bottomLeft.x); - var minY = Math.min(topLeft.y, bottomRight.y, topRight.y, bottomLeft.y); - var maxY = Math.max(topLeft.y, bottomRight.y, topRight.y, bottomLeft.y); - this.location = new Vector2(minX, minY); - this.width = maxX - minX; - this.height = maxY - minY; - } - }; - Rectangle.rectEncompassingPoints = function (points) { - var minX = Number.POSITIVE_INFINITY; - var minY = Number.POSITIVE_INFINITY; - var maxX = Number.NEGATIVE_INFINITY; - var maxY = Number.NEGATIVE_INFINITY; - for (var i = 0; i < points.length; i++) { - var pt = points[i]; - if (pt.x < minX) { - minX = pt.x; - } - if (pt.x > maxX) { - maxX = pt.x; - } - if (pt.y < minY) { - minY = pt.y; - } - if (pt.y > maxY) { - maxY = pt.y; - } - } - return this.fromMinMax(minX, minY, maxX, maxY); - }; - return Rectangle; -}()); -var Vector2 = (function () { - function Vector2(x, y) { - this.x = 0; - this.y = 0; - this.x = x ? x : 0; - this.y = y ? y : this.x; + }; + Rectangle.prototype.getHalfSize = + function() { return new Vector2(this.width * 0.5, this.height * 0.5); }; + Rectangle.fromMinMax = function( + minX, minY, maxX, + maxY) { return new Rectangle(minX, minY, maxX - minX, maxY - minY); }; + Rectangle.prototype.getClosestPointOnRectangleBorderToPoint = function( + point) { + var edgeNormal = new Vector2(0, 0); + var res = new Vector2(0, 0); + res.x = MathHelper.clamp(point.x, this.left, this.right); + res.y = MathHelper.clamp(point.y, this.top, this.bottom); + if (this.contains(res)) { + var dl = res.x - this.left; + var dr = this.right - res.x; + var dt = res.y - this.top; + var db = this.bottom - res.y; + var min = Math.min(dl, dr, dt, db); + if (min == dt) { + res.y = this.top; + edgeNormal.y = -1; + } else if (min == db) { + res.y = this.bottom; + edgeNormal.y = 1; + } else if (min == dl) { + res.x = this.left; + edgeNormal.x = -1; + } else { + res.x = this.right; + edgeNormal.x = 1; + } + } else { + if (res.x == this.left) { + edgeNormal.x = -1; + } + if (res.x == this.right) { + edgeNormal.x = 1; + } + if (res.y == this.top) { + edgeNormal.y = -1; + } + if (res.y == this.bottom) { + edgeNormal.y = 1; + } } - Object.defineProperty(Vector2, "zero", { - get: function () { - return Vector2.zeroVector2; - }, - enumerable: true, - configurable: true - }); - Object.defineProperty(Vector2, "one", { - get: function () { - return Vector2.unitVector2; - }, - enumerable: true, - configurable: true - }); - Object.defineProperty(Vector2, "unitX", { - get: function () { - return Vector2.unitXVector; - }, - enumerable: true, - configurable: true - }); - Object.defineProperty(Vector2, "unitY", { - get: function () { - return Vector2.unitYVector; - }, - enumerable: true, - configurable: true - }); - Vector2.add = function (value1, value2) { - var result = new Vector2(0, 0); - result.x = value1.x + value2.x; - result.y = value1.y + value2.y; - return result; - }; - Vector2.divide = function (value1, value2) { - var result = new Vector2(0, 0); - result.x = value1.x / value2.x; - result.y = value1.y / value2.y; - return result; - }; - Vector2.multiply = function (value1, value2) { - var result = new Vector2(0, 0); - result.x = value1.x * value2.x; - result.y = value1.y * value2.y; - return result; - }; - Vector2.subtract = function (value1, value2) { - var result = new Vector2(0, 0); - result.x = value1.x - value2.x; - result.y = value1.y - value2.y; - return result; - }; - Vector2.prototype.normalize = function () { - var val = 1 / Math.sqrt((this.x * this.x) + (this.y * this.y)); - this.x *= val; - this.y *= val; - }; - Vector2.prototype.length = function () { - return Math.sqrt((this.x * this.x) + (this.y * this.y)); - }; - Vector2.prototype.round = function () { - return new Vector2(Math.round(this.x), Math.round(this.y)); - }; - Vector2.normalize = function (value) { - var val = 1 / Math.sqrt((value.x * value.x) + (value.y * value.y)); - value.x *= val; - value.y *= val; - return value; - }; - Vector2.dot = function (value1, value2) { - return (value1.x * value2.x) + (value1.y * value2.y); - }; - Vector2.distanceSquared = function (value1, value2) { - var v1 = value1.x - value2.x, v2 = value1.y - value2.y; - return (v1 * v1) + (v2 * v2); - }; - Vector2.clamp = function (value1, min, max) { - return new Vector2(MathHelper.clamp(value1.x, min.x, max.x), MathHelper.clamp(value1.y, min.y, max.y)); - }; - Vector2.lerp = function (value1, value2, amount) { - return new Vector2(MathHelper.lerp(value1.x, value2.x, amount), MathHelper.lerp(value1.y, value2.y, amount)); - }; - Vector2.transform = function (position, matrix) { - return new Vector2((position.x * matrix.m11) + (position.y * matrix.m21), (position.x * matrix.m12) + (position.y * matrix.m22)); - }; - Vector2.distance = function (value1, value2) { - var v1 = value1.x - value2.x, v2 = value1.y - value2.y; - return Math.sqrt((v1 * v1) + (v2 * v2)); - }; - Vector2.negate = function (value) { - var result = new Vector2(); - result.x = -value.x; - result.y = -value.y; - return result; - }; - Vector2.unitYVector = new Vector2(0, 1); - Vector2.unitXVector = new Vector2(1, 0); - Vector2.unitVector2 = new Vector2(1, 1); - Vector2.zeroVector2 = new Vector2(0, 0); - return Vector2; -}()); -var Vector3 = (function () { - function Vector3(x, y, z) { - this.x = x; - this.y = y; - this.z = z; + return {res : res, edgeNormal : edgeNormal}; + }; + Rectangle.prototype.calculateBounds = function( + parentPosition, position, origin, scale, rotation, width, height) { + if (rotation == 0) { + this.x = parentPosition.x + position.x - origin.x * scale.x; + this.y = parentPosition.y + position.y - origin.y * scale.y; + this.width = width * scale.x; + this.height = height * scale.y; + } else { + var worldPosX = parentPosition.x + position.x; + var worldPosY = parentPosition.y + position.y; + this._transformMat = Matrix2D.createTranslation(-worldPosX - origin.x, + -worldPosY - origin.y); + this._tempMat = Matrix2D.createScale(scale.x, scale.y); + this._transformMat = Matrix2D.multiply(this._transformMat, this._tempMat); + this._tempMat = Matrix2D.createRotation(rotation); + this._transformMat = Matrix2D.multiply(this._transformMat, this._tempMat); + this._tempMat = Matrix2D.createTranslation(worldPosX, worldPosY); + this._transformMat = Matrix2D.multiply(this._transformMat, this._tempMat); + var topLeft = new Vector2(worldPosX, worldPosY); + var topRight = new Vector2(worldPosX + width, worldPosY); + var bottomLeft = new Vector2(worldPosX, worldPosY + height); + var bottomRight = new Vector2(worldPosX + width, worldPosY + height); + topLeft = Vector2Ext.transformR(topLeft, this._transformMat); + topRight = Vector2Ext.transformR(topRight, this._transformMat); + bottomLeft = Vector2Ext.transformR(bottomLeft, this._transformMat); + bottomRight = Vector2Ext.transformR(bottomRight, this._transformMat); + var minX = Math.min(topLeft.x, bottomRight.x, topRight.x, bottomLeft.x); + var maxX = Math.max(topLeft.x, bottomRight.x, topRight.x, bottomLeft.x); + var minY = Math.min(topLeft.y, bottomRight.y, topRight.y, bottomLeft.y); + var maxY = Math.max(topLeft.y, bottomRight.y, topRight.y, bottomLeft.y); + this.location = new Vector2(minX, minY); + this.width = maxX - minX; + this.height = maxY - minY; } - return Vector3; -}()); -var ColliderTriggerHelper = (function () { - function ColliderTriggerHelper(entity) { - this._activeTriggerIntersections = []; - this._previousTriggerIntersections = []; - this._tempTriggerList = []; - this._entity = entity; + }; + Rectangle.rectEncompassingPoints = function(points) { + var minX = Number.POSITIVE_INFINITY; + var minY = Number.POSITIVE_INFINITY; + var maxX = Number.NEGATIVE_INFINITY; + var maxY = Number.NEGATIVE_INFINITY; + for (var i = 0; i < points.length; i++) { + var pt = points[i]; + if (pt.x < minX) { + minX = pt.x; + } + if (pt.x > maxX) { + maxX = pt.x; + } + if (pt.y < minY) { + minY = pt.y; + } + if (pt.y > maxY) { + maxY = pt.y; + } } - ColliderTriggerHelper.prototype.update = function () { - var colliders = this._entity.getComponents(Collider); - for (var i = 0; i < colliders.length; i++) { - var collider = colliders[i]; - var neighbors = Physics.boxcastBroadphase(collider.bounds, collider.collidesWithLayers); - var _loop_5 = function (j) { - var neighbor = neighbors[j]; - if (!collider.isTrigger && !neighbor.isTrigger) - return "continue"; - if (collider.overlaps(neighbor)) { - var pair_1 = new Pair(collider, neighbor); - var shouldReportTriggerEvent = this_1._activeTriggerIntersections.findIndex(function (value) { - return value.first == pair_1.first && value.second == pair_1.second; - }) == -1 && this_1._previousTriggerIntersections.findIndex(function (value) { - return value.first == pair_1.first && value.second == pair_1.second; - }) == -1; - if (shouldReportTriggerEvent) - this_1.notifyTriggerListeners(pair_1, true); - if (!this_1._activeTriggerIntersections.contains(pair_1)) - this_1._activeTriggerIntersections.push(pair_1); - } - }; - var this_1 = this; - for (var j = 0; j < neighbors.length; j++) { - _loop_5(j); - } + return this.fromMinMax(minX, minY, maxX, maxY); + }; + return Rectangle; +}()); +var Vector2 = (function() { + function Vector2(x, y) { + this.x = 0; + this.y = 0; + this.x = x ? x : 0; + this.y = y ? y : this.x; + } + Object.defineProperty(Vector2, "zero", { + get : function() { return Vector2.zeroVector2; }, + enumerable : true, + configurable : true + }); + Object.defineProperty(Vector2, "one", { + get : function() { return Vector2.unitVector2; }, + enumerable : true, + configurable : true + }); + Object.defineProperty(Vector2, "unitX", { + get : function() { return Vector2.unitXVector; }, + enumerable : true, + configurable : true + }); + Object.defineProperty(Vector2, "unitY", { + get : function() { return Vector2.unitYVector; }, + enumerable : true, + configurable : true + }); + Vector2.add = function(value1, value2) { + var result = new Vector2(0, 0); + result.x = value1.x + value2.x; + result.y = value1.y + value2.y; + return result; + }; + Vector2.divide = function(value1, value2) { + var result = new Vector2(0, 0); + result.x = value1.x / value2.x; + result.y = value1.y / value2.y; + return result; + }; + Vector2.multiply = function(value1, value2) { + var result = new Vector2(0, 0); + result.x = value1.x * value2.x; + result.y = value1.y * value2.y; + return result; + }; + Vector2.subtract = function(value1, value2) { + var result = new Vector2(0, 0); + result.x = value1.x - value2.x; + result.y = value1.y - value2.y; + return result; + }; + Vector2.prototype.normalize = function() { + var val = 1 / Math.sqrt((this.x * this.x) + (this.y * this.y)); + this.x *= val; + this.y *= val; + }; + Vector2.prototype.length = + function() { return Math.sqrt((this.x * this.x) + (this.y * this.y)); }; + Vector2.prototype.round = function() { + return new Vector2(Math.round(this.x), Math.round(this.y)); + }; + Vector2.normalize = function(value) { + var val = 1 / Math.sqrt((value.x * value.x) + (value.y * value.y)); + value.x *= val; + value.y *= val; + return value; + }; + Vector2.dot = function( + value1, value2) { return (value1.x * value2.x) + (value1.y * value2.y); }; + Vector2.distanceSquared = function(value1, value2) { + var v1 = value1.x - value2.x, v2 = value1.y - value2.y; + return (v1 * v1) + (v2 * v2); + }; + Vector2.clamp = function(value1, min, max) { + return new Vector2(MathHelper.clamp(value1.x, min.x, max.x), + MathHelper.clamp(value1.y, min.y, max.y)); + }; + Vector2.lerp = function(value1, value2, amount) { + return new Vector2(MathHelper.lerp(value1.x, value2.x, amount), + MathHelper.lerp(value1.y, value2.y, amount)); + }; + Vector2.transform = function(position, matrix) { + return new Vector2((position.x * matrix.m11) + (position.y * matrix.m21), + (position.x * matrix.m12) + (position.y * matrix.m22)); + }; + Vector2.distance = function(value1, value2) { + var v1 = value1.x - value2.x, v2 = value1.y - value2.y; + return Math.sqrt((v1 * v1) + (v2 * v2)); + }; + Vector2.negate = function(value) { + var result = new Vector2(); + result.x = -value.x; + result.y = -value.y; + return result; + }; + Vector2.unitYVector = new Vector2(0, 1); + Vector2.unitXVector = new Vector2(1, 0); + Vector2.unitVector2 = new Vector2(1, 1); + Vector2.zeroVector2 = new Vector2(0, 0); + return Vector2; +}()); +var Vector3 = (function() { + function Vector3(x, y, z) { + this.x = x; + this.y = y; + this.z = z; + } + return Vector3; +}()); +var ColliderTriggerHelper = (function() { + function ColliderTriggerHelper(entity) { + this._activeTriggerIntersections = []; + this._previousTriggerIntersections = []; + this._tempTriggerList = []; + this._entity = entity; + } + ColliderTriggerHelper.prototype.update = function() { + var colliders = this._entity.getComponents(Collider); + for (var i = 0; i < colliders.length; i++) { + var collider = colliders[i]; + var neighbors = Physics.boxcastBroadphase(collider.bounds, + collider.collidesWithLayers); + var _loop_5 = function(j) { + var neighbor = neighbors[j]; + if (!collider.isTrigger && !neighbor.isTrigger) + return "continue"; + if (collider.overlaps(neighbor)) { + var pair_1 = new Pair(collider, neighbor); + var shouldReportTriggerEvent = + this_1._activeTriggerIntersections.findIndex(function(value) { + return value.first == pair_1.first && + value.second == pair_1.second; + }) == -1 && + this_1._previousTriggerIntersections.findIndex(function(value) { + return value.first == pair_1.first && + value.second == pair_1.second; + }) == -1; + if (shouldReportTriggerEvent) + this_1.notifyTriggerListeners(pair_1, true); + if (!this_1._activeTriggerIntersections.contains(pair_1)) + this_1._activeTriggerIntersections.push(pair_1); } - ListPool.free(colliders); - this.checkForExitedColliders(); + }; + var this_1 = this; + for (var j = 0; j < neighbors.length; j++) { + _loop_5(j); + } + } + ListPool.free(colliders); + this.checkForExitedColliders(); + }; + ColliderTriggerHelper.prototype.checkForExitedColliders = function() { + var _this = this; + var _loop_6 = function(i) { + var index = + this_2._previousTriggerIntersections.findIndex(function(value) { + if (value.first == _this._activeTriggerIntersections[i].first && + value.second == _this._activeTriggerIntersections[i].second) + return true; + return false; + }); + if (index != -1) + this_2._previousTriggerIntersections.removeAt(index); }; - ColliderTriggerHelper.prototype.checkForExitedColliders = function () { - var _this = this; - var _loop_6 = function (i) { - var index = this_2._previousTriggerIntersections.findIndex(function (value) { - if (value.first == _this._activeTriggerIntersections[i].first && value.second == _this._activeTriggerIntersections[i].second) - return true; - return false; - }); - if (index != -1) - this_2._previousTriggerIntersections.removeAt(index); - }; - var this_2 = this; - for (var i = 0; i < this._activeTriggerIntersections.length; i++) { - _loop_6(i); + var this_2 = this; + for (var i = 0; i < this._activeTriggerIntersections.length; i++) { + _loop_6(i); + } + for (var i = 0; i < this._previousTriggerIntersections.length; i++) { + this.notifyTriggerListeners(this._previousTriggerIntersections[i], false); + } + this._previousTriggerIntersections.length = 0; + for (var i = 0; i < this._activeTriggerIntersections.length; i++) { + if (!this._previousTriggerIntersections.contains( + this._activeTriggerIntersections[i])) { + this._previousTriggerIntersections.push( + this._activeTriggerIntersections[i]); + } + } + this._activeTriggerIntersections.length = 0; + }; + ColliderTriggerHelper.prototype.notifyTriggerListeners = function( + collisionPair, isEntering) { + collisionPair.first.entity.getComponents("ITriggerListener", + this._tempTriggerList); + for (var i = 0; i < this._tempTriggerList.length; i++) { + if (isEntering) { + this._tempTriggerList[i].onTriggerEnter(collisionPair.second, + collisionPair.first); + } else { + this._tempTriggerList[i].onTriggerExit(collisionPair.second, + collisionPair.first); + } + this._tempTriggerList.length = 0; + if (collisionPair.second.entity) { + collisionPair.second.entity.getComponents("ITriggerListener", + this._tempTriggerList); + for (var i_2 = 0; i_2 < this._tempTriggerList.length; i_2++) { + if (isEntering) { + this._tempTriggerList[i_2].onTriggerEnter(collisionPair.first, + collisionPair.second); + } else { + this._tempTriggerList[i_2].onTriggerExit(collisionPair.first, + collisionPair.second); + } } - for (var i = 0; i < this._previousTriggerIntersections.length; i++) { - this.notifyTriggerListeners(this._previousTriggerIntersections[i], false); - } - this._previousTriggerIntersections.length = 0; - for (var i = 0; i < this._activeTriggerIntersections.length; i++) { - if (!this._previousTriggerIntersections.contains(this._activeTriggerIntersections[i])) { - this._previousTriggerIntersections.push(this._activeTriggerIntersections[i]); - } - } - this._activeTriggerIntersections.length = 0; - }; - ColliderTriggerHelper.prototype.notifyTriggerListeners = function (collisionPair, isEntering) { - collisionPair.first.entity.getComponents("ITriggerListener", this._tempTriggerList); - for (var i = 0; i < this._tempTriggerList.length; i++) { - if (isEntering) { - this._tempTriggerList[i].onTriggerEnter(collisionPair.second, collisionPair.first); - } - else { - this._tempTriggerList[i].onTriggerExit(collisionPair.second, collisionPair.first); - } - this._tempTriggerList.length = 0; - if (collisionPair.second.entity) { - collisionPair.second.entity.getComponents("ITriggerListener", this._tempTriggerList); - for (var i_2 = 0; i_2 < this._tempTriggerList.length; i_2++) { - if (isEntering) { - this._tempTriggerList[i_2].onTriggerEnter(collisionPair.first, collisionPair.second); - } - else { - this._tempTriggerList[i_2].onTriggerExit(collisionPair.first, collisionPair.second); - } - } - this._tempTriggerList.length = 0; - } - } - }; - return ColliderTriggerHelper; + this._tempTriggerList.length = 0; + } + } + }; + return ColliderTriggerHelper; }()); var PointSectors; -(function (PointSectors) { - PointSectors[PointSectors["center"] = 0] = "center"; - PointSectors[PointSectors["top"] = 1] = "top"; - PointSectors[PointSectors["bottom"] = 2] = "bottom"; - PointSectors[PointSectors["topLeft"] = 9] = "topLeft"; - PointSectors[PointSectors["topRight"] = 5] = "topRight"; - PointSectors[PointSectors["left"] = 8] = "left"; - PointSectors[PointSectors["right"] = 4] = "right"; - PointSectors[PointSectors["bottomLeft"] = 10] = "bottomLeft"; - PointSectors[PointSectors["bottomRight"] = 6] = "bottomRight"; +(function(PointSectors) { +PointSectors[PointSectors["center"] = 0] = "center"; +PointSectors[PointSectors["top"] = 1] = "top"; +PointSectors[PointSectors["bottom"] = 2] = "bottom"; +PointSectors[PointSectors["topLeft"] = 9] = "topLeft"; +PointSectors[PointSectors["topRight"] = 5] = "topRight"; +PointSectors[PointSectors["left"] = 8] = "left"; +PointSectors[PointSectors["right"] = 4] = "right"; +PointSectors[PointSectors["bottomLeft"] = 10] = "bottomLeft"; +PointSectors[PointSectors["bottomRight"] = 6] = "bottomRight"; })(PointSectors || (PointSectors = {})); -var Collisions = (function () { - function Collisions() { +var Collisions = (function() { + function Collisions() {} + Collisions.isLineToLine = function(a1, a2, b1, b2) { + var b = Vector2.subtract(a2, a1); + var d = Vector2.subtract(b2, b1); + var bDotDPerp = b.x * d.y - b.y * d.x; + if (bDotDPerp == 0) + return false; + var c = Vector2.subtract(b1, a1); + var t = (c.x * d.y - c.y * d.x) / bDotDPerp; + if (t < 0 || t > 1) + return false; + var u = (c.x * b.y - c.y * b.x) / bDotDPerp; + if (u < 0 || u > 1) + return false; + return true; + }; + Collisions.lineToLineIntersection = function(a1, a2, b1, b2) { + var intersection = new Vector2(0, 0); + var b = Vector2.subtract(a2, a1); + var d = Vector2.subtract(b2, b1); + var bDotDPerp = b.x * d.y - b.y * d.x; + if (bDotDPerp == 0) + return intersection; + var c = Vector2.subtract(b1, a1); + var t = (c.x * d.y - c.y * d.x) / bDotDPerp; + if (t < 0 || t > 1) + return intersection; + var u = (c.x * b.y - c.y * b.x) / bDotDPerp; + if (u < 0 || u > 1) + return intersection; + intersection = Vector2.add(a1, new Vector2(t * b.x, t * b.y)); + return intersection; + }; + Collisions.closestPointOnLine = function(lineA, lineB, closestTo) { + var v = Vector2.subtract(lineB, lineA); + var w = Vector2.subtract(closestTo, lineA); + var t = Vector2.dot(w, v) / Vector2.dot(v, v); + t = MathHelper.clamp(t, 0, 1); + return Vector2.add(lineA, new Vector2(v.x * t, v.y * t)); + }; + Collisions.isCircleToCircle = function(circleCenter1, circleRadius1, + circleCenter2, circleRadius2) { + return Vector2.distanceSquared(circleCenter1, circleCenter2) < + (circleRadius1 + circleRadius2) * (circleRadius1 + circleRadius2); + }; + Collisions.isCircleToLine = function(circleCenter, radius, lineFrom, lineTo) { + return Vector2.distanceSquared( + circleCenter, + this.closestPointOnLine(lineFrom, lineTo, circleCenter)) < + radius * radius; + }; + Collisions.isCircleToPoint = function(circleCenter, radius, point) { + return Vector2.distanceSquared(circleCenter, point) < radius * radius; + }; + Collisions.isRectToCircle = function(rect, cPosition, cRadius) { + var ew = rect.width * 0.5; + var eh = rect.height * 0.5; + var vx = Math.max(0, Math.max(cPosition.x - rect.x) - ew); + var vy = Math.max(0, Math.max(cPosition.y - rect.y) - eh); + return vx * vx + vy * vy < cRadius * cRadius; + }; + Collisions.isRectToLine = function(rect, lineFrom, lineTo) { + var fromSector = + this.getSector(rect.x, rect.y, rect.width, rect.height, lineFrom); + var toSector = + this.getSector(rect.x, rect.y, rect.width, rect.height, lineTo); + if (fromSector == PointSectors.center || toSector == PointSectors.center) { + return true; + } else if ((fromSector & toSector) != 0) { + return false; + } else { + var both = fromSector | toSector; + var edgeFrom = void 0; + var edgeTo = void 0; + if ((both & PointSectors.top) != 0) { + edgeFrom = new Vector2(rect.x, rect.y); + edgeTo = new Vector2(rect.x + rect.width, rect.y); + if (this.isLineToLine(edgeFrom, edgeTo, lineFrom, lineTo)) + return true; + } + if ((both & PointSectors.bottom) != 0) { + edgeFrom = new Vector2(rect.x, rect.y + rect.height); + edgeTo = new Vector2(rect.x + rect.width, rect.y + rect.height); + if (this.isLineToLine(edgeFrom, edgeTo, lineFrom, lineTo)) + return true; + } + if ((both & PointSectors.left) != 0) { + edgeFrom = new Vector2(rect.x, rect.y); + edgeTo = new Vector2(rect.x, rect.y + rect.height); + if (this.isLineToLine(edgeFrom, edgeTo, lineFrom, lineTo)) + return true; + } + if ((both & PointSectors.right) != 0) { + edgeFrom = new Vector2(rect.x + rect.width, rect.y); + edgeTo = new Vector2(rect.x + rect.width, rect.y + rect.height); + if (this.isLineToLine(edgeFrom, edgeTo, lineFrom, lineTo)) + return true; + } } - Collisions.isLineToLine = function (a1, a2, b1, b2) { - var b = Vector2.subtract(a2, a1); - var d = Vector2.subtract(b2, b1); - var bDotDPerp = b.x * d.y - b.y * d.x; - if (bDotDPerp == 0) - return false; - var c = Vector2.subtract(b1, a1); - var t = (c.x * d.y - c.y * d.x) / bDotDPerp; - if (t < 0 || t > 1) - return false; - var u = (c.x * b.y - c.y * b.x) / bDotDPerp; - if (u < 0 || u > 1) - return false; + return false; + }; + Collisions.isRectToPoint = function(rX, rY, rW, rH, point) { + return point.x >= rX && point.y >= rY && point.x < rX + rW && + point.y < rY + rH; + }; + Collisions.getSector = function(rX, rY, rW, rH, point) { + var sector = PointSectors.center; + if (point.x < rX) + sector |= PointSectors.left; + else if (point.x >= rX + rW) + sector |= PointSectors.right; + if (point.y < rY) + sector |= PointSectors.top; + else if (point.y >= rY + rH) + sector |= PointSectors.bottom; + return sector; + }; + return Collisions; +}()); +var Physics = (function() { + function Physics() {} + Physics.reset = function() { + this._spatialHash = new SpatialHash(this.spatialHashCellSize); + }; + Physics.clear = function() { this._spatialHash.clear(); }; + Physics.overlapCircleAll = function(center, randius, results, layerMask) { + if (layerMask === void 0) { + layerMask = -1; + } + return this._spatialHash.overlapCircle(center, randius, results, layerMask); + }; + Physics.boxcastBroadphase = function(rect, layerMask) { + if (layerMask === void 0) { + layerMask = this.allLayers; + } + return this._spatialHash.aabbBroadphase(rect, null, layerMask); + }; + Physics.boxcastBroadphaseExcludingSelf = function(collider, rect, layerMask) { + if (layerMask === void 0) { + layerMask = this.allLayers; + } + return this._spatialHash.aabbBroadphase(rect, collider, layerMask); + }; + Physics.addCollider = function( + collider) { Physics._spatialHash.register(collider); }; + Physics.removeCollider = function( + collider) { Physics._spatialHash.remove(collider); }; + Physics.updateCollider = function(collider) { + this._spatialHash.remove(collider); + this._spatialHash.register(collider); + }; + Physics.spatialHashCellSize = 100; + Physics.allLayers = -1; + return Physics; +}()); +var Shape = (function() { + function Shape() {} + return Shape; +}()); +var Polygon = (function(_super) { + __extends(Polygon, _super); + function Polygon(points, isBox) { + var _this = _super.call(this) || this; + _this.isUnrotated = true; + _this._areEdgeNormalsDirty = true; + _this.setPoints(points); + _this.isBox = isBox; + return _this; + } + Object.defineProperty(Polygon.prototype, "edgeNormals", { + get : function() { + if (this._areEdgeNormalsDirty) + this.buildEdgeNormals(); + return this._edgeNormals; + }, + enumerable : true, + configurable : true + }); + Polygon.prototype.buildEdgeNormals = function() { + var totalEdges = this.isBox ? 2 : this.points.length; + if (this._edgeNormals == null || this._edgeNormals.length != totalEdges) + this._edgeNormals = new Array(totalEdges); + var p2; + for (var i = 0; i < totalEdges; i++) { + var p1 = this.points[i]; + if (i + 1 >= this.points.length) + p2 = this.points[0]; + else + p2 = this.points[i + 1]; + var perp = Vector2Ext.perpendicular(p1, p2); + perp = Vector2.normalize(perp); + this._edgeNormals[i] = perp; + } + }; + Polygon.prototype.setPoints = function(points) { + this.points = points; + this.recalculateCenterAndEdgeNormals(); + this._originalPoints = []; + for (var i = 0; i < this.points.length; i++) { + this._originalPoints.push(this.points[i]); + } + }; + Polygon.prototype.collidesWithShape = function(other) { + var result = new CollisionResult(); + if (other instanceof Polygon) { + return ShapeCollisions.polygonToPolygon(this, other); + } + if (other instanceof Circle) { + result = ShapeCollisions.circleToPolygon(other, this); + if (result) { + result.invertResult(); + return result; + } + return null; + } + throw new Error("overlaps of Polygon to " + other + " are not supported"); + }; + Polygon.prototype.recalculateCenterAndEdgeNormals = function() { + this._polygonCenter = Polygon.findPolygonCenter(this.points); + this._areEdgeNormalsDirty = true; + }; + Polygon.prototype.overlaps = function(other) { + var result; + if (other instanceof Polygon) + return ShapeCollisions.polygonToPolygon(this, other); + if (other instanceof Circle) { + result = ShapeCollisions.circleToPolygon(other, this); + if (result) { + result.invertResult(); return true; - }; - Collisions.lineToLineIntersection = function (a1, a2, b1, b2) { - var intersection = new Vector2(0, 0); - var b = Vector2.subtract(a2, a1); - var d = Vector2.subtract(b2, b1); - var bDotDPerp = b.x * d.y - b.y * d.x; - if (bDotDPerp == 0) - return intersection; - var c = Vector2.subtract(b1, a1); - var t = (c.x * d.y - c.y * d.x) / bDotDPerp; - if (t < 0 || t > 1) - return intersection; - var u = (c.x * b.y - c.y * b.x) / bDotDPerp; - if (u < 0 || u > 1) - return intersection; - intersection = Vector2.add(a1, new Vector2(t * b.x, t * b.y)); - return intersection; - }; - Collisions.closestPointOnLine = function (lineA, lineB, closestTo) { - var v = Vector2.subtract(lineB, lineA); - var w = Vector2.subtract(closestTo, lineA); - var t = Vector2.dot(w, v) / Vector2.dot(v, v); - t = MathHelper.clamp(t, 0, 1); - return Vector2.add(lineA, new Vector2(v.x * t, v.y * t)); - }; - Collisions.isCircleToCircle = function (circleCenter1, circleRadius1, circleCenter2, circleRadius2) { - return Vector2.distanceSquared(circleCenter1, circleCenter2) < (circleRadius1 + circleRadius2) * (circleRadius1 + circleRadius2); - }; - Collisions.isCircleToLine = function (circleCenter, radius, lineFrom, lineTo) { - return Vector2.distanceSquared(circleCenter, this.closestPointOnLine(lineFrom, lineTo, circleCenter)) < radius * radius; - }; - Collisions.isCircleToPoint = function (circleCenter, radius, point) { - return Vector2.distanceSquared(circleCenter, point) < radius * radius; - }; - Collisions.isRectToCircle = function (rect, cPosition, cRadius) { - var ew = rect.width * 0.5; - var eh = rect.height * 0.5; - var vx = Math.max(0, Math.max(cPosition.x - rect.x) - ew); - var vy = Math.max(0, Math.max(cPosition.y - rect.y) - eh); - return vx * vx + vy * vy < cRadius * cRadius; - }; - Collisions.isRectToLine = function (rect, lineFrom, lineTo) { - var fromSector = this.getSector(rect.x, rect.y, rect.width, rect.height, lineFrom); - var toSector = this.getSector(rect.x, rect.y, rect.width, rect.height, lineTo); - if (fromSector == PointSectors.center || toSector == PointSectors.center) { - return true; - } - else if ((fromSector & toSector) != 0) { - return false; - } - else { - var both = fromSector | toSector; - var edgeFrom = void 0; - var edgeTo = void 0; - if ((both & PointSectors.top) != 0) { - edgeFrom = new Vector2(rect.x, rect.y); - edgeTo = new Vector2(rect.x + rect.width, rect.y); - if (this.isLineToLine(edgeFrom, edgeTo, lineFrom, lineTo)) - return true; - } - if ((both & PointSectors.bottom) != 0) { - edgeFrom = new Vector2(rect.x, rect.y + rect.height); - edgeTo = new Vector2(rect.x + rect.width, rect.y + rect.height); - if (this.isLineToLine(edgeFrom, edgeTo, lineFrom, lineTo)) - return true; - } - if ((both & PointSectors.left) != 0) { - edgeFrom = new Vector2(rect.x, rect.y); - edgeTo = new Vector2(rect.x, rect.y + rect.height); - if (this.isLineToLine(edgeFrom, edgeTo, lineFrom, lineTo)) - return true; - } - if ((both & PointSectors.right) != 0) { - edgeFrom = new Vector2(rect.x + rect.width, rect.y); - edgeTo = new Vector2(rect.x + rect.width, rect.y + rect.height); - if (this.isLineToLine(edgeFrom, edgeTo, lineFrom, lineTo)) - return true; - } - } - return false; - }; - Collisions.isRectToPoint = function (rX, rY, rW, rH, point) { - return point.x >= rX && point.y >= rY && point.x < rX + rW && point.y < rY + rH; - }; - Collisions.getSector = function (rX, rY, rW, rH, point) { - var sector = PointSectors.center; - if (point.x < rX) - sector |= PointSectors.left; - else if (point.x >= rX + rW) - sector |= PointSectors.right; - if (point.y < rY) - sector |= PointSectors.top; - else if (point.y >= rY + rH) - sector |= PointSectors.bottom; - return sector; - }; - return Collisions; -}()); -var Physics = (function () { - function Physics() { + } + return false; } - Physics.reset = function () { - this._spatialHash = new SpatialHash(this.spatialHashCellSize); - }; - Physics.clear = function () { - this._spatialHash.clear(); - }; - Physics.overlapCircleAll = function (center, randius, results, layerMask) { - if (layerMask === void 0) { layerMask = -1; } - return this._spatialHash.overlapCircle(center, randius, results, layerMask); - }; - Physics.boxcastBroadphase = function (rect, layerMask) { - if (layerMask === void 0) { layerMask = this.allLayers; } - return this._spatialHash.aabbBroadphase(rect, null, layerMask); - }; - Physics.boxcastBroadphaseExcludingSelf = function (collider, rect, layerMask) { - if (layerMask === void 0) { layerMask = this.allLayers; } - return this._spatialHash.aabbBroadphase(rect, collider, layerMask); - }; - Physics.addCollider = function (collider) { - Physics._spatialHash.register(collider); - }; - Physics.removeCollider = function (collider) { - Physics._spatialHash.remove(collider); - }; - Physics.updateCollider = function (collider) { - this._spatialHash.remove(collider); - this._spatialHash.register(collider); - }; - Physics.spatialHashCellSize = 100; - Physics.allLayers = -1; - return Physics; -}()); -var Shape = (function () { - function Shape() { + throw new Error("overlaps of Pologon to " + other + " are not supported"); + }; + Polygon.findPolygonCenter = function(points) { + var x = 0, y = 0; + for (var i = 0; i < points.length; i++) { + x += points[i].x; + y += points[i].y; } - return Shape; -}()); -var Polygon = (function (_super) { - __extends(Polygon, _super); - function Polygon(points, isBox) { - var _this = _super.call(this) || this; - _this.isUnrotated = true; - _this._areEdgeNormalsDirty = true; - _this.setPoints(points); - _this.isBox = isBox; - return _this; + return new Vector2(x / points.length, y / points.length); + }; + Polygon.getClosestPointOnPolygonToPoint = function(points, point) { + var distanceSquared = Number.MAX_VALUE; + var edgeNormal = new Vector2(0, 0); + var closestPoint = new Vector2(0, 0); + var tempDistanceSquared; + for (var i = 0; i < points.length; i++) { + var j = i + 1; + if (j == points.length) + j = 0; + var closest = + ShapeCollisions.closestPointOnLine(points[i], points[j], point); + tempDistanceSquared = Vector2.distanceSquared(point, closest); + if (tempDistanceSquared < distanceSquared) { + distanceSquared = tempDistanceSquared; + closestPoint = closest; + var line = Vector2.subtract(points[j], points[i]); + edgeNormal.x = -line.y; + edgeNormal.y = line.x; + } } - Object.defineProperty(Polygon.prototype, "edgeNormals", { - get: function () { - if (this._areEdgeNormalsDirty) - this.buildEdgeNormals(); - return this._edgeNormals; - }, - enumerable: true, - configurable: true - }); - Polygon.prototype.buildEdgeNormals = function () { - var totalEdges = this.isBox ? 2 : this.points.length; - if (this._edgeNormals == null || this._edgeNormals.length != totalEdges) - this._edgeNormals = new Array(totalEdges); - var p2; - for (var i = 0; i < totalEdges; i++) { - var p1 = this.points[i]; - if (i + 1 >= this.points.length) - p2 = this.points[0]; - else - p2 = this.points[i + 1]; - var perp = Vector2Ext.perpendicular(p1, p2); - perp = Vector2.normalize(perp); - this._edgeNormals[i] = perp; - } + edgeNormal = Vector2.normalize(edgeNormal); + return { + closestPoint : closestPoint, + distanceSquared : distanceSquared, + edgeNormal : edgeNormal }; - Polygon.prototype.setPoints = function (points) { - this.points = points; - this.recalculateCenterAndEdgeNormals(); - this._originalPoints = []; - for (var i = 0; i < this.points.length; i++) { - this._originalPoints.push(this.points[i]); - } - }; - Polygon.prototype.collidesWithShape = function (other) { - var result = new CollisionResult(); - if (other instanceof Polygon) { - return ShapeCollisions.polygonToPolygon(this, other); - } - if (other instanceof Circle) { - result = ShapeCollisions.circleToPolygon(other, this); - if (result) { - result.invertResult(); - return result; - } - return null; - } - throw new Error("overlaps of Polygon to " + other + " are not supported"); - }; - Polygon.prototype.recalculateCenterAndEdgeNormals = function () { - this._polygonCenter = Polygon.findPolygonCenter(this.points); + }; + Polygon.prototype.pointCollidesWithShape = function( + point) { return ShapeCollisions.pointToPoly(point, this); }; + Polygon.prototype.containsPoint = function(point) { + point = Vector2.subtract(point, this.position); + var isInside = false; + for (var i = 0, j = this.points.length - 1; i < this.points.length; + j = i++) { + if (((this.points[i].y > point.y) != (this.points[j].y > point.y)) && + (point.x < (this.points[j].x - this.points[i].x) * + (point.y - this.points[i].y) / + (this.points[j].y - this.points[i].y) + + this.points[i].x)) { + isInside = !isInside; + } + } + return isInside; + }; + Polygon.buildSymmertricalPolygon = function(vertCount, radius) { + var verts = new Array(vertCount); + for (var i = 0; i < vertCount; i++) { + var a = 2 * Math.PI * (i / vertCount); + verts[i] = new Vector2(Math.cos(a), Math.sin(a) * radius); + } + return verts; + }; + Polygon.prototype.recalculateBounds = function(collider) { + this.center = collider.localOffset; + if (collider.shouldColliderScaleAndRotationWithTransform) { + var hasUnitScale = true; + var tempMat = void 0; + var combinedMatrix = Matrix2D.createTranslation(-this._polygonCenter.x, + -this._polygonCenter.y); + if (collider.entity.scale != Vector2.one) { + tempMat = Matrix2D.createScale(collider.entity.scale.x, + collider.entity.scale.y); + combinedMatrix = Matrix2D.multiply(combinedMatrix, tempMat); + hasUnitScale = false; + var scaledOffset = + Vector2.multiply(collider.localOffset, collider.entity.scale); + this.center = scaledOffset; + } + if (collider.entity.rotation != 0) { + tempMat = Matrix2D.createRotation(collider.entity.rotation); + combinedMatrix = Matrix2D.multiply(combinedMatrix, tempMat); + var offsetAngle = + Math.atan2(collider.localOffset.y, collider.localOffset.x) * + MathHelper.Rad2Deg; + var offsetLength = hasUnitScale + ? collider._localOffsetLength + : (Vector2.multiply(collider.localOffset, + collider.entity.scale)) + .length(); + this.center = MathHelper.pointOnCirlce( + Vector2.zero, offsetLength, + MathHelper.toDegrees(collider.entity.rotation) + offsetAngle); + } + tempMat = Matrix2D.createTranslation(this._polygonCenter.x, + this._polygonCenter.y); + combinedMatrix = Matrix2D.multiply(combinedMatrix, tempMat); + Vector2Ext.transform(this._originalPoints, combinedMatrix, this.points); + this.isUnrotated = collider.entity.rotation == 0; + if (collider._isRotationDirty) this._areEdgeNormalsDirty = true; - }; - Polygon.prototype.overlaps = function (other) { - var result; - if (other instanceof Polygon) - return ShapeCollisions.polygonToPolygon(this, other); - if (other instanceof Circle) { - result = ShapeCollisions.circleToPolygon(other, this); - if (result) { - result.invertResult(); - return true; - } - return false; - } - throw new Error("overlaps of Pologon to " + other + " are not supported"); - }; - Polygon.findPolygonCenter = function (points) { - var x = 0, y = 0; - for (var i = 0; i < points.length; i++) { - x += points[i].x; - y += points[i].y; - } - return new Vector2(x / points.length, y / points.length); - }; - Polygon.getClosestPointOnPolygonToPoint = function (points, point) { - var distanceSquared = Number.MAX_VALUE; - var edgeNormal = new Vector2(0, 0); - var closestPoint = new Vector2(0, 0); - var tempDistanceSquared; - for (var i = 0; i < points.length; i++) { - var j = i + 1; - if (j == points.length) - j = 0; - var closest = ShapeCollisions.closestPointOnLine(points[i], points[j], point); - tempDistanceSquared = Vector2.distanceSquared(point, closest); - if (tempDistanceSquared < distanceSquared) { - distanceSquared = tempDistanceSquared; - closestPoint = closest; - var line = Vector2.subtract(points[j], points[i]); - edgeNormal.x = -line.y; - edgeNormal.y = line.x; - } - } - edgeNormal = Vector2.normalize(edgeNormal); - return { closestPoint: closestPoint, distanceSquared: distanceSquared, edgeNormal: edgeNormal }; - }; - Polygon.prototype.pointCollidesWithShape = function (point) { - return ShapeCollisions.pointToPoly(point, this); - }; - Polygon.prototype.containsPoint = function (point) { - point = Vector2.subtract(point, this.position); - var isInside = false; - for (var i = 0, j = this.points.length - 1; i < this.points.length; j = i++) { - if (((this.points[i].y > point.y) != (this.points[j].y > point.y)) && - (point.x < (this.points[j].x - this.points[i].x) * (point.y - this.points[i].y) / (this.points[j].y - this.points[i].y) + - this.points[i].x)) { - isInside = !isInside; - } - } - return isInside; - }; - Polygon.buildSymmertricalPolygon = function (vertCount, radius) { - var verts = new Array(vertCount); - for (var i = 0; i < vertCount; i++) { - var a = 2 * Math.PI * (i / vertCount); - verts[i] = new Vector2(Math.cos(a), Math.sin(a) * radius); - } - return verts; - }; - Polygon.prototype.recalculateBounds = function (collider) { - this.center = collider.localOffset; - if (collider.shouldColliderScaleAndRotationWithTransform) { - var hasUnitScale = true; - var tempMat = void 0; - var combinedMatrix = Matrix2D.createTranslation(-this._polygonCenter.x, -this._polygonCenter.y); - if (collider.entity.scale != Vector2.one) { - tempMat = Matrix2D.createScale(collider.entity.scale.x, collider.entity.scale.y); - combinedMatrix = Matrix2D.multiply(combinedMatrix, tempMat); - hasUnitScale = false; - var scaledOffset = Vector2.multiply(collider.localOffset, collider.entity.scale); - this.center = scaledOffset; - } - if (collider.entity.rotation != 0) { - tempMat = Matrix2D.createRotation(collider.entity.rotation); - combinedMatrix = Matrix2D.multiply(combinedMatrix, tempMat); - var offsetAngle = Math.atan2(collider.localOffset.y, collider.localOffset.x) * MathHelper.Rad2Deg; - var offsetLength = hasUnitScale ? collider._localOffsetLength : (Vector2.multiply(collider.localOffset, collider.entity.scale)).length(); - this.center = MathHelper.pointOnCirlce(Vector2.zero, offsetLength, MathHelper.toDegrees(collider.entity.rotation) + offsetAngle); - } - tempMat = Matrix2D.createTranslation(this._polygonCenter.x, this._polygonCenter.y); - combinedMatrix = Matrix2D.multiply(combinedMatrix, tempMat); - Vector2Ext.transform(this._originalPoints, combinedMatrix, this.points); - this.isUnrotated = collider.entity.rotation == 0; - if (collider._isRotationDirty) - this._areEdgeNormalsDirty = true; - } - this.position = Vector2.add(collider.entity.position, this.center); - this.bounds = Rectangle.rectEncompassingPoints(this.points); - this.bounds.location = Vector2.add(this.bounds.location, this.position); - }; - return Polygon; -}(Shape)); -var Box = (function (_super) { - __extends(Box, _super); - function Box(width, height) { - var _this = _super.call(this, Box.buildBox(width, height), true) || this; - _this.width = width; - _this.height = height; - return _this; } - Box.buildBox = function (width, height) { - var halfWidth = width / 2; - var halfHeight = height / 2; - var verts = new Array(4); - verts[0] = new Vector2(-halfWidth, -halfHeight); - verts[1] = new Vector2(halfWidth, -halfHeight); - verts[2] = new Vector2(halfWidth, halfHeight); - verts[3] = new Vector2(-halfWidth, halfHeight); - return verts; - }; - Box.prototype.updateBox = function (width, height) { - this.width = width; - this.height = height; - var halfWidth = width / 2; - var halfHeight = height / 2; - this.points[0] = new Vector2(-halfWidth, -halfHeight); - this.points[1] = new Vector2(halfWidth, -halfHeight); - this.points[2] = new Vector2(halfWidth, halfHeight); - this.points[3] = new Vector2(-halfWidth, halfHeight); - for (var i = 0; i < this.points.length; i++) - this._originalPoints[i] = this.points[i]; - }; - Box.prototype.containsPoint = function (point) { - if (this.isUnrotated) - return this.bounds.contains(point); - return _super.prototype.containsPoint.call(this, point); - }; - return Box; + this.position = Vector2.add(collider.entity.position, this.center); + this.bounds = Rectangle.rectEncompassingPoints(this.points); + this.bounds.location = Vector2.add(this.bounds.location, this.position); + }; + return Polygon; +}(Shape)); +var Box = (function(_super) { + __extends(Box, _super); + function Box(width, height) { + var _this = _super.call(this, Box.buildBox(width, height), true) || this; + _this.width = width; + _this.height = height; + return _this; + } + Box.buildBox = function(width, height) { + var halfWidth = width / 2; + var halfHeight = height / 2; + var verts = new Array(4); + verts[0] = new Vector2(-halfWidth, -halfHeight); + verts[1] = new Vector2(halfWidth, -halfHeight); + verts[2] = new Vector2(halfWidth, halfHeight); + verts[3] = new Vector2(-halfWidth, halfHeight); + return verts; + }; + Box.prototype.updateBox = function(width, height) { + this.width = width; + this.height = height; + var halfWidth = width / 2; + var halfHeight = height / 2; + this.points[0] = new Vector2(-halfWidth, -halfHeight); + this.points[1] = new Vector2(halfWidth, -halfHeight); + this.points[2] = new Vector2(halfWidth, halfHeight); + this.points[3] = new Vector2(-halfWidth, halfHeight); + for (var i = 0; i < this.points.length; i++) + this._originalPoints[i] = this.points[i]; + }; + Box.prototype.containsPoint = function(point) { + if (this.isUnrotated) + return this.bounds.contains(point); + return _super.prototype.containsPoint.call(this, point); + }; + return Box; }(Polygon)); -var Circle = (function (_super) { - __extends(Circle, _super); - function Circle(radius) { - var _this = _super.call(this) || this; - _this.radius = radius; - _this._originalRadius = radius; - return _this; +var Circle = (function(_super) { + __extends(Circle, _super); + function Circle(radius) { + var _this = _super.call(this) || this; + _this.radius = radius; + _this._originalRadius = radius; + return _this; + } + Circle.prototype.pointCollidesWithShape = function( + point) { return ShapeCollisions.pointToCircle(point, this); }; + Circle.prototype.collidesWithShape = function(other) { + if (other instanceof Box && other.isUnrotated) { + return ShapeCollisions.circleToBox(this, other); } - Circle.prototype.pointCollidesWithShape = function (point) { - return ShapeCollisions.pointToCircle(point, this); - }; - Circle.prototype.collidesWithShape = function (other) { - if (other instanceof Box && other.isUnrotated) { - return ShapeCollisions.circleToBox(this, other); - } - if (other instanceof Circle) { - return ShapeCollisions.circleToCircle(this, other); - } - if (other instanceof Polygon) { - return ShapeCollisions.circleToPolygon(this, other); - } - throw new Error("Collisions of Circle to " + other + " are not supported"); - }; - Circle.prototype.recalculateBounds = function (collider) { - this.center = collider.localOffset; - if (collider.shouldColliderScaleAndRotationWithTransform) { - var scale = collider.entity.scale; - var hasUnitScale = scale.x == 1 && scale.y == 1; - var maxScale = Math.max(scale.x, scale.y); - this.radius = this._originalRadius * maxScale; - if (collider.entity.rotation != 0) { - var offsetAngle = Math.atan2(collider.localOffset.y, collider.localOffset.x) * MathHelper.Rad2Deg; - var offsetLength = hasUnitScale ? collider._localOffsetLength : (Vector2.multiply(collider.localOffset, collider.entity.scale)).length(); - this.center = MathHelper.pointOnCirlce(Vector2.zero, offsetLength, MathHelper.toDegrees(collider.entity.rotation) + offsetAngle); - } - } - this.position = Vector2.add(collider.entity.position, this.center); - this.bounds = new Rectangle(this.position.x - this.radius, this.position.y - this.radius, this.radius * 2, this.radius * 2); - }; - Circle.prototype.overlaps = function (other) { - if (other instanceof Box && other.isUnrotated) - return Collisions.isRectToCircle(other.bounds, this.position, this.radius); - if (other instanceof Circle) - return Collisions.isCircleToCircle(this.position, this.radius, other.position, other.radius); - if (other instanceof Polygon) - return ShapeCollisions.circleToPolygon(this, other); - throw new Error("overlaps of circle to " + other + " are not supported"); - }; - return Circle; + if (other instanceof Circle) { + return ShapeCollisions.circleToCircle(this, other); + } + if (other instanceof Polygon) { + return ShapeCollisions.circleToPolygon(this, other); + } + throw new Error("Collisions of Circle to " + other + " are not supported"); + }; + Circle.prototype.recalculateBounds = function(collider) { + this.center = collider.localOffset; + if (collider.shouldColliderScaleAndRotationWithTransform) { + var scale = collider.entity.scale; + var hasUnitScale = scale.x == 1 && scale.y == 1; + var maxScale = Math.max(scale.x, scale.y); + this.radius = this._originalRadius * maxScale; + if (collider.entity.rotation != 0) { + var offsetAngle = + Math.atan2(collider.localOffset.y, collider.localOffset.x) * + MathHelper.Rad2Deg; + var offsetLength = hasUnitScale + ? collider._localOffsetLength + : (Vector2.multiply(collider.localOffset, + collider.entity.scale)) + .length(); + this.center = MathHelper.pointOnCirlce( + Vector2.zero, offsetLength, + MathHelper.toDegrees(collider.entity.rotation) + offsetAngle); + } + } + this.position = Vector2.add(collider.entity.position, this.center); + this.bounds = new Rectangle(this.position.x - this.radius, + this.position.y - this.radius, this.radius * 2, + this.radius * 2); + }; + Circle.prototype.overlaps = function(other) { + if (other instanceof Box && other.isUnrotated) + return Collisions.isRectToCircle(other.bounds, this.position, + this.radius); + if (other instanceof Circle) + return Collisions.isCircleToCircle(this.position, this.radius, + other.position, other.radius); + if (other instanceof Polygon) + return ShapeCollisions.circleToPolygon(this, other); + throw new Error("overlaps of circle to " + other + " are not supported"); + }; + return Circle; }(Shape)); -var CollisionResult = (function () { - function CollisionResult() { - } - CollisionResult.prototype.invertResult = function () { - this.minimumTranslationVector = Vector2.negate(this.minimumTranslationVector); - this.normal = Vector2.negate(this.normal); - }; - return CollisionResult; +var CollisionResult = (function() { + function CollisionResult() {} + CollisionResult.prototype.invertResult = function() { + this.minimumTranslationVector = + Vector2.negate(this.minimumTranslationVector); + this.normal = Vector2.negate(this.normal); + }; + return CollisionResult; }()); -var ShapeCollisions = (function () { - function ShapeCollisions() { +var ShapeCollisions = (function() { + function ShapeCollisions() {} + ShapeCollisions.polygonToPolygon = function(first, second) { + var result = new CollisionResult(); + var isIntersecting = true; + var firstEdges = first.edgeNormals; + var secondEdges = second.edgeNormals; + var minIntervalDistance = Number.POSITIVE_INFINITY; + var translationAxis = new Vector2(); + var polygonOffset = Vector2.subtract(first.position, second.position); + var axis; + for (var edgeIndex = 0; edgeIndex < firstEdges.length + secondEdges.length; + edgeIndex++) { + if (edgeIndex < firstEdges.length) { + axis = firstEdges[edgeIndex]; + } else { + axis = secondEdges[edgeIndex - firstEdges.length]; + } + var minA = 0; + var minB = 0; + var maxA = 0; + var maxB = 0; + var intervalDist = 0; + var ta = this.getInterval(axis, first, minA, maxA); + minA = ta.min; + minB = ta.max; + var tb = this.getInterval(axis, second, minB, maxB); + minB = tb.min; + maxB = tb.max; + var relativeIntervalOffset = Vector2.dot(polygonOffset, axis); + minA += relativeIntervalOffset; + maxA += relativeIntervalOffset; + intervalDist = this.intervalDistance(minA, maxA, minB, maxB); + if (intervalDist > 0) + isIntersecting = false; + if (!isIntersecting) + return null; + intervalDist = Math.abs(intervalDist); + if (intervalDist < minIntervalDistance) { + minIntervalDistance = intervalDist; + translationAxis = axis; + if (Vector2.dot(translationAxis, polygonOffset) < 0) + translationAxis = new Vector2(-translationAxis); + } } - ShapeCollisions.polygonToPolygon = function (first, second) { - var result = new CollisionResult(); - var isIntersecting = true; - var firstEdges = first.edgeNormals; - var secondEdges = second.edgeNormals; - var minIntervalDistance = Number.POSITIVE_INFINITY; - var translationAxis = new Vector2(); - var polygonOffset = Vector2.subtract(first.position, second.position); - var axis; - for (var edgeIndex = 0; edgeIndex < firstEdges.length + secondEdges.length; edgeIndex++) { - if (edgeIndex < firstEdges.length) { - axis = firstEdges[edgeIndex]; - } - else { - axis = secondEdges[edgeIndex - firstEdges.length]; - } - var minA = 0; - var minB = 0; - var maxA = 0; - var maxB = 0; - var intervalDist = 0; - var ta = this.getInterval(axis, first, minA, maxA); - minA = ta.min; - minB = ta.max; - var tb = this.getInterval(axis, second, minB, maxB); - minB = tb.min; - maxB = tb.max; - var relativeIntervalOffset = Vector2.dot(polygonOffset, axis); - minA += relativeIntervalOffset; - maxA += relativeIntervalOffset; - intervalDist = this.intervalDistance(minA, maxA, minB, maxB); - if (intervalDist > 0) - isIntersecting = false; - if (!isIntersecting) - return null; - intervalDist = Math.abs(intervalDist); - if (intervalDist < minIntervalDistance) { - minIntervalDistance = intervalDist; - translationAxis = axis; - if (Vector2.dot(translationAxis, polygonOffset) < 0) - translationAxis = new Vector2(-translationAxis); - } - } - result.normal = translationAxis; - result.minimumTranslationVector = Vector2.multiply(new Vector2(-translationAxis), new Vector2(minIntervalDistance)); - return result; - }; - ShapeCollisions.intervalDistance = function (minA, maxA, minB, maxB) { - if (minA < minB) - return minB - maxA; - return minA - minB; - }; - ShapeCollisions.getInterval = function (axis, polygon, min, max) { - var dot = Vector2.dot(polygon.points[0], axis); - min = max = dot; - for (var i = 1; i < polygon.points.length; i++) { - dot = Vector2.dot(polygon.points[i], axis); - if (dot < min) { - min = dot; - } - else if (dot > max) { - max = dot; - } - } - return { min: min, max: max }; - }; - ShapeCollisions.circleToPolygon = function (circle, polygon) { - var result = new CollisionResult(); - var poly2Circle = Vector2.subtract(circle.position, polygon.position); - var gpp = Polygon.getClosestPointOnPolygonToPoint(polygon.points, poly2Circle); - var closestPoint = gpp.closestPoint; - var distanceSquared = gpp.distanceSquared; - result.normal = gpp.edgeNormal; - var circleCenterInsidePoly = polygon.containsPoint(circle.position); - if (distanceSquared > circle.radius * circle.radius && !circleCenterInsidePoly) - return null; - var mtv; - if (circleCenterInsidePoly) { - mtv = Vector2.multiply(result.normal, new Vector2(Math.sqrt(distanceSquared) - circle.radius)); - } - else { - if (distanceSquared == 0) { - mtv = Vector2.multiply(result.normal, new Vector2(circle.radius)); - } - else { - var distance = Math.sqrt(distanceSquared); - mtv = Vector2.multiply(new Vector2(-Vector2.subtract(poly2Circle, closestPoint)), new Vector2((circle.radius - distanceSquared) / distance)); - } - } - result.minimumTranslationVector = mtv; - result.point = Vector2.add(closestPoint, polygon.position); - return result; - }; - ShapeCollisions.circleToBox = function (circle, box) { - var result = new CollisionResult(); - var closestPointOnBounds = box.bounds.getClosestPointOnRectangleBorderToPoint(circle.position).res; - if (box.containsPoint(circle.position)) { - result.point = closestPointOnBounds; - var safePlace = Vector2.add(closestPointOnBounds, Vector2.subtract(result.normal, new Vector2(circle.radius))); - result.minimumTranslationVector = Vector2.subtract(circle.position, safePlace); - return result; - } - var sqrDistance = Vector2.distanceSquared(closestPointOnBounds, circle.position); - if (sqrDistance == 0) { - result.minimumTranslationVector = Vector2.multiply(result.normal, new Vector2(circle.radius)); - } - else if (sqrDistance <= circle.radius * circle.radius) { - result.normal = Vector2.subtract(circle.position, closestPointOnBounds); - var depth = result.normal.length() - circle.radius; - result.normal = Vector2Ext.normalize(result.normal); - result.minimumTranslationVector = Vector2.multiply(new Vector2(depth), result.normal); - return result; - } - return null; - }; - ShapeCollisions.pointToCircle = function (point, circle) { - var result = new CollisionResult(); - var distanceSquared = Vector2.distanceSquared(point, circle.position); - var sumOfRadii = 1 + circle.radius; - var collided = distanceSquared < sumOfRadii * sumOfRadii; - if (collided) { - result.normal = Vector2.normalize(Vector2.subtract(point, circle.position)); - var depth = sumOfRadii - Math.sqrt(distanceSquared); - result.minimumTranslationVector = Vector2.multiply(new Vector2(-depth, -depth), result.normal); - result.point = Vector2.add(circle.position, Vector2.multiply(result.normal, new Vector2(circle.radius, circle.radius))); - return result; - } - return null; - }; - ShapeCollisions.closestPointOnLine = function (lineA, lineB, closestTo) { - var v = Vector2.subtract(lineB, lineA); - var w = Vector2.subtract(closestTo, lineA); - var t = Vector2.dot(w, v) / Vector2.dot(v, v); - t = MathHelper.clamp(t, 0, 1); - return Vector2.add(lineA, Vector2.multiply(v, new Vector2(t, t))); - }; - ShapeCollisions.pointToPoly = function (point, poly) { - var result = new CollisionResult(); - if (poly.containsPoint(point)) { - var distanceSquared = void 0; - var gpp = Polygon.getClosestPointOnPolygonToPoint(poly.points, Vector2.subtract(point, poly.position)); - var closestPoint = gpp.closestPoint; - distanceSquared = gpp.distanceSquared; - result.normal = gpp.edgeNormal; - result.minimumTranslationVector = Vector2.multiply(result.normal, new Vector2(Math.sqrt(distanceSquared), Math.sqrt(distanceSquared))); - result.point = Vector2.add(closestPoint, poly.position); - return result; - } - return null; - }; - ShapeCollisions.circleToCircle = function (first, second) { - var result = new CollisionResult(); - var distanceSquared = Vector2.distanceSquared(first.position, second.position); - var sumOfRadii = first.radius + second.radius; - var collided = distanceSquared < sumOfRadii * sumOfRadii; - if (collided) { - result.normal = Vector2.normalize(Vector2.subtract(first.position, second.position)); - var depth = sumOfRadii - Math.sqrt(distanceSquared); - result.minimumTranslationVector = Vector2.multiply(new Vector2(-depth), result.normal); - result.point = Vector2.add(second.position, Vector2.multiply(result.normal, new Vector2(second.radius))); - return result; - } - return null; - }; - return ShapeCollisions; + result.normal = translationAxis; + result.minimumTranslationVector = Vector2.multiply( + new Vector2(-translationAxis), new Vector2(minIntervalDistance)); + return result; + }; + ShapeCollisions.intervalDistance = function(minA, maxA, minB, maxB) { + if (minA < minB) + return minB - maxA; + return minA - minB; + }; + ShapeCollisions.getInterval = function(axis, polygon, min, max) { + var dot = Vector2.dot(polygon.points[0], axis); + min = max = dot; + for (var i = 1; i < polygon.points.length; i++) { + dot = Vector2.dot(polygon.points[i], axis); + if (dot < min) { + min = dot; + } else if (dot > max) { + max = dot; + } + } + return {min : min, max : max}; + }; + ShapeCollisions.circleToPolygon = function(circle, polygon) { + var result = new CollisionResult(); + var poly2Circle = Vector2.subtract(circle.position, polygon.position); + var gpp = + Polygon.getClosestPointOnPolygonToPoint(polygon.points, poly2Circle); + var closestPoint = gpp.closestPoint; + var distanceSquared = gpp.distanceSquared; + result.normal = gpp.edgeNormal; + var circleCenterInsidePoly = polygon.containsPoint(circle.position); + if (distanceSquared > circle.radius * circle.radius && + !circleCenterInsidePoly) + return null; + var mtv; + if (circleCenterInsidePoly) { + mtv = Vector2.multiply( + result.normal, + new Vector2(Math.sqrt(distanceSquared) - circle.radius)); + } else { + if (distanceSquared == 0) { + mtv = Vector2.multiply(result.normal, new Vector2(circle.radius)); + } else { + var distance = Math.sqrt(distanceSquared); + mtv = Vector2.multiply( + new Vector2(-Vector2.subtract(poly2Circle, closestPoint)), + new Vector2((circle.radius - distanceSquared) / distance)); + } + } + result.minimumTranslationVector = mtv; + result.point = Vector2.add(closestPoint, polygon.position); + return result; + }; + ShapeCollisions.circleToBox = function(circle, box) { + var result = new CollisionResult(); + var closestPointOnBounds = + box.bounds.getClosestPointOnRectangleBorderToPoint(circle.position).res; + if (box.containsPoint(circle.position)) { + result.point = closestPointOnBounds; + var safePlace = Vector2.add( + closestPointOnBounds, + Vector2.subtract(result.normal, new Vector2(circle.radius))); + result.minimumTranslationVector = + Vector2.subtract(circle.position, safePlace); + return result; + } + var sqrDistance = + Vector2.distanceSquared(closestPointOnBounds, circle.position); + if (sqrDistance == 0) { + result.minimumTranslationVector = + Vector2.multiply(result.normal, new Vector2(circle.radius)); + } else if (sqrDistance <= circle.radius * circle.radius) { + result.normal = Vector2.subtract(circle.position, closestPointOnBounds); + var depth = result.normal.length() - circle.radius; + result.normal = Vector2Ext.normalize(result.normal); + result.minimumTranslationVector = + Vector2.multiply(new Vector2(depth), result.normal); + return result; + } + return null; + }; + ShapeCollisions.pointToCircle = function(point, circle) { + var result = new CollisionResult(); + var distanceSquared = Vector2.distanceSquared(point, circle.position); + var sumOfRadii = 1 + circle.radius; + var collided = distanceSquared < sumOfRadii * sumOfRadii; + if (collided) { + result.normal = + Vector2.normalize(Vector2.subtract(point, circle.position)); + var depth = sumOfRadii - Math.sqrt(distanceSquared); + result.minimumTranslationVector = + Vector2.multiply(new Vector2(-depth, -depth), result.normal); + result.point = Vector2.add( + circle.position, + Vector2.multiply(result.normal, + new Vector2(circle.radius, circle.radius))); + return result; + } + return null; + }; + ShapeCollisions.closestPointOnLine = function(lineA, lineB, closestTo) { + var v = Vector2.subtract(lineB, lineA); + var w = Vector2.subtract(closestTo, lineA); + var t = Vector2.dot(w, v) / Vector2.dot(v, v); + t = MathHelper.clamp(t, 0, 1); + return Vector2.add(lineA, Vector2.multiply(v, new Vector2(t, t))); + }; + ShapeCollisions.pointToPoly = function(point, poly) { + var result = new CollisionResult(); + if (poly.containsPoint(point)) { + var distanceSquared = void 0; + var gpp = Polygon.getClosestPointOnPolygonToPoint( + poly.points, Vector2.subtract(point, poly.position)); + var closestPoint = gpp.closestPoint; + distanceSquared = gpp.distanceSquared; + result.normal = gpp.edgeNormal; + result.minimumTranslationVector = Vector2.multiply( + result.normal, + new Vector2(Math.sqrt(distanceSquared), Math.sqrt(distanceSquared))); + result.point = Vector2.add(closestPoint, poly.position); + return result; + } + return null; + }; + ShapeCollisions.circleToCircle = function(first, second) { + var result = new CollisionResult(); + var distanceSquared = + Vector2.distanceSquared(first.position, second.position); + var sumOfRadii = first.radius + second.radius; + var collided = distanceSquared < sumOfRadii * sumOfRadii; + if (collided) { + result.normal = + Vector2.normalize(Vector2.subtract(first.position, second.position)); + var depth = sumOfRadii - Math.sqrt(distanceSquared); + result.minimumTranslationVector = + Vector2.multiply(new Vector2(-depth), result.normal); + result.point = Vector2.add( + second.position, + Vector2.multiply(result.normal, new Vector2(second.radius))); + return result; + } + return null; + }; + return ShapeCollisions; }()); -var SpatialHash = (function () { - function SpatialHash(cellSize) { - if (cellSize === void 0) { cellSize = 100; } - this.gridBounds = new Rectangle(); - this._tempHashSet = []; - this._cellDict = new NumberDictionary(); - this._cellSize = cellSize; - this._inverseCellSize = 1 / this._cellSize; - this._raycastParser = new RaycastResultParser(); +var SpatialHash = (function() { + function SpatialHash(cellSize) { + if (cellSize === void 0) { + cellSize = 100; } - SpatialHash.prototype.remove = function (collider) { - var bounds = collider.registeredPhysicsBounds; - var p1 = this.cellCoords(bounds.x, bounds.y); - var p2 = this.cellCoords(bounds.right, bounds.bottom); - for (var x = p1.x; x <= p2.x; x++) { - for (var y = p1.y; y <= p2.y; y++) { - var cell = this.cellAtPosition(x, y); - if (!cell) - console.error("removing Collider [" + collider + "] from a cell that it is not present in"); - else - cell.remove(collider); - } - } - }; - SpatialHash.prototype.register = function (collider) { - var bounds = collider.bounds; - collider.registeredPhysicsBounds = bounds; - var p1 = this.cellCoords(bounds.x, bounds.y); - var p2 = this.cellCoords(bounds.right, bounds.bottom); - if (!this.gridBounds.contains(new Vector2(p1.x, p1.y))) { - this.gridBounds = RectangleExt.union(this.gridBounds, p1); - } - if (!this.gridBounds.contains(new Vector2(p2.x, p2.y))) { - this.gridBounds = RectangleExt.union(this.gridBounds, p2); - } - for (var x = p1.x; x <= p2.x; x++) { - for (var y = p1.y; y <= p2.y; y++) { - var c = this.cellAtPosition(x, y, true); - c.push(collider); - } - } - }; - SpatialHash.prototype.clear = function () { - this._cellDict.clear(); - }; - SpatialHash.prototype.overlapCircle = function (circleCenter, radius, results, layerMask) { - var bounds = new Rectangle(circleCenter.x - radius, circleCenter.y - radius, radius * 2, radius * 2); - this._overlapTestCircle.radius = radius; - this._overlapTestCircle.position = circleCenter; - var resultCounter = 0; - var potentials = this.aabbBroadphase(bounds, null, layerMask); - for (var i = 0; i < potentials.length; i++) { - var collider = potentials[i]; - if (collider instanceof BoxCollider) { - results[resultCounter] = collider; - resultCounter++; - } - else { - throw new Error("overlapCircle against this collider type is not implemented!"); - } - if (resultCounter == results.length) - return resultCounter; - } - return resultCounter; - }; - SpatialHash.prototype.aabbBroadphase = function (bounds, excludeCollider, layerMask) { - this._tempHashSet.length = 0; - var p1 = this.cellCoords(bounds.x, bounds.y); - var p2 = this.cellCoords(bounds.right, bounds.bottom); - for (var x = p1.x; x <= p2.x; x++) { - for (var y = p1.y; y <= p2.y; y++) { - var cell = this.cellAtPosition(x, y); - if (!cell) - continue; - for (var i = 0; i < cell.length; i++) { - var collider = cell[i]; - if (collider == excludeCollider || !Flags.isFlagSet(layerMask, collider.physicsLayer)) - continue; - if (bounds.intersects(collider.bounds)) { - if (this._tempHashSet.indexOf(collider) == -1) - this._tempHashSet.push(collider); - } - } - } - } - return this._tempHashSet; - }; - SpatialHash.prototype.cellAtPosition = function (x, y, createCellIfEmpty) { - if (createCellIfEmpty === void 0) { createCellIfEmpty = false; } - var cell = this._cellDict.tryGetValue(x, y); - if (!cell) { - if (createCellIfEmpty) { - cell = []; - this._cellDict.add(x, y, cell); - } - } - return cell; - }; - SpatialHash.prototype.cellCoords = function (x, y) { - return new Point(Math.floor(x * this._inverseCellSize), Math.floor(y * this._inverseCellSize)); - }; - return SpatialHash; -}()); -var RaycastResultParser = (function () { - function RaycastResultParser() { - } - return RaycastResultParser; -}()); -var NumberDictionary = (function () { - function NumberDictionary() { - this._store = new Map(); - } - NumberDictionary.prototype.getKey = function (x, y) { - return Long.fromNumber(x).shiftLeft(32).or(this.intToUint(y)).toString(); - }; - NumberDictionary.prototype.intToUint = function (i) { - if (i >= 0) - return i; + this.gridBounds = new Rectangle(); + this._tempHashSet = []; + this._cellDict = new NumberDictionary(); + this._cellSize = cellSize; + this._inverseCellSize = 1 / this._cellSize; + this._raycastParser = new RaycastResultParser(); + } + SpatialHash.prototype.remove = function(collider) { + var bounds = collider.registeredPhysicsBounds; + var p1 = this.cellCoords(bounds.x, bounds.y); + var p2 = this.cellCoords(bounds.right, bounds.bottom); + for (var x = p1.x; x <= p2.x; x++) { + for (var y = p1.y; y <= p2.y; y++) { + var cell = this.cellAtPosition(x, y); + if (!cell) + console.error("removing Collider [" + collider + + "] from a cell that it is not present in"); else - return 4294967296 + i; - }; - NumberDictionary.prototype.add = function (x, y, list) { - this._store.set(this.getKey(x, y), list); - }; - NumberDictionary.prototype.remove = function (obj) { - this._store.forEach(function (list) { - if (list.contains(obj)) - list.remove(obj); - }); - }; - NumberDictionary.prototype.tryGetValue = function (x, y) { - return this._store.get(this.getKey(x, y)); - }; - NumberDictionary.prototype.clear = function () { - this._store.clear(); - }; - return NumberDictionary; -}()); -var ContentManager = (function () { - function ContentManager() { - this.loadedAssets = new Map(); + cell.remove(collider); + } } - ContentManager.prototype.loadRes = function (name, local) { - var _this = this; - if (local === void 0) { local = true; } - return new Promise(function (resolve, reject) { - var res = _this.loadedAssets.get(name); - if (res) { - resolve(res); - return; - } - if (local) { - RES.getResAsync(name).then(function (data) { - _this.loadedAssets.set(name, data); - resolve(data); - }).catch(function (err) { - console.error("资源加载错误:", name, err); - reject(err); - }); - } - else { - RES.getResByUrl(name).then(function (data) { - _this.loadedAssets.set(name, data); - resolve(data); - }).catch(function (err) { - console.error("资源加载错误:", name, err); - reject(err); - }); - } - }); - }; - ContentManager.prototype.dispose = function () { - this.loadedAssets.forEach(function (value) { - var assetsToRemove = value; - assetsToRemove.dispose(); - }); - this.loadedAssets.clear(); - }; - return ContentManager; -}()); -var Emitter = (function () { - function Emitter() { - this._messageTable = new Map(); + }; + SpatialHash.prototype.register = function(collider) { + var bounds = collider.bounds; + collider.registeredPhysicsBounds = bounds; + var p1 = this.cellCoords(bounds.x, bounds.y); + var p2 = this.cellCoords(bounds.right, bounds.bottom); + if (!this.gridBounds.contains(new Vector2(p1.x, p1.y))) { + this.gridBounds = RectangleExt.union(this.gridBounds, p1); } - Emitter.prototype.addObserver = function (eventType, handler) { - var list = this._messageTable.get(eventType); - if (!list) { - list = []; - this._messageTable.set(eventType, list); + if (!this.gridBounds.contains(new Vector2(p2.x, p2.y))) { + this.gridBounds = RectangleExt.union(this.gridBounds, p2); + } + for (var x = p1.x; x <= p2.x; x++) { + for (var y = p1.y; y <= p2.y; y++) { + var c = this.cellAtPosition(x, y, true); + c.push(collider); + } + } + }; + SpatialHash.prototype.clear = function() { this._cellDict.clear(); }; + SpatialHash.prototype.overlapCircle = function(circleCenter, radius, results, + layerMask) { + var bounds = new Rectangle(circleCenter.x - radius, circleCenter.y - radius, + radius * 2, radius * 2); + this._overlapTestCircle.radius = radius; + this._overlapTestCircle.position = circleCenter; + var resultCounter = 0; + var potentials = this.aabbBroadphase(bounds, null, layerMask); + for (var i = 0; i < potentials.length; i++) { + var collider = potentials[i]; + if (collider instanceof BoxCollider) { + results[resultCounter] = collider; + resultCounter++; + } else { + throw new Error( + "overlapCircle against this collider type is not implemented!"); + } + if (resultCounter == results.length) + return resultCounter; + } + return resultCounter; + }; + SpatialHash.prototype.aabbBroadphase = function(bounds, excludeCollider, + layerMask) { + this._tempHashSet.length = 0; + var p1 = this.cellCoords(bounds.x, bounds.y); + var p2 = this.cellCoords(bounds.right, bounds.bottom); + for (var x = p1.x; x <= p2.x; x++) { + for (var y = p1.y; y <= p2.y; y++) { + var cell = this.cellAtPosition(x, y); + if (!cell) + continue; + for (var i = 0; i < cell.length; i++) { + var collider = cell[i]; + if (collider == excludeCollider || + !Flags.isFlagSet(layerMask, collider.physicsLayer)) + continue; + if (bounds.intersects(collider.bounds)) { + if (this._tempHashSet.indexOf(collider) == -1) + this._tempHashSet.push(collider); + } } - if (list.contains(handler)) - console.warn("您试图添加相同的观察者两次"); - list.push(handler); - }; - Emitter.prototype.removeObserver = function (eventType, handler) { - this._messageTable.get(eventType).remove(handler); - }; - Emitter.prototype.emit = function (eventType, data) { - var list = this._messageTable.get(eventType); - if (list) { - for (var i = list.length - 1; i >= 0; i--) - list[i](data); - } - }; - return Emitter; -}()); -var GlobalManager = (function () { - function GlobalManager() { + } } - Object.defineProperty(GlobalManager.prototype, "enabled", { - get: function () { - return this._enabled; - }, - set: function (value) { - this.setEnabled(value); - }, - enumerable: true, - configurable: true - }); - GlobalManager.prototype.setEnabled = function (isEnabled) { - if (this._enabled != isEnabled) { - this._enabled = isEnabled; - if (this._enabled) { - this.onEnabled(); - } - else { - this.onDisabled(); - } - } - }; - GlobalManager.prototype.onEnabled = function () { }; - GlobalManager.prototype.onDisabled = function () { }; - GlobalManager.prototype.update = function () { }; - GlobalManager.registerGlobalManager = function (manager) { - this.globalManagers.push(manager); - manager.enabled = true; - }; - GlobalManager.unregisterGlobalManager = function (manager) { - this.globalManagers.remove(manager); - manager.enabled = false; - }; - GlobalManager.getGlobalManager = function (type) { - for (var i = 0; i < this.globalManagers.length; i++) { - if (this.globalManagers[i] instanceof type) - return this.globalManagers[i]; - } - return null; - }; - GlobalManager.globalManagers = []; - return GlobalManager; -}()); -var TouchState = (function () { - function TouchState() { - this.x = 0; - this.y = 0; - this.touchPoint = -1; - this.touchDown = false; + return this._tempHashSet; + }; + SpatialHash.prototype.cellAtPosition = function(x, y, createCellIfEmpty) { + if (createCellIfEmpty === void 0) { + createCellIfEmpty = false; } - Object.defineProperty(TouchState.prototype, "position", { - get: function () { - return new Vector2(this.x, this.y); - }, - enumerable: true, - configurable: true - }); - TouchState.prototype.reset = function () { - this.x = 0; - this.y = 0; - this.touchDown = false; - this.touchPoint = -1; - }; - return TouchState; -}()); -var Input = (function () { - function Input() { + var cell = this._cellDict.tryGetValue(x, y); + if (!cell) { + if (createCellIfEmpty) { + cell = []; + this._cellDict.add(x, y, cell); + } } - Object.defineProperty(Input, "touchPosition", { - get: function () { - if (!this._gameTouchs[0]) - return Vector2.zero; - return this._gameTouchs[0].position; - }, - enumerable: true, - configurable: true + return cell; + }; + SpatialHash.prototype.cellCoords = function(x, y) { + return new Point(Math.floor(x * this._inverseCellSize), + Math.floor(y * this._inverseCellSize)); + }; + return SpatialHash; +}()); +var RaycastResultParser = (function() { + function RaycastResultParser() {} + return RaycastResultParser; +}()); +var NumberDictionary = (function() { + function NumberDictionary() { this._store = new Map(); } + NumberDictionary.prototype.getKey = function(x, y) { + return Long.fromNumber(x).shiftLeft(32).or(this.intToUint(y)).toString(); + }; + NumberDictionary.prototype.intToUint = function(i) { + if (i >= 0) + return i; + else + return 4294967296 + i; + }; + NumberDictionary.prototype.add = function( + x, y, list) { this._store.set(this.getKey(x, y), list); }; + NumberDictionary.prototype.remove = function(obj) { + this._store.forEach(function(list) { + if (list.contains(obj)) + list.remove(obj); }); - Object.defineProperty(Input, "maxSupportedTouch", { - get: function () { - return this._stage.maxTouches; - }, - set: function (value) { - this._stage.maxTouches = value; - this.initTouchCache(); - }, - enumerable: true, - configurable: true + }; + NumberDictionary.prototype.tryGetValue = function( + x, y) { return this._store.get(this.getKey(x, y)); }; + NumberDictionary.prototype.clear = function() { this._store.clear(); }; + return NumberDictionary; +}()); +var ContentManager = (function() { + function ContentManager() { this.loadedAssets = new Map(); } + ContentManager.prototype.loadRes = function(name, local) { + var _this = this; + if (local === void 0) { + local = true; + } + return new Promise(function(resolve, reject) { + var res = _this.loadedAssets.get(name); + if (res) { + resolve(res); + return; + } + if (local) { + RES.getResAsync(name) + .then(function(data) { + _this.loadedAssets.set(name, data); + resolve(data); + }) + .catch(function(err) { + console.error("资源加载错误:", name, err); + reject(err); + }); + } else { + RES.getResByUrl(name) + .then(function(data) { + _this.loadedAssets.set(name, data); + resolve(data); + }) + .catch(function(err) { + console.error("资源加载错误:", name, err); + reject(err); + }); + } }); - Object.defineProperty(Input, "resolutionScale", { - get: function () { - return this._resolutionScale; - }, - enumerable: true, - configurable: true + }; + ContentManager.prototype.dispose = function() { + this.loadedAssets.forEach(function(value) { + var assetsToRemove = value; + assetsToRemove.dispose(); }); - Object.defineProperty(Input, "totalTouchCount", { - get: function () { - return this._totalTouchCount; - }, - enumerable: true, - configurable: true - }); - Object.defineProperty(Input, "gameTouchs", { - get: function () { - return this._gameTouchs; - }, - enumerable: true, - configurable: true - }); - Object.defineProperty(Input, "touchPositionDelta", { - get: function () { - var delta = Vector2.subtract(this.touchPosition, this._previousTouchState.position); - if (delta.length() > 0) { - this.setpreviousTouchState(this._gameTouchs[0]); - } - return delta; - }, - enumerable: true, - configurable: true - }); - Input.initialize = function (stage) { - if (this._init) - return; - this._init = true; - this._stage = stage; - 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(); - }; - Input.initTouchCache = function () { - this._totalTouchCount = 0; + this.loadedAssets.clear(); + }; + return ContentManager; +}()); +var Emitter = (function() { + function Emitter() { this._messageTable = new Map(); } + Emitter.prototype.addObserver = function(eventType, handler) { + var list = this._messageTable.get(eventType); + if (!list) { + list = []; + this._messageTable.set(eventType, list); + } + if (list.contains(handler)) + console.warn("您试图添加相同的观察者两次"); + list.push(handler); + }; + Emitter.prototype.removeObserver = function( + eventType, + handler) { this._messageTable.get(eventType).remove(handler); }; + Emitter.prototype.emit = function(eventType, data) { + var list = this._messageTable.get(eventType); + if (list) { + for (var i = list.length - 1; i >= 0; i--) + list[i](data); + } + }; + return Emitter; +}()); +var GlobalManager = (function() { + function GlobalManager() {} + Object.defineProperty(GlobalManager.prototype, "enabled", { + get : function() { return this._enabled; }, + set : function(value) { this.setEnabled(value); }, + enumerable : true, + configurable : true + }); + GlobalManager.prototype.setEnabled = function(isEnabled) { + if (this._enabled != isEnabled) { + this._enabled = isEnabled; + if (this._enabled) { + this.onEnabled(); + } else { + this.onDisabled(); + } + } + }; + GlobalManager.prototype.onEnabled = function() {}; + GlobalManager.prototype.onDisabled = function() {}; + GlobalManager.prototype.update = function() {}; + GlobalManager.registerGlobalManager = function(manager) { + this.globalManagers.push(manager); + manager.enabled = true; + }; + GlobalManager.unregisterGlobalManager = function(manager) { + this.globalManagers.remove(manager); + manager.enabled = false; + }; + GlobalManager.getGlobalManager = function(type) { + for (var i = 0; i < this.globalManagers.length; i++) { + if (this.globalManagers[i] instanceof type) + return this.globalManagers[i]; + } + return null; + }; + GlobalManager.globalManagers = []; + return GlobalManager; +}()); +var TouchState = (function() { + function TouchState() { + this.x = 0; + this.y = 0; + this.touchPoint = -1; + this.touchDown = false; + } + Object.defineProperty(TouchState.prototype, "position", { + get : function() { return new Vector2(this.x, this.y); }, + enumerable : true, + configurable : true + }); + TouchState.prototype.reset = function() { + this.x = 0; + this.y = 0; + this.touchDown = false; + this.touchPoint = -1; + }; + return TouchState; +}()); +var Input = (function() { + function Input() {} + Object.defineProperty(Input, "touchPosition", { + get : function() { + if (!this._gameTouchs[0]) + return Vector2.zero; + return this._gameTouchs[0].position; + }, + enumerable : true, + configurable : true + }); + Object.defineProperty(Input, "maxSupportedTouch", { + get : function() { return this._stage.maxTouches; }, + set : function(value) { + this._stage.maxTouches = value; + this.initTouchCache(); + }, + enumerable : true, + configurable : true + }); + Object.defineProperty(Input, "resolutionScale", { + get : function() { return this._resolutionScale; }, + enumerable : true, + configurable : true + }); + Object.defineProperty(Input, "totalTouchCount", { + get : function() { return this._totalTouchCount; }, + enumerable : true, + configurable : true + }); + Object.defineProperty(Input, "gameTouchs", { + get : function() { return this._gameTouchs; }, + enumerable : true, + configurable : true + }); + Object.defineProperty(Input, "touchPositionDelta", { + get : function() { + var delta = Vector2.subtract(this.touchPosition, + this._previousTouchState.position); + if (delta.length() > 0) { + this.setpreviousTouchState(this._gameTouchs[0]); + } + return delta; + }, + enumerable : true, + configurable : true + }); + Input.initialize = function(stage) { + if (this._init) + return; + this._init = true; + this._stage = stage; + 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(); + }; + Input.initTouchCache = function() { + this._totalTouchCount = 0; + this._touchIndex = 0; + this._gameTouchs.length = 0; + for (var i = 0; i < this.maxSupportedTouch; i++) { + this._gameTouchs.push(new TouchState()); + } + }; + Input.touchBegin = function(evt) { + if (this._touchIndex < this.maxSupportedTouch) { + this._gameTouchs[this._touchIndex].touchPoint = evt.touchPointID; + this._gameTouchs[this._touchIndex].touchDown = evt.touchDown; + this._gameTouchs[this._touchIndex].x = evt.stageX; + this._gameTouchs[this._touchIndex].y = evt.stageY; + if (this._touchIndex == 0) { + this.setpreviousTouchState(this._gameTouchs[0]); + } + this._touchIndex++; + this._totalTouchCount++; + } + }; + Input.touchMove = function(evt) { + if (evt.touchPointID == this._gameTouchs[0].touchPoint) { + this.setpreviousTouchState(this._gameTouchs[0]); + } + var touchIndex = this._gameTouchs.findIndex(function( + touch) { return touch.touchPoint == evt.touchPointID; }); + if (touchIndex != -1) { + var touchData = this._gameTouchs[touchIndex]; + touchData.x = evt.stageX; + touchData.y = evt.stageY; + } + }; + Input.touchEnd = function(evt) { + var touchIndex = this._gameTouchs.findIndex(function( + touch) { return touch.touchPoint == evt.touchPointID; }); + if (touchIndex != -1) { + var touchData = this._gameTouchs[touchIndex]; + touchData.reset(); + if (touchIndex == 0) + this._previousTouchState.reset(); + this._totalTouchCount--; + if (this.totalTouchCount == 0) { this._touchIndex = 0; - this._gameTouchs.length = 0; - for (var i = 0; i < this.maxSupportedTouch; i++) { - this._gameTouchs.push(new TouchState()); - } - }; - Input.touchBegin = function (evt) { - if (this._touchIndex < this.maxSupportedTouch) { - this._gameTouchs[this._touchIndex].touchPoint = evt.touchPointID; - this._gameTouchs[this._touchIndex].touchDown = evt.touchDown; - this._gameTouchs[this._touchIndex].x = evt.stageX; - this._gameTouchs[this._touchIndex].y = evt.stageY; - if (this._touchIndex == 0) { - this.setpreviousTouchState(this._gameTouchs[0]); - } - this._touchIndex++; - this._totalTouchCount++; - } - }; - Input.touchMove = function (evt) { - if (evt.touchPointID == this._gameTouchs[0].touchPoint) { - this.setpreviousTouchState(this._gameTouchs[0]); - } - var touchIndex = this._gameTouchs.findIndex(function (touch) { return touch.touchPoint == evt.touchPointID; }); - if (touchIndex != -1) { - var touchData = this._gameTouchs[touchIndex]; - touchData.x = evt.stageX; - touchData.y = evt.stageY; - } - }; - Input.touchEnd = function (evt) { - var touchIndex = this._gameTouchs.findIndex(function (touch) { return touch.touchPoint == evt.touchPointID; }); - if (touchIndex != -1) { - var touchData = this._gameTouchs[touchIndex]; - touchData.reset(); - if (touchIndex == 0) - this._previousTouchState.reset(); - this._totalTouchCount--; - if (this.totalTouchCount == 0) { - this._touchIndex = 0; - } - } - }; - Input.setpreviousTouchState = function (touchState) { - this._previousTouchState = new TouchState(); - this._previousTouchState.x = touchState.position.x; - this._previousTouchState.y = touchState.position.y; - this._previousTouchState.touchPoint = touchState.touchPoint; - this._previousTouchState.touchDown = touchState.touchDown; - }; - Input.scaledPosition = function (position) { - var scaledPos = new Vector2(position.x - this._resolutionOffset.x, position.y - this._resolutionOffset.y); - return Vector2.multiply(scaledPos, this.resolutionScale); - }; - Input._init = false; - Input._previousTouchState = new TouchState(); - Input._gameTouchs = []; - Input._resolutionOffset = new Vector2(); - Input._resolutionScale = Vector2.one; - Input._touchIndex = 0; - Input._totalTouchCount = 0; - return Input; -}()); -var ListPool = (function () { - function ListPool() { + } } - ListPool.warmCache = function (cacheCount) { - cacheCount -= this._objectQueue.length; - if (cacheCount > 0) { - for (var i = 0; i < cacheCount; i++) { - this._objectQueue.unshift([]); - } - } - }; - ListPool.trimCache = function (cacheCount) { - while (cacheCount > this._objectQueue.length) - this._objectQueue.shift(); - }; - ListPool.clearCache = function () { - this._objectQueue.length = 0; - }; - ListPool.obtain = function () { - if (this._objectQueue.length > 0) - return this._objectQueue.shift(); - return []; - }; - ListPool.free = function (obj) { - this._objectQueue.unshift(obj); - obj.length = 0; - }; - ListPool._objectQueue = []; - return ListPool; + }; + Input.setpreviousTouchState = function(touchState) { + this._previousTouchState = new TouchState(); + this._previousTouchState.x = touchState.position.x; + this._previousTouchState.y = touchState.position.y; + this._previousTouchState.touchPoint = touchState.touchPoint; + this._previousTouchState.touchDown = touchState.touchDown; + }; + Input.scaledPosition = function(position) { + var scaledPos = new Vector2(position.x - this._resolutionOffset.x, + position.y - this._resolutionOffset.y); + return Vector2.multiply(scaledPos, this.resolutionScale); + }; + Input._init = false; + Input._previousTouchState = new TouchState(); + Input._gameTouchs = []; + Input._resolutionOffset = new Vector2(); + Input._resolutionScale = Vector2.one; + Input._touchIndex = 0; + Input._totalTouchCount = 0; + return Input; }()); -var Pair = (function () { - function Pair(first, second) { - this.first = first; - this.second = second; +var ListPool = (function() { + function ListPool() {} + ListPool.warmCache = function(cacheCount) { + cacheCount -= this._objectQueue.length; + if (cacheCount > 0) { + for (var i = 0; i < cacheCount; i++) { + this._objectQueue.unshift([]); + } } - Pair.prototype.clear = function () { - this.first = this.second = null; - }; - Pair.prototype.equals = function (other) { - return this.first == other.first && this.second == other.second; - }; - return Pair; + }; + ListPool.trimCache = function(cacheCount) { + while (cacheCount > this._objectQueue.length) + this._objectQueue.shift(); + }; + ListPool.clearCache = function() { this._objectQueue.length = 0; }; + ListPool.obtain = function() { + if (this._objectQueue.length > 0) + return this._objectQueue.shift(); + return []; + }; + ListPool.free = function(obj) { + this._objectQueue.unshift(obj); + obj.length = 0; + }; + ListPool._objectQueue = []; + return ListPool; }()); -var RectangleExt = (function () { - function RectangleExt() { - } - RectangleExt.union = function (first, point) { - var rect = new Rectangle(point.x, point.y, 0, 0); - return this.unionR(first, rect); - }; - RectangleExt.unionR = function (value1, value2) { - var result = new Rectangle(); - result.x = Math.min(value1.x, value2.x); - result.y = Math.min(value1.y, value2.y); - result.width = Math.max(value1.right, value2.right) - result.x; - result.height = Math.max(value1.bottom, value2.bottom) - result.y; - return result; - }; - return RectangleExt; +var Pair = (function() { + function Pair(first, second) { + this.first = first; + this.second = second; + } + Pair.prototype.clear = function() { this.first = this.second = null; }; + Pair.prototype.equals = function(other) { + return this.first == other.first && this.second == other.second; + }; + return Pair; }()); -var Triangulator = (function () { - function Triangulator() { - this.triangleIndices = []; - this._triPrev = new Array(12); - this._triNext = new Array(12); +var RectangleExt = (function() { + function RectangleExt() {} + RectangleExt.union = function(first, point) { + var rect = new Rectangle(point.x, point.y, 0, 0); + return this.unionR(first, rect); + }; + RectangleExt.unionR = function(value1, value2) { + var result = new Rectangle(); + result.x = Math.min(value1.x, value2.x); + result.y = Math.min(value1.y, value2.y); + result.width = Math.max(value1.right, value2.right) - result.x; + result.height = Math.max(value1.bottom, value2.bottom) - result.y; + return result; + }; + return RectangleExt; +}()); +var Triangulator = (function() { + function Triangulator() { + this.triangleIndices = []; + this._triPrev = new Array(12); + this._triNext = new Array(12); + } + Triangulator.prototype.triangulate = function(points, arePointsCCW) { + if (arePointsCCW === void 0) { + arePointsCCW = true; } - Triangulator.prototype.triangulate = function (points, arePointsCCW) { - if (arePointsCCW === void 0) { arePointsCCW = true; } - var count = points.length; - this.initialize(count); - var iterations = 0; - var index = 0; - while (count > 3 && iterations < 500) { - iterations++; - var isEar = true; - var a = points[this._triPrev[index]]; - var b = points[index]; - var c = points[this._triNext[index]]; - if (Vector2Ext.isTriangleCCW(a, b, c)) { - var k = this._triNext[this._triNext[index]]; - do { - if (Triangulator.testPointTriangle(points[k], a, b, c)) { - isEar = false; - break; - } - k = this._triNext[k]; - } while (k != this._triPrev[index]); - } - else { - isEar = false; - } - if (isEar) { - this.triangleIndices.push(this._triPrev[index]); - this.triangleIndices.push(index); - this.triangleIndices.push(this._triNext[index]); - this._triNext[this._triPrev[index]] = this._triNext[index]; - this._triPrev[this._triNext[index]] = this._triPrev[index]; - count--; - index = this._triPrev[index]; - } - else { - index = this._triNext[index]; - } - } + var count = points.length; + this.initialize(count); + var iterations = 0; + var index = 0; + while (count > 3 && iterations < 500) { + iterations++; + var isEar = true; + var a = points[this._triPrev[index]]; + var b = points[index]; + var c = points[this._triNext[index]]; + if (Vector2Ext.isTriangleCCW(a, b, c)) { + var k = this._triNext[this._triNext[index]]; + do { + if (Triangulator.testPointTriangle(points[k], a, b, c)) { + isEar = false; + break; + } + k = this._triNext[k]; + } while (k != this._triPrev[index]); + } else { + isEar = false; + } + if (isEar) { this.triangleIndices.push(this._triPrev[index]); this.triangleIndices.push(index); this.triangleIndices.push(this._triNext[index]); - if (!arePointsCCW) - this.triangleIndices.reverse(); - }; - Triangulator.prototype.initialize = function (count) { - this.triangleIndices.length = 0; - if (this._triNext.length < count) { - this._triNext.reverse(); - this._triNext = new Array(Math.max(this._triNext.length * 2, count)); - } - if (this._triPrev.length < count) { - this._triPrev.reverse(); - this._triPrev = new Array(Math.max(this._triPrev.length * 2, count)); - } - for (var i = 0; i < count; i++) { - this._triPrev[i] = i - 1; - this._triNext[i] = i + 1; - } - this._triPrev[0] = count - 1; - this._triNext[count - 1] = 0; - }; - Triangulator.testPointTriangle = function (point, a, b, c) { - if (Vector2Ext.cross(Vector2.subtract(point, a), Vector2.subtract(b, a)) < 0) - return false; - if (Vector2Ext.cross(Vector2.subtract(point, b), Vector2.subtract(c, b)) < 0) - return false; - if (Vector2Ext.cross(Vector2.subtract(point, c), Vector2.subtract(a, c)) < 0) - return false; - return true; - }; - return Triangulator; -}()); -var Vector2Ext = (function () { - function Vector2Ext() { + this._triNext[this._triPrev[index]] = this._triNext[index]; + this._triPrev[this._triNext[index]] = this._triPrev[index]; + count--; + index = this._triPrev[index]; + } else { + index = this._triNext[index]; + } } - Vector2Ext.isTriangleCCW = function (a, center, c) { - return this.cross(Vector2.subtract(center, a), Vector2.subtract(c, center)) < 0; - }; - Vector2Ext.cross = function (u, v) { - return u.y * v.x - u.x * v.y; - }; - Vector2Ext.perpendicular = function (first, second) { - return new Vector2(-1 * (second.y - first.y), second.x - first.x); - }; - Vector2Ext.normalize = function (vec) { - var magnitude = Math.sqrt((vec.x * vec.x) + (vec.y * vec.y)); - if (magnitude > MathHelper.Epsilon) { - vec = Vector2.divide(vec, new Vector2(magnitude)); - } - else { - vec.x = vec.y = 0; - } - return vec; - }; - Vector2Ext.transformA = function (sourceArray, sourceIndex, matrix, destinationArray, destinationIndex, length) { - for (var i = 0; i < length; i++) { - var position = sourceArray[sourceIndex + i]; - var destination = destinationArray[destinationIndex + i]; - destination.x = (position.x * matrix.m11) + (position.y * matrix.m21) + matrix.m31; - destination.y = (position.x * matrix.m12) + (position.y * matrix.m22) + matrix.m32; - destinationArray[destinationIndex + i] = destination; - } - }; - Vector2Ext.transformR = function (position, matrix) { - var x = (position.x * matrix.m11) + (position.y * matrix.m21) + matrix.m31; - var y = (position.x * matrix.m12) + (position.y * matrix.m22) + matrix.m32; - return new Vector2(x, y); - }; - Vector2Ext.transform = function (sourceArray, matrix, destinationArray) { - this.transformA(sourceArray, 0, matrix, destinationArray, 0, sourceArray.length); - }; - Vector2Ext.round = function (vec) { - return new Vector2(Math.round(vec.x), Math.round(vec.y)); - }; - return Vector2Ext; + this.triangleIndices.push(this._triPrev[index]); + this.triangleIndices.push(index); + this.triangleIndices.push(this._triNext[index]); + if (!arePointsCCW) + this.triangleIndices.reverse(); + }; + Triangulator.prototype.initialize = function(count) { + this.triangleIndices.length = 0; + if (this._triNext.length < count) { + this._triNext.reverse(); + this._triNext = new Array(Math.max(this._triNext.length * 2, count)); + } + if (this._triPrev.length < count) { + this._triPrev.reverse(); + this._triPrev = new Array(Math.max(this._triPrev.length * 2, count)); + } + for (var i = 0; i < count; i++) { + this._triPrev[i] = i - 1; + this._triNext[i] = i + 1; + } + this._triPrev[0] = count - 1; + this._triNext[count - 1] = 0; + }; + Triangulator.testPointTriangle = function(point, a, b, c) { + if (Vector2Ext.cross(Vector2.subtract(point, a), Vector2.subtract(b, a)) < + 0) + return false; + if (Vector2Ext.cross(Vector2.subtract(point, b), Vector2.subtract(c, b)) < + 0) + return false; + if (Vector2Ext.cross(Vector2.subtract(point, c), Vector2.subtract(a, c)) < + 0) + return false; + return true; + }; + return Triangulator; +}()); +var Vector2Ext = (function() { + function Vector2Ext() {} + Vector2Ext.isTriangleCCW = function(a, center, c) { + return this.cross(Vector2.subtract(center, a), + Vector2.subtract(c, center)) < 0; + }; + Vector2Ext.cross = function(u, v) { return u.y * v.x - u.x * v.y; }; + Vector2Ext.perpendicular = function(first, second) { + return new Vector2(-1 * (second.y - first.y), second.x - first.x); + }; + Vector2Ext.normalize = function(vec) { + var magnitude = Math.sqrt((vec.x * vec.x) + (vec.y * vec.y)); + if (magnitude > MathHelper.Epsilon) { + vec = Vector2.divide(vec, new Vector2(magnitude)); + } else { + vec.x = vec.y = 0; + } + return vec; + }; + Vector2Ext.transformA = function(sourceArray, sourceIndex, matrix, + destinationArray, destinationIndex, length) { + for (var i = 0; i < length; i++) { + var position = sourceArray[sourceIndex + i]; + var destination = destinationArray[destinationIndex + i]; + destination.x = + (position.x * matrix.m11) + (position.y * matrix.m21) + matrix.m31; + destination.y = + (position.x * matrix.m12) + (position.y * matrix.m22) + matrix.m32; + destinationArray[destinationIndex + i] = destination; + } + }; + Vector2Ext.transformR = function(position, matrix) { + var x = (position.x * matrix.m11) + (position.y * matrix.m21) + matrix.m31; + var y = (position.x * matrix.m12) + (position.y * matrix.m22) + matrix.m32; + return new Vector2(x, y); + }; + Vector2Ext.transform = function(sourceArray, matrix, destinationArray) { + this.transformA(sourceArray, 0, matrix, destinationArray, 0, + sourceArray.length); + }; + Vector2Ext.round = function( + vec) { return new Vector2(Math.round(vec.x), Math.round(vec.y)); }; + return Vector2Ext; }()); diff --git a/demo/libs/framework/framework.min.js b/demo/libs/framework/framework.min.js index 5ca26592..d6233172 100644 --- a/demo/libs/framework/framework.min.js +++ b/demo/libs/framework/framework.min.js @@ -1 +1,3477 @@ -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]-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=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;ir?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):o0;){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.x0&&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.priority0;){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.x0;){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=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=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;et&&(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(.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(.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.xe&&(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.rightn.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>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=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<=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<=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<>6;this.ensure(n),this._bits[n]|=1<0){for(var t=0;t0){t=0;for(var e=this._componentsToAdd.length;t0){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=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;n0;)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<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=.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.lefti&&(i=s.x),s.yo&&(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;e1)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))=t&&o.y>=e&&o.x=t+n&&(r|=PointSectors.right),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=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;et.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;i0&&(o=!1),!o)return null;(y=Math.abs(y))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=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;e0&&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;t0)for(var e=0;ethis._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.lengthMathHelper.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 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 = .3, e._maximumZoom = 3, + e.followLerp = .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(.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(.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(.5 * e.width, .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(.1, .6, 2, 1, 1, 0), new t(0, 3, 1, 1, 1, 1), + new t(.5, 8, 2, 1, 0, 1), new t(.25, 8, 1.3, 1, 1, 0), + new t(0, 2, 1, .1, 1, 1), new t(.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 = .4, + n.fadeEaseType = egret.Ease.quadInOut, + n.delayBeforeFadeInDuration = .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 : .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 .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 = .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(.5 * this.width, .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.xi && (i = s.x), + s.yo && (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 = .5 * t.width, o = .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))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 +}(); \ No newline at end of file diff --git a/source/bin/framework.js b/source/bin/framework.js index cffffdbd..d1c2f5ea 100644 --- a/source/bin/framework.js +++ b/source/bin/framework.js @@ -1,3016 +1,3259 @@ -var __extends = (this && this.__extends) || (function () { - var extendStatics = Object.setPrototypeOf || - ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) || - function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; }; - return function (d, b) { - extendStatics(d, b); - function __() { this.constructor = d; } - d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); - }; -})(); -var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { - return new (P || (P = Promise))(function (resolve, reject) { - function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } - function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } - function step(result) { result.done ? resolve(result.value) : new P(function (resolve) { resolve(result.value); }).then(fulfilled, rejected); } +var __extends = (this && this.__extends) || (function() { + var extendStatics = Object.setPrototypeOf || + ({__proto__ : []} instanceof Array && + function(d, b) { d.__proto__ = b; }) || + function(d, b) { + for (var p in b) + if (b.hasOwnProperty(p)) + d[p] = b[p]; + }; + return function(d, b) { + extendStatics(d, b); + function __() { this.constructor = d; } + d.prototype = b === null + ? Object.create(b) + : (__.prototype = b.prototype, new __()); + }; + })(); +var __awaiter = + (this && this.__awaiter) || function(thisArg, _arguments, P, generator) { + return new (P || (P = Promise))(function(resolve, reject) { + function fulfilled(value) { + try { + step(generator.next(value)); + } catch (e) { + reject(e); + } + } + function rejected(value) { + try { + step(generator["throw"](value)); + } catch (e) { + reject(e); + } + } + function step(result) { + result.done ? resolve(result.value) + : new P(function(resolve) { resolve(result.value); }) + .then(fulfilled, rejected); + } step((generator = generator.apply(thisArg, _arguments || [])).next()); - }); -}; -var __generator = (this && this.__generator) || function (thisArg, body) { - var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g; - return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g; - function verb(n) { return function (v) { return step([n, v]); }; } - function step(op) { - if (f) throw new TypeError("Generator is already executing."); - while (_) try { - if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t; - if (y = 0, t) op = [op[0] & 2, t.value]; - switch (op[0]) { - case 0: case 1: t = op; break; - case 4: _.label++; return { value: op[1], done: false }; - case 5: _.label++; y = op[1]; op = [0]; continue; - case 7: op = _.ops.pop(); _.trys.pop(); continue; - default: - if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; } - if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; } - if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; } - if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; } - if (t[2]) _.ops.pop(); - _.trys.pop(); continue; - } - op = body.call(thisArg, _); - } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; } - if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true }; - } -}; -Array.prototype.findIndex = function (predicate) { - function findIndex(array, predicate) { - for (var i = 0, len = array.length; i < len; i++) { - if (predicate.call(arguments[2], array[i], i, array)) { - return i; - } + }); + }; +var __generator = (this && this.__generator) || function(thisArg, body) { + var _ = { + label : 0, + sent : function() { + if (t[0] & 1) + throw t[1]; + return t[1]; + }, + trys : [], + ops : [] + }, + f, y, t, g; + return g = {next : verb(0), "throw" : verb(1), "return" : verb(2)}, + typeof Symbol === "function" && + (g[Symbol.iterator] = function() { return this; }), + g; + function verb(n) { + return function(v) { return step([ n, v ]); }; + } + function step(op) { + if (f) + throw new TypeError("Generator is already executing."); + while (_) + try { + if (f = 1, + y && + (t = op[0] & 2 ? y["return"] + : op[0] ? y["throw"] || + ((t = y["return"]) && t.call(y), 0) + : y.next) && + !(t = t.call(y, op[1])).done) + return t; + if (y = 0, t) + op = [ op[0] & 2, t.value ]; + switch (op[0]) { + case 0: + case 1: + t = op; + break; + case 4: + _.label++; + return {value : op[1], done : false}; + case 5: + _.label++; + y = op[1]; + op = [ 0 ]; + continue; + case 7: + op = _.ops.pop(); + _.trys.pop(); + continue; + default: + if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && + (op[0] === 6 || op[0] === 2)) { + _ = 0; + continue; + } + if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { + _.label = op[1]; + break; + } + if (op[0] === 6 && _.label < t[1]) { + _.label = t[1]; + t = op; + break; + } + if (t && _.label < t[2]) { + _.label = t[2]; + _.ops.push(op); + break; + } + if (t[2]) + _.ops.pop(); + _.trys.pop(); + continue; } - return -1; - } - return findIndex(this, predicate); + op = body.call(thisArg, _); + } catch (e) { + op = [ 6, e ]; + y = 0; + } finally { + f = t = 0; + } + if (op[0] & 5) + throw op[1]; + return {value : op[0] ? op[1] : void 0, done : true}; + } }; -Array.prototype.any = function (predicate) { - function any(array, predicate) { - return array.findIndex(predicate) > -1; +Array.prototype.findIndex = function(predicate) { + function findIndex(array, predicate) { + for (var i = 0, len = array.length; i < len; i++) { + if (predicate.call(arguments[2], array[i], i, array)) { + return i; + } } - return any(this, predicate); + return -1; + } + return findIndex(this, predicate); }; -Array.prototype.firstOrDefault = function (predicate) { - function firstOrDefault(array, predicate) { - var index = array.findIndex(predicate); - return index == -1 ? null : array[index]; - } - return firstOrDefault(this, predicate); +Array.prototype.any = function(predicate) { + function any(array, predicate) { return array.findIndex(predicate) > -1; } + return any(this, predicate); }; -Array.prototype.find = function (predicate) { - function find(array, predicate) { - return array.firstOrDefault(predicate); - } - return find(this, predicate); +Array.prototype.firstOrDefault = function(predicate) { + function firstOrDefault(array, predicate) { + var index = array.findIndex(predicate); + return index == -1 ? null : array[index]; + } + return firstOrDefault(this, predicate); }; -Array.prototype.where = function (predicate) { - function where(array, predicate) { - if (typeof (array.reduce) === "function") { - return array.reduce(function (ret, element, index) { - if (predicate.call(arguments[2], element, index, array)) { - ret.push(element); - } - return ret; - }, []); - } - else { - var ret = []; - for (var i = 0, len = array.length; i < len; i++) { - var element = array[i]; - if (predicate.call(arguments[2], element, i, array)) { - ret.push(element); - } - } - return ret; - } - } - return where(this, predicate); +Array.prototype.find = function(predicate) { + function find(array, predicate) { return array.firstOrDefault(predicate); } + return find(this, predicate); }; -Array.prototype.count = function (predicate) { - function count(array, predicate) { - return array.where(predicate).length; - } - return count(this, predicate); -}; -Array.prototype.findAll = function (predicate) { - function findAll(array, predicate) { - return array.where(predicate); - } - return findAll(this, predicate); -}; -Array.prototype.contains = function (value) { - function contains(array, value) { - for (var i = 0, len = array.length; i < len; i++) { - if (array[i] == value) { - return true; - } - } - return false; - } - return contains(this, value); -}; -Array.prototype.removeAll = function (predicate) { - function removeAll(array, predicate) { - var index; - do { - index = array.findIndex(predicate); - if (index >= 0) { - array.splice(index, 1); - } - } while (index >= 0); - } - removeAll(this, predicate); -}; -Array.prototype.remove = function (element) { - function remove(array, element) { - var index = array.findIndex(function (x) { - return x === element; - }); - if (index >= 0) { - array.splice(index, 1); - return true; - } - else { - return false; - } - } - return remove(this, element); -}; -Array.prototype.removeAt = function (index) { - function removeAt(array, index) { - array.splice(index, 1); - } - return removeAt(this, index); -}; -Array.prototype.removeRange = function (index, count) { - function removeRange(array, index, count) { - array.splice(index, count); - } - return removeRange(this, index, count); -}; -Array.prototype.select = function (selector) { - function select(array, selector) { - if (typeof (array.reduce) === "function") { - return array.reduce(function (ret, element, index) { - ret.push(selector.call(arguments[2], element, index, array)); - return ret; - }, []); - } - else { - var ret = []; - for (var i = 0, len = array.length; i < len; i++) { - ret.push(selector.call(arguments[2], array[i], i, array)); - } - return ret; - } - } - return select(this, selector); -}; -Array.prototype.orderBy = function (keySelector, comparer) { - function orderBy(array, keySelector, comparer) { - array.sort(function (x, y) { - var v1 = keySelector(x); - var v2 = keySelector(y); - if (comparer) { - return comparer(v1, v2); - } - else { - return (v1 > v2) ? 1 : -1; - } - }); - return array; - } - return orderBy(this, keySelector, comparer); -}; -Array.prototype.orderByDescending = function (keySelector, comparer) { - function orderByDescending(array, keySelector, comparer) { - array.sort(function (x, y) { - var v1 = keySelector(x); - var v2 = keySelector(y); - if (comparer) { - return -comparer(v1, v2); - } - else { - return (v1 < v2) ? 1 : -1; - } - }); - return array; - } - return orderByDescending(this, keySelector, comparer); -}; -Array.prototype.groupBy = function (keySelector) { - function groupBy(array, keySelector) { - if (typeof (array.reduce) === "function") { - var keys_1 = []; - return array.reduce(function (groups, element, index) { - var key = JSON.stringify(keySelector.call(arguments[1], element, index, array)); - var index2 = keys_1.findIndex(function (x) { return x === key; }); - if (index2 < 0) { - index2 = keys_1.push(key) - 1; - } - if (!groups[index2]) { - groups[index2] = []; - } - groups[index2].push(element); - return groups; - }, []); - } - else { - var groups = []; - var keys = []; - var _loop_1 = function (i, len) { - var key = JSON.stringify(keySelector.call(arguments_1[1], array[i], i, array)); - var index = keys.findIndex(function (x) { return x === key; }); - if (index < 0) { - index = keys.push(key) - 1; - } - if (!groups[index]) { - groups[index] = []; - } - groups[index].push(array[i]); - }; - var arguments_1 = arguments; - for (var i = 0, len = array.length; i < len; i++) { - _loop_1(i, len); - } - return groups; - } - } - return groupBy(this, keySelector); -}; -Array.prototype.sum = function (selector) { - function sum(array, selector) { - var ret; - for (var i = 0, len = array.length; i < len; i++) { - if (i == 0) { - if (selector) { - ret = selector.call(arguments[2], array[i], i, array); - } - else { - ret = array[i]; - } - } - else { - if (selector) { - ret += selector.call(arguments[2], array[i], i, array); - } - else { - ret += array[i]; - } - } +Array.prototype.where = function(predicate) { + function where(array, predicate) { + if (typeof (array.reduce) === "function") { + return array.reduce(function(ret, element, index) { + if (predicate.call(arguments[2], element, index, array)) { + ret.push(element); } return ret; + }, []); + } else { + var ret = []; + for (var i = 0, len = array.length; i < len; i++) { + var element = array[i]; + if (predicate.call(arguments[2], element, i, array)) { + ret.push(element); + } + } + return ret; } - return sum(this, selector); + } + return where(this, predicate); }; -var PriorityQueueNode = (function () { - function PriorityQueueNode() { - this.priority = 0; - this.insertionIndex = 0; - this.queueIndex = 0; - } - return PriorityQueueNode; -}()); -var AStarPathfinder = (function () { - function AStarPathfinder() { - } - AStarPathfinder.search = function (graph, start, goal) { - var _this = this; - var foundPath = false; - var cameFrom = new Map(); - cameFrom.set(start, start); - var costSoFar = new Map(); - var frontier = new PriorityQueue(1000); - frontier.enqueue(new AStarNode(start), 0); - costSoFar.set(start, 0); - var _loop_2 = function () { - var current = frontier.dequeue(); - if (JSON.stringify(current.data) == JSON.stringify(goal)) { - foundPath = true; - return "break"; - } - graph.getNeighbors(current.data).forEach(function (next) { - var newCost = costSoFar.get(current.data) + graph.cost(current.data, next); - if (!_this.hasKey(costSoFar, next) || newCost < costSoFar.get(next)) { - costSoFar.set(next, newCost); - var priority = newCost + graph.heuristic(next, goal); - frontier.enqueue(new AStarNode(next), priority); - cameFrom.set(next, current.data); - } - }); - }; - while (frontier.count > 0) { - var state_1 = _loop_2(); - if (state_1 === "break") - break; - } - return foundPath ? this.recontructPath(cameFrom, start, goal) : null; - }; - AStarPathfinder.hasKey = function (map, compareKey) { - var iterator = map.keys(); - var r; - while (r = iterator.next(), !r.done) { - if (JSON.stringify(r.value) == JSON.stringify(compareKey)) - return true; - } - return false; - }; - AStarPathfinder.getKey = function (map, compareKey) { - var iterator = map.keys(); - var valueIterator = map.values(); - var r; - var v; - while (r = iterator.next(), v = valueIterator.next(), !r.done) { - if (JSON.stringify(r.value) == JSON.stringify(compareKey)) - return v.value; - } - return null; - }; - AStarPathfinder.recontructPath = function (cameFrom, start, goal) { - var path = []; - var current = goal; - path.push(goal); - while (current != start) { - current = this.getKey(cameFrom, current); - path.push(current); - } - path.reverse(); - return path; - }; - return AStarPathfinder; -}()); -var AStarNode = (function (_super) { - __extends(AStarNode, _super); - function AStarNode(data) { - var _this = _super.call(this) || this; - _this.data = data; - return _this; - } - return AStarNode; -}(PriorityQueueNode)); -var AstarGridGraph = (function () { - function AstarGridGraph(width, height) { - 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 = width; - this._height = height; - } - AstarGridGraph.prototype.isNodeInBounds = function (node) { - return 0 <= node.x && node.x < this._width && 0 <= node.y && node.y < this._height; - }; - AstarGridGraph.prototype.isNodePassable = function (node) { - return !this.walls.firstOrDefault(function (wall) { return JSON.stringify(wall) == JSON.stringify(node); }); - }; - AstarGridGraph.prototype.search = function (start, goal) { - return AStarPathfinder.search(this, start, goal); - }; - AstarGridGraph.prototype.getNeighbors = function (node) { - var _this = this; - this._neighbors.length = 0; - this.dirs.forEach(function (dir) { - var next = new Point(node.x + dir.x, node.y + dir.y); - if (_this.isNodeInBounds(next) && _this.isNodePassable(next)) - _this._neighbors.push(next); - }); - return this._neighbors; - }; - AstarGridGraph.prototype.cost = function (from, to) { - return this.weightedNodes.find(function (p) { return JSON.stringify(p) == JSON.stringify(to); }) ? this.weightedNodeWeight : this.defaultWeight; - }; - AstarGridGraph.prototype.heuristic = function (node, goal) { - return Math.abs(node.x - goal.x) + Math.abs(node.y - goal.y); - }; - return AstarGridGraph; -}()); -var PriorityQueue = (function () { - function PriorityQueue(maxNodes) { - this._numNodes = 0; - this._nodes = new Array(maxNodes + 1); - this._numNodesEverEnqueued = 0; - } - PriorityQueue.prototype.clear = function () { - this._nodes.splice(1, this._numNodes); - this._numNodes = 0; - }; - Object.defineProperty(PriorityQueue.prototype, "count", { - get: function () { - return this._numNodes; - }, - enumerable: true, - configurable: true - }); - PriorityQueue.prototype.contains = function (node) { - return (this._nodes[node.queueIndex] == node); - }; - PriorityQueue.prototype.enqueue = function (node, priority) { - node.priority = priority; - this._numNodes++; - this._nodes[this._numNodes] = node; - node.queueIndex = this._numNodes; - node.insertionIndex = this._numNodesEverEnqueued++; - this.cascadeUp(this._nodes[this._numNodes]); - }; - PriorityQueue.prototype.dequeue = function () { - var returnMe = this._nodes[1]; - this.remove(returnMe); - return returnMe; - }; - PriorityQueue.prototype.remove = function (node) { - if (node.queueIndex == this._numNodes) { - this._nodes[this._numNodes] = null; - this._numNodes--; - return; - } - var formerLastNode = this._nodes[this._numNodes]; - this.swap(node, formerLastNode); - delete this._nodes[this._numNodes]; - this._numNodes--; - this.onNodeUpdated(formerLastNode); - }; - PriorityQueue.prototype.isValidQueue = function () { - for (var i = 1; i < this._nodes.length; i++) { - if (this._nodes[i]) { - var childLeftIndex = 2 * i; - if (childLeftIndex < this._nodes.length && this._nodes[childLeftIndex] && - this.hasHigherPriority(this._nodes[childLeftIndex], this._nodes[i])) - return false; - var childRightIndex = childLeftIndex + 1; - if (childRightIndex < this._nodes.length && this._nodes[childRightIndex] && - this.hasHigherPriority(this._nodes[childRightIndex], this._nodes[i])) - return false; - } - } +Array.prototype.count = function(predicate) { + function count(array, predicate) { return array.where(predicate).length; } + return count(this, predicate); +}; +Array.prototype.findAll = function(predicate) { + function findAll(array, predicate) { return array.where(predicate); } + return findAll(this, predicate); +}; +Array.prototype.contains = function(value) { + function contains(array, value) { + for (var i = 0, len = array.length; i < len; i++) { + if (array[i] == value) { return true; - }; - PriorityQueue.prototype.onNodeUpdated = function (node) { - var parentIndex = Math.floor(node.queueIndex / 2); - var parentNode = this._nodes[parentIndex]; - if (parentIndex > 0 && this.hasHigherPriority(node, parentNode)) { - this.cascadeUp(node); - } - else { - this.cascadeDown(node); - } - }; - PriorityQueue.prototype.cascadeDown = function (node) { - var newParent; - var finalQueueIndex = node.queueIndex; - while (true) { - newParent = node; - var childLeftIndex = 2 * finalQueueIndex; - if (childLeftIndex > this._numNodes) { - node.queueIndex = finalQueueIndex; - this._nodes[finalQueueIndex] = node; - break; - } - var childLeft = this._nodes[childLeftIndex]; - if (this.hasHigherPriority(childLeft, newParent)) { - newParent = childLeft; - } - var childRightIndex = childLeftIndex + 1; - if (childRightIndex <= this._numNodes) { - var childRight = this._nodes[childRightIndex]; - if (this.hasHigherPriority(childRight, newParent)) { - newParent = childRight; - } - } - if (newParent != node) { - this._nodes[finalQueueIndex] = newParent; - var temp = newParent.queueIndex; - newParent.queueIndex = finalQueueIndex; - finalQueueIndex = temp; - } - else { - node.queueIndex = finalQueueIndex; - this._nodes[finalQueueIndex] = node; - break; - } - } - }; - PriorityQueue.prototype.cascadeUp = function (node) { - var parent = Math.floor(node.queueIndex / 2); - while (parent >= 1) { - var parentNode = this._nodes[parent]; - if (this.hasHigherPriority(parentNode, node)) - break; - this.swap(node, parentNode); - parent = Math.floor(node.queueIndex / 2); - } - }; - PriorityQueue.prototype.swap = function (node1, node2) { - this._nodes[node1.queueIndex] = node2; - this._nodes[node2.queueIndex] = node1; - var temp = node1.queueIndex; - node1.queueIndex = node2.queueIndex; - node2.queueIndex = temp; - }; - PriorityQueue.prototype.hasHigherPriority = function (higher, lower) { - return (higher.priority < lower.priority || - (higher.priority == lower.priority && higher.insertionIndex < lower.insertionIndex)); - }; - return PriorityQueue; -}()); -var BreadthFirstPathfinder = (function () { - function BreadthFirstPathfinder() { + } } - BreadthFirstPathfinder.search = function (graph, start, goal) { - var _this = this; - var foundPath = false; - var frontier = []; - frontier.unshift(start); - var cameFrom = new Map(); - cameFrom.set(start, start); - var _loop_3 = function () { - var current = frontier.shift(); - if (JSON.stringify(current) == JSON.stringify(goal)) { - foundPath = true; - return "break"; - } - graph.getNeighbors(current).forEach(function (next) { - if (!_this.hasKey(cameFrom, next)) { - frontier.unshift(next); - cameFrom.set(next, current); - } - }); - }; - while (frontier.length > 0) { - var state_2 = _loop_3(); - if (state_2 === "break") - break; + return false; + } + return contains(this, value); +}; +Array.prototype.removeAll = function(predicate) { + function removeAll(array, predicate) { + var index; + do { + index = array.findIndex(predicate); + if (index >= 0) { + array.splice(index, 1); + } + } while (index >= 0); + } + removeAll(this, predicate); +}; +Array.prototype.remove = function(element) { + function remove(array, element) { + var index = array.findIndex(function(x) { return x === element; }); + if (index >= 0) { + array.splice(index, 1); + return true; + } else { + return false; + } + } + return remove(this, element); +}; +Array.prototype.removeAt = function(index) { + function removeAt(array, index) { array.splice(index, 1); } + return removeAt(this, index); +}; +Array.prototype.removeRange = function(index, count) { + function removeRange(array, index, count) { array.splice(index, count); } + return removeRange(this, index, count); +}; +Array.prototype.select = function(selector) { + function select(array, selector) { + if (typeof (array.reduce) === "function") { + return array.reduce(function(ret, element, index) { + ret.push(selector.call(arguments[2], element, index, array)); + return ret; + }, []); + } else { + var ret = []; + for (var i = 0, len = array.length; i < len; i++) { + ret.push(selector.call(arguments[2], array[i], i, array)); + } + return ret; + } + } + return select(this, selector); +}; +Array.prototype.orderBy = function(keySelector, comparer) { + function orderBy(array, keySelector, comparer) { + array.sort(function(x, y) { + var v1 = keySelector(x); + var v2 = keySelector(y); + if (comparer) { + return comparer(v1, v2); + } else { + return (v1 > v2) ? 1 : -1; + } + }); + return array; + } + return orderBy(this, keySelector, comparer); +}; +Array.prototype.orderByDescending = function(keySelector, comparer) { + function orderByDescending(array, keySelector, comparer) { + array.sort(function(x, y) { + var v1 = keySelector(x); + var v2 = keySelector(y); + if (comparer) { + return -comparer(v1, v2); + } else { + return (v1 < v2) ? 1 : -1; + } + }); + return array; + } + return orderByDescending(this, keySelector, comparer); +}; +Array.prototype.groupBy = function(keySelector) { + function groupBy(array, keySelector) { + if (typeof (array.reduce) === "function") { + var keys_1 = []; + return array.reduce(function(groups, element, index) { + var key = JSON.stringify( + keySelector.call(arguments[1], element, index, array)); + var index2 = keys_1.findIndex(function(x) { return x === key; }); + if (index2 < 0) { + index2 = keys_1.push(key) - 1; } - return foundPath ? AStarPathfinder.recontructPath(cameFrom, start, goal) : null; - }; - BreadthFirstPathfinder.hasKey = function (map, compareKey) { - var iterator = map.keys(); - var r; - while (r = iterator.next(), !r.done) { - if (JSON.stringify(r.value) == JSON.stringify(compareKey)) - return true; + if (!groups[index2]) { + groups[index2] = []; } - return false; - }; - return BreadthFirstPathfinder; -}()); -var UnweightedGraph = (function () { - function UnweightedGraph() { - this.edges = new Map(); + groups[index2].push(element); + return groups; + }, []); + } else { + var groups = []; + var keys = []; + var _loop_1 = function(i, len) { + var key = JSON.stringify( + keySelector.call(arguments_1[1], array[i], i, array)); + var index = keys.findIndex(function(x) { return x === key; }); + if (index < 0) { + index = keys.push(key) - 1; + } + if (!groups[index]) { + groups[index] = []; + } + groups[index].push(array[i]); + }; + var arguments_1 = arguments; + for (var i = 0, len = array.length; i < len; i++) { + _loop_1(i, len); + } + return groups; } - UnweightedGraph.prototype.addEdgesForNode = function (node, edges) { - this.edges.set(node, edges); - return this; - }; - UnweightedGraph.prototype.getNeighbors = function (node) { - return this.edges.get(node); - }; - return UnweightedGraph; -}()); -var Point = (function () { - function Point(x, y) { - this.x = x ? x : 0; - this.y = y ? y : this.x; + } + return groupBy(this, keySelector); +}; +Array.prototype.sum = function(selector) { + function sum(array, selector) { + var ret; + for (var i = 0, len = array.length; i < len; i++) { + if (i == 0) { + if (selector) { + ret = selector.call(arguments[2], array[i], i, array); + } else { + ret = array[i]; + } + } else { + if (selector) { + ret += selector.call(arguments[2], array[i], i, array); + } else { + ret += array[i]; + } + } } - return Point; + return ret; + } + return sum(this, selector); +}; +var PriorityQueueNode = (function() { + function PriorityQueueNode() { + this.priority = 0; + this.insertionIndex = 0; + this.queueIndex = 0; + } + return PriorityQueueNode; }()); -var UnweightedGridGraph = (function () { - function UnweightedGridGraph(width, height, allowDiagonalSearch) { - if (allowDiagonalSearch === void 0) { allowDiagonalSearch = false; } - this.walls = []; - this._neighbors = new Array(4); - this._width = width; - this._hegiht = height; - this._dirs = allowDiagonalSearch ? UnweightedGridGraph.COMPASS_DIRS : UnweightedGridGraph.CARDINAL_DIRS; +var AStarPathfinder = (function() { + function AStarPathfinder() {} + AStarPathfinder.search = function(graph, start, goal) { + var _this = this; + var foundPath = false; + var cameFrom = new Map(); + cameFrom.set(start, start); + var costSoFar = new Map(); + var frontier = new PriorityQueue(1000); + frontier.enqueue(new AStarNode(start), 0); + costSoFar.set(start, 0); + var _loop_2 = function() { + var current = frontier.dequeue(); + if (JSON.stringify(current.data) == JSON.stringify(goal)) { + foundPath = true; + return "break"; + } + graph.getNeighbors(current.data).forEach(function(next) { + var newCost = + costSoFar.get(current.data) + graph.cost(current.data, next); + if (!_this.hasKey(costSoFar, next) || newCost < costSoFar.get(next)) { + costSoFar.set(next, newCost); + var priority = newCost + graph.heuristic(next, goal); + frontier.enqueue(new AStarNode(next), priority); + cameFrom.set(next, current.data); + } + }); + }; + while (frontier.count > 0) { + var state_1 = _loop_2(); + if (state_1 === "break") + break; } - UnweightedGridGraph.prototype.isNodeInBounds = function (node) { - return 0 <= node.x && node.x < this._width && 0 <= node.y && node.y < this._hegiht; - }; - UnweightedGridGraph.prototype.isNodePassable = function (node) { - return !this.walls.firstOrDefault(function (wall) { return JSON.stringify(wall) == JSON.stringify(node); }); - }; - UnweightedGridGraph.prototype.getNeighbors = function (node) { - var _this = this; - this._neighbors.length = 0; - this._dirs.forEach(function (dir) { - var next = new Point(node.x + dir.x, node.y + dir.y); - if (_this.isNodeInBounds(next) && _this.isNodePassable(next)) - _this._neighbors.push(next); - }); - return this._neighbors; - }; - UnweightedGridGraph.prototype.search = function (start, goal) { - return BreadthFirstPathfinder.search(this, start, goal); - }; - UnweightedGridGraph.CARDINAL_DIRS = [ - new Point(1, 0), - new Point(0, -1), - new Point(-1, 0), - new Point(0, -1) - ]; - UnweightedGridGraph.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), - ]; - return UnweightedGridGraph; + return foundPath ? this.recontructPath(cameFrom, start, goal) : null; + }; + AStarPathfinder.hasKey = function(map, compareKey) { + var iterator = map.keys(); + var r; + while (r = iterator.next(), !r.done) { + if (JSON.stringify(r.value) == JSON.stringify(compareKey)) + return true; + } + return false; + }; + AStarPathfinder.getKey = function(map, compareKey) { + var iterator = map.keys(); + var valueIterator = map.values(); + var r; + var v; + while (r = iterator.next(), v = valueIterator.next(), !r.done) { + if (JSON.stringify(r.value) == JSON.stringify(compareKey)) + return v.value; + } + return null; + }; + AStarPathfinder.recontructPath = function(cameFrom, start, goal) { + var path = []; + var current = goal; + path.push(goal); + while (current != start) { + current = this.getKey(cameFrom, current); + path.push(current); + } + path.reverse(); + return path; + }; + return AStarPathfinder; }()); -var WeightedGridGraph = (function () { - function WeightedGridGraph(width, height, allowDiagonalSearch) { - if (allowDiagonalSearch === void 0) { allowDiagonalSearch = false; } - this.walls = []; - this.weightedNodes = []; - this.defaultWeight = 1; - this.weightedNodeWeight = 5; - this._neighbors = new Array(4); - this._width = width; - this._height = height; - this._dirs = allowDiagonalSearch ? WeightedGridGraph.COMPASS_DIRS : WeightedGridGraph.CARDINAL_DIRS; - } - WeightedGridGraph.prototype.isNodeInBounds = function (node) { - return 0 <= node.x && node.x < this._width && 0 <= node.y && node.y < this._height; - }; - WeightedGridGraph.prototype.isNodePassable = function (node) { - return !this.walls.firstOrDefault(function (wall) { return JSON.stringify(wall) == JSON.stringify(node); }); - }; - WeightedGridGraph.prototype.search = function (start, goal) { - return WeightedPathfinder.search(this, start, goal); - }; - WeightedGridGraph.prototype.getNeighbors = function (node) { - var _this = this; - this._neighbors.length = 0; - this._dirs.forEach(function (dir) { - var next = new Point(node.x + dir.x, node.y + dir.y); - if (_this.isNodeInBounds(next) && _this.isNodePassable(next)) - _this._neighbors.push(next); - }); - return this._neighbors; - }; - WeightedGridGraph.prototype.cost = function (from, to) { - return this.weightedNodes.find(function (t) { return JSON.stringify(t) == JSON.stringify(to); }) ? this.weightedNodeWeight : this.defaultWeight; - }; - WeightedGridGraph.CARDINAL_DIRS = [ - new Point(1, 0), - new Point(0, -1), - new Point(-1, 0), - new Point(0, 1) - ]; - WeightedGridGraph.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), - ]; - return WeightedGridGraph; -}()); -var WeightedNode = (function (_super) { - __extends(WeightedNode, _super); - function WeightedNode(data) { - var _this = _super.call(this) || this; - _this.data = data; - return _this; - } - return WeightedNode; +var AStarNode = (function(_super) { + __extends(AStarNode, _super); + function AStarNode(data) { + var _this = _super.call(this) || this; + _this.data = data; + return _this; + } + return AStarNode; }(PriorityQueueNode)); -var WeightedPathfinder = (function () { - function WeightedPathfinder() { - } - WeightedPathfinder.search = function (graph, start, goal) { - var _this = this; - var foundPath = false; - var cameFrom = new Map(); - cameFrom.set(start, start); - var costSoFar = new Map(); - var frontier = new PriorityQueue(1000); - frontier.enqueue(new WeightedNode(start), 0); - costSoFar.set(start, 0); - var _loop_4 = function () { - var current = frontier.dequeue(); - if (JSON.stringify(current.data) == JSON.stringify(goal)) { - foundPath = true; - return "break"; - } - graph.getNeighbors(current.data).forEach(function (next) { - var newCost = costSoFar.get(current.data) + graph.cost(current.data, next); - if (!_this.hasKey(costSoFar, next) || newCost < costSoFar.get(next)) { - costSoFar.set(next, newCost); - var priprity = newCost; - frontier.enqueue(new WeightedNode(next), priprity); - cameFrom.set(next, current.data); - } - }); - }; - while (frontier.count > 0) { - var state_3 = _loop_4(); - if (state_3 === "break") - break; - } - return foundPath ? this.recontructPath(cameFrom, start, goal) : null; - }; - WeightedPathfinder.hasKey = function (map, compareKey) { - var iterator = map.keys(); - var r; - while (r = iterator.next(), !r.done) { - if (JSON.stringify(r.value) == JSON.stringify(compareKey)) - return true; - } - return false; - }; - WeightedPathfinder.getKey = function (map, compareKey) { - var iterator = map.keys(); - var valueIterator = map.values(); - var r; - var v; - while (r = iterator.next(), v = valueIterator.next(), !r.done) { - if (JSON.stringify(r.value) == JSON.stringify(compareKey)) - return v.value; - } - return null; - }; - WeightedPathfinder.recontructPath = function (cameFrom, start, goal) { - var path = []; - var current = goal; - path.push(goal); - while (current != start) { - current = this.getKey(cameFrom, current); - path.push(current); - } - path.reverse(); - return path; - }; - return WeightedPathfinder; +var AstarGridGraph = (function() { + function AstarGridGraph(width, height) { + 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 = width; + this._height = height; + } + AstarGridGraph.prototype.isNodeInBounds = function(node) { + return 0 <= node.x && node.x < this._width && 0 <= node.y && + node.y < this._height; + }; + AstarGridGraph.prototype.isNodePassable = function(node) { + return !this.walls.firstOrDefault(function( + wall) { return JSON.stringify(wall) == JSON.stringify(node); }); + }; + AstarGridGraph.prototype.search = function( + start, goal) { return AStarPathfinder.search(this, start, goal); }; + AstarGridGraph.prototype.getNeighbors = function(node) { + var _this = this; + this._neighbors.length = 0; + this.dirs.forEach(function(dir) { + var next = new Point(node.x + dir.x, node.y + dir.y); + if (_this.isNodeInBounds(next) && _this.isNodePassable(next)) + _this._neighbors.push(next); + }); + return this._neighbors; + }; + AstarGridGraph.prototype.cost = function(from, to) { + return this.weightedNodes.find(function( + p) { return JSON.stringify(p) == JSON.stringify(to); }) + ? this.weightedNodeWeight + : this.defaultWeight; + }; + AstarGridGraph.prototype.heuristic = function( + node, + goal) { return Math.abs(node.x - goal.x) + Math.abs(node.y - goal.y); }; + return AstarGridGraph; }()); -var DebugDefaults = (function () { - function DebugDefaults() { +var PriorityQueue = (function() { + function PriorityQueue(maxNodes) { + this._numNodes = 0; + this._nodes = new Array(maxNodes + 1); + this._numNodesEverEnqueued = 0; + } + PriorityQueue.prototype.clear = function() { + this._nodes.splice(1, this._numNodes); + this._numNodes = 0; + }; + Object.defineProperty(PriorityQueue.prototype, "count", { + get : function() { return this._numNodes; }, + enumerable : true, + configurable : true + }); + PriorityQueue.prototype.contains = function( + node) { return (this._nodes[node.queueIndex] == node); }; + PriorityQueue.prototype.enqueue = function(node, priority) { + node.priority = priority; + this._numNodes++; + this._nodes[this._numNodes] = node; + node.queueIndex = this._numNodes; + node.insertionIndex = this._numNodesEverEnqueued++; + this.cascadeUp(this._nodes[this._numNodes]); + }; + PriorityQueue.prototype.dequeue = function() { + var returnMe = this._nodes[1]; + this.remove(returnMe); + return returnMe; + }; + PriorityQueue.prototype.remove = function(node) { + if (node.queueIndex == this._numNodes) { + this._nodes[this._numNodes] = null; + this._numNodes--; + return; } - DebugDefaults.verletParticle = 0xDC345E; - DebugDefaults.verletConstraintEdge = 0x433E36; - return DebugDefaults; + var formerLastNode = this._nodes[this._numNodes]; + this.swap(node, formerLastNode); + delete this._nodes[this._numNodes]; + this._numNodes--; + this.onNodeUpdated(formerLastNode); + }; + PriorityQueue.prototype.isValidQueue = function() { + for (var i = 1; i < this._nodes.length; i++) { + if (this._nodes[i]) { + var childLeftIndex = 2 * i; + if (childLeftIndex < this._nodes.length && + this._nodes[childLeftIndex] && + this.hasHigherPriority(this._nodes[childLeftIndex], this._nodes[i])) + return false; + var childRightIndex = childLeftIndex + 1; + if (childRightIndex < this._nodes.length && + this._nodes[childRightIndex] && + this.hasHigherPriority(this._nodes[childRightIndex], + this._nodes[i])) + return false; + } + } + return true; + }; + PriorityQueue.prototype.onNodeUpdated = function(node) { + var parentIndex = Math.floor(node.queueIndex / 2); + var parentNode = this._nodes[parentIndex]; + if (parentIndex > 0 && this.hasHigherPriority(node, parentNode)) { + this.cascadeUp(node); + } else { + this.cascadeDown(node); + } + }; + PriorityQueue.prototype.cascadeDown = function(node) { + var newParent; + var finalQueueIndex = node.queueIndex; + while (true) { + newParent = node; + var childLeftIndex = 2 * finalQueueIndex; + if (childLeftIndex > this._numNodes) { + node.queueIndex = finalQueueIndex; + this._nodes[finalQueueIndex] = node; + break; + } + var childLeft = this._nodes[childLeftIndex]; + if (this.hasHigherPriority(childLeft, newParent)) { + newParent = childLeft; + } + var childRightIndex = childLeftIndex + 1; + if (childRightIndex <= this._numNodes) { + var childRight = this._nodes[childRightIndex]; + if (this.hasHigherPriority(childRight, newParent)) { + newParent = childRight; + } + } + if (newParent != node) { + this._nodes[finalQueueIndex] = newParent; + var temp = newParent.queueIndex; + newParent.queueIndex = finalQueueIndex; + finalQueueIndex = temp; + } else { + node.queueIndex = finalQueueIndex; + this._nodes[finalQueueIndex] = node; + break; + } + } + }; + PriorityQueue.prototype.cascadeUp = function(node) { + var parent = Math.floor(node.queueIndex / 2); + while (parent >= 1) { + var parentNode = this._nodes[parent]; + if (this.hasHigherPriority(parentNode, node)) + break; + this.swap(node, parentNode); + parent = Math.floor(node.queueIndex / 2); + } + }; + PriorityQueue.prototype.swap = function(node1, node2) { + this._nodes[node1.queueIndex] = node2; + this._nodes[node2.queueIndex] = node1; + var temp = node1.queueIndex; + node1.queueIndex = node2.queueIndex; + node2.queueIndex = temp; + }; + PriorityQueue.prototype.hasHigherPriority = function(higher, lower) { + return (higher.priority < lower.priority || + (higher.priority == lower.priority && + higher.insertionIndex < lower.insertionIndex)); + }; + return PriorityQueue; }()); -var Component = (function (_super) { - __extends(Component, _super); - function Component() { - var _this = _super !== null && _super.apply(this, arguments) || this; - _this._enabled = true; - _this.updateInterval = 1; - return _this; - } - Object.defineProperty(Component.prototype, "enabled", { - get: function () { - return this.entity ? this.entity.enabled && this._enabled : this._enabled; - }, - set: function (value) { - this.setEnabled(value); - }, - enumerable: true, - configurable: true - }); - Component.prototype.setEnabled = function (isEnabled) { - if (this._enabled != isEnabled) { - this._enabled = isEnabled; - if (this._enabled) { - this.onEnabled(); - } - else { - this.onDisabled(); - } +var BreadthFirstPathfinder = (function() { + function BreadthFirstPathfinder() {} + BreadthFirstPathfinder.search = function(graph, start, goal) { + var _this = this; + var foundPath = false; + var frontier = []; + frontier.unshift(start); + var cameFrom = new Map(); + cameFrom.set(start, start); + var _loop_3 = function() { + var current = frontier.shift(); + if (JSON.stringify(current) == JSON.stringify(goal)) { + foundPath = true; + return "break"; + } + graph.getNeighbors(current).forEach(function(next) { + if (!_this.hasKey(cameFrom, next)) { + frontier.unshift(next); + cameFrom.set(next, current); } - return this; + }); }; - Component.prototype.initialize = function () { + while (frontier.length > 0) { + var state_2 = _loop_3(); + if (state_2 === "break") + break; + } + return foundPath ? AStarPathfinder.recontructPath(cameFrom, start, goal) + : null; + }; + BreadthFirstPathfinder.hasKey = function(map, compareKey) { + var iterator = map.keys(); + var r; + while (r = iterator.next(), !r.done) { + if (JSON.stringify(r.value) == JSON.stringify(compareKey)) + return true; + } + return false; + }; + return BreadthFirstPathfinder; +}()); +var UnweightedGraph = (function() { + function UnweightedGraph() { this.edges = new Map(); } + UnweightedGraph.prototype.addEdgesForNode = function(node, edges) { + this.edges.set(node, edges); + return this; + }; + UnweightedGraph.prototype.getNeighbors = function( + node) { return this.edges.get(node); }; + return UnweightedGraph; +}()); +var Point = (function() { + function Point(x, y) { + this.x = x ? x : 0; + this.y = y ? y : this.x; + } + return Point; +}()); +var UnweightedGridGraph = (function() { + function UnweightedGridGraph(width, height, allowDiagonalSearch) { + if (allowDiagonalSearch === void 0) { + allowDiagonalSearch = false; + } + this.walls = []; + this._neighbors = new Array(4); + this._width = width; + this._hegiht = height; + this._dirs = allowDiagonalSearch ? UnweightedGridGraph.COMPASS_DIRS + : UnweightedGridGraph.CARDINAL_DIRS; + } + UnweightedGridGraph.prototype.isNodeInBounds = function(node) { + return 0 <= node.x && node.x < this._width && 0 <= node.y && + node.y < this._hegiht; + }; + UnweightedGridGraph.prototype.isNodePassable = function(node) { + return !this.walls.firstOrDefault(function( + wall) { return JSON.stringify(wall) == JSON.stringify(node); }); + }; + UnweightedGridGraph.prototype.getNeighbors = function(node) { + var _this = this; + this._neighbors.length = 0; + this._dirs.forEach(function(dir) { + var next = new Point(node.x + dir.x, node.y + dir.y); + if (_this.isNodeInBounds(next) && _this.isNodePassable(next)) + _this._neighbors.push(next); + }); + return this._neighbors; + }; + UnweightedGridGraph.prototype.search = function( + start, goal) { return BreadthFirstPathfinder.search(this, start, goal); }; + UnweightedGridGraph.CARDINAL_DIRS = + [ new Point(1, 0), new Point(0, -1), new Point(-1, 0), new Point(0, -1) ]; + UnweightedGridGraph.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), + ]; + return UnweightedGridGraph; +}()); +var WeightedGridGraph = (function() { + function WeightedGridGraph(width, height, allowDiagonalSearch) { + if (allowDiagonalSearch === void 0) { + allowDiagonalSearch = false; + } + this.walls = []; + this.weightedNodes = []; + this.defaultWeight = 1; + this.weightedNodeWeight = 5; + this._neighbors = new Array(4); + this._width = width; + this._height = height; + this._dirs = allowDiagonalSearch ? WeightedGridGraph.COMPASS_DIRS + : WeightedGridGraph.CARDINAL_DIRS; + } + WeightedGridGraph.prototype.isNodeInBounds = function(node) { + return 0 <= node.x && node.x < this._width && 0 <= node.y && + node.y < this._height; + }; + WeightedGridGraph.prototype.isNodePassable = function(node) { + return !this.walls.firstOrDefault(function( + wall) { return JSON.stringify(wall) == JSON.stringify(node); }); + }; + WeightedGridGraph.prototype.search = function( + start, goal) { return WeightedPathfinder.search(this, start, goal); }; + WeightedGridGraph.prototype.getNeighbors = function(node) { + var _this = this; + this._neighbors.length = 0; + this._dirs.forEach(function(dir) { + var next = new Point(node.x + dir.x, node.y + dir.y); + if (_this.isNodeInBounds(next) && _this.isNodePassable(next)) + _this._neighbors.push(next); + }); + return this._neighbors; + }; + WeightedGridGraph.prototype.cost = function(from, to) { + return this.weightedNodes.find(function( + t) { return JSON.stringify(t) == JSON.stringify(to); }) + ? this.weightedNodeWeight + : this.defaultWeight; + }; + WeightedGridGraph.CARDINAL_DIRS = + [ new Point(1, 0), new Point(0, -1), new Point(-1, 0), new Point(0, 1) ]; + WeightedGridGraph.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), + ]; + return WeightedGridGraph; +}()); +var WeightedNode = (function(_super) { + __extends(WeightedNode, _super); + function WeightedNode(data) { + var _this = _super.call(this) || this; + _this.data = data; + return _this; + } + return WeightedNode; +}(PriorityQueueNode)); +var WeightedPathfinder = (function() { + function WeightedPathfinder() {} + WeightedPathfinder.search = function(graph, start, goal) { + var _this = this; + var foundPath = false; + var cameFrom = new Map(); + cameFrom.set(start, start); + var costSoFar = new Map(); + var frontier = new PriorityQueue(1000); + frontier.enqueue(new WeightedNode(start), 0); + costSoFar.set(start, 0); + var _loop_4 = function() { + var current = frontier.dequeue(); + if (JSON.stringify(current.data) == JSON.stringify(goal)) { + foundPath = true; + return "break"; + } + graph.getNeighbors(current.data).forEach(function(next) { + var newCost = + costSoFar.get(current.data) + graph.cost(current.data, next); + if (!_this.hasKey(costSoFar, next) || newCost < costSoFar.get(next)) { + costSoFar.set(next, newCost); + var priprity = newCost; + frontier.enqueue(new WeightedNode(next), priprity); + cameFrom.set(next, current.data); + } + }); }; - Component.prototype.onAddedToEntity = function () { - }; - Component.prototype.onRemovedFromEntity = function () { - }; - Component.prototype.onEnabled = function () { - }; - Component.prototype.onDisabled = function () { - }; - Component.prototype.onEntityTransformChanged = function (comp) { - }; - Component.prototype.update = function () { - }; - Component.prototype.debugRender = function () { - }; - Component.prototype.registerComponent = function () { - this.entity.componentBits.set(ComponentTypeManager.getIndexFor(this), false); - this.entity.scene.entityProcessors.onComponentAdded(this.entity); - }; - Component.prototype.deregisterComponent = function () { - this.entity.componentBits.set(ComponentTypeManager.getIndexFor(this)); - this.entity.scene.entityProcessors.onComponentRemoved(this.entity); - }; - return Component; + while (frontier.count > 0) { + var state_3 = _loop_4(); + if (state_3 === "break") + break; + } + return foundPath ? this.recontructPath(cameFrom, start, goal) : null; + }; + WeightedPathfinder.hasKey = function(map, compareKey) { + var iterator = map.keys(); + var r; + while (r = iterator.next(), !r.done) { + if (JSON.stringify(r.value) == JSON.stringify(compareKey)) + return true; + } + return false; + }; + WeightedPathfinder.getKey = function(map, compareKey) { + var iterator = map.keys(); + var valueIterator = map.values(); + var r; + var v; + while (r = iterator.next(), v = valueIterator.next(), !r.done) { + if (JSON.stringify(r.value) == JSON.stringify(compareKey)) + return v.value; + } + return null; + }; + WeightedPathfinder.recontructPath = function(cameFrom, start, goal) { + var path = []; + var current = goal; + path.push(goal); + while (current != start) { + current = this.getKey(cameFrom, current); + path.push(current); + } + path.reverse(); + return path; + }; + return WeightedPathfinder; +}()); +var DebugDefaults = (function() { + function DebugDefaults() {} + DebugDefaults.verletParticle = 0xDC345E; + DebugDefaults.verletConstraintEdge = 0x433E36; + return DebugDefaults; +}()); +var Component = (function(_super) { + __extends(Component, _super); + function Component() { + var _this = _super !== null && _super.apply(this, arguments) || this; + _this._enabled = true; + _this.updateInterval = 1; + return _this; + } + Object.defineProperty(Component.prototype, "enabled", { + get : function() { + return this.entity ? this.entity.enabled && this._enabled : this._enabled; + }, + set : function(value) { this.setEnabled(value); }, + enumerable : true, + configurable : true + }); + Component.prototype.setEnabled = function(isEnabled) { + if (this._enabled != isEnabled) { + this._enabled = isEnabled; + if (this._enabled) { + this.onEnabled(); + } else { + this.onDisabled(); + } + } + return this; + }; + Component.prototype.initialize = function() {}; + Component.prototype.onAddedToEntity = function() {}; + Component.prototype.onRemovedFromEntity = function() {}; + Component.prototype.onEnabled = function() {}; + Component.prototype.onDisabled = function() {}; + Component.prototype.onEntityTransformChanged = function(comp) {}; + Component.prototype.update = function() {}; + Component.prototype.debugRender = function() {}; + Component.prototype.registerComponent = function() { + this.entity.componentBits.set(ComponentTypeManager.getIndexFor(this), + false); + this.entity.scene.entityProcessors.onComponentAdded(this.entity); + }; + Component.prototype.deregisterComponent = function() { + this.entity.componentBits.set(ComponentTypeManager.getIndexFor(this)); + this.entity.scene.entityProcessors.onComponentRemoved(this.entity); + }; + return Component; }(egret.DisplayObjectContainer)); -var Entity = (function (_super) { - __extends(Entity, _super); - function Entity(name) { - var _this = _super.call(this) || this; - _this._position = Vector2.zero; - _this._updateOrder = 0; - _this._enabled = true; - _this._tag = 0; - _this.name = name; - _this.components = new ComponentList(_this); - _this.id = Entity._idGenerator++; - _this.componentBits = new BitSet(); - return _this; +var Entity = (function(_super) { + __extends(Entity, _super); + function Entity(name) { + var _this = _super.call(this) || this; + _this._position = Vector2.zero; + _this._updateOrder = 0; + _this._enabled = true; + _this._tag = 0; + _this.name = name; + _this.components = new ComponentList(_this); + _this.id = Entity._idGenerator++; + _this.componentBits = new BitSet(); + return _this; + } + Object.defineProperty(Entity.prototype, "isDestoryed", { + get : function() { return this._isDestoryed; }, + enumerable : true, + configurable : true + }); + Object.defineProperty(Entity.prototype, "position", { + get : function() { return this._position; }, + set : function(value) { this._position = value; }, + enumerable : true, + configurable : true + }); + Object.defineProperty(Entity.prototype, "scale", { + get : function() { return new Vector2(this.scaleX, this.scaleY); }, + set : function(value) { + this.scaleX = value.x; + this.scaleY = value.y; + }, + enumerable : true, + configurable : true + }); + Object.defineProperty(Entity.prototype, "enabled", { + get : function() { return this._enabled; }, + set : function(value) { this.setEnabled(value); }, + enumerable : true, + configurable : true + }); + Entity.prototype.setEnabled = function(isEnabled) { + if (this._enabled != isEnabled) { + this._enabled = isEnabled; } - Object.defineProperty(Entity.prototype, "isDestoryed", { - get: function () { - return this._isDestoryed; - }, - enumerable: true, - configurable: true - }); - Object.defineProperty(Entity.prototype, "position", { - get: function () { - return this._position; - }, - set: function (value) { - this._position = value; - }, - enumerable: true, - configurable: true - }); - Object.defineProperty(Entity.prototype, "scale", { - get: function () { - return new Vector2(this.scaleX, this.scaleY); - }, - set: function (value) { - this.scaleX = value.x; - this.scaleY = value.y; - }, - enumerable: true, - configurable: true - }); - Object.defineProperty(Entity.prototype, "enabled", { - get: function () { - return this._enabled; - }, - set: function (value) { - this.setEnabled(value); - }, - enumerable: true, - configurable: true - }); - Entity.prototype.setEnabled = function (isEnabled) { - if (this._enabled != isEnabled) { - this._enabled = isEnabled; - } - return this; - }; - Object.defineProperty(Entity.prototype, "tag", { - get: function () { - return this._tag; - }, - set: function (value) { - this.setTag(value); - }, - enumerable: true, - configurable: true - }); - Object.defineProperty(Entity.prototype, "stage", { - get: function () { - if (!this.scene) - return null; - return this.scene.stage; - }, - enumerable: true, - configurable: true - }); - Object.defineProperty(Entity.prototype, "updateOrder", { - get: function () { - return this._updateOrder; - }, - set: function (value) { - this.setUpdateOrder(value); - }, - enumerable: true, - configurable: true - }); - Entity.prototype.roundPosition = function () { - this.position = Vector2Ext.round(this.position); - }; - Entity.prototype.setUpdateOrder = function (updateOrder) { - if (this._updateOrder != updateOrder) { - this._updateOrder = updateOrder; - if (this.scene) { - } - return this; - } - }; - Entity.prototype.setTag = function (tag) { - if (this._tag != tag) { - if (this.scene) { - this.scene.entities.removeFromTagList(this); - } - this._tag = tag; - if (this.scene) { - this.scene.entities.addToTagList(this); - } - } - return this; - }; - Entity.prototype.attachToScene = function (newScene) { - this.scene = newScene; - newScene.entities.add(this); - this.components.registerAllComponents(); - for (var i = 0; i < this.numChildren; i++) { - this.getChildAt(i).entity.attachToScene(newScene); - } - }; - Entity.prototype.detachFromScene = function () { - this.scene.entities.remove(this); - this.components.deregisterAllComponents(); - for (var i = 0; i < this.numChildren; i++) - this.getChildAt(i).entity.detachFromScene(); - }; - Entity.prototype.addComponent = function (component) { - component.entity = this; - this.components.add(component); - this.addChild(component); - component.initialize(); - return component; - }; - Entity.prototype.hasComponent = function (type) { - return this.components.getComponent(type, false) != null; - }; - Entity.prototype.getOrCreateComponent = function (type) { - var comp = this.components.getComponent(type, true); - if (!comp) { - comp = this.addComponent(type); - } - return comp; - }; - Entity.prototype.getComponent = function (type) { - return this.components.getComponent(type, false); - }; - Entity.prototype.getComponents = function (typeName, componentList) { - return this.components.getComponents(typeName, componentList); - }; - Entity.prototype.removeComponentForType = function (type) { - var comp = this.getComponent(type); - if (comp) { - this.removeComponent(comp); - return true; - } - return false; - }; - Entity.prototype.removeComponent = function (component) { - this.components.remove(component); - }; - Entity.prototype.removeAllComponents = function () { - for (var i = 0; i < this.components.count; i++) { - this.removeComponent(this.components.buffer[i]); - } - }; - Entity.prototype.update = function () { - this.components.update(); - }; - Entity.prototype.onAddedToScene = function () { - }; - Entity.prototype.onRemovedFromScene = function () { - if (this._isDestoryed) - this.components.removeAllComponents(); - }; - Entity.prototype.onTransformChanged = function (comp) { - this.components.onEntityTransformChanged(comp); - }; - Entity.prototype.destroy = function () { - this._isDestoryed = true; - this.scene.entities.remove(this); - this.removeChildren(); - for (var i = this.numChildren - 1; i >= 0; i--) { - var child = this.getChildAt(i); - child.entity.destroy(); - } - }; - return Entity; -}(egret.DisplayObjectContainer)); -var Scene = (function (_super) { - __extends(Scene, _super); - function Scene() { - var _this = _super.call(this) || this; - _this.enablePostProcessing = true; - _this._renderers = []; - _this._postProcessors = []; - _this.entityProcessors = new EntityProcessorList(); - _this.renderableComponents = new RenderableComponentList(); - _this.entities = new EntityList(_this); - _this.content = new ContentManager(); - _this.width = SceneManager.stage.stageWidth; - _this.height = SceneManager.stage.stageHeight; - _this.addEventListener(egret.Event.ACTIVATE, _this.onActive, _this); - _this.addEventListener(egret.Event.DEACTIVATE, _this.onDeactive, _this); - return _this; - } - Scene.prototype.createEntity = function (name) { - var entity = new Entity(name); - entity.position = new Vector2(0, 0); - return this.addEntity(entity); - }; - Scene.prototype.addEntity = function (entity) { - this.entities.add(entity); - entity.scene = this; - this.addChild(entity); - for (var i = 0; i < entity.numChildren; i++) - this.addEntity(entity.getChildAt(i).entity); - return entity; - }; - Scene.prototype.destroyAllEntities = function () { - for (var i = 0; i < this.entities.count; i++) { - this.entities.buffer[i].destroy(); - } - }; - Scene.prototype.findEntity = function (name) { - return this.entities.findEntity(name); - }; - Scene.prototype.addEntityProcessor = function (processor) { - processor.scene = this; - this.entityProcessors.add(processor); - return processor; - }; - Scene.prototype.removeEntityProcessor = function (processor) { - this.entityProcessors.remove(processor); - }; - Scene.prototype.getEntityProcessor = function () { - return this.entityProcessors.getProcessor(); - }; - Scene.prototype.addRenderer = function (renderer) { - this._renderers.push(renderer); - this._renderers.sort(); - renderer.onAddedToScene(this); - return renderer; - }; - Scene.prototype.getRenderer = function (type) { - for (var i = 0; i < this._renderers.length; i++) { - if (this._renderers[i] instanceof type) - return this._renderers[i]; - } + return this; + }; + Object.defineProperty(Entity.prototype, "tag", { + get : function() { return this._tag; }, + set : function(value) { this.setTag(value); }, + enumerable : true, + configurable : true + }); + Object.defineProperty(Entity.prototype, "stage", { + get : function() { + if (!this.scene) return null; - }; - Scene.prototype.removeRenderer = function (renderer) { - this._renderers.remove(renderer); - renderer.unload(); - }; - Scene.prototype.begin = function () { - if (SceneManager.sceneTransition) { - SceneManager.stage.addChildAt(this, SceneManager.stage.numChildren - 1); - } - else { - SceneManager.stage.addChild(this); - } - if (this._renderers.length == 0) { - this.addRenderer(new DefaultRenderer()); - console.warn("场景开始时没有渲染器 自动添加DefaultRenderer以保证能够正常渲染"); - } - this.camera = this.createEntity("camera").getOrCreateComponent(new Camera()); - Physics.reset(); - if (this.entityProcessors) - this.entityProcessors.begin(); - this.camera.onSceneSizeChanged(this.stage.stageWidth, this.stage.stageHeight); - this._didSceneBegin = true; - this.onStart(); - }; - Scene.prototype.end = function () { - this._didSceneBegin = false; - this.removeEventListener(egret.Event.DEACTIVATE, this.onDeactive, this); - this.removeEventListener(egret.Event.ACTIVATE, this.onActive, this); - for (var i = 0; i < this._renderers.length; i++) { - this._renderers[i].unload(); - } - for (var i = 0; i < this._postProcessors.length; i++) { - this._postProcessors[i].unload(); - } - this.entities.removeAllEntities(); - this.removeChildren(); - Physics.clear(); - this.camera = null; - this.content.dispose(); - if (this.entityProcessors) - this.entityProcessors.end(); - this.unload(); - }; - Scene.prototype.onStart = function () { - return __awaiter(this, void 0, void 0, function () { - return __generator(this, function (_a) { - return [2]; - }); - }); - }; - Scene.prototype.onActive = function () { - }; - Scene.prototype.onDeactive = function () { - }; - Scene.prototype.unload = function () { }; - Scene.prototype.update = function () { - this.entities.updateLists(); - if (this.entityProcessors) - this.entityProcessors.update(); - this.entities.update(); - if (this.entityProcessors) - this.entityProcessors.lateUpdate(); - this.renderableComponents.updateList(); - }; - Scene.prototype.postRender = function () { - var enabledCounter = 0; - if (this.enablePostProcessing) { - for (var i = 0; i < this._postProcessors.length; i++) { - if (this._postProcessors[i].enable) { - var isEven = MathHelper.isEven(enabledCounter); - enabledCounter++; - this._postProcessors[i].process(); - } - } - } - }; - Scene.prototype.render = function () { - for (var i = 0; i < this._renderers.length; i++) { - this._renderers[i].render(this); - } - }; - Scene.prototype.addPostProcessor = function (postProcessor) { - this._postProcessors.push(postProcessor); - this._postProcessors.sort(); - postProcessor.onAddedToScene(this); - if (this._didSceneBegin) { - postProcessor.onSceneBackBufferSizeChanged(this.stage.stageWidth, this.stage.stageHeight); - } - return postProcessor; - }; - return Scene; -}(egret.DisplayObjectContainer)); -var SceneManager = (function () { - function SceneManager(stage) { - stage.addEventListener(egret.Event.ENTER_FRAME, SceneManager.update, this); - SceneManager.stage = stage; - SceneManager.initialize(stage); + return this.scene.stage; + }, + enumerable : true, + configurable : true + }); + Object.defineProperty(Entity.prototype, "updateOrder", { + get : function() { return this._updateOrder; }, + set : function(value) { this.setUpdateOrder(value); }, + enumerable : true, + configurable : true + }); + Entity.prototype.roundPosition = + function() { this.position = Vector2Ext.round(this.position); }; + Entity.prototype.setUpdateOrder = function(updateOrder) { + if (this._updateOrder != updateOrder) { + this._updateOrder = updateOrder; + if (this.scene) { + } + return this; } - Object.defineProperty(SceneManager, "scene", { - get: function () { - return this._scene; - }, - set: function (value) { - if (!value) - throw new Error("场景不能为空"); - if (this._scene == null) { - this._scene = value; - this._scene.begin(); - } - else { - this._nextScene = value; - } - }, - enumerable: true, - configurable: true + }; + Entity.prototype.setTag = function(tag) { + if (this._tag != tag) { + if (this.scene) { + this.scene.entities.removeFromTagList(this); + } + this._tag = tag; + if (this.scene) { + this.scene.entities.addToTagList(this); + } + } + return this; + }; + Entity.prototype.attachToScene = function(newScene) { + this.scene = newScene; + newScene.entities.add(this); + this.components.registerAllComponents(); + for (var i = 0; i < this.numChildren; i++) { + this.getChildAt(i).entity.attachToScene(newScene); + } + }; + Entity.prototype.detachFromScene = function() { + this.scene.entities.remove(this); + this.components.deregisterAllComponents(); + for (var i = 0; i < this.numChildren; i++) + this.getChildAt(i).entity.detachFromScene(); + }; + Entity.prototype.addComponent = function(component) { + component.entity = this; + this.components.add(component); + this.addChild(component); + component.initialize(); + return component; + }; + Entity.prototype.hasComponent = function( + type) { return this.components.getComponent(type, false) != null; }; + Entity.prototype.getOrCreateComponent = function(type) { + var comp = this.components.getComponent(type, true); + if (!comp) { + comp = this.addComponent(type); + } + return comp; + }; + Entity.prototype.getComponent = function( + type) { return this.components.getComponent(type, false); }; + Entity.prototype.getComponents = function(typeName, componentList) { + return this.components.getComponents(typeName, componentList); + }; + Entity.prototype.removeComponentForType = function(type) { + var comp = this.getComponent(type); + if (comp) { + this.removeComponent(comp); + return true; + } + return false; + }; + Entity.prototype.removeComponent = function( + component) { this.components.remove(component); }; + Entity.prototype.removeAllComponents = function() { + for (var i = 0; i < this.components.count; i++) { + this.removeComponent(this.components.buffer[i]); + } + }; + Entity.prototype.update = function() { this.components.update(); }; + Entity.prototype.onAddedToScene = function() {}; + Entity.prototype.onRemovedFromScene = function() { + if (this._isDestoryed) + this.components.removeAllComponents(); + }; + Entity.prototype.onTransformChanged = function( + comp) { this.components.onEntityTransformChanged(comp); }; + Entity.prototype.destroy = function() { + this._isDestoryed = true; + this.scene.entities.remove(this); + this.removeChildren(); + for (var i = this.numChildren - 1; i >= 0; i--) { + var child = this.getChildAt(i); + child.entity.destroy(); + } + }; + return Entity; +}(egret.DisplayObjectContainer)); +var Scene = (function(_super) { + __extends(Scene, _super); + function Scene() { + var _this = _super.call(this) || this; + _this.enablePostProcessing = true; + _this._renderers = []; + _this._postProcessors = []; + _this.entityProcessors = new EntityProcessorList(); + _this.renderableComponents = new RenderableComponentList(); + _this.entities = new EntityList(_this); + _this.content = new ContentManager(); + _this.width = SceneManager.stage.stageWidth; + _this.height = SceneManager.stage.stageHeight; + _this.addEventListener(egret.Event.ACTIVATE, _this.onActive, _this); + _this.addEventListener(egret.Event.DEACTIVATE, _this.onDeactive, _this); + return _this; + } + Scene.prototype.createEntity = function(name) { + var entity = new Entity(name); + entity.position = new Vector2(0, 0); + return this.addEntity(entity); + }; + Scene.prototype.addEntity = function(entity) { + this.entities.add(entity); + entity.scene = this; + this.addChild(entity); + for (var i = 0; i < entity.numChildren; i++) + this.addEntity(entity.getChildAt(i).entity); + return entity; + }; + Scene.prototype.destroyAllEntities = function() { + for (var i = 0; i < this.entities.count; i++) { + this.entities.buffer[i].destroy(); + } + }; + Scene.prototype.findEntity = function( + name) { return this.entities.findEntity(name); }; + Scene.prototype.addEntityProcessor = function(processor) { + processor.scene = this; + this.entityProcessors.add(processor); + return processor; + }; + Scene.prototype.removeEntityProcessor = function( + processor) { this.entityProcessors.remove(processor); }; + Scene.prototype.getEntityProcessor = + function() { return this.entityProcessors.getProcessor(); }; + Scene.prototype.addRenderer = function(renderer) { + this._renderers.push(renderer); + this._renderers.sort(); + renderer.onAddedToScene(this); + return renderer; + }; + Scene.prototype.getRenderer = function(type) { + for (var i = 0; i < this._renderers.length; i++) { + if (this._renderers[i] instanceof type) + return this._renderers[i]; + } + return null; + }; + Scene.prototype.removeRenderer = function(renderer) { + this._renderers.remove(renderer); + renderer.unload(); + }; + Scene.prototype.begin = function() { + if (SceneManager.sceneTransition) { + SceneManager.stage.addChildAt(this, SceneManager.stage.numChildren - 1); + } else { + SceneManager.stage.addChild(this); + } + if (this._renderers.length == 0) { + this.addRenderer(new DefaultRenderer()); + console.warn( + "场景开始时没有渲染器 自动添加DefaultRenderer以保证能够正常渲染"); + } + this.camera = + this.createEntity("camera").getOrCreateComponent(new Camera()); + Physics.reset(); + if (this.entityProcessors) + this.entityProcessors.begin(); + this.camera.onSceneSizeChanged(this.stage.stageWidth, + this.stage.stageHeight); + this._didSceneBegin = true; + this.onStart(); + }; + Scene.prototype.end = function() { + this._didSceneBegin = false; + this.removeEventListener(egret.Event.DEACTIVATE, this.onDeactive, this); + this.removeEventListener(egret.Event.ACTIVATE, this.onActive, this); + for (var i = 0; i < this._renderers.length; i++) { + this._renderers[i].unload(); + } + for (var i = 0; i < this._postProcessors.length; i++) { + this._postProcessors[i].unload(); + } + this.entities.removeAllEntities(); + this.removeChildren(); + Physics.clear(); + this.camera = null; + this.content.dispose(); + if (this.entityProcessors) + this.entityProcessors.end(); + this.unload(); + }; + Scene.prototype.onStart = function() { + return __awaiter(this, void 0, void 0, function() { + return __generator(this, function(_a) { return [ 2 ]; }); }); - SceneManager.initialize = function (stage) { - Input.initialize(stage); - }; - SceneManager.update = function () { - Time.update(egret.getTimer()); - if (SceneManager._scene) { - for (var i = GlobalManager.globalManagers.length - 1; i >= 0; i--) { - if (GlobalManager.globalManagers[i].enabled) - GlobalManager.globalManagers[i].update(); - } - if (!SceneManager.sceneTransition || - (SceneManager.sceneTransition && (!SceneManager.sceneTransition.loadsNewScene || SceneManager.sceneTransition.isNewSceneLoaded))) { - SceneManager._scene.update(); - } - if (SceneManager._nextScene) { - SceneManager._scene.end(); - for (var i = 0; i < SceneManager._scene.entities.buffer.length; i++) { - var entity = SceneManager._scene.entities.buffer[i]; - entity.destroy(); - } - SceneManager._scene = SceneManager._nextScene; - SceneManager._nextScene = null; - SceneManager._scene.begin(); - } + }; + Scene.prototype.onActive = function() {}; + Scene.prototype.onDeactive = function() {}; + Scene.prototype.unload = function() {}; + Scene.prototype.update = function() { + this.entities.updateLists(); + if (this.entityProcessors) + this.entityProcessors.update(); + this.entities.update(); + if (this.entityProcessors) + this.entityProcessors.lateUpdate(); + this.renderableComponents.updateList(); + }; + Scene.prototype.postRender = function() { + var enabledCounter = 0; + if (this.enablePostProcessing) { + for (var i = 0; i < this._postProcessors.length; i++) { + if (this._postProcessors[i].enable) { + var isEven = MathHelper.isEven(enabledCounter); + enabledCounter++; + this._postProcessors[i].process(); } - SceneManager.render(); - }; - SceneManager.render = function () { - if (this.sceneTransition) { - this.sceneTransition.preRender(); - if (this._scene && !this.sceneTransition.hasPreviousSceneRender) { - this._scene.render(); - this._scene.postRender(); - this.sceneTransition.onBeginTransition(); - } - else if (this.sceneTransition) { - if (this._scene && this.sceneTransition.isNewSceneLoaded) { - this._scene.render(); - this._scene.postRender(); - } - this.sceneTransition.render(); - } + } + } + }; + Scene.prototype.render = function() { + for (var i = 0; i < this._renderers.length; i++) { + this._renderers[i].render(this); + } + }; + Scene.prototype.addPostProcessor = function(postProcessor) { + this._postProcessors.push(postProcessor); + this._postProcessors.sort(); + postProcessor.onAddedToScene(this); + if (this._didSceneBegin) { + postProcessor.onSceneBackBufferSizeChanged(this.stage.stageWidth, + this.stage.stageHeight); + } + return postProcessor; + }; + return Scene; +}(egret.DisplayObjectContainer)); +var SceneManager = (function() { + function SceneManager(stage) { + stage.addEventListener(egret.Event.ENTER_FRAME, SceneManager.update, this); + SceneManager.stage = stage; + SceneManager.initialize(stage); + } + Object.defineProperty(SceneManager, "scene", { + get : function() { return this._scene; }, + set : function(value) { + if (!value) + throw new Error("场景不能为空"); + if (this._scene == null) { + this._scene = value; + this._scene.begin(); + } else { + this._nextScene = value; + } + }, + enumerable : true, + configurable : true + }); + SceneManager.initialize = function(stage) { Input.initialize(stage); }; + SceneManager.update = function() { + Time.update(egret.getTimer()); + if (SceneManager._scene) { + for (var i = GlobalManager.globalManagers.length - 1; i >= 0; i--) { + if (GlobalManager.globalManagers[i].enabled) + GlobalManager.globalManagers[i].update(); + } + if (!SceneManager.sceneTransition || + (SceneManager.sceneTransition && + (!SceneManager.sceneTransition.loadsNewScene || + SceneManager.sceneTransition.isNewSceneLoaded))) { + SceneManager._scene.update(); + } + if (SceneManager._nextScene) { + SceneManager._scene.end(); + for (var i = 0; i < SceneManager._scene.entities.buffer.length; i++) { + var entity = SceneManager._scene.entities.buffer[i]; + entity.destroy(); } - else if (this._scene) { - this._scene.render(); - this._scene.postRender(); + SceneManager._scene = SceneManager._nextScene; + SceneManager._nextScene = null; + SceneManager._scene.begin(); + } + } + SceneManager.render(); + }; + SceneManager.render = function() { + if (this.sceneTransition) { + this.sceneTransition.preRender(); + if (this._scene && !this.sceneTransition.hasPreviousSceneRender) { + this._scene.render(); + this._scene.postRender(); + this.sceneTransition.onBeginTransition(); + } else if (this.sceneTransition) { + if (this._scene && this.sceneTransition.isNewSceneLoaded) { + this._scene.render(); + this._scene.postRender(); } - }; - SceneManager.startSceneTransition = function (sceneTransition) { - if (this.sceneTransition) { - console.warn("在前一个场景完成之前,不能开始一个新的场景转换。"); - return; - } - this.sceneTransition = sceneTransition; - return sceneTransition; - }; - return SceneManager; + this.sceneTransition.render(); + } + } else if (this._scene) { + this._scene.render(); + this._scene.postRender(); + } + }; + SceneManager.startSceneTransition = function(sceneTransition) { + if (this.sceneTransition) { + console.warn("在前一个场景完成之前,不能开始一个新的场景转换。"); + return; + } + this.sceneTransition = sceneTransition; + return sceneTransition; + }; + return SceneManager; }()); var DirtyType; -(function (DirtyType) { - DirtyType[DirtyType["clean"] = 0] = "clean"; - DirtyType[DirtyType["positionDirty"] = 1] = "positionDirty"; - DirtyType[DirtyType["scaleDirty"] = 2] = "scaleDirty"; - DirtyType[DirtyType["rotationDirty"] = 3] = "rotationDirty"; +(function(DirtyType) { +DirtyType[DirtyType["clean"] = 0] = "clean"; +DirtyType[DirtyType["positionDirty"] = 1] = "positionDirty"; +DirtyType[DirtyType["scaleDirty"] = 2] = "scaleDirty"; +DirtyType[DirtyType["rotationDirty"] = 3] = "rotationDirty"; })(DirtyType || (DirtyType = {})); var ComponentTransform; -(function (ComponentTransform) { - ComponentTransform[ComponentTransform["position"] = 0] = "position"; - ComponentTransform[ComponentTransform["scale"] = 1] = "scale"; - ComponentTransform[ComponentTransform["rotation"] = 2] = "rotation"; +(function(ComponentTransform) { +ComponentTransform[ComponentTransform["position"] = 0] = "position"; +ComponentTransform[ComponentTransform["scale"] = 1] = "scale"; +ComponentTransform[ComponentTransform["rotation"] = 2] = "rotation"; })(ComponentTransform || (ComponentTransform = {})); -var Transform = (function () { - function Transform(entity) { - this._localRotation = 0; - this._worldTransform = Matrix2D.identity; - this._worldToLocalTransform = Matrix2D.identity; - this._worldInverseTransform = Matrix2D.identity; - this._rotation = 0; - this.entity = entity; - this._scale = this._localScale = Vector2.one; - this._children = []; - } - Object.defineProperty(Transform.prototype, "childCount", { - get: function () { - return this._children.length; - }, - enumerable: true, - configurable: true - }); - Transform.prototype.getChild = function (index) { - return this._children[index]; - }; - Object.defineProperty(Transform.prototype, "worldInverseTransform", { - get: function () { - this.updateTransform(); - if (this._worldInverseDirty) { - this._worldInverseTransform = Matrix2D.invert(this._worldTransform, this._worldInverseTransform); - this._worldInverseDirty = false; - } - return this._worldInverseTransform; - }, - enumerable: true, - configurable: true - }); - Object.defineProperty(Transform.prototype, "localToWorldTransform", { - get: function () { - this.updateTransform(); - return this._worldTransform; - }, - enumerable: true, - configurable: true - }); - Object.defineProperty(Transform.prototype, "worldToLocalTransform", { - get: function () { - if (this._worldToLocalDirty) { - if (!this.parent) { - this._worldInverseTransform = new Matrix2D(); - } - else { - this.parent.updateTransform(); - this._worldToLocalTransform = Matrix2D.invert(this.parent._worldTransform, this._worldToLocalTransform); - } - this._worldToLocalDirty = false; - } - return this._worldToLocalTransform; - }, - enumerable: true, - configurable: true - }); - Object.defineProperty(Transform.prototype, "parent", { - get: function () { - return this._parent; - }, - set: function (value) { - this.setParent(value); - }, - enumerable: true, - configurable: true - }); - Transform.prototype.setParent = function (parent) { - if (this._parent == parent) - return this; - if (this._parent) - this._parent._children.remove(this); - if (parent) - parent._children.push(this); - this._parent = parent; - return this; - }; - Object.defineProperty(Transform.prototype, "rotation", { - get: function () { - this.updateTransform(); - return this._rotation; - }, - set: function (value) { - this.setRotation(value); - }, - enumerable: true, - configurable: true - }); - Object.defineProperty(Transform.prototype, "localRotation", { - get: function () { - this.updateTransform(); - return this._localRotation; - }, - set: function (value) { - this.setLocalRotation(value); - }, - enumerable: true, - configurable: true - }); - Object.defineProperty(Transform.prototype, "position", { - get: function () { - this.updateTransform(); - if (this._positionDirty) { - if (!this.parent) { - this._position = this._localPosition; - } - else { - this.parent.updateTransform(); - this._position = Vector2Ext.transformR(this._localPosition, this.parent._worldTransform); - } - this._positionDirty = false; - } - return this._position; - }, - set: function (value) { - this.setPosition(value); - }, - enumerable: true, - configurable: true - }); - Object.defineProperty(Transform.prototype, "localPosition", { - get: function () { - this.updateTransform(); - return this._localPosition; - }, - set: function (value) { - this.setLocalPosition(value); - }, - enumerable: true, - configurable: true - }); - Object.defineProperty(Transform.prototype, "scale", { - get: function () { - this.updateTransform(); - return this._scale; - }, - set: function (value) { - this.setScale(value); - }, - enumerable: true, - configurable: true - }); - Object.defineProperty(Transform.prototype, "localScale", { - get: function () { - this.updateTransform(); - return this._localScale; - }, - set: function (value) { - this.setLocalScale(value); - }, - enumerable: true, - configurable: true - }); - Object.defineProperty(Transform.prototype, "rotationDegrees", { - get: function () { - return MathHelper.toDegrees(this._rotation); - }, - set: function (value) { - this.setRotation(MathHelper.toRadians(value)); - }, - enumerable: true, - configurable: true - }); - Object.defineProperty(Transform.prototype, "localRotationDegrees", { - get: function () { - return MathHelper.toDegrees(this._localRotation); - }, - set: function (value) { - this.localRotation = MathHelper.toRadians(value); - }, - enumerable: true, - configurable: true - }); - Transform.prototype.setLocalScale = function (scale) { - this._localScale = scale; - this._localDirty = this._positionDirty = this._localScaleDirty = true; - this.setDirty(DirtyType.scaleDirty); - return this; - }; - Transform.prototype.setScale = function (scale) { - this._scale = scale; - if (this.parent) { - this.localScale = Vector2.divide(scale, this.parent._scale); +var Transform = (function() { + function Transform(entity) { + this._localRotation = 0; + this._worldTransform = Matrix2D.identity; + this._worldToLocalTransform = Matrix2D.identity; + this._worldInverseTransform = Matrix2D.identity; + this._rotation = 0; + this.entity = entity; + this._scale = this._localScale = Vector2.one; + this._children = []; + } + Object.defineProperty(Transform.prototype, "childCount", { + get : function() { return this._children.length; }, + enumerable : true, + configurable : true + }); + Transform.prototype.getChild = function( + index) { return this._children[index]; }; + Object.defineProperty(Transform.prototype, "worldInverseTransform", { + get : function() { + this.updateTransform(); + if (this._worldInverseDirty) { + this._worldInverseTransform = + Matrix2D.invert(this._worldTransform, this._worldInverseTransform); + this._worldInverseDirty = false; + } + return this._worldInverseTransform; + }, + enumerable : true, + configurable : true + }); + Object.defineProperty(Transform.prototype, "localToWorldTransform", { + get : function() { + this.updateTransform(); + return this._worldTransform; + }, + enumerable : true, + configurable : true + }); + Object.defineProperty(Transform.prototype, "worldToLocalTransform", { + get : function() { + if (this._worldToLocalDirty) { + if (!this.parent) { + this._worldInverseTransform = new Matrix2D(); + } else { + this.parent.updateTransform(); + this._worldToLocalTransform = Matrix2D.invert( + this.parent._worldTransform, this._worldToLocalTransform); } - else { - this.localScale = scale; - } - return this; - }; - Transform.prototype.setLocalRotationDegrees = function (degrees) { - return this.setLocalRotation(MathHelper.toRadians(degrees)); - }; - Transform.prototype.setLocalRotation = function (radians) { - this._localRotation = radians; - this._localDirty = this._positionDirty = this._localPositionDirty = this._localRotationDirty = this._localScaleDirty = true; - this.setDirty(DirtyType.rotationDirty); - return this; - }; - Transform.prototype.setRotation = function (radians) { - this._rotation = radians; - if (this.parent) { - this.localRotation = this.parent.rotation + radians; - } - else { - this.localRotation = radians; - } - return this; - }; - Transform.prototype.setRotationDegrees = function (degrees) { - return this.setRotation(MathHelper.toRadians(degrees)); - }; - Transform.prototype.setLocalPosition = function (localPosition) { - if (localPosition == this._localPosition) - return this; - this._localPosition = localPosition; - this._localDirty = this._positionDirty = this._localPositionDirty = this._localRotationDirty = this._localScaleDirty = true; - this.setDirty(DirtyType.positionDirty); - return this; - }; - Transform.prototype.setPosition = function (position) { - if (position == this._position) - return this; - this._position = position; - if (this.parent) { - this.localPosition = Vector2.transform(this._position, this._worldToLocalTransform); - } - else { - this.localPosition = position; + this._worldToLocalDirty = false; + } + return this._worldToLocalTransform; + }, + enumerable : true, + configurable : true + }); + Object.defineProperty(Transform.prototype, "parent", { + get : function() { return this._parent; }, + set : function(value) { this.setParent(value); }, + enumerable : true, + configurable : true + }); + Transform.prototype.setParent = function(parent) { + if (this._parent == parent) + return this; + if (this._parent) + this._parent._children.remove(this); + if (parent) + parent._children.push(this); + this._parent = parent; + return this; + }; + Object.defineProperty(Transform.prototype, "rotation", { + get : function() { + this.updateTransform(); + return this._rotation; + }, + set : function(value) { this.setRotation(value); }, + enumerable : true, + configurable : true + }); + Object.defineProperty(Transform.prototype, "localRotation", { + get : function() { + this.updateTransform(); + return this._localRotation; + }, + set : function(value) { this.setLocalRotation(value); }, + enumerable : true, + configurable : true + }); + Object.defineProperty(Transform.prototype, "position", { + get : function() { + this.updateTransform(); + if (this._positionDirty) { + if (!this.parent) { + this._position = this._localPosition; + } else { + this.parent.updateTransform(); + this._position = Vector2Ext.transformR(this._localPosition, + this.parent._worldTransform); } this._positionDirty = false; - return this; - }; - Transform.prototype.setDirty = function (dirtyFlagType) { - if ((this._hierachyDirty & dirtyFlagType) == 0) { - this._hierachyDirty |= dirtyFlagType; - switch (dirtyFlagType) { - 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); - break; - } - if (this._children == null) - this._children = []; - for (var i = 0; i < this._children.length; i++) { - this._children[i].setDirty(dirtyFlagType); - } - } - }; - Transform.prototype.roundPosition = function () { - this.position = this._position.round(); - }; - Transform.prototype.updateTransform = function () { - if (this._hierachyDirty != DirtyType.clean) { - if (this.parent) - this.parent.updateTransform(); - if (this._localDirty) { - if (this._localPositionDirty) { - this._translationMatrix = Matrix2D.createTranslation(this._localPosition.x, this._localPosition.y); - this._localPositionDirty = false; - } - if (this._localRotationDirty) { - this._rotationMatrix = Matrix2D.createRotation(this._localRotation); - this._localRotationDirty = false; - } - if (this._localScaleDirty) { - this._scaleMatrix = Matrix2D.createScale(this._localScale.x, this._localScale.y); - this._localScaleDirty = false; - } - this._localTransform = Matrix2D.multiply(this._scaleMatrix, this._rotationMatrix); - this._localTransform = Matrix2D.multiply(this._localTransform, this._translationMatrix); - if (!this.parent) { - this._worldTransform = this._localTransform; - this._rotation = this._localRotation; - this._scale = this._localScale; - this._worldInverseDirty = true; - } - this._localDirty = false; - } - if (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 = true; - } - this._worldToLocalDirty = true; - this._positionDirty = true; - this._hierachyDirty = DirtyType.clean; - } - }; - return Transform; -}()); -var Camera = (function (_super) { - __extends(Camera, _super); - function Camera() { - var _this = _super.call(this) || this; - _this._origin = Vector2.zero; - _this._minimumZoom = 0.3; - _this._maximumZoom = 3; - _this.followLerp = 0.1; - _this.deadzone = new Rectangle(); - _this.focusOffset = new Vector2(); - _this.mapLockEnabled = false; - _this.mapSize = new Vector2(); - _this._worldSpaceDeadZone = new Rectangle(); - _this._desiredPositionDelta = new Vector2(); - _this.cameraStyle = CameraStyle.lockOn; - _this.width = SceneManager.stage.stageWidth; - _this.height = SceneManager.stage.stageHeight; - _this.setZoom(0); - return _this; + } + return this._position; + }, + set : function(value) { this.setPosition(value); }, + enumerable : true, + configurable : true + }); + Object.defineProperty(Transform.prototype, "localPosition", { + get : function() { + this.updateTransform(); + return this._localPosition; + }, + set : function(value) { this.setLocalPosition(value); }, + enumerable : true, + configurable : true + }); + Object.defineProperty(Transform.prototype, "scale", { + get : function() { + this.updateTransform(); + return this._scale; + }, + set : function(value) { this.setScale(value); }, + enumerable : true, + configurable : true + }); + Object.defineProperty(Transform.prototype, "localScale", { + get : function() { + this.updateTransform(); + return this._localScale; + }, + set : function(value) { this.setLocalScale(value); }, + enumerable : true, + configurable : true + }); + Object.defineProperty(Transform.prototype, "rotationDegrees", { + get : function() { return MathHelper.toDegrees(this._rotation); }, + set : function(value) { this.setRotation(MathHelper.toRadians(value)); }, + enumerable : true, + configurable : true + }); + Object.defineProperty(Transform.prototype, "localRotationDegrees", { + get : function() { return MathHelper.toDegrees(this._localRotation); }, + set : function(value) { this.localRotation = MathHelper.toRadians(value); }, + enumerable : true, + configurable : true + }); + Transform.prototype.setLocalScale = function(scale) { + this._localScale = scale; + this._localDirty = this._positionDirty = this._localScaleDirty = true; + this.setDirty(DirtyType.scaleDirty); + return this; + }; + Transform.prototype.setScale = function(scale) { + this._scale = scale; + if (this.parent) { + this.localScale = Vector2.divide(scale, this.parent._scale); + } else { + this.localScale = scale; } - Object.defineProperty(Camera.prototype, "zoom", { - get: function () { - if (this._zoom == 0) - return 1; - if (this._zoom < 1) - return MathHelper.map(this._zoom, this._minimumZoom, 1, -1, 0); - return MathHelper.map(this._zoom, 1, this._maximumZoom, 0, 1); - }, - set: function (value) { - this.setZoom(value); - }, - enumerable: true, - configurable: true - }); - Object.defineProperty(Camera.prototype, "minimumZoom", { - get: function () { - return this._minimumZoom; - }, - set: function (value) { - this.setMinimumZoom(value); - }, - enumerable: true, - configurable: true - }); - Object.defineProperty(Camera.prototype, "maximumZoom", { - get: function () { - return this._maximumZoom; - }, - set: function (value) { - this.setMaximumZoom(value); - }, - enumerable: true, - configurable: true - }); - Object.defineProperty(Camera.prototype, "origin", { - get: function () { - return this._origin; - }, - set: function (value) { - if (this._origin != value) { - this._origin = value; - } - }, - enumerable: true, - configurable: true - }); - Object.defineProperty(Camera.prototype, "position", { - get: function () { - return this.entity.position; - }, - set: function (value) { - this.entity.position = value; - }, - enumerable: true, - configurable: true - }); - Camera.prototype.onSceneSizeChanged = function (newWidth, newHeight) { - var oldOrigin = this._origin; - this.origin = new Vector2(newWidth / 2, newHeight / 2); - this.entity.position = Vector2.add(this.entity.position, Vector2.subtract(this._origin, oldOrigin)); - }; - Camera.prototype.setMinimumZoom = function (minZoom) { - if (this._zoom < minZoom) - this._zoom = this.minimumZoom; - this._minimumZoom = minZoom; - return this; - }; - Camera.prototype.setMaximumZoom = function (maxZoom) { - if (this._zoom > maxZoom) - this._zoom = maxZoom; - this._maximumZoom = maxZoom; - return this; - }; - Camera.prototype.setZoom = function (zoom) { - var newZoom = MathHelper.clamp(zoom, -1, 1); - if (newZoom == 0) { - this._zoom = 1; + return this; + }; + Transform.prototype.setLocalRotationDegrees = function( + degrees) { return this.setLocalRotation(MathHelper.toRadians(degrees)); }; + Transform.prototype.setLocalRotation = function(radians) { + this._localRotation = radians; + this._localDirty = this._positionDirty = this._localPositionDirty = + this._localRotationDirty = this._localScaleDirty = true; + this.setDirty(DirtyType.rotationDirty); + return this; + }; + Transform.prototype.setRotation = function(radians) { + this._rotation = radians; + if (this.parent) { + this.localRotation = this.parent.rotation + radians; + } else { + this.localRotation = radians; + } + return this; + }; + Transform.prototype.setRotationDegrees = function( + degrees) { return this.setRotation(MathHelper.toRadians(degrees)); }; + Transform.prototype.setLocalPosition = function(localPosition) { + if (localPosition == this._localPosition) + return this; + this._localPosition = localPosition; + this._localDirty = this._positionDirty = this._localPositionDirty = + this._localRotationDirty = this._localScaleDirty = true; + this.setDirty(DirtyType.positionDirty); + return this; + }; + Transform.prototype.setPosition = function(position) { + if (position == this._position) + return this; + this._position = position; + if (this.parent) { + this.localPosition = + Vector2.transform(this._position, this._worldToLocalTransform); + } else { + this.localPosition = position; + } + this._positionDirty = false; + return this; + }; + Transform.prototype.setDirty = function(dirtyFlagType) { + if ((this._hierachyDirty & dirtyFlagType) == 0) { + this._hierachyDirty |= dirtyFlagType; + switch (dirtyFlagType) { + 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); + break; + } + if (this._children == null) + this._children = []; + for (var i = 0; i < this._children.length; i++) { + this._children[i].setDirty(dirtyFlagType); + } + } + }; + Transform.prototype.roundPosition = + function() { this.position = this._position.round(); }; + Transform.prototype.updateTransform = function() { + if (this._hierachyDirty != DirtyType.clean) { + if (this.parent) + this.parent.updateTransform(); + if (this._localDirty) { + if (this._localPositionDirty) { + this._translationMatrix = Matrix2D.createTranslation( + this._localPosition.x, this._localPosition.y); + this._localPositionDirty = false; } - else if (newZoom < 0) { - this._zoom = MathHelper.map(newZoom, -1, 0, this._minimumZoom, 1); + if (this._localRotationDirty) { + this._rotationMatrix = Matrix2D.createRotation(this._localRotation); + this._localRotationDirty = false; } - else { - this._zoom = MathHelper.map(newZoom, 0, 1, 1, this._maximumZoom); + if (this._localScaleDirty) { + this._scaleMatrix = + Matrix2D.createScale(this._localScale.x, this._localScale.y); + this._localScaleDirty = false; } - SceneManager.scene.scaleX = this._zoom; - SceneManager.scene.scaleY = this._zoom; - return this; - }; - Camera.prototype.setRotation = function (rotation) { - SceneManager.scene.rotation = rotation; - return this; - }; - Camera.prototype.setPosition = function (position) { - this.entity.position = position; - return this; - }; - Camera.prototype.follow = function (targetEntity, cameraStyle) { - if (cameraStyle === void 0) { cameraStyle = CameraStyle.cameraWindow; } - this.targetEntity = targetEntity; - this.cameraStyle = cameraStyle; - var cameraBounds = new Rectangle(0, 0, SceneManager.stage.stageWidth, SceneManager.stage.stageHeight); - switch (this.cameraStyle) { - case CameraStyle.cameraWindow: - var w = cameraBounds.width / 6; - var h = cameraBounds.height / 3; - this.deadzone = new Rectangle((cameraBounds.width - w) / 2, (cameraBounds.height - h) / 2, w, h); - break; - case CameraStyle.lockOn: - this.deadzone = new Rectangle(cameraBounds.width / 2, cameraBounds.height / 2, 10, 10); - break; + this._localTransform = + Matrix2D.multiply(this._scaleMatrix, this._rotationMatrix); + this._localTransform = + Matrix2D.multiply(this._localTransform, this._translationMatrix); + if (!this.parent) { + this._worldTransform = this._localTransform; + this._rotation = this._localRotation; + this._scale = this._localScale; + this._worldInverseDirty = true; } - }; - Camera.prototype.update = function () { - var cameraBounds = new Rectangle(0, 0, SceneManager.stage.stageWidth, SceneManager.stage.stageHeight); - var halfScreen = Vector2.multiply(new Vector2(cameraBounds.width, cameraBounds.height), new Vector2(0.5)); - this._worldSpaceDeadZone.x = this.position.x - halfScreen.x + this.deadzone.x + this.focusOffset.x; - this._worldSpaceDeadZone.y = this.position.y - halfScreen.y + this.deadzone.y + this.focusOffset.y; - this._worldSpaceDeadZone.width = this.deadzone.width; - this._worldSpaceDeadZone.height = this.deadzone.height; - if (this.targetEntity) - this.updateFollow(); - this.position = Vector2.lerp(this.position, Vector2.add(this.position, this._desiredPositionDelta), this.followLerp); - this.entity.roundPosition(); - if (this.mapLockEnabled) { - this.position = this.clampToMapSize(this.position); - this.entity.roundPosition(); - } - }; - Camera.prototype.clampToMapSize = function (position) { - var cameraBounds = new Rectangle(0, 0, SceneManager.stage.stageWidth, SceneManager.stage.stageHeight); - var halfScreen = Vector2.multiply(new Vector2(cameraBounds.width, cameraBounds.height), new Vector2(0.5)); - var cameraMax = new Vector2(this.mapSize.x - halfScreen.x, this.mapSize.y - halfScreen.y); - return Vector2.clamp(position, halfScreen, cameraMax); - }; - Camera.prototype.updateFollow = function () { - this._desiredPositionDelta.x = this._desiredPositionDelta.y = 0; - if (this.cameraStyle == CameraStyle.lockOn) { - var targetX = this.targetEntity.position.x; - var targetY = this.targetEntity.position.y; - if (this._worldSpaceDeadZone.x > targetX) - this._desiredPositionDelta.x = targetX - this._worldSpaceDeadZone.x; - else if (this._worldSpaceDeadZone.x < targetX) - this._desiredPositionDelta.x = targetX - this._worldSpaceDeadZone.x; - if (this._worldSpaceDeadZone.y < targetY) - this._desiredPositionDelta.y = targetY - this._worldSpaceDeadZone.y; - else if (this._worldSpaceDeadZone.y > targetY) - this._desiredPositionDelta.y = targetY - this._worldSpaceDeadZone.y; - } - else { - if (!this._targetCollider) { - this._targetCollider = this.targetEntity.getComponent(Collider); - if (!this._targetCollider) - return; - } - var targetBounds = this.targetEntity.getComponent(Collider).bounds; - if (!this._worldSpaceDeadZone.containsRect(targetBounds)) { - if (this._worldSpaceDeadZone.left > targetBounds.left) - this._desiredPositionDelta.x = targetBounds.left - this._worldSpaceDeadZone.left; - else if (this._worldSpaceDeadZone.right < targetBounds.right) - this._desiredPositionDelta.x = targetBounds.right - this._worldSpaceDeadZone.right; - if (this._worldSpaceDeadZone.bottom < targetBounds.bottom) - this._desiredPositionDelta.y = targetBounds.bottom - this._worldSpaceDeadZone.bottom; - else if (this._worldSpaceDeadZone.top > targetBounds.top) - this._desiredPositionDelta.y = targetBounds.top - this._worldSpaceDeadZone.top; - } - } - }; - return Camera; + this._localDirty = false; + } + if (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 = true; + } + this._worldToLocalDirty = true; + this._positionDirty = true; + this._hierachyDirty = DirtyType.clean; + } + }; + return Transform; +}()); +var Camera = (function(_super) { + __extends(Camera, _super); + function Camera() { + var _this = _super.call(this) || this; + _this._origin = Vector2.zero; + _this._minimumZoom = 0.3; + _this._maximumZoom = 3; + _this.followLerp = 0.1; + _this.deadzone = new Rectangle(); + _this.focusOffset = new Vector2(); + _this.mapLockEnabled = false; + _this.mapSize = new Vector2(); + _this._worldSpaceDeadZone = new Rectangle(); + _this._desiredPositionDelta = new Vector2(); + _this.cameraStyle = CameraStyle.lockOn; + _this.width = SceneManager.stage.stageWidth; + _this.height = SceneManager.stage.stageHeight; + _this.setZoom(0); + return _this; + } + Object.defineProperty(Camera.prototype, "zoom", { + get : function() { + if (this._zoom == 0) + return 1; + if (this._zoom < 1) + return MathHelper.map(this._zoom, this._minimumZoom, 1, -1, 0); + return MathHelper.map(this._zoom, 1, this._maximumZoom, 0, 1); + }, + set : function(value) { this.setZoom(value); }, + enumerable : true, + configurable : true + }); + Object.defineProperty(Camera.prototype, "minimumZoom", { + get : function() { return this._minimumZoom; }, + set : function(value) { this.setMinimumZoom(value); }, + enumerable : true, + configurable : true + }); + Object.defineProperty(Camera.prototype, "maximumZoom", { + get : function() { return this._maximumZoom; }, + set : function(value) { this.setMaximumZoom(value); }, + enumerable : true, + configurable : true + }); + Object.defineProperty(Camera.prototype, "origin", { + get : function() { return this._origin; }, + set : function(value) { + if (this._origin != value) { + this._origin = value; + } + }, + enumerable : true, + configurable : true + }); + Object.defineProperty(Camera.prototype, "position", { + get : function() { return this.entity.position; }, + set : function(value) { this.entity.position = value; }, + enumerable : true, + configurable : true + }); + Camera.prototype.onSceneSizeChanged = function(newWidth, newHeight) { + var oldOrigin = this._origin; + this.origin = new Vector2(newWidth / 2, newHeight / 2); + this.entity.position = Vector2.add( + this.entity.position, Vector2.subtract(this._origin, oldOrigin)); + }; + Camera.prototype.setMinimumZoom = function(minZoom) { + if (this._zoom < minZoom) + this._zoom = this.minimumZoom; + this._minimumZoom = minZoom; + return this; + }; + Camera.prototype.setMaximumZoom = function(maxZoom) { + if (this._zoom > maxZoom) + this._zoom = maxZoom; + this._maximumZoom = maxZoom; + return this; + }; + Camera.prototype.setZoom = function(zoom) { + var newZoom = MathHelper.clamp(zoom, -1, 1); + if (newZoom == 0) { + this._zoom = 1; + } else if (newZoom < 0) { + this._zoom = MathHelper.map(newZoom, -1, 0, this._minimumZoom, 1); + } else { + this._zoom = MathHelper.map(newZoom, 0, 1, 1, this._maximumZoom); + } + SceneManager.scene.scaleX = this._zoom; + SceneManager.scene.scaleY = this._zoom; + return this; + }; + Camera.prototype.setRotation = function(rotation) { + SceneManager.scene.rotation = rotation; + return this; + }; + Camera.prototype.setPosition = function(position) { + this.entity.position = position; + return this; + }; + Camera.prototype.follow = function(targetEntity, cameraStyle) { + if (cameraStyle === void 0) { + cameraStyle = CameraStyle.cameraWindow; + } + this.targetEntity = targetEntity; + this.cameraStyle = cameraStyle; + var cameraBounds = new Rectangle(0, 0, SceneManager.stage.stageWidth, + SceneManager.stage.stageHeight); + switch (this.cameraStyle) { + case CameraStyle.cameraWindow: + var w = cameraBounds.width / 6; + var h = cameraBounds.height / 3; + this.deadzone = new Rectangle((cameraBounds.width - w) / 2, + (cameraBounds.height - h) / 2, w, h); + break; + case CameraStyle.lockOn: + this.deadzone = new Rectangle(cameraBounds.width / 2, + cameraBounds.height / 2, 10, 10); + break; + } + }; + Camera.prototype.update = function() { + var cameraBounds = new Rectangle(0, 0, SceneManager.stage.stageWidth, + SceneManager.stage.stageHeight); + var halfScreen = Vector2.multiply( + new Vector2(cameraBounds.width, cameraBounds.height), new Vector2(0.5)); + this._worldSpaceDeadZone.x = + this.position.x - halfScreen.x + this.deadzone.x + this.focusOffset.x; + this._worldSpaceDeadZone.y = + this.position.y - halfScreen.y + this.deadzone.y + this.focusOffset.y; + this._worldSpaceDeadZone.width = this.deadzone.width; + this._worldSpaceDeadZone.height = this.deadzone.height; + if (this.targetEntity) + this.updateFollow(); + this.position = Vector2.lerp( + this.position, Vector2.add(this.position, this._desiredPositionDelta), + this.followLerp); + this.entity.roundPosition(); + if (this.mapLockEnabled) { + this.position = this.clampToMapSize(this.position); + this.entity.roundPosition(); + } + }; + Camera.prototype.clampToMapSize = function(position) { + var cameraBounds = new Rectangle(0, 0, SceneManager.stage.stageWidth, + SceneManager.stage.stageHeight); + var halfScreen = Vector2.multiply( + new Vector2(cameraBounds.width, cameraBounds.height), new Vector2(0.5)); + var cameraMax = new Vector2(this.mapSize.x - halfScreen.x, + this.mapSize.y - halfScreen.y); + return Vector2.clamp(position, halfScreen, cameraMax); + }; + Camera.prototype.updateFollow = function() { + this._desiredPositionDelta.x = this._desiredPositionDelta.y = 0; + if (this.cameraStyle == CameraStyle.lockOn) { + var targetX = this.targetEntity.position.x; + var targetY = this.targetEntity.position.y; + if (this._worldSpaceDeadZone.x > targetX) + this._desiredPositionDelta.x = targetX - this._worldSpaceDeadZone.x; + else if (this._worldSpaceDeadZone.x < targetX) + this._desiredPositionDelta.x = targetX - this._worldSpaceDeadZone.x; + if (this._worldSpaceDeadZone.y < targetY) + this._desiredPositionDelta.y = targetY - this._worldSpaceDeadZone.y; + else if (this._worldSpaceDeadZone.y > targetY) + this._desiredPositionDelta.y = targetY - this._worldSpaceDeadZone.y; + } else { + if (!this._targetCollider) { + this._targetCollider = this.targetEntity.getComponent(Collider); + if (!this._targetCollider) + return; + } + var targetBounds = this.targetEntity.getComponent(Collider).bounds; + if (!this._worldSpaceDeadZone.containsRect(targetBounds)) { + if (this._worldSpaceDeadZone.left > targetBounds.left) + this._desiredPositionDelta.x = + targetBounds.left - this._worldSpaceDeadZone.left; + else if (this._worldSpaceDeadZone.right < targetBounds.right) + this._desiredPositionDelta.x = + targetBounds.right - this._worldSpaceDeadZone.right; + if (this._worldSpaceDeadZone.bottom < targetBounds.bottom) + this._desiredPositionDelta.y = + targetBounds.bottom - this._worldSpaceDeadZone.bottom; + else if (this._worldSpaceDeadZone.top > targetBounds.top) + this._desiredPositionDelta.y = + targetBounds.top - this._worldSpaceDeadZone.top; + } + } + }; + return Camera; }(Component)); var CameraStyle; -(function (CameraStyle) { - CameraStyle[CameraStyle["lockOn"] = 0] = "lockOn"; - CameraStyle[CameraStyle["cameraWindow"] = 1] = "cameraWindow"; +(function(CameraStyle) { +CameraStyle[CameraStyle["lockOn"] = 0] = "lockOn"; +CameraStyle[CameraStyle["cameraWindow"] = 1] = "cameraWindow"; })(CameraStyle || (CameraStyle = {})); -var ComponentPool = (function () { - function ComponentPool(typeClass) { - this._type = typeClass; - this._cache = []; +var ComponentPool = (function() { + function ComponentPool(typeClass) { + this._type = typeClass; + this._cache = []; + } + ComponentPool.prototype.obtain = function() { + try { + return this._cache.length > 0 ? this._cache.shift() : new this._type(); + } catch (err) { + throw new Error(this._type + err); } - ComponentPool.prototype.obtain = function () { - try { - return this._cache.length > 0 ? this._cache.shift() : new this._type(); - } - catch (err) { - throw new Error(this._type + err); - } - }; - ComponentPool.prototype.free = function (component) { - component.reset(); - this._cache.push(component); - }; - return ComponentPool; + }; + ComponentPool.prototype.free = function(component) { + component.reset(); + this._cache.push(component); + }; + return ComponentPool; }()); -var Mesh = (function (_super) { - __extends(Mesh, _super); - function Mesh() { - return _super !== null && _super.apply(this, arguments) || this; +var Mesh = (function(_super) { + __extends(Mesh, _super); + function Mesh() { + return _super !== null && _super.apply(this, arguments) || this; + } + Mesh.prototype.initialize = function() {}; + Mesh.prototype.setVertPosition = function(positions) { + var createVerts = !this._verts || this._verts.length != positions.length; + if (createVerts) + this._verts = new Array(positions.length); + for (var i = 0; i < this._verts.length; i++) { + this._verts[i] = new VertexPosition(positions[i]); } - Mesh.prototype.initialize = function () { - }; - Mesh.prototype.setVertPosition = function (positions) { - var createVerts = !this._verts || this._verts.length != positions.length; - if (createVerts) - this._verts = new Array(positions.length); - for (var i = 0; i < this._verts.length; i++) { - this._verts[i] = new VertexPosition(positions[i]); - } - return this; - }; - Mesh.prototype.setTriangles = function (triangles) { - this._primitiveCount = triangles.length / 3; - this._triangles = triangles; - return this; - }; - Mesh.prototype.recalculateBounds = function () { - this._topLeftVertPosition = new Vector2(Number.MAX_VALUE, Number.MAX_VALUE); - var max = new Vector2(Number.MIN_VALUE, Number.MIN_VALUE); - for (var i = 0; i < this._verts.length; i++) { - this._topLeftVertPosition.x = Math.min(this._topLeftVertPosition.x, this._verts[i].position.x); - this._topLeftVertPosition.y = Math.min(this._topLeftVertPosition.y, this._verts[i].position.y); - max.x = Math.max(max.x, this._verts[i].position.x); - max.y = Math.max(max.y, this._verts[i].position.y); - } - this._width = max.x - this._topLeftVertPosition.x; - this._height = max.y - this._topLeftVertPosition.y; - return this; - }; - Mesh.prototype.render = function () { - }; - return Mesh; + return this; + }; + Mesh.prototype.setTriangles = function(triangles) { + this._primitiveCount = triangles.length / 3; + this._triangles = triangles; + return this; + }; + Mesh.prototype.recalculateBounds = function() { + this._topLeftVertPosition = new Vector2(Number.MAX_VALUE, Number.MAX_VALUE); + var max = new Vector2(Number.MIN_VALUE, Number.MIN_VALUE); + for (var i = 0; i < this._verts.length; i++) { + this._topLeftVertPosition.x = + Math.min(this._topLeftVertPosition.x, this._verts[i].position.x); + this._topLeftVertPosition.y = + Math.min(this._topLeftVertPosition.y, this._verts[i].position.y); + max.x = Math.max(max.x, this._verts[i].position.x); + max.y = Math.max(max.y, this._verts[i].position.y); + } + this._width = max.x - this._topLeftVertPosition.x; + this._height = max.y - this._topLeftVertPosition.y; + return this; + }; + Mesh.prototype.render = function() {}; + return Mesh; }(Component)); -var VertexPosition = (function () { - function VertexPosition(position) { - this.position = position; - } - return VertexPosition; +var VertexPosition = (function() { + function VertexPosition(position) { this.position = position; } + return VertexPosition; }()); -var PolygonMesh = (function (_super) { - __extends(PolygonMesh, _super); - function PolygonMesh(points, arePointsCCW) { - if (arePointsCCW === void 0) { arePointsCCW = true; } - var _this = _super.call(this) || this; - var triangulator = new Triangulator(); - triangulator.triangulate(points, arePointsCCW); - _this.setVertPosition(points); - _this.setTriangles(triangulator.triangleIndices); - _this.recalculateBounds(); - return _this; +var PolygonMesh = (function(_super) { + __extends(PolygonMesh, _super); + function PolygonMesh(points, arePointsCCW) { + if (arePointsCCW === void 0) { + arePointsCCW = true; } - return PolygonMesh; + var _this = _super.call(this) || this; + var triangulator = new Triangulator(); + triangulator.triangulate(points, arePointsCCW); + _this.setVertPosition(points); + _this.setTriangles(triangulator.triangleIndices); + _this.recalculateBounds(); + return _this; + } + return PolygonMesh; }(Mesh)); -var PooledComponent = (function (_super) { - __extends(PooledComponent, _super); - function PooledComponent() { - return _super !== null && _super.apply(this, arguments) || this; - } - return PooledComponent; +var PooledComponent = (function(_super) { + __extends(PooledComponent, _super); + function PooledComponent() { + return _super !== null && _super.apply(this, arguments) || this; + } + return PooledComponent; }(Component)); -var RenderableComponent = (function (_super) { - __extends(RenderableComponent, _super); - function RenderableComponent() { - var _this = _super !== null && _super.apply(this, arguments) || this; - _this._areBoundsDirty = true; - _this._bounds = new Rectangle(); - _this._localOffset = Vector2.zero; - _this.color = 0x000000; - return _this; - } - Object.defineProperty(RenderableComponent.prototype, "width", { - get: function () { - return this.getWidth(); - }, - enumerable: true, - configurable: true - }); - Object.defineProperty(RenderableComponent.prototype, "height", { - get: function () { - return this.getHeight(); - }, - enumerable: true, - configurable: true - }); - Object.defineProperty(RenderableComponent.prototype, "isVisible", { - get: function () { - return this._isVisible; - }, - set: function (value) { - this._isVisible = value; - if (this._isVisible) - this.onBecameVisible(); - else - this.onBecameInvisible(); - }, - enumerable: true, - configurable: true - }); - Object.defineProperty(RenderableComponent.prototype, "bounds", { - get: function () { - return new Rectangle(this.getBounds().x, this.getBounds().y, this.getBounds().width, this.getBounds().height); - }, - enumerable: true, - configurable: true - }); - RenderableComponent.prototype.getWidth = function () { - return this.bounds.width; - }; - RenderableComponent.prototype.getHeight = function () { - return this.bounds.height; - }; - RenderableComponent.prototype.onBecameVisible = function () { }; - RenderableComponent.prototype.onBecameInvisible = function () { }; - RenderableComponent.prototype.isVisibleFromCamera = function (camera) { - this.isVisible = camera.getBounds().intersects(this.getBounds()); - return this.isVisible; - }; - RenderableComponent.prototype.onEntityTransformChanged = function (comp) { - this._areBoundsDirty = true; - }; - return RenderableComponent; +var RenderableComponent = (function(_super) { + __extends(RenderableComponent, _super); + function RenderableComponent() { + var _this = _super !== null && _super.apply(this, arguments) || this; + _this._areBoundsDirty = true; + _this._bounds = new Rectangle(); + _this._localOffset = Vector2.zero; + _this.color = 0x000000; + return _this; + } + Object.defineProperty(RenderableComponent.prototype, "width", { + get : function() { return this.getWidth(); }, + enumerable : true, + configurable : true + }); + Object.defineProperty(RenderableComponent.prototype, "height", { + get : function() { return this.getHeight(); }, + enumerable : true, + configurable : true + }); + Object.defineProperty(RenderableComponent.prototype, "isVisible", { + get : function() { return this._isVisible; }, + set : function(value) { + this._isVisible = value; + if (this._isVisible) + this.onBecameVisible(); + else + this.onBecameInvisible(); + }, + enumerable : true, + configurable : true + }); + Object.defineProperty(RenderableComponent.prototype, "bounds", { + get : function() { + return new Rectangle(this.getBounds().x, this.getBounds().y, + this.getBounds().width, this.getBounds().height); + }, + enumerable : true, + configurable : true + }); + RenderableComponent.prototype.getWidth = + function() { return this.bounds.width; }; + RenderableComponent.prototype.getHeight = + function() { return this.bounds.height; }; + RenderableComponent.prototype.onBecameVisible = function() {}; + RenderableComponent.prototype.onBecameInvisible = function() {}; + RenderableComponent.prototype.isVisibleFromCamera = function(camera) { + this.isVisible = camera.getBounds().intersects(this.getBounds()); + return this.isVisible; + }; + RenderableComponent.prototype.onEntityTransformChanged = function( + comp) { this._areBoundsDirty = true; }; + return RenderableComponent; }(PooledComponent)); -var ScreenSpaceCamera = (function (_super) { - __extends(ScreenSpaceCamera, _super); - function ScreenSpaceCamera() { - return _super !== null && _super.apply(this, arguments) || this; - } - ScreenSpaceCamera.prototype.updateMatrixes = function () { - }; - return ScreenSpaceCamera; +var ScreenSpaceCamera = (function(_super) { + __extends(ScreenSpaceCamera, _super); + function ScreenSpaceCamera() { + return _super !== null && _super.apply(this, arguments) || this; + } + ScreenSpaceCamera.prototype.updateMatrixes = function() {}; + return ScreenSpaceCamera; }(Camera)); -var Sprite = (function () { - function Sprite(texture, sourceRect, origin) { - if (sourceRect === void 0) { sourceRect = new Rectangle(0, 0, texture.textureWidth, texture.textureHeight); } - if (origin === void 0) { origin = sourceRect.getHalfSize(); } - this.uvs = new Rectangle(); - this.texture2D = texture; - this.sourceRect = sourceRect; - this.center = new Vector2(sourceRect.width * 0.5, sourceRect.height * 0.5); - this.origin = origin; - var inverseTexW = 1 / texture.textureWidth; - var inverseTexH = 1 / texture.textureHeight; - this.uvs.x = sourceRect.x * inverseTexW; - this.uvs.y = sourceRect.y * inverseTexH; - this.uvs.width = sourceRect.width * inverseTexW; - this.uvs.height = sourceRect.height * inverseTexH; +var Sprite = (function() { + function Sprite(texture, sourceRect, origin) { + if (sourceRect === void 0) { + sourceRect = + new Rectangle(0, 0, texture.textureWidth, texture.textureHeight); } - return Sprite; + if (origin === void 0) { + origin = sourceRect.getHalfSize(); + } + this.uvs = new Rectangle(); + this.texture2D = texture; + this.sourceRect = sourceRect; + this.center = new Vector2(sourceRect.width * 0.5, sourceRect.height * 0.5); + this.origin = origin; + var inverseTexW = 1 / texture.textureWidth; + var inverseTexH = 1 / texture.textureHeight; + this.uvs.x = sourceRect.x * inverseTexW; + this.uvs.y = sourceRect.y * inverseTexH; + this.uvs.width = sourceRect.width * inverseTexW; + this.uvs.height = sourceRect.height * inverseTexH; + } + return Sprite; }()); -var SpriteRenderer = (function (_super) { - __extends(SpriteRenderer, _super); - function SpriteRenderer() { - return _super !== null && _super.apply(this, arguments) || this; +var SpriteRenderer = (function(_super) { + __extends(SpriteRenderer, _super); + function SpriteRenderer() { + return _super !== null && _super.apply(this, arguments) || this; + } + Object.defineProperty(SpriteRenderer.prototype, "origin", { + get : function() { return this._origin; }, + set : function(value) { this.setOrigin(value); }, + enumerable : true, + configurable : true + }); + SpriteRenderer.prototype.setOrigin = function(origin) { + if (this._origin != origin) { + this._origin = origin; } - Object.defineProperty(SpriteRenderer.prototype, "origin", { - get: function () { - return this._origin; - }, - set: function (value) { - this.setOrigin(value); - }, - enumerable: true, - configurable: true - }); - SpriteRenderer.prototype.setOrigin = function (origin) { - if (this._origin != origin) { - this._origin = origin; - } - return this; - }; - SpriteRenderer.prototype.setSprite = function (sprite) { - this.removeChildren(); - this._sprite = sprite; - if (this._sprite) - this._origin = this._sprite.origin; - this._bitmap = new egret.Bitmap(sprite.texture2D); - this.addChild(this._bitmap); - return this; - }; - SpriteRenderer.prototype.setColor = function (color) { - var colorMatrix = [ - 1, 0, 0, 0, 0, - 0, 1, 0, 0, 0, - 0, 0, 1, 0, 0, - 0, 0, 0, 1, 0 - ]; - colorMatrix[0] = Math.floor(color / 256 / 256) / 255; - colorMatrix[6] = Math.floor(color / 256 % 256) / 255; - colorMatrix[12] = color % 256 / 255; - var colorFilter = new egret.ColorMatrixFilter(colorMatrix); - this.filters = [colorFilter]; - return this; - }; - SpriteRenderer.prototype.isVisibleFromCamera = function (camera) { - this.isVisible = new Rectangle(0, 0, this.stage.stageWidth, this.stage.stageHeight).intersects(this.bounds); - this.visible = this.isVisible; - return this.isVisible; - }; - SpriteRenderer.prototype.render = function (camera) { - this.x = this.entity.position.x - this.origin.x - camera.position.x + camera.origin.x; - this.y = this.entity.position.y - this.origin.y - camera.position.y + camera.origin.y; - }; - SpriteRenderer.prototype.onRemovedFromEntity = function () { - if (this.parent) - this.parent.removeChild(this); - }; - SpriteRenderer.prototype.reset = function () { - }; - return SpriteRenderer; + return this; + }; + SpriteRenderer.prototype.setSprite = function(sprite) { + this.removeChildren(); + this._sprite = sprite; + if (this._sprite) + this._origin = this._sprite.origin; + this._bitmap = new egret.Bitmap(sprite.texture2D); + this.addChild(this._bitmap); + return this; + }; + SpriteRenderer.prototype.setColor = function(color) { + var colorMatrix = + [ 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0 ]; + colorMatrix[0] = Math.floor(color / 256 / 256) / 255; + colorMatrix[6] = Math.floor(color / 256 % 256) / 255; + colorMatrix[12] = color % 256 / 255; + var colorFilter = new egret.ColorMatrixFilter(colorMatrix); + this.filters = [ colorFilter ]; + return this; + }; + SpriteRenderer.prototype.isVisibleFromCamera = function(camera) { + this.isVisible = + new Rectangle(0, 0, this.stage.stageWidth, this.stage.stageHeight) + .intersects(this.bounds); + this.visible = this.isVisible; + return this.isVisible; + }; + SpriteRenderer.prototype.render = function(camera) { + this.x = this.entity.position.x - this.origin.x - camera.position.x + + camera.origin.x; + this.y = this.entity.position.y - this.origin.y - camera.position.y + + camera.origin.y; + }; + SpriteRenderer.prototype.onRemovedFromEntity = function() { + if (this.parent) + this.parent.removeChild(this); + }; + SpriteRenderer.prototype.reset = function() {}; + return SpriteRenderer; }(RenderableComponent)); -var Mover = (function (_super) { - __extends(Mover, _super); - function Mover() { - return _super !== null && _super.apply(this, arguments) || this; +var Mover = (function(_super) { + __extends(Mover, _super); + function Mover() { + return _super !== null && _super.apply(this, arguments) || this; + } + Mover.prototype.onAddedToEntity = function() { + this._triggerHelper = new ColliderTriggerHelper(this.entity); + }; + Mover.prototype.calculateMovement = function(motion) { + var collisionResult = new CollisionResult(); + if (!this.entity.getComponent(Collider) || !this._triggerHelper) { + return null; } - Mover.prototype.onAddedToEntity = function () { - this._triggerHelper = new ColliderTriggerHelper(this.entity); - }; - Mover.prototype.calculateMovement = function (motion) { - var collisionResult = new CollisionResult(); - if (!this.entity.getComponent(Collider) || !this._triggerHelper) { - return null; + var colliders = this.entity.getComponents(Collider); + for (var i = 0; i < colliders.length; i++) { + var collider = colliders[i]; + if (collider.isTrigger) + continue; + var bounds = collider.bounds; + bounds.x += motion.x; + bounds.y += motion.y; + var neighbors = Physics.boxcastBroadphaseExcludingSelf( + collider, bounds, collider.collidesWithLayers); + for (var j = 0; j < neighbors.length; j++) { + var neighbor = neighbors[j]; + if (neighbor.isTrigger) + continue; + var _internalcollisionResult = collider.collidesWith(neighbor, motion); + if (_internalcollisionResult) { + motion = Vector2.subtract( + motion, _internalcollisionResult.minimumTranslationVector); + if (_internalcollisionResult.collider) { + collisionResult = _internalcollisionResult; + } } - var colliders = this.entity.getComponents(Collider); - for (var i = 0; i < colliders.length; i++) { - var collider = colliders[i]; - if (collider.isTrigger) - continue; - var bounds = collider.bounds; - bounds.x += motion.x; - bounds.y += motion.y; - var neighbors = Physics.boxcastBroadphaseExcludingSelf(collider, bounds, collider.collidesWithLayers); - for (var j = 0; j < neighbors.length; j++) { - var neighbor = neighbors[j]; - if (neighbor.isTrigger) - continue; - var _internalcollisionResult = collider.collidesWith(neighbor, motion); - if (_internalcollisionResult) { - motion = Vector2.subtract(motion, _internalcollisionResult.minimumTranslationVector); - if (_internalcollisionResult.collider) { - collisionResult = _internalcollisionResult; - } - } - } - } - ListPool.free(colliders); - return collisionResult; - }; - Mover.prototype.applyMovement = function (motion) { - this.entity.position = Vector2.add(this.entity.position, motion); - if (this._triggerHelper) - this._triggerHelper.update(); - }; - Mover.prototype.move = function (motion) { - var collisionResult = this.calculateMovement(motion); - this.applyMovement(motion); - return collisionResult; - }; - return Mover; + } + } + ListPool.free(colliders); + return collisionResult; + }; + Mover.prototype.applyMovement = function(motion) { + this.entity.position = Vector2.add(this.entity.position, motion); + if (this._triggerHelper) + this._triggerHelper.update(); + }; + Mover.prototype.move = function(motion) { + var collisionResult = this.calculateMovement(motion); + this.applyMovement(motion); + return collisionResult; + }; + return Mover; }(Component)); -var Collider = (function (_super) { - __extends(Collider, _super); - function Collider() { - var _this = _super !== null && _super.apply(this, arguments) || this; - _this.physicsLayer = 1 << 0; - _this.shouldColliderScaleAndRotationWithTransform = true; - _this.collidesWithLayers = Physics.allLayers; - _this._isPositionDirty = true; - _this._isRotationDirty = true; - _this._localOffset = new Vector2(0, 0); - return _this; +var Collider = (function(_super) { + __extends(Collider, _super); + function Collider() { + var _this = _super !== null && _super.apply(this, arguments) || this; + _this.physicsLayer = 1 << 0; + _this.shouldColliderScaleAndRotationWithTransform = true; + _this.collidesWithLayers = Physics.allLayers; + _this._isPositionDirty = true; + _this._isRotationDirty = true; + _this._localOffset = new Vector2(0, 0); + return _this; + } + Object.defineProperty(Collider.prototype, "bounds", { + get : function() { + if (this._isPositionDirty || this._isRotationDirty) { + this.shape.recalculateBounds(this); + this._isPositionDirty = this._isRotationDirty = false; + } + return this.shape.bounds; + }, + enumerable : true, + configurable : true + }); + Object.defineProperty(Collider.prototype, "localOffset", { + get : function() { return this._localOffset; }, + set : function(value) { this.setLocalOffset(value); }, + enumerable : true, + configurable : true + }); + Collider.prototype.setLocalOffset = function(offset) { + if (this._localOffset != offset) { + this.unregisterColliderWithPhysicsSystem(); + this._localOffset = offset; + this._localOffsetLength = this._localOffset.length(); + this._isPositionDirty = true; + this.registerColliderWithPhysicsSystem(); } - Object.defineProperty(Collider.prototype, "bounds", { - get: function () { - if (this._isPositionDirty || this._isRotationDirty) { - this.shape.recalculateBounds(this); - this._isPositionDirty = this._isRotationDirty = false; - } - return this.shape.bounds; - }, - enumerable: true, - configurable: true - }); - Object.defineProperty(Collider.prototype, "localOffset", { - get: function () { - return this._localOffset; - }, - set: function (value) { - this.setLocalOffset(value); - }, - enumerable: true, - configurable: true - }); - Collider.prototype.setLocalOffset = function (offset) { - if (this._localOffset != offset) { - this.unregisterColliderWithPhysicsSystem(); - this._localOffset = offset; - this._localOffsetLength = this._localOffset.length(); - this._isPositionDirty = true; - this.registerColliderWithPhysicsSystem(); + }; + Collider.prototype.registerColliderWithPhysicsSystem = function() { + if (this._isParentEntityAddedToScene && !this._isColliderRegistered) { + Physics.addCollider(this); + this._isColliderRegistered = true; + } + }; + Collider.prototype.unregisterColliderWithPhysicsSystem = function() { + if (this._isParentEntityAddedToScene && this._isColliderRegistered) { + Physics.removeCollider(this); + } + this._isColliderRegistered = false; + }; + Collider.prototype.overlaps = function( + other) { return this.shape.overlaps(other.shape); }; + Collider.prototype.collidesWith = function(collider, motion) { + var oldPosition = this.shape.position; + this.shape.position = Vector2.add(this.shape.position, motion); + var result = this.shape.collidesWithShape(collider.shape); + if (result) + result.collider = collider; + this.shape.position = oldPosition; + return result; + }; + Collider.prototype.onAddedToEntity = function() { + if (this._colliderRequiresAutoSizing) { + if (!(this instanceof BoxCollider)) { + console.error( + "Only box and circle colliders can be created automatically"); + } + var renderable = this.entity.getComponent(RenderableComponent); + if (renderable) { + var renderbaleBounds = renderable.bounds; + var width = renderbaleBounds.width / this.entity.scale.x; + var height = renderbaleBounds.height / this.entity.scale.y; + if (this instanceof BoxCollider) { + var boxCollider = this; + boxCollider.width = width; + boxCollider.height = height; + this.localOffset = + Vector2.subtract(renderbaleBounds.center, this.entity.position); } - }; - Collider.prototype.registerColliderWithPhysicsSystem = function () { - if (this._isParentEntityAddedToScene && !this._isColliderRegistered) { - Physics.addCollider(this); - this._isColliderRegistered = true; - } - }; - Collider.prototype.unregisterColliderWithPhysicsSystem = function () { - if (this._isParentEntityAddedToScene && this._isColliderRegistered) { - Physics.removeCollider(this); - } - this._isColliderRegistered = false; - }; - Collider.prototype.overlaps = function (other) { - return this.shape.overlaps(other.shape); - }; - Collider.prototype.collidesWith = function (collider, motion) { - var oldPosition = this.shape.position; - this.shape.position = Vector2.add(this.shape.position, motion); - var result = this.shape.collidesWithShape(collider.shape); - if (result) - result.collider = collider; - this.shape.position = oldPosition; - return result; - }; - Collider.prototype.onAddedToEntity = function () { - if (this._colliderRequiresAutoSizing) { - if (!(this instanceof BoxCollider)) { - console.error("Only box and circle colliders can be created automatically"); - } - var renderable = this.entity.getComponent(RenderableComponent); - if (renderable) { - var renderbaleBounds = renderable.bounds; - var width = renderbaleBounds.width / this.entity.scale.x; - var height = renderbaleBounds.height / this.entity.scale.y; - if (this instanceof BoxCollider) { - var boxCollider = this; - boxCollider.width = width; - boxCollider.height = height; - this.localOffset = Vector2.subtract(renderbaleBounds.center, this.entity.position); - } - } - } - this._isParentEntityAddedToScene = true; - this.registerColliderWithPhysicsSystem(); - }; - Collider.prototype.onRemovedFromEntity = function () { - this.unregisterColliderWithPhysicsSystem(); - this._isParentEntityAddedToScene = false; - }; - Collider.prototype.onEntityTransformChanged = function (comp) { - switch (comp) { - case ComponentTransform.position: - this._isPositionDirty = true; - break; - case ComponentTransform.scale: - this._isPositionDirty = true; - break; - case ComponentTransform.rotation: - this._isRotationDirty = true; - break; - } - if (this._isColliderRegistered) - Physics.updateCollider(this); - }; - Collider.prototype.onEnabled = function () { - this.registerColliderWithPhysicsSystem(); - this._isPositionDirty = this._isRotationDirty = true; - }; - Collider.prototype.onDisabled = function () { - this.unregisterColliderWithPhysicsSystem(); - }; - return Collider; + } + } + this._isParentEntityAddedToScene = true; + this.registerColliderWithPhysicsSystem(); + }; + Collider.prototype.onRemovedFromEntity = function() { + this.unregisterColliderWithPhysicsSystem(); + this._isParentEntityAddedToScene = false; + }; + Collider.prototype.onEntityTransformChanged = function(comp) { + switch (comp) { + case ComponentTransform.position: + this._isPositionDirty = true; + break; + case ComponentTransform.scale: + this._isPositionDirty = true; + break; + case ComponentTransform.rotation: + this._isRotationDirty = true; + break; + } + if (this._isColliderRegistered) + Physics.updateCollider(this); + }; + Collider.prototype.onEnabled = function() { + this.registerColliderWithPhysicsSystem(); + this._isPositionDirty = this._isRotationDirty = true; + }; + Collider.prototype.onDisabled = + function() { this.unregisterColliderWithPhysicsSystem(); }; + return Collider; }(Component)); -var BoxCollider = (function (_super) { - __extends(BoxCollider, _super); - function BoxCollider() { - var _this = _super.call(this) || this; - _this.shape = new Box(1, 1); - _this._colliderRequiresAutoSizing = true; - return _this; +var BoxCollider = (function(_super) { + __extends(BoxCollider, _super); + function BoxCollider() { + var _this = _super.call(this) || this; + _this.shape = new Box(1, 1); + _this._colliderRequiresAutoSizing = true; + return _this; + } + Object.defineProperty(BoxCollider.prototype, "width", { + get : function() { return this.shape.width; }, + set : function(value) { this.setWidth(value); }, + enumerable : true, + configurable : true + }); + BoxCollider.prototype.setWidth = function(width) { + this._colliderRequiresAutoSizing = false; + var box = this.shape; + if (width != box.width) { + box.updateBox(width, box.height); + this._isPositionDirty = true; + if (this.entity && this._isParentEntityAddedToScene) + Physics.updateCollider(this); } - Object.defineProperty(BoxCollider.prototype, "width", { - get: function () { - return this.shape.width; - }, - set: function (value) { - this.setWidth(value); - }, - enumerable: true, - configurable: true - }); - BoxCollider.prototype.setWidth = function (width) { - this._colliderRequiresAutoSizing = false; - var box = this.shape; - if (width != box.width) { - box.updateBox(width, box.height); - this._isPositionDirty = true; - if (this.entity && this._isParentEntityAddedToScene) - Physics.updateCollider(this); - } - return this; - }; - Object.defineProperty(BoxCollider.prototype, "height", { - get: function () { - return this.shape.height; - }, - set: function (value) { - this.setHeight(value); - }, - enumerable: true, - configurable: true - }); - BoxCollider.prototype.setHeight = function (height) { - this._colliderRequiresAutoSizing = false; - var box = this.shape; - if (height != box.height) { - box.updateBox(box.width, height); - this._isPositionDirty = true; - if (this.entity && this._isParentEntityAddedToScene) - Physics.updateCollider(this); - } - }; - BoxCollider.prototype.setSize = function (width, height) { - this._colliderRequiresAutoSizing = false; - var box = this.shape; - if (width != box.width || height != box.height) { - box.updateBox(width, height); - this._isPositionDirty = true; - if (this.entity && this._isParentEntityAddedToScene) - Physics.updateCollider(this); - } - return this; - }; - return BoxCollider; + return this; + }; + Object.defineProperty(BoxCollider.prototype, "height", { + get : function() { return this.shape.height; }, + set : function(value) { this.setHeight(value); }, + enumerable : true, + configurable : true + }); + BoxCollider.prototype.setHeight = function(height) { + this._colliderRequiresAutoSizing = false; + var box = this.shape; + if (height != box.height) { + box.updateBox(box.width, height); + this._isPositionDirty = true; + if (this.entity && this._isParentEntityAddedToScene) + Physics.updateCollider(this); + } + }; + BoxCollider.prototype.setSize = function(width, height) { + this._colliderRequiresAutoSizing = false; + var box = this.shape; + if (width != box.width || height != box.height) { + box.updateBox(width, height); + this._isPositionDirty = true; + if (this.entity && this._isParentEntityAddedToScene) + Physics.updateCollider(this); + } + return this; + }; + return BoxCollider; }(Collider)); -var EntitySystem = (function () { - function EntitySystem(matcher) { - this._entities = []; - this._matcher = matcher ? matcher : Matcher.empty(); - } - Object.defineProperty(EntitySystem.prototype, "matcher", { - get: function () { - return this._matcher; - }, - enumerable: true, - configurable: true - }); - Object.defineProperty(EntitySystem.prototype, "scene", { - get: function () { - return this._scene; - }, - set: function (value) { - this._scene = value; - this._entities = []; - }, - enumerable: true, - configurable: true - }); - EntitySystem.prototype.initialize = function () { - }; - EntitySystem.prototype.onChanged = function (entity) { - var contains = this._entities.contains(entity); - var interest = this._matcher.IsIntersted(entity); - if (interest && !contains) - this.add(entity); - else if (!interest && contains) - this.remove(entity); - }; - EntitySystem.prototype.add = function (entity) { - this._entities.push(entity); - this.onAdded(entity); - }; - EntitySystem.prototype.onAdded = function (entity) { - }; - EntitySystem.prototype.remove = function (entity) { - this._entities.remove(entity); - this.onRemoved(entity); - }; - EntitySystem.prototype.onRemoved = function (entity) { - }; - EntitySystem.prototype.update = function () { - this.begin(); - this.process(this._entities); - }; - EntitySystem.prototype.lateUpdate = function () { - this.lateProcess(this._entities); - this.end(); - }; - EntitySystem.prototype.begin = function () { - }; - EntitySystem.prototype.process = function (entities) { - }; - EntitySystem.prototype.lateProcess = function (entities) { - }; - EntitySystem.prototype.end = function () { - }; - return EntitySystem; +var EntitySystem = (function() { + function EntitySystem(matcher) { + this._entities = []; + this._matcher = matcher ? matcher : Matcher.empty(); + } + Object.defineProperty(EntitySystem.prototype, "matcher", { + get : function() { return this._matcher; }, + enumerable : true, + configurable : true + }); + Object.defineProperty(EntitySystem.prototype, "scene", { + get : function() { return this._scene; }, + set : function(value) { + this._scene = value; + this._entities = []; + }, + enumerable : true, + configurable : true + }); + EntitySystem.prototype.initialize = function() {}; + EntitySystem.prototype.onChanged = function(entity) { + var contains = this._entities.contains(entity); + var interest = this._matcher.IsIntersted(entity); + if (interest && !contains) + this.add(entity); + else if (!interest && contains) + this.remove(entity); + }; + EntitySystem.prototype.add = function(entity) { + this._entities.push(entity); + this.onAdded(entity); + }; + EntitySystem.prototype.onAdded = function(entity) {}; + EntitySystem.prototype.remove = function(entity) { + this._entities.remove(entity); + this.onRemoved(entity); + }; + EntitySystem.prototype.onRemoved = function(entity) {}; + EntitySystem.prototype.update = function() { + this.begin(); + this.process(this._entities); + }; + EntitySystem.prototype.lateUpdate = function() { + this.lateProcess(this._entities); + this.end(); + }; + EntitySystem.prototype.begin = function() {}; + EntitySystem.prototype.process = function(entities) {}; + EntitySystem.prototype.lateProcess = function(entities) {}; + EntitySystem.prototype.end = function() {}; + return EntitySystem; }()); -var EntityProcessingSystem = (function (_super) { - __extends(EntityProcessingSystem, _super); - function EntityProcessingSystem(matcher) { - return _super.call(this, matcher) || this; - } - EntityProcessingSystem.prototype.lateProcessEntity = function (entity) { - }; - EntityProcessingSystem.prototype.process = function (entities) { - var _this = this; - entities.forEach(function (entity) { return _this.processEntity(entity); }); - }; - EntityProcessingSystem.prototype.lateProcess = function (entities) { - var _this = this; - entities.forEach(function (entity) { return _this.lateProcessEntity(entity); }); - }; - return EntityProcessingSystem; +var EntityProcessingSystem = (function(_super) { + __extends(EntityProcessingSystem, _super); + function EntityProcessingSystem(matcher) { + return _super.call(this, matcher) || this; + } + EntityProcessingSystem.prototype.lateProcessEntity = function(entity) {}; + EntityProcessingSystem.prototype.process = function(entities) { + var _this = this; + entities.forEach(function(entity) { return _this.processEntity(entity); }); + }; + EntityProcessingSystem.prototype.lateProcess = function(entities) { + var _this = this; + entities.forEach(function( + entity) { return _this.lateProcessEntity(entity); }); + }; + return EntityProcessingSystem; }(EntitySystem)); -var PassiveSystem = (function (_super) { - __extends(PassiveSystem, _super); - function PassiveSystem() { - return _super !== null && _super.apply(this, arguments) || this; - } - PassiveSystem.prototype.onChanged = function (entity) { - }; - PassiveSystem.prototype.process = function (entities) { - this.begin(); - this.end(); - }; - return PassiveSystem; +var PassiveSystem = (function(_super) { + __extends(PassiveSystem, _super); + function PassiveSystem() { + return _super !== null && _super.apply(this, arguments) || this; + } + PassiveSystem.prototype.onChanged = function(entity) {}; + PassiveSystem.prototype.process = function(entities) { + this.begin(); + this.end(); + }; + return PassiveSystem; }(EntitySystem)); -var ProcessingSystem = (function (_super) { - __extends(ProcessingSystem, _super); - function ProcessingSystem() { - return _super !== null && _super.apply(this, arguments) || this; - } - ProcessingSystem.prototype.onChanged = function (entity) { - }; - ProcessingSystem.prototype.process = function (entities) { - this.begin(); - this.processSystem(); - this.end(); - }; - return ProcessingSystem; +var ProcessingSystem = (function(_super) { + __extends(ProcessingSystem, _super); + function ProcessingSystem() { + return _super !== null && _super.apply(this, arguments) || this; + } + ProcessingSystem.prototype.onChanged = function(entity) {}; + ProcessingSystem.prototype.process = function(entities) { + this.begin(); + this.processSystem(); + this.end(); + }; + return ProcessingSystem; }(EntitySystem)); -var BitSet = (function () { - function BitSet(nbits) { - if (nbits === void 0) { nbits = 64; } - var length = nbits >> 6; - if ((nbits & BitSet.LONG_MASK) != 0) - length++; - this._bits = new Array(length); +var BitSet = (function() { + function BitSet(nbits) { + if (nbits === void 0) { + nbits = 64; } - BitSet.prototype.and = function (bs) { - var max = Math.min(this._bits.length, bs._bits.length); - var i; - for (var i_1 = 0; i_1 < max; ++i_1) - this._bits[i_1] &= bs._bits[i_1]; - while (i < this._bits.length) - this._bits[i++] = 0; - }; - BitSet.prototype.andNot = function (bs) { - var i = Math.min(this._bits.length, bs._bits.length); - while (--i >= 0) - this._bits[i] &= ~bs._bits[i]; - }; - BitSet.prototype.cardinality = function () { - var card = 0; - for (var i = this._bits.length - 1; i >= 0; i--) { - var a = this._bits[i]; - if (a == 0) - continue; - if (a == -1) { - card += 64; - continue; - } - a = ((a >> 1) & 0x5555555555555555) + (a & 0x5555555555555555); - a = ((a >> 2) & 0x3333333333333333) + (a & 0x3333333333333333); - var b = ((a >> 32) + a); - b = ((b >> 4) & 0x0f0f0f0f) + (b & 0x0f0f0f0f); - b = ((b >> 8) & 0x00ff00ff) + (b & 0x00ff00ff); - card += ((b >> 16) & 0x0000ffff) + (b & 0x0000ffff); - } - return card; - }; - BitSet.prototype.clear = function (pos) { - if (pos != undefined) { - var offset = pos >> 6; - this.ensure(offset); - this._bits[offset] &= ~(1 << pos); - } - else { - for (var i = 0; i < this._bits.length; i++) - this._bits[i] = 0; - } - }; - BitSet.prototype.ensure = function (lastElt) { - if (lastElt >= this._bits.length) { - var nd = new Number[lastElt + 1]; - nd = this._bits.copyWithin(0, 0, this._bits.length); - this._bits = nd; - } - }; - BitSet.prototype.get = function (pos) { - var offset = pos >> 6; - if (offset >= this._bits.length) - return false; - return (this._bits[offset] & (1 << pos)) != 0; - }; - BitSet.prototype.intersects = function (set) { - var i = Math.min(this._bits.length, set._bits.length); - while (--i >= 0) { - if ((this._bits[i] & set._bits[i]) != 0) - return true; - } + var length = nbits >> 6; + if ((nbits & BitSet.LONG_MASK) != 0) + length++; + this._bits = new Array(length); + } + BitSet.prototype.and = function(bs) { + var max = Math.min(this._bits.length, bs._bits.length); + var i; + for (var i_1 = 0; i_1 < max; ++i_1) + this._bits[i_1] &= bs._bits[i_1]; + while (i < this._bits.length) + this._bits[i++] = 0; + }; + BitSet.prototype.andNot = function(bs) { + var i = Math.min(this._bits.length, bs._bits.length); + while (--i >= 0) + this._bits[i] &= ~bs._bits[i]; + }; + BitSet.prototype.cardinality = function() { + var card = 0; + for (var i = this._bits.length - 1; i >= 0; i--) { + var a = this._bits[i]; + if (a == 0) + continue; + if (a == -1) { + card += 64; + continue; + } + a = ((a >> 1) & 0x5555555555555555) + (a & 0x5555555555555555); + a = ((a >> 2) & 0x3333333333333333) + (a & 0x3333333333333333); + var b = ((a >> 32) + a); + b = ((b >> 4) & 0x0f0f0f0f) + (b & 0x0f0f0f0f); + b = ((b >> 8) & 0x00ff00ff) + (b & 0x00ff00ff); + card += ((b >> 16) & 0x0000ffff) + (b & 0x0000ffff); + } + return card; + }; + BitSet.prototype.clear = function(pos) { + if (pos != undefined) { + var offset = pos >> 6; + this.ensure(offset); + this._bits[offset] &= ~(1 << pos); + } else { + for (var i = 0; i < this._bits.length; i++) + this._bits[i] = 0; + } + }; + BitSet.prototype.ensure = function(lastElt) { + if (lastElt >= this._bits.length) { + var nd = new Number[lastElt + 1]; + nd = this._bits.copyWithin(0, 0, this._bits.length); + this._bits = nd; + } + }; + BitSet.prototype.get = function(pos) { + var offset = pos >> 6; + if (offset >= this._bits.length) + return false; + return (this._bits[offset] & (1 << pos)) != 0; + }; + BitSet.prototype.intersects = function(set) { + var i = Math.min(this._bits.length, set._bits.length); + while (--i >= 0) { + if ((this._bits[i] & set._bits[i]) != 0) + return true; + } + return false; + }; + BitSet.prototype.isEmpty = function() { + for (var i = this._bits.length - 1; i >= 0; i--) { + if (this._bits[i]) return false; - }; - BitSet.prototype.isEmpty = function () { - for (var i = this._bits.length - 1; i >= 0; i--) { - if (this._bits[i]) - return false; - } - return true; - }; - BitSet.prototype.nextSetBit = function (from) { - var offset = from >> 6; - var mask = 1 << from; - while (offset < this._bits.length) { - var h = this._bits[offset]; - do { - if ((h & mask) != 0) - return from; - mask <<= 1; - from++; - } while (mask != 0); - mask = 1; - offset++; - } - return -1; - }; - BitSet.prototype.set = function (pos, value) { - if (value === void 0) { value = true; } - if (value) { - var offset = pos >> 6; - this.ensure(offset); - this._bits[offset] |= 1 << pos; - } - else { - this.clear(pos); - } - }; - BitSet.LONG_MASK = 0x3f; - return BitSet; -}()); -var ComponentList = (function () { - function ComponentList(entity) { - this._components = []; - this._componentsToAdd = []; - this._componentsToRemove = []; - this._tempBufferList = []; - this._entity = entity; } - Object.defineProperty(ComponentList.prototype, "count", { - get: function () { - return this._components.length; - }, - enumerable: true, - configurable: true - }); - Object.defineProperty(ComponentList.prototype, "buffer", { - get: function () { - return this._components; - }, - enumerable: true, - configurable: true - }); - ComponentList.prototype.add = function (component) { - this._componentsToAdd.push(component); - }; - ComponentList.prototype.remove = function (component) { - if (this._componentsToAdd.contains(component)) { - this._componentsToAdd.remove(component); - return; - } - this._componentsToRemove.push(component); - }; - ComponentList.prototype.removeAllComponents = function () { - for (var i = 0; i < this._components.length; i++) { - this.handleRemove(this._components[i]); - } - this._components.length = 0; - this._componentsToAdd.length = 0; - this._componentsToRemove.length = 0; - }; - ComponentList.prototype.deregisterAllComponents = function () { - for (var i = 0; i < this._components.length; i++) { - var component = this._components[i]; - if (component instanceof RenderableComponent) - this._entity.scene.renderableComponents.remove(component); - this._entity.componentBits.set(ComponentTypeManager.getIndexFor(component), false); - this._entity.scene.entityProcessors.onComponentRemoved(this._entity); - } - }; - ComponentList.prototype.registerAllComponents = function () { - for (var i = 0; i < this._components.length; i++) { - var component = this._components[i]; - if (component instanceof RenderableComponent) - this._entity.scene.renderableComponents.add(component); - this._entity.componentBits.set(ComponentTypeManager.getIndexFor(component)); - this._entity.scene.entityProcessors.onComponentAdded(this._entity); - } - }; - ComponentList.prototype.updateLists = function () { - if (this._componentsToRemove.length > 0) { - for (var i = 0; i < this._componentsToRemove.length; i++) { - this.handleRemove(this._componentsToRemove[i]); - this._components.remove(this._componentsToRemove[i]); - } - this._componentsToRemove.length = 0; - } - if (this._componentsToAdd.length > 0) { - for (var i = 0, count = this._componentsToAdd.length; i < count; i++) { - var component = this._componentsToAdd[i]; - if (component instanceof RenderableComponent) - this._entity.scene.renderableComponents.add(component); - this._entity.componentBits.set(ComponentTypeManager.getIndexFor(component)); - this._entity.scene.entityProcessors.onComponentAdded(this._entity); - this._components.push(component); - this._tempBufferList.push(component); - } - this._componentsToAdd.length = 0; - for (var i = 0; i < this._tempBufferList.length; i++) { - var component = this._tempBufferList[i]; - component.onAddedToEntity(); - if (component.enabled) { - component.onEnabled(); - } - } - this._tempBufferList.length = 0; - } - }; - ComponentList.prototype.handleRemove = function (component) { + return true; + }; + BitSet.prototype.nextSetBit = function(from) { + var offset = from >> 6; + var mask = 1 << from; + while (offset < this._bits.length) { + var h = this._bits[offset]; + do { + if ((h & mask) != 0) + return from; + mask <<= 1; + from++; + } while (mask != 0); + mask = 1; + offset++; + } + return -1; + }; + BitSet.prototype.set = function(pos, value) { + if (value === void 0) { + value = true; + } + if (value) { + var offset = pos >> 6; + this.ensure(offset); + this._bits[offset] |= 1 << pos; + } else { + this.clear(pos); + } + }; + BitSet.LONG_MASK = 0x3f; + return BitSet; +}()); +var ComponentList = (function() { + function ComponentList(entity) { + this._components = []; + this._componentsToAdd = []; + this._componentsToRemove = []; + this._tempBufferList = []; + this._entity = entity; + } + Object.defineProperty(ComponentList.prototype, "count", { + get : function() { return this._components.length; }, + enumerable : true, + configurable : true + }); + Object.defineProperty(ComponentList.prototype, "buffer", { + get : function() { return this._components; }, + enumerable : true, + configurable : true + }); + ComponentList.prototype.add = function( + component) { this._componentsToAdd.push(component); }; + ComponentList.prototype.remove = function(component) { + if (this._componentsToAdd.contains(component)) { + this._componentsToAdd.remove(component); + return; + } + this._componentsToRemove.push(component); + }; + ComponentList.prototype.removeAllComponents = function() { + for (var i = 0; i < this._components.length; i++) { + this.handleRemove(this._components[i]); + } + this._components.length = 0; + this._componentsToAdd.length = 0; + this._componentsToRemove.length = 0; + }; + ComponentList.prototype.deregisterAllComponents = function() { + for (var i = 0; i < this._components.length; i++) { + var component = this._components[i]; + if (component instanceof RenderableComponent) + this._entity.scene.renderableComponents.remove(component); + this._entity.componentBits.set( + ComponentTypeManager.getIndexFor(component), false); + this._entity.scene.entityProcessors.onComponentRemoved(this._entity); + } + }; + ComponentList.prototype.registerAllComponents = function() { + for (var i = 0; i < this._components.length; i++) { + var component = this._components[i]; + if (component instanceof RenderableComponent) + this._entity.scene.renderableComponents.add(component); + this._entity.componentBits.set( + ComponentTypeManager.getIndexFor(component)); + this._entity.scene.entityProcessors.onComponentAdded(this._entity); + } + }; + ComponentList.prototype.updateLists = function() { + if (this._componentsToRemove.length > 0) { + for (var i = 0; i < this._componentsToRemove.length; i++) { + this.handleRemove(this._componentsToRemove[i]); + this._components.remove(this._componentsToRemove[i]); + } + this._componentsToRemove.length = 0; + } + if (this._componentsToAdd.length > 0) { + for (var i = 0, count = this._componentsToAdd.length; i < count; i++) { + var component = this._componentsToAdd[i]; if (component instanceof RenderableComponent) - this._entity.scene.renderableComponents.remove(component); - this._entity.componentBits.set(ComponentTypeManager.getIndexFor(component), false); - this._entity.scene.entityProcessors.onComponentRemoved(this._entity); - component.onRemovedFromEntity(); - component.entity = null; - }; - ComponentList.prototype.getComponent = function (type, onlyReturnInitializedComponents) { - for (var i = 0; i < this._components.length; i++) { - var component = this._components[i]; - if (component instanceof type) - return component; - } - if (!onlyReturnInitializedComponents) { - for (var i = 0; i < this._componentsToAdd.length; i++) { - var component = this._componentsToAdd[i]; - if (component instanceof type) - return component; - } - } - return null; - }; - ComponentList.prototype.getComponents = function (typeName, components) { - if (!components) - components = []; - for (var i = 0; i < this._components.length; i++) { - var component = this._components[i]; - if (typeof (typeName) == "string") { - if (egret.is(component, typeName)) { - components.push(component); - } - } - else { - if (component instanceof typeName) { - components.push(component); - } - } - } - for (var i = 0; i < this._componentsToAdd.length; i++) { - var component = this._componentsToAdd[i]; - if (typeof (typeName) == "string") { - if (egret.is(component, typeName)) { - components.push(component); - } - } - else { - if (component instanceof typeName) { - components.push(component); - } - } - } - return components; - }; - ComponentList.prototype.update = function () { - this.updateLists(); - for (var i = 0; i < this._components.length; i++) { - var component = this._components[i]; - if (component.enabled && (component.updateInterval == 1 || Time.frameCount % component.updateInterval == 0)) - component.update(); - } - }; - ComponentList.prototype.onEntityTransformChanged = function (comp) { - for (var i = 0; i < this._components.length; i++) { - if (this._components[i].enabled) - this._components[i].onEntityTransformChanged(comp); - } - for (var i = 0; i < this._componentsToAdd.length; i++) { - if (this._componentsToAdd[i].enabled) - this._componentsToAdd[i].onEntityTransformChanged(comp); - } - }; - return ComponentList; -}()); -var ComponentTypeManager = (function () { - function ComponentTypeManager() { - } - ComponentTypeManager.add = function (type) { - if (!this._componentTypesMask.has(type)) - this._componentTypesMask[type] = this._componentTypesMask.size; - }; - ComponentTypeManager.getIndexFor = function (type) { - var v = -1; - if (!this._componentTypesMask.has(type)) { - this.add(type); - v = this._componentTypesMask.get(type); - } - return v; - }; - ComponentTypeManager._componentTypesMask = new Map(); - return ComponentTypeManager; -}()); -var EntityList = (function () { - function EntityList(scene) { - this._entitiesToRemove = []; - this._entitiesToAdded = []; - this._tempEntityList = []; - this._entities = []; - this._entityDict = new Map(); - this._unsortedTags = []; - this.scene = scene; - } - Object.defineProperty(EntityList.prototype, "count", { - get: function () { - return this._entities.length; - }, - enumerable: true, - configurable: true - }); - Object.defineProperty(EntityList.prototype, "buffer", { - get: function () { - return this._entities; - }, - enumerable: true, - configurable: true - }); - EntityList.prototype.add = function (entity) { - if (this._entitiesToAdded.indexOf(entity) == -1) - this._entitiesToAdded.push(entity); - }; - EntityList.prototype.remove = function (entity) { - if (this._entitiesToAdded.contains(entity)) { - this._entitiesToAdded.remove(entity); - return; - } - if (!this._entitiesToRemove.contains(entity)) - this._entitiesToRemove.push(entity); - }; - EntityList.prototype.findEntity = function (name) { - for (var i = 0; i < this._entities.length; i++) { - if (this._entities[i].name == name) - return this._entities[i]; - } - return this._entitiesToAdded.firstOrDefault(function (entity) { return entity.name == name; }); - }; - EntityList.prototype.getTagList = function (tag) { - var list = this._entityDict.get(tag); - if (!list) { - list = []; - this._entityDict.set(tag, list); - } - return this._entityDict.get(tag); - }; - EntityList.prototype.addToTagList = function (entity) { - var list = this.getTagList(entity.tag); - if (!list.contains(entity)) { - list.push(entity); - this._unsortedTags.push(entity.tag); - } - }; - EntityList.prototype.removeFromTagList = function (entity) { - var list = this._entityDict.get(entity.tag); - if (list) { - list.remove(entity); - } - }; - EntityList.prototype.update = function () { - for (var i = 0; i < this._entities.length; i++) { - var entity = this._entities[i]; - if (entity.enabled) - entity.update(); - } - }; - EntityList.prototype.removeAllEntities = function () { - this._entitiesToAdded.length = 0; - this.updateLists(); - for (var i = 0; i < this._entities.length; i++) { - this._entities[i]._isDestoryed = true; - this._entities[i].onRemovedFromScene(); - this._entities[i].scene = null; - } - this._entities.length = 0; - this._entityDict.clear(); - }; - EntityList.prototype.updateLists = function () { - var _this = this; - if (this._entitiesToRemove.length > 0) { - var temp = this._entitiesToRemove; - this._entitiesToRemove = this._tempEntityList; - this._tempEntityList = temp; - this._tempEntityList.forEach(function (entity) { - _this._entities.remove(entity); - entity.scene = null; - _this.scene.entityProcessors.onEntityRemoved(entity); - }); - this._tempEntityList.length = 0; - } - if (this._entitiesToAdded.length > 0) { - var temp = this._entitiesToAdded; - this._entitiesToAdded = this._tempEntityList; - this._tempEntityList = temp; - this._tempEntityList.forEach(function (entity) { - if (!_this._entities.contains(entity)) { - _this._entities.push(entity); - entity.scene = _this.scene; - _this.scene.entityProcessors.onEntityAdded(entity); - } - }); - this._tempEntityList.forEach(function (entity) { return entity.onAddedToScene(); }); - this._tempEntityList.length = 0; - } - if (this._unsortedTags.length > 0) { - this._unsortedTags.forEach(function (tag) { - _this._entityDict.get(tag).sort(); - }); - this._unsortedTags.length = 0; - } - }; - return EntityList; -}()); -var EntityProcessorList = (function () { - function EntityProcessorList() { - this._processors = []; - } - EntityProcessorList.prototype.add = function (processor) { - this._processors.push(processor); - }; - EntityProcessorList.prototype.remove = function (processor) { - this._processors.remove(processor); - }; - EntityProcessorList.prototype.onComponentAdded = function (entity) { - this.notifyEntityChanged(entity); - }; - EntityProcessorList.prototype.onComponentRemoved = function (entity) { - this.notifyEntityChanged(entity); - }; - EntityProcessorList.prototype.onEntityAdded = function (entity) { - this.notifyEntityChanged(entity); - }; - EntityProcessorList.prototype.onEntityRemoved = function (entity) { - this.removeFromProcessors(entity); - }; - EntityProcessorList.prototype.notifyEntityChanged = function (entity) { - for (var i = 0; i < this._processors.length; i++) { - this._processors[i].onChanged(entity); - } - }; - EntityProcessorList.prototype.removeFromProcessors = function (entity) { - for (var i = 0; i < this._processors.length; i++) { - this._processors[i].remove(entity); - } - }; - EntityProcessorList.prototype.begin = function () { - }; - EntityProcessorList.prototype.update = function () { - for (var i = 0; i < this._processors.length; i++) { - this._processors[i].update(); - } - }; - EntityProcessorList.prototype.lateUpdate = function () { - for (var i = 0; i < this._processors.length; i++) { - this._processors[i].lateUpdate(); - } - }; - EntityProcessorList.prototype.end = function () { - }; - EntityProcessorList.prototype.getProcessor = function () { - for (var i = 0; i < this._processors.length; i++) { - var processor = this._processors[i]; - if (processor instanceof EntitySystem) - return processor; - } - return null; - }; - return EntityProcessorList; -}()); -var Matcher = (function () { - function Matcher() { - this.allSet = new BitSet(); - this.exclusionSet = new BitSet(); - this.oneSet = new BitSet(); - } - Matcher.empty = function () { - return new Matcher(); - }; - Matcher.prototype.getAllSet = function () { - return this.allSet; - }; - Matcher.prototype.getExclusionSet = function () { - return this.exclusionSet; - }; - Matcher.prototype.getOneSet = function () { - return this.oneSet; - }; - Matcher.prototype.IsIntersted = function (e) { - if (!this.allSet.isEmpty()) { - for (var i = this.allSet.nextSetBit(0); i >= 0; i = this.allSet.nextSetBit(i + 1)) { - if (!e.componentBits.get(i)) - return false; - } - } - if (!this.exclusionSet.isEmpty() && this.exclusionSet.intersects(e.componentBits)) - return false; - if (!this.oneSet.isEmpty() && !this.oneSet.intersects(e.componentBits)) - return false; - return true; - }; - Matcher.prototype.all = function () { - var _this = this; - var types = []; - for (var _i = 0; _i < arguments.length; _i++) { - types[_i] = arguments[_i]; - } - types.forEach(function (type) { - _this.allSet.set(ComponentTypeManager.getIndexFor(type)); - }); - return this; - }; - Matcher.prototype.exclude = function () { - var _this = this; - var types = []; - for (var _i = 0; _i < arguments.length; _i++) { - types[_i] = arguments[_i]; - } - types.forEach(function (type) { - _this.exclusionSet.set(ComponentTypeManager.getIndexFor(type)); - }); - return this; - }; - Matcher.prototype.one = function () { - var _this = this; - var types = []; - for (var _i = 0; _i < arguments.length; _i++) { - types[_i] = arguments[_i]; - } - types.forEach(function (type) { - _this.oneSet.set(ComponentTypeManager.getIndexFor(type)); - }); - return this; - }; - return Matcher; -}()); -var RenderableComponentList = (function () { - function RenderableComponentList() { - this._components = []; - } - Object.defineProperty(RenderableComponentList.prototype, "count", { - get: function () { - return this._components.length; - }, - enumerable: true, - configurable: true - }); - Object.defineProperty(RenderableComponentList.prototype, "buffer", { - get: function () { - return this._components; - }, - enumerable: true, - configurable: true - }); - RenderableComponentList.prototype.add = function (component) { + this._entity.scene.renderableComponents.add(component); + this._entity.componentBits.set( + ComponentTypeManager.getIndexFor(component)); + this._entity.scene.entityProcessors.onComponentAdded(this._entity); this._components.push(component); - }; - RenderableComponentList.prototype.remove = function (component) { - this._components.remove(component); - }; - RenderableComponentList.prototype.updateList = function () { - }; - return RenderableComponentList; -}()); -var Time = (function () { - function Time() { + this._tempBufferList.push(component); + } + this._componentsToAdd.length = 0; + for (var i = 0; i < this._tempBufferList.length; i++) { + var component = this._tempBufferList[i]; + component.onAddedToEntity(); + if (component.enabled) { + component.onEnabled(); + } + } + this._tempBufferList.length = 0; } - ; - Time.update = function (currentTime) { - var dt = (currentTime - this._lastTime) / 1000; - this.deltaTime = dt * this.timeScale; - this.unscaledDeltaTime = dt; - this.frameCount++; - this._lastTime = currentTime; - }; - Time.deltaTime = 0; - Time.timeScale = 1; - Time.frameCount = 0; - Time._lastTime = 0; - return Time; -}()); -var GraphicsCapabilities = (function () { - function GraphicsCapabilities() { + }; + ComponentList.prototype.handleRemove = function(component) { + if (component instanceof RenderableComponent) + this._entity.scene.renderableComponents.remove(component); + this._entity.componentBits.set(ComponentTypeManager.getIndexFor(component), + false); + this._entity.scene.entityProcessors.onComponentRemoved(this._entity); + component.onRemovedFromEntity(); + component.entity = null; + }; + ComponentList.prototype.getComponent = function( + type, onlyReturnInitializedComponents) { + for (var i = 0; i < this._components.length; i++) { + var component = this._components[i]; + if (component instanceof type) + return component; } - GraphicsCapabilities.prototype.initialize = function (device) { - this.platformInitialize(device); - }; - GraphicsCapabilities.prototype.platformInitialize = function (device) { - var gl = new egret.sys.RenderBuffer().context.getInstance(); - this.supportsNonPowerOfTwo = false; - this.supportsTextureFilterAnisotropic = gl.getExtension("EXT_texture_filter_anisotropic") != null; - this.supportsDepth24 = true; - this.supportsPackedDepthStencil = true; - this.supportsDepthNonLinear = false; - this.supportsTextureMaxLevel = true; - this.supportsS3tc = gl.getExtension("WEBGL_compressed_texture_s3tc") != null || - gl.getExtension("WEBGL_compressed_texture_s3tc_srgb") != null; - this.supportsDxt1 = this.supportsS3tc; - this.supportsPvrtc = false; - this.supportsAtitc = gl.getExtension("WEBGL_compressed_texture_astc") != null; - this.supportsFramebufferObjectARB = false; - }; - return GraphicsCapabilities; -}()); -var GraphicsDevice = (function () { - function GraphicsDevice() { - this.graphicsCapabilities = new GraphicsCapabilities(); - this.graphicsCapabilities.initialize(this); + if (!onlyReturnInitializedComponents) { + for (var i = 0; i < this._componentsToAdd.length; i++) { + var component = this._componentsToAdd[i]; + if (component instanceof type) + return component; + } } - return GraphicsDevice; -}()); -var Viewport = (function () { - function Viewport(x, y, width, height) { - this._x = x; - this._y = y; - this._width = width; - this._height = height; - this._minDepth = 0; - this._maxDepth = 1; + return null; + }; + ComponentList.prototype.getComponents = function(typeName, components) { + if (!components) + components = []; + for (var i = 0; i < this._components.length; i++) { + var component = this._components[i]; + if (typeof (typeName) == "string") { + if (egret.is(component, typeName)) { + components.push(component); + } + } else { + if (component instanceof typeName) { + components.push(component); + } + } } - Object.defineProperty(Viewport.prototype, "aspectRatio", { - get: function () { - if ((this._height != 0) && (this._width != 0)) - return (this._width / this._height); - return 0; - }, - enumerable: true, - configurable: true + for (var i = 0; i < this._componentsToAdd.length; i++) { + var component = this._componentsToAdd[i]; + if (typeof (typeName) == "string") { + if (egret.is(component, typeName)) { + components.push(component); + } + } else { + if (component instanceof typeName) { + components.push(component); + } + } + } + return components; + }; + ComponentList.prototype.update = function() { + this.updateLists(); + for (var i = 0; i < this._components.length; i++) { + var component = this._components[i]; + if (component.enabled && + (component.updateInterval == 1 || + Time.frameCount % component.updateInterval == 0)) + component.update(); + } + }; + ComponentList.prototype.onEntityTransformChanged = function(comp) { + for (var i = 0; i < this._components.length; i++) { + if (this._components[i].enabled) + this._components[i].onEntityTransformChanged(comp); + } + for (var i = 0; i < this._componentsToAdd.length; i++) { + if (this._componentsToAdd[i].enabled) + this._componentsToAdd[i].onEntityTransformChanged(comp); + } + }; + return ComponentList; +}()); +var ComponentTypeManager = (function() { + function ComponentTypeManager() {} + ComponentTypeManager.add = function(type) { + if (!this._componentTypesMask.has(type)) + this._componentTypesMask[type] = this._componentTypesMask.size; + }; + ComponentTypeManager.getIndexFor = function(type) { + var v = -1; + if (!this._componentTypesMask.has(type)) { + this.add(type); + v = this._componentTypesMask.get(type); + } + return v; + }; + ComponentTypeManager._componentTypesMask = new Map(); + return ComponentTypeManager; +}()); +var EntityList = (function() { + function EntityList(scene) { + this._entitiesToRemove = []; + this._entitiesToAdded = []; + this._tempEntityList = []; + this._entities = []; + this._entityDict = new Map(); + this._unsortedTags = []; + this.scene = scene; + } + Object.defineProperty(EntityList.prototype, "count", { + get : function() { return this._entities.length; }, + enumerable : true, + configurable : true + }); + Object.defineProperty(EntityList.prototype, "buffer", { + get : function() { return this._entities; }, + enumerable : true, + configurable : true + }); + EntityList.prototype.add = function(entity) { + if (this._entitiesToAdded.indexOf(entity) == -1) + this._entitiesToAdded.push(entity); + }; + EntityList.prototype.remove = function(entity) { + if (this._entitiesToAdded.contains(entity)) { + this._entitiesToAdded.remove(entity); + return; + } + if (!this._entitiesToRemove.contains(entity)) + this._entitiesToRemove.push(entity); + }; + EntityList.prototype.findEntity = function(name) { + for (var i = 0; i < this._entities.length; i++) { + if (this._entities[i].name == name) + return this._entities[i]; + } + return this._entitiesToAdded.firstOrDefault(function( + entity) { return entity.name == name; }); + }; + EntityList.prototype.getTagList = function(tag) { + var list = this._entityDict.get(tag); + if (!list) { + list = []; + this._entityDict.set(tag, list); + } + return this._entityDict.get(tag); + }; + EntityList.prototype.addToTagList = function(entity) { + var list = this.getTagList(entity.tag); + if (!list.contains(entity)) { + list.push(entity); + this._unsortedTags.push(entity.tag); + } + }; + EntityList.prototype.removeFromTagList = function(entity) { + var list = this._entityDict.get(entity.tag); + if (list) { + list.remove(entity); + } + }; + EntityList.prototype.update = function() { + for (var i = 0; i < this._entities.length; i++) { + var entity = this._entities[i]; + if (entity.enabled) + entity.update(); + } + }; + EntityList.prototype.removeAllEntities = function() { + this._entitiesToAdded.length = 0; + this.updateLists(); + for (var i = 0; i < this._entities.length; i++) { + this._entities[i]._isDestoryed = true; + this._entities[i].onRemovedFromScene(); + this._entities[i].scene = null; + } + this._entities.length = 0; + this._entityDict.clear(); + }; + EntityList.prototype.updateLists = function() { + var _this = this; + if (this._entitiesToRemove.length > 0) { + var temp = this._entitiesToRemove; + this._entitiesToRemove = this._tempEntityList; + this._tempEntityList = temp; + this._tempEntityList.forEach(function(entity) { + _this._entities.remove(entity); + entity.scene = null; + _this.scene.entityProcessors.onEntityRemoved(entity); + }); + this._tempEntityList.length = 0; + } + if (this._entitiesToAdded.length > 0) { + var temp = this._entitiesToAdded; + this._entitiesToAdded = this._tempEntityList; + this._tempEntityList = temp; + this._tempEntityList.forEach(function(entity) { + if (!_this._entities.contains(entity)) { + _this._entities.push(entity); + entity.scene = _this.scene; + _this.scene.entityProcessors.onEntityAdded(entity); + } + }); + this._tempEntityList.forEach(function( + entity) { return entity.onAddedToScene(); }); + this._tempEntityList.length = 0; + } + if (this._unsortedTags.length > 0) { + this._unsortedTags.forEach(function( + tag) { _this._entityDict.get(tag).sort(); }); + this._unsortedTags.length = 0; + } + }; + return EntityList; +}()); +var EntityProcessorList = (function() { + function EntityProcessorList() { this._processors = []; } + EntityProcessorList.prototype.add = function( + processor) { this._processors.push(processor); }; + EntityProcessorList.prototype.remove = function( + processor) { this._processors.remove(processor); }; + EntityProcessorList.prototype.onComponentAdded = function( + entity) { this.notifyEntityChanged(entity); }; + EntityProcessorList.prototype.onComponentRemoved = function( + entity) { this.notifyEntityChanged(entity); }; + EntityProcessorList.prototype.onEntityAdded = function( + entity) { this.notifyEntityChanged(entity); }; + EntityProcessorList.prototype.onEntityRemoved = function( + entity) { this.removeFromProcessors(entity); }; + EntityProcessorList.prototype.notifyEntityChanged = function(entity) { + for (var i = 0; i < this._processors.length; i++) { + this._processors[i].onChanged(entity); + } + }; + EntityProcessorList.prototype.removeFromProcessors = function(entity) { + for (var i = 0; i < this._processors.length; i++) { + this._processors[i].remove(entity); + } + }; + EntityProcessorList.prototype.begin = function() {}; + EntityProcessorList.prototype.update = function() { + for (var i = 0; i < this._processors.length; i++) { + this._processors[i].update(); + } + }; + EntityProcessorList.prototype.lateUpdate = function() { + for (var i = 0; i < this._processors.length; i++) { + this._processors[i].lateUpdate(); + } + }; + EntityProcessorList.prototype.end = function() {}; + EntityProcessorList.prototype.getProcessor = function() { + for (var i = 0; i < this._processors.length; i++) { + var processor = this._processors[i]; + if (processor instanceof EntitySystem) + return processor; + } + return null; + }; + return EntityProcessorList; +}()); +var Matcher = (function() { + function Matcher() { + this.allSet = new BitSet(); + this.exclusionSet = new BitSet(); + this.oneSet = new BitSet(); + } + Matcher.empty = function() { return new Matcher(); }; + Matcher.prototype.getAllSet = function() { return this.allSet; }; + Matcher.prototype.getExclusionSet = function() { return this.exclusionSet; }; + Matcher.prototype.getOneSet = function() { return this.oneSet; }; + Matcher.prototype.IsIntersted = function(e) { + if (!this.allSet.isEmpty()) { + for (var i = this.allSet.nextSetBit(0); i >= 0; + i = this.allSet.nextSetBit(i + 1)) { + if (!e.componentBits.get(i)) + return false; + } + } + if (!this.exclusionSet.isEmpty() && + this.exclusionSet.intersects(e.componentBits)) + return false; + if (!this.oneSet.isEmpty() && !this.oneSet.intersects(e.componentBits)) + return false; + return true; + }; + Matcher.prototype.all = function() { + var _this = this; + var types = []; + for (var _i = 0; _i < arguments.length; _i++) { + types[_i] = arguments[_i]; + } + types.forEach(function( + type) { _this.allSet.set(ComponentTypeManager.getIndexFor(type)); }); + return this; + }; + Matcher.prototype.exclude = function() { + var _this = this; + var types = []; + for (var _i = 0; _i < arguments.length; _i++) { + types[_i] = arguments[_i]; + } + types.forEach(function(type) { + _this.exclusionSet.set(ComponentTypeManager.getIndexFor(type)); }); - Object.defineProperty(Viewport.prototype, "bounds", { - get: function () { - return new Rectangle(this._x, this._y, this._width, this._height); - }, - set: function (value) { - this._x = value.x; - this._y = value.y; - this._width = value.width; - this._height = value.height; - }, - enumerable: true, - configurable: true - }); - return Viewport; -}()); -var GraphicsResource = (function () { - function GraphicsResource() { + return this; + }; + Matcher.prototype.one = function() { + var _this = this; + var types = []; + for (var _i = 0; _i < arguments.length; _i++) { + types[_i] = arguments[_i]; } - return GraphicsResource; + types.forEach(function( + type) { _this.oneSet.set(ComponentTypeManager.getIndexFor(type)); }); + return this; + }; + return Matcher; }()); -var GaussianBlurEffect = (function (_super) { - __extends(GaussianBlurEffect, _super); - function GaussianBlurEffect() { - return _super.call(this, PostProcessor.default_vert, GaussianBlurEffect.blur_frag, { - screenWidth: SceneManager.stage.stageWidth, - screenHeight: SceneManager.stage.stageHeight - }) || this; - } - GaussianBlurEffect.blur_frag = "precision mediump float;\n" + - "uniform sampler2D uSampler;\n" + - "uniform float screenWidth;\n" + - "uniform float screenHeight;\n" + - "float normpdf(in float x, in float sigma)\n" + - "{\n" + - "return 0.39894*exp(-0.5*x*x/(sigma*sigma))/sigma;\n" + - "}\n" + - "void main()\n" + - "{\n" + - "vec3 c = texture2D(uSampler, gl_FragCoord.xy / vec2(screenWidth, screenHeight).xy).rgb;\n" + - "const int mSize = 11;\n" + - "const int kSize = (mSize - 1)/2;\n" + - "float kernel[mSize];\n" + - "vec3 final_colour = vec3(0.0);\n" + - "float sigma = 7.0;\n" + - "float z = 0.0;\n" + - "for (int j = 0; j <= kSize; ++j)\n" + - "{\n" + - "kernel[kSize+j] = kernel[kSize-j] = normpdf(float(j),sigma);\n" + - "}\n" + - "for (int j = 0; j < mSize; ++j)\n" + - "{\n" + - "z += kernel[j];\n" + - "}\n" + - "for (int i = -kSize; i <= kSize; ++i)\n" + - "{\n" + - "for (int j = -kSize; j <= kSize; ++j)\n" + - "{\n" + - "final_colour += kernel[kSize+j]*kernel[kSize+i]*texture2D(uSampler, (gl_FragCoord.xy+vec2(float(i),float(j))) / vec2(screenWidth, screenHeight).xy).rgb;\n" + - "}\n}\n" + - "gl_FragColor = vec4(final_colour/(z*z), 1.0);\n" + - "}"; - return GaussianBlurEffect; +var RenderableComponentList = (function() { + function RenderableComponentList() { this._components = []; } + Object.defineProperty(RenderableComponentList.prototype, "count", { + get : function() { return this._components.length; }, + enumerable : true, + configurable : true + }); + Object.defineProperty(RenderableComponentList.prototype, "buffer", { + get : function() { return this._components; }, + enumerable : true, + configurable : true + }); + RenderableComponentList.prototype.add = function( + component) { this._components.push(component); }; + RenderableComponentList.prototype.remove = function( + component) { this._components.remove(component); }; + RenderableComponentList.prototype.updateList = function() {}; + return RenderableComponentList; +}()); +var Time = (function() { + function Time() {}; + Time.update = function(currentTime) { + var dt = (currentTime - this._lastTime) / 1000; + this.deltaTime = dt * this.timeScale; + this.unscaledDeltaTime = dt; + this.frameCount++; + this._lastTime = currentTime; + }; + Time.deltaTime = 0; + Time.timeScale = 1; + Time.frameCount = 0; + Time._lastTime = 0; + return Time; +}()); +var GraphicsCapabilities = (function() { + function GraphicsCapabilities() {} + GraphicsCapabilities.prototype.initialize = function( + device) { this.platformInitialize(device); }; + GraphicsCapabilities.prototype.platformInitialize = function(device) { + var gl = new egret.sys.RenderBuffer().context.getInstance(); + this.supportsNonPowerOfTwo = false; + this.supportsTextureFilterAnisotropic = + gl.getExtension("EXT_texture_filter_anisotropic") != null; + this.supportsDepth24 = true; + this.supportsPackedDepthStencil = true; + this.supportsDepthNonLinear = false; + this.supportsTextureMaxLevel = true; + this.supportsS3tc = + gl.getExtension("WEBGL_compressed_texture_s3tc") != null || + gl.getExtension("WEBGL_compressed_texture_s3tc_srgb") != null; + this.supportsDxt1 = this.supportsS3tc; + this.supportsPvrtc = false; + this.supportsAtitc = + gl.getExtension("WEBGL_compressed_texture_astc") != null; + this.supportsFramebufferObjectARB = false; + }; + return GraphicsCapabilities; +}()); +var GraphicsDevice = (function() { + function GraphicsDevice() { + this.graphicsCapabilities = new GraphicsCapabilities(); + this.graphicsCapabilities.initialize(this); + } + return GraphicsDevice; +}()); +var Viewport = (function() { + function Viewport(x, y, width, height) { + this._x = x; + this._y = y; + this._width = width; + this._height = height; + this._minDepth = 0; + this._maxDepth = 1; + } + Object.defineProperty(Viewport.prototype, "aspectRatio", { + get : function() { + if ((this._height != 0) && (this._width != 0)) + return (this._width / this._height); + return 0; + }, + enumerable : true, + configurable : true + }); + Object.defineProperty(Viewport.prototype, "bounds", { + get : function() { + return new Rectangle(this._x, this._y, this._width, this._height); + }, + set : function(value) { + this._x = value.x; + this._y = value.y; + this._width = value.width; + this._height = value.height; + }, + enumerable : true, + configurable : true + }); + return Viewport; +}()); +var GraphicsResource = (function() { + function GraphicsResource() {} + return GraphicsResource; +}()); +var GaussianBlurEffect = (function(_super) { + __extends(GaussianBlurEffect, _super); + function GaussianBlurEffect() { + return _super.call(this, PostProcessor.default_vert, + GaussianBlurEffect.blur_frag, { + screenWidth : SceneManager.stage.stageWidth, + screenHeight : SceneManager.stage.stageHeight + }) || + this; + } + GaussianBlurEffect.blur_frag = + "precision mediump float;\n" + + "uniform sampler2D uSampler;\n" + + "uniform float screenWidth;\n" + + "uniform float screenHeight;\n" + + "float normpdf(in float x, in float sigma)\n" + + "{\n" + + "return 0.39894*exp(-0.5*x*x/(sigma*sigma))/sigma;\n" + + "}\n" + + "void main()\n" + + "{\n" + + "vec3 c = texture2D(uSampler, gl_FragCoord.xy / vec2(screenWidth, screenHeight).xy).rgb;\n" + + "const int mSize = 11;\n" + + "const int kSize = (mSize - 1)/2;\n" + + "float kernel[mSize];\n" + + "vec3 final_colour = vec3(0.0);\n" + + "float sigma = 7.0;\n" + + "float z = 0.0;\n" + + "for (int j = 0; j <= kSize; ++j)\n" + + "{\n" + + "kernel[kSize+j] = kernel[kSize-j] = normpdf(float(j),sigma);\n" + + "}\n" + + "for (int j = 0; j < mSize; ++j)\n" + + "{\n" + + "z += kernel[j];\n" + + "}\n" + + "for (int i = -kSize; i <= kSize; ++i)\n" + + "{\n" + + "for (int j = -kSize; j <= kSize; ++j)\n" + + "{\n" + + "final_colour += kernel[kSize+j]*kernel[kSize+i]*texture2D(uSampler, (gl_FragCoord.xy+vec2(float(i),float(j))) / vec2(screenWidth, screenHeight).xy).rgb;\n" + + "}\n}\n" + + "gl_FragColor = vec4(final_colour/(z*z), 1.0);\n" + + "}"; + return GaussianBlurEffect; }(egret.CustomFilter)); -var PolygonLightEffect = (function (_super) { - __extends(PolygonLightEffect, _super); - function PolygonLightEffect() { - return _super.call(this, PolygonLightEffect.vertSrc, PolygonLightEffect.fragmentSrc) || this; +var PolygonLightEffect = (function(_super) { + __extends(PolygonLightEffect, _super); + function PolygonLightEffect() { + return _super.call(this, PolygonLightEffect.vertSrc, + PolygonLightEffect.fragmentSrc) || + this; + } + PolygonLightEffect.vertSrc = + "attribute vec2 aVertexPosition;\n" + + "attribute vec2 aTextureCoord;\n" + + "uniform vec2 projectionVector;\n" + + "varying vec2 vTextureCoord;\n" + + "const vec2 center = vec2(-1.0, 1.0);\n" + + "void main(void) {\n" + + " gl_Position = vec4( (aVertexPosition / projectionVector) + center , 0.0, 1.0);\n" + + " vTextureCoord = aTextureCoord;\n" + + "}"; + PolygonLightEffect.fragmentSrc = + "precision lowp float;\n" + + "varying vec2 vTextureCoord;\n" + + "uniform sampler2D uSampler;\n" + + "#define SAMPLE_COUNT 15\n" + + "uniform vec2 _sampleOffsets[SAMPLE_COUNT];\n" + + "uniform float _sampleWeights[SAMPLE_COUNT];\n" + + "void main(void) {\n" + + "vec4 c = vec4(0, 0, 0, 0);\n" + + "for( int i = 0; i < SAMPLE_COUNT; i++ )\n" + + " c += texture2D( uSampler, vTextureCoord + _sampleOffsets[i] ) * _sampleWeights[i];\n" + + "gl_FragColor = c;\n" + + "}"; + return PolygonLightEffect; +}(egret.CustomFilter)); +var PostProcessor = (function() { + function PostProcessor(effect) { + if (effect === void 0) { + effect = null; } - PolygonLightEffect.vertSrc = "attribute vec2 aVertexPosition;\n" + + this.enable = true; + this.effect = effect; + } + PostProcessor.prototype.onAddedToScene = function(scene) { + this.scene = scene; + this.shape = new egret.Shape(); + this.shape.graphics.beginFill(0xFFFFFF, 1); + this.shape.graphics.drawRect(0, 0, SceneManager.stage.stageWidth, + SceneManager.stage.stageHeight); + this.shape.graphics.endFill(); + scene.addChild(this.shape); + }; + PostProcessor.prototype.process = function() { this.drawFullscreenQuad(); }; + PostProcessor.prototype.onSceneBackBufferSizeChanged = function(newWidth, + newHeight) {}; + PostProcessor.prototype.drawFullscreenQuad = + function() { this.scene.filters = [ this.effect ]; }; + PostProcessor.prototype.unload = function() { + if (this.effect) { + this.effect = null; + } + this.scene.removeChild(this.shape); + this.scene = null; + }; + PostProcessor.default_vert = + "attribute vec2 aVertexPosition;\n" + + "attribute vec2 aTextureCoord;\n" + + "attribute vec2 aColor;\n" + + "uniform vec2 projectionVector;\n" + + "varying vec2 vTextureCoord;\n" + + "varying vec4 vColor;\n" + + "const vec2 center = vec2(-1.0, 1.0);\n" + + "void main(void) {\n" + + "gl_Position = vec4( (aVertexPosition / projectionVector) + center , 0.0, 1.0);\n" + + "vTextureCoord = aTextureCoord;\n" + + "vColor = vec4(aColor.x, aColor.x, aColor.x, aColor.x);\n" + + "}"; + return PostProcessor; +}()); +var BloomSettings = (function() { + function BloomSettings(bloomThreshold, blurAmount, bloomIntensity, + baseIntensity, bloomSaturation, baseSaturation) { + this.threshold = bloomThreshold; + this.blurAmount = blurAmount; + this.intensity = bloomIntensity; + this.baseIntensity = baseIntensity; + this.saturation = bloomSaturation; + this.baseStaturation = baseSaturation; + } + BloomSettings.presetSettings = [ + new BloomSettings(0.1, 0.6, 2, 1, 1, 0), + new BloomSettings(0, 3, 1, 1, 1, 1), new BloomSettings(0.5, 8, 2, 1, 0, 1), + new BloomSettings(0.25, 8, 1.3, 1, 1, 0), + new BloomSettings(0, 2, 1, 0.1, 1, 1), new BloomSettings(0.5, 2, 1, 1, 1, 1) + ]; + return BloomSettings; +}()); +var GaussianBlurPostProcessor = (function(_super) { + __extends(GaussianBlurPostProcessor, _super); + function GaussianBlurPostProcessor() { + return _super !== null && _super.apply(this, arguments) || this; + } + GaussianBlurPostProcessor.prototype.onAddedToScene = function(scene) { + _super.prototype.onAddedToScene.call(this, scene); + this.effect = new GaussianBlurEffect(); + }; + return GaussianBlurPostProcessor; +}(PostProcessor)); +var Renderer = (function() { + function Renderer() {} + Renderer.prototype.onAddedToScene = function(scene) {}; + Renderer.prototype.beginRender = function(cam) {}; + Renderer.prototype.unload = function() {}; + Renderer.prototype.renderAfterStateCheck = function( + renderable, cam) { renderable.render(cam); }; + return Renderer; +}()); +var DefaultRenderer = (function(_super) { + __extends(DefaultRenderer, _super); + function DefaultRenderer() { + return _super !== null && _super.apply(this, arguments) || this; + } + DefaultRenderer.prototype.render = function(scene) { + var cam = this.camera ? this.camera : scene.camera; + this.beginRender(cam); + for (var i = 0; i < scene.renderableComponents.count; i++) { + var renderable = scene.renderableComponents.buffer[i]; + if (renderable.enabled && renderable.isVisibleFromCamera(cam)) + this.renderAfterStateCheck(renderable, cam); + } + }; + return DefaultRenderer; +}(Renderer)); +var ScreenSpaceRenderer = (function(_super) { + __extends(ScreenSpaceRenderer, _super); + function ScreenSpaceRenderer() { + return _super !== null && _super.apply(this, arguments) || this; + } + ScreenSpaceRenderer.prototype.render = function(scene) {}; + return ScreenSpaceRenderer; +}(Renderer)); +var PolyLight = (function(_super) { + __extends(PolyLight, _super); + function PolyLight(radius, color, power) { + var _this = _super.call(this) || this; + _this._indices = []; + _this.radius = radius; + _this.power = power; + _this.color = color; + _this.computeTriangleIndices(); + return _this; + } + Object.defineProperty(PolyLight.prototype, "radius", { + get : function() { return this._radius; }, + set : function(value) { this.setRadius(value); }, + enumerable : true, + configurable : true + }); + PolyLight.prototype.computeTriangleIndices = function(totalTris) { + if (totalTris === void 0) { + totalTris = 20; + } + this._indices.length = 0; + for (var i = 0; i < totalTris; i += 2) { + this._indices.push(0); + this._indices.push(i + 2); + this._indices.push(i + 1); + } + }; + PolyLight.prototype.setRadius = function(radius) { + if (radius != this._radius) { + this._radius = radius; + this._areBoundsDirty = true; + } + }; + PolyLight.prototype.render = function(camera) {}; + PolyLight.prototype.reset = function() {}; + return PolyLight; +}(RenderableComponent)); +var SceneTransition = (function() { + function SceneTransition(sceneLoadAction) { + this.sceneLoadAction = sceneLoadAction; + this.loadsNewScene = sceneLoadAction != null; + } + Object.defineProperty(SceneTransition.prototype, "hasPreviousSceneRender", { + get : function() { + if (!this._hasPreviousSceneRender) { + this._hasPreviousSceneRender = true; + return false; + } + return true; + }, + enumerable : true, + configurable : true + }); + SceneTransition.prototype.preRender = function() {}; + SceneTransition.prototype.render = function() {}; + SceneTransition.prototype.onBeginTransition = function() { + return __awaiter(this, void 0, void 0, function() { + return __generator(this, function(_a) { + switch (_a.label) { + case 0: + return [ 4, this.loadNextScene() ]; + case 1: + _a.sent(); + this.transitionComplete(); + return [ 2 ]; + } + }); + }); + }; + SceneTransition.prototype.transitionComplete = function() { + SceneManager.sceneTransition = null; + if (this.onTransitionCompleted) { + this.onTransitionCompleted(); + } + }; + SceneTransition.prototype.loadNextScene = function() { + return __awaiter(this, void 0, void 0, function() { + var _a; + return __generator(this, function(_b) { + switch (_b.label) { + case 0: + if (this.onScreenObscured) + this.onScreenObscured(); + if (!this.loadsNewScene) { + this.isNewSceneLoaded = true; + } + _a = SceneManager; + return [ 4, this.sceneLoadAction() ]; + case 1: + _a.scene = _b.sent(); + this.isNewSceneLoaded = true; + return [ 2 ]; + } + }); + }); + }; + SceneTransition.prototype.tickEffectProgressProperty = function( + filter, duration, easeType, reverseDirection) { + if (reverseDirection === void 0) { + reverseDirection = false; + } + return new Promise(function(resolve) { + var start = reverseDirection ? 1 : 0; + var end = reverseDirection ? 0 : 1; + egret.Tween.get(filter.uniforms) + .set({_progress : start}) + .to({_progress : end}, duration * 1000, easeType) + .call(function() { resolve(); }); + }); + }; + return SceneTransition; +}()); +var FadeTransition = (function(_super) { + __extends(FadeTransition, _super); + function FadeTransition(sceneLoadAction) { + var _this = _super.call(this, sceneLoadAction) || this; + _this.fadeToColor = 0x000000; + _this.fadeOutDuration = 0.4; + _this.fadeEaseType = egret.Ease.quadInOut; + _this.delayBeforeFadeInDuration = 0.1; + _this._alpha = 0; + _this._mask = new egret.Shape(); + return _this; + } + FadeTransition.prototype.onBeginTransition = function() { + return __awaiter(this, void 0, void 0, function() { + var _this = this; + return __generator(this, function(_a) { + 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}, this.fadeOutDuration * 1000, this.fadeEaseType) + .call(function() { + return __awaiter(_this, void 0, void 0, function() { + return __generator(this, function(_a) { + switch (_a.label) { + case 0: + return [ 4, this.loadNextScene() ]; + case 1: + _a.sent(); + return [ 2 ]; + } + }); + }); + }) + .wait(this.delayBeforeFadeInDuration) + .call(function() { + egret.Tween.get(_this) + .to({_alpha : 0}, _this.fadeOutDuration * 1000, + _this.fadeEaseType) + .call(function() { + _this.transitionComplete(); + SceneManager.stage.removeChild(_this._mask); + }); + }); + return [ 2 ]; + }); + }); + }; + FadeTransition.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(); + }; + return FadeTransition; +}(SceneTransition)); +var WindTransition = (function(_super) { + __extends(WindTransition, _super); + function WindTransition(sceneLoadAction) { + var _this = _super.call(this, sceneLoadAction) || this; + _this.duration = 1; + _this.easeType = egret.Ease.quadOut; + var vertexSrc = + "attribute vec2 aVertexPosition;\n" + "attribute vec2 aTextureCoord;\n" + "uniform vec2 projectionVector;\n" + "varying vec2 vTextureCoord;\n" + @@ -3019,2249 +3262,1959 @@ var PolygonLightEffect = (function (_super) { " gl_Position = vec4( (aVertexPosition / projectionVector) + center , 0.0, 1.0);\n" + " vTextureCoord = aTextureCoord;\n" + "}"; - PolygonLightEffect.fragmentSrc = "precision lowp float;\n" + + var fragmentSrc = + "precision lowp float;\n" + "varying vec2 vTextureCoord;\n" + "uniform sampler2D uSampler;\n" + - "#define SAMPLE_COUNT 15\n" + - "uniform vec2 _sampleOffsets[SAMPLE_COUNT];\n" + - "uniform float _sampleWeights[SAMPLE_COUNT];\n" + + "uniform float _progress;\n" + + "uniform float _size;\n" + + "uniform float _windSegments;\n" + "void main(void) {\n" + - "vec4 c = vec4(0, 0, 0, 0);\n" + - "for( int i = 0; i < SAMPLE_COUNT; i++ )\n" + - " c += texture2D( uSampler, vTextureCoord + _sampleOffsets[i] ) * _sampleWeights[i];\n" + - "gl_FragColor = c;\n" + + "vec2 co = floor(vec2(0.0, vTextureCoord.y * _windSegments));\n" + + "float x = sin(dot(co.xy, vec2(12.9898, 78.233))) * 43758.5453;\n" + + "float r = x - floor(x);\n" + + "float m = smoothstep(0.0, -_size, vTextureCoord.x * (1.0 - _size) + _size * r - (_progress * (1.0 + _size)));\n" + + "vec4 fg = texture2D(uSampler, vTextureCoord);\n" + + "gl_FragColor = mix(fg, vec4(0, 0, 0, 0), m);\n" + "}"; - return PolygonLightEffect; -}(egret.CustomFilter)); -var PostProcessor = (function () { - function PostProcessor(effect) { - if (effect === void 0) { effect = null; } - this.enable = true; - this.effect = effect; - } - PostProcessor.prototype.onAddedToScene = function (scene) { - this.scene = scene; - this.shape = new egret.Shape(); - this.shape.graphics.beginFill(0xFFFFFF, 1); - this.shape.graphics.drawRect(0, 0, SceneManager.stage.stageWidth, SceneManager.stage.stageHeight); - this.shape.graphics.endFill(); - scene.addChild(this.shape); - }; - PostProcessor.prototype.process = function () { - this.drawFullscreenQuad(); - }; - PostProcessor.prototype.onSceneBackBufferSizeChanged = function (newWidth, newHeight) { }; - PostProcessor.prototype.drawFullscreenQuad = function () { - this.scene.filters = [this.effect]; - }; - PostProcessor.prototype.unload = function () { - if (this.effect) { - this.effect = null; + _this._windEffect = new egret.CustomFilter( + vertexSrc, fragmentSrc, + {_progress : 0, _size : 0.3, _windSegments : 100}); + _this._mask = new egret.Shape(); + _this._mask.graphics.beginFill(0xFFFFFF, 1); + _this._mask.graphics.drawRect(0, 0, SceneManager.stage.stageWidth, + SceneManager.stage.stageHeight); + _this._mask.graphics.endFill(); + _this._mask.filters = [ _this._windEffect ]; + SceneManager.stage.addChild(_this._mask); + return _this; + } + Object.defineProperty(WindTransition.prototype, "windSegments", { + set : function(value) { this._windEffect.uniforms._windSegments = value; }, + enumerable : true, + configurable : true + }); + Object.defineProperty(WindTransition.prototype, "size", { + set : function(value) { this._windEffect.uniforms._size = value; }, + enumerable : true, + configurable : true + }); + WindTransition.prototype.onBeginTransition = function() { + return __awaiter(this, void 0, void 0, function() { + return __generator(this, function(_a) { + switch (_a.label) { + case 0: + this.loadNextScene(); + return [ + 4, this.tickEffectProgressProperty(this._windEffect, this.duration, + this.easeType) + ]; + case 1: + _a.sent(); + this.transitionComplete(); + SceneManager.stage.removeChild(this._mask); + return [ 2 ]; } - this.scene.removeChild(this.shape); - this.scene = null; - }; - PostProcessor.default_vert = "attribute vec2 aVertexPosition;\n" + - "attribute vec2 aTextureCoord;\n" + - "attribute vec2 aColor;\n" + - "uniform vec2 projectionVector;\n" + - "varying vec2 vTextureCoord;\n" + - "varying vec4 vColor;\n" + - "const vec2 center = vec2(-1.0, 1.0);\n" + - "void main(void) {\n" + - "gl_Position = vec4( (aVertexPosition / projectionVector) + center , 0.0, 1.0);\n" + - "vTextureCoord = aTextureCoord;\n" + - "vColor = vec4(aColor.x, aColor.x, aColor.x, aColor.x);\n" + - "}"; - return PostProcessor; -}()); -var BloomSettings = (function () { - function BloomSettings(bloomThreshold, blurAmount, bloomIntensity, baseIntensity, bloomSaturation, baseSaturation) { - this.threshold = bloomThreshold; - this.blurAmount = blurAmount; - this.intensity = bloomIntensity; - this.baseIntensity = baseIntensity; - this.saturation = bloomSaturation; - this.baseStaturation = baseSaturation; - } - BloomSettings.presetSettings = [ - new BloomSettings(0.1, 0.6, 2, 1, 1, 0), - new BloomSettings(0, 3, 1, 1, 1, 1), - new BloomSettings(0.5, 8, 2, 1, 0, 1), - new BloomSettings(0.25, 8, 1.3, 1, 1, 0), - new BloomSettings(0, 2, 1, 0.1, 1, 1), - new BloomSettings(0.5, 2, 1, 1, 1, 1) - ]; - return BloomSettings; -}()); -var GaussianBlurPostProcessor = (function (_super) { - __extends(GaussianBlurPostProcessor, _super); - function GaussianBlurPostProcessor() { - return _super !== null && _super.apply(this, arguments) || this; - } - GaussianBlurPostProcessor.prototype.onAddedToScene = function (scene) { - _super.prototype.onAddedToScene.call(this, scene); - this.effect = new GaussianBlurEffect(); - }; - return GaussianBlurPostProcessor; -}(PostProcessor)); -var Renderer = (function () { - function Renderer() { - } - Renderer.prototype.onAddedToScene = function (scene) { }; - Renderer.prototype.beginRender = function (cam) { - }; - Renderer.prototype.unload = function () { }; - Renderer.prototype.renderAfterStateCheck = function (renderable, cam) { - renderable.render(cam); - }; - return Renderer; -}()); -var DefaultRenderer = (function (_super) { - __extends(DefaultRenderer, _super); - function DefaultRenderer() { - return _super !== null && _super.apply(this, arguments) || this; - } - DefaultRenderer.prototype.render = function (scene) { - var cam = this.camera ? this.camera : scene.camera; - this.beginRender(cam); - for (var i = 0; i < scene.renderableComponents.count; i++) { - var renderable = scene.renderableComponents.buffer[i]; - if (renderable.enabled && renderable.isVisibleFromCamera(cam)) - this.renderAfterStateCheck(renderable, cam); - } - }; - return DefaultRenderer; -}(Renderer)); -var ScreenSpaceRenderer = (function (_super) { - __extends(ScreenSpaceRenderer, _super); - function ScreenSpaceRenderer() { - return _super !== null && _super.apply(this, arguments) || this; - } - ScreenSpaceRenderer.prototype.render = function (scene) { - }; - return ScreenSpaceRenderer; -}(Renderer)); -var PolyLight = (function (_super) { - __extends(PolyLight, _super); - function PolyLight(radius, color, power) { - var _this = _super.call(this) || this; - _this._indices = []; - _this.radius = radius; - _this.power = power; - _this.color = color; - _this.computeTriangleIndices(); - return _this; - } - Object.defineProperty(PolyLight.prototype, "radius", { - get: function () { - return this._radius; - }, - set: function (value) { - this.setRadius(value); - }, - enumerable: true, - configurable: true + }); }); - PolyLight.prototype.computeTriangleIndices = function (totalTris) { - if (totalTris === void 0) { totalTris = 20; } - this._indices.length = 0; - for (var i = 0; i < totalTris; i += 2) { - this._indices.push(0); - this._indices.push(i + 2); - this._indices.push(i + 1); - } - }; - PolyLight.prototype.setRadius = function (radius) { - if (radius != this._radius) { - this._radius = radius; - this._areBoundsDirty = true; - } - }; - PolyLight.prototype.render = function (camera) { - }; - PolyLight.prototype.reset = function () { - }; - return PolyLight; -}(RenderableComponent)); -var SceneTransition = (function () { - function SceneTransition(sceneLoadAction) { - this.sceneLoadAction = sceneLoadAction; - this.loadsNewScene = sceneLoadAction != null; - } - Object.defineProperty(SceneTransition.prototype, "hasPreviousSceneRender", { - get: function () { - if (!this._hasPreviousSceneRender) { - this._hasPreviousSceneRender = true; - return false; - } - return true; - }, - enumerable: true, - configurable: true - }); - SceneTransition.prototype.preRender = function () { }; - SceneTransition.prototype.render = function () { - }; - SceneTransition.prototype.onBeginTransition = function () { - return __awaiter(this, void 0, void 0, function () { - return __generator(this, function (_a) { - switch (_a.label) { - case 0: return [4, this.loadNextScene()]; - case 1: - _a.sent(); - this.transitionComplete(); - return [2]; - } - }); - }); - }; - SceneTransition.prototype.transitionComplete = function () { - SceneManager.sceneTransition = null; - if (this.onTransitionCompleted) { - this.onTransitionCompleted(); - } - }; - SceneTransition.prototype.loadNextScene = function () { - return __awaiter(this, void 0, void 0, function () { - var _a; - return __generator(this, function (_b) { - switch (_b.label) { - case 0: - if (this.onScreenObscured) - this.onScreenObscured(); - if (!this.loadsNewScene) { - this.isNewSceneLoaded = true; - } - _a = SceneManager; - return [4, this.sceneLoadAction()]; - case 1: - _a.scene = _b.sent(); - this.isNewSceneLoaded = true; - return [2]; - } - }); - }); - }; - SceneTransition.prototype.tickEffectProgressProperty = function (filter, duration, easeType, reverseDirection) { - if (reverseDirection === void 0) { reverseDirection = false; } - return new Promise(function (resolve) { - var start = reverseDirection ? 1 : 0; - var end = reverseDirection ? 0 : 1; - egret.Tween.get(filter.uniforms).set({ _progress: start }).to({ _progress: end }, duration * 1000, easeType).call(function () { - resolve(); - }); - }); - }; - return SceneTransition; -}()); -var FadeTransition = (function (_super) { - __extends(FadeTransition, _super); - function FadeTransition(sceneLoadAction) { - var _this = _super.call(this, sceneLoadAction) || this; - _this.fadeToColor = 0x000000; - _this.fadeOutDuration = 0.4; - _this.fadeEaseType = egret.Ease.quadInOut; - _this.delayBeforeFadeInDuration = 0.1; - _this._alpha = 0; - _this._mask = new egret.Shape(); - return _this; - } - FadeTransition.prototype.onBeginTransition = function () { - return __awaiter(this, void 0, void 0, function () { - var _this = this; - return __generator(this, function (_a) { - 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 }, this.fadeOutDuration * 1000, this.fadeEaseType) - .call(function () { return __awaiter(_this, void 0, void 0, function () { - return __generator(this, function (_a) { - switch (_a.label) { - case 0: return [4, this.loadNextScene()]; - case 1: - _a.sent(); - return [2]; - } - }); - }); }).wait(this.delayBeforeFadeInDuration).call(function () { - egret.Tween.get(_this).to({ _alpha: 0 }, _this.fadeOutDuration * 1000, _this.fadeEaseType).call(function () { - _this.transitionComplete(); - SceneManager.stage.removeChild(_this._mask); - }); - }); - return [2]; - }); - }); - }; - FadeTransition.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(); - }; - return FadeTransition; + }; + return WindTransition; }(SceneTransition)); -var WindTransition = (function (_super) { - __extends(WindTransition, _super); - function WindTransition(sceneLoadAction) { - var _this = _super.call(this, sceneLoadAction) || this; - _this.duration = 1; - _this.easeType = egret.Ease.quadOut; - var vertexSrc = "attribute vec2 aVertexPosition;\n" + - "attribute vec2 aTextureCoord;\n" + - "uniform vec2 projectionVector;\n" + - "varying vec2 vTextureCoord;\n" + - "const vec2 center = vec2(-1.0, 1.0);\n" + - "void main(void) {\n" + - " gl_Position = vec4( (aVertexPosition / projectionVector) + center , 0.0, 1.0);\n" + - " vTextureCoord = aTextureCoord;\n" + - "}"; - var fragmentSrc = "precision lowp float;\n" + - "varying vec2 vTextureCoord;\n" + - "uniform sampler2D uSampler;\n" + - "uniform float _progress;\n" + - "uniform float _size;\n" + - "uniform float _windSegments;\n" + - "void main(void) {\n" + - "vec2 co = floor(vec2(0.0, vTextureCoord.y * _windSegments));\n" + - "float x = sin(dot(co.xy, vec2(12.9898, 78.233))) * 43758.5453;\n" + - "float r = x - floor(x);\n" + - "float m = smoothstep(0.0, -_size, vTextureCoord.x * (1.0 - _size) + _size * r - (_progress * (1.0 + _size)));\n" + - "vec4 fg = texture2D(uSampler, vTextureCoord);\n" + - "gl_FragColor = mix(fg, vec4(0, 0, 0, 0), m);\n" + - "}"; - _this._windEffect = new egret.CustomFilter(vertexSrc, fragmentSrc, { - _progress: 0, - _size: 0.3, - _windSegments: 100 - }); - _this._mask = new egret.Shape(); - _this._mask.graphics.beginFill(0xFFFFFF, 1); - _this._mask.graphics.drawRect(0, 0, SceneManager.stage.stageWidth, SceneManager.stage.stageHeight); - _this._mask.graphics.endFill(); - _this._mask.filters = [_this._windEffect]; - SceneManager.stage.addChild(_this._mask); - return _this; +var BaseView = (function(_super) { + __extends(BaseView, _super); + function BaseView() { + return _super !== null && _super.apply(this, arguments) || this; + } + BaseView.prototype.init = function() {}; + BaseView.prototype.show = function(data) {}; + BaseView.prototype.refreshData = function(data) { this._data = data; }; + BaseView.prototype.refreshView = function() {}; + BaseView.prototype.close = function() {}; + BaseView.prototype.destroy = function() { + if (this.parent) { + this.parent.removeChild(this); } - Object.defineProperty(WindTransition.prototype, "windSegments", { - set: function (value) { - this._windEffect.uniforms._windSegments = value; - }, - enumerable: true, - configurable: true - }); - Object.defineProperty(WindTransition.prototype, "size", { - set: function (value) { - this._windEffect.uniforms._size = value; - }, - enumerable: true, - configurable: true - }); - WindTransition.prototype.onBeginTransition = function () { - return __awaiter(this, void 0, void 0, function () { - return __generator(this, function (_a) { - switch (_a.label) { - case 0: - this.loadNextScene(); - return [4, this.tickEffectProgressProperty(this._windEffect, this.duration, this.easeType)]; - case 1: - _a.sent(); - this.transitionComplete(); - SceneManager.stage.removeChild(this._mask); - return [2]; - } - }); - }); - }; - return WindTransition; -}(SceneTransition)); -var BaseView = (function (_super) { - __extends(BaseView, _super); - function BaseView() { - return _super !== null && _super.apply(this, arguments) || this; + while (this.numChildren > 0) { + this.removeChildAt(0); } - BaseView.prototype.init = function () { - }; - BaseView.prototype.show = function (data) { - }; - BaseView.prototype.refreshData = function (data) { - this._data = data; - }; - BaseView.prototype.refreshView = function () { - }; - BaseView.prototype.close = function () { - }; - BaseView.prototype.destroy = function () { - if (this.parent) { - this.parent.removeChild(this); - } - while (this.numChildren > 0) { - this.removeChildAt(0); - } - }; - return BaseView; + }; + return BaseView; }(egret.DisplayObjectContainer)); -var BaseFuiView = (function (_super) { - __extends(BaseFuiView, _super); - function BaseFuiView(name) { - var _this = _super.call(this) || this; - _this.name = name; - return _this; - } - return BaseFuiView; +var BaseFuiView = (function(_super) { + __extends(BaseFuiView, _super); + function BaseFuiView(name) { + var _this = _super.call(this) || this; + _this.name = name; + return _this; + } + return BaseFuiView; }(BaseView)); -var BaseSingle = (function () { - function BaseSingle() { +var BaseSingle = (function() { + function BaseSingle() {} + BaseSingle.getInstance = function() { + if (this._instance == null) { + this._instance = new this(); } - BaseSingle.getInstance = function () { - if (this._instance == null) { - this._instance = new this(); - } - return this._instance; - }; - BaseSingle.prototype.clearFuiObj = function (obj) { - if (obj) { - egret.Tween.removeTweens(obj.displayObject); - if (obj.displayObject && obj.displayObject.parent) { - obj.displayObject.parent.removeChild(obj.displayObject); - } - obj.dispose(); - obj = null; - return true; - } - return false; - }; - return BaseSingle; + return this._instance; + }; + BaseSingle.prototype.clearFuiObj = function(obj) { + if (obj) { + egret.Tween.removeTweens(obj.displayObject); + if (obj.displayObject && obj.displayObject.parent) { + obj.displayObject.parent.removeChild(obj.displayObject); + } + obj.dispose(); + obj = null; + return true; + } + return false; + }; + return BaseSingle; }()); -var ViewManager = (function (_super) { - __extends(ViewManager, _super); - function ViewManager() { - var _this = _super !== null && _super.apply(this, arguments) || this; - _this._openDic = []; - return _this; +var ViewManager = (function(_super) { + __extends(ViewManager, _super); + function ViewManager() { + var _this = _super !== null && _super.apply(this, arguments) || this; + _this._openDic = []; + return _this; + } + ViewManager.prototype.refreshView = function(viewClass, data) { + var view = this.getView(viewClass); + if (view) { + view.refreshData(data); + view.refreshView(); } - ViewManager.prototype.refreshView = function (viewClass, data) { - var view = this.getView(viewClass); - if (view) { - view.refreshData(data); - view.refreshView(); - } - }; - ViewManager.prototype.openView = function (viewClass, data, complete) { - var newView = this.getView(viewClass); - if (!newView) { - newView = new viewClass(); - } - if (this.existView(viewClass)) { - newView.refreshData(data); - newView.refreshView(); - return; - } - this._openDic.push(newView); - }; - ViewManager.prototype.getView = function (viewClass) { - var result = this._openDic.firstOrDefault(function (a) { - return a instanceof viewClass; - }); - return result; - }; - ViewManager.prototype.existView = function (viewClass) { - return this._openDic.findIndex(function (a) { - return a instanceof viewClass; - }) != -1; - }; - return ViewManager; + }; + ViewManager.prototype.openView = function(viewClass, data, complete) { + var newView = this.getView(viewClass); + if (!newView) { + newView = new viewClass(); + } + if (this.existView(viewClass)) { + newView.refreshData(data); + newView.refreshView(); + return; + } + this._openDic.push(newView); + }; + ViewManager.prototype.getView = function(viewClass) { + var result = this._openDic.firstOrDefault(function( + a) { return a instanceof viewClass; }); + return result; + }; + ViewManager.prototype.existView = function(viewClass) { + return this._openDic.findIndex(function( + a) { return a instanceof viewClass; }) != -1; + }; + return ViewManager; }(BaseSingle)); -var Flags = (function () { - function Flags() { - } - Flags.isFlagSet = function (self, flag) { - return (self & flag) != 0; - }; - Flags.isUnshiftedFlagSet = function (self, flag) { - flag = 1 << flag; - return (self & flag) != 0; - }; - Flags.setFlagExclusive = function (self, flag) { - return 1 << flag; - }; - Flags.setFlag = function (self, flag) { - return (self | 1 << flag); - }; - Flags.unsetFlag = function (self, flag) { - flag = 1 << flag; - return (self & (~flag)); - }; - Flags.invertFlags = function (self) { - return ~self; - }; - return Flags; +var Flags = (function() { + function Flags() {} + Flags.isFlagSet = function(self, flag) { return (self & flag) != 0; }; + Flags.isUnshiftedFlagSet = function(self, flag) { + flag = 1 << flag; + return (self & flag) != 0; + }; + Flags.setFlagExclusive = function(self, flag) { return 1 << flag; }; + Flags.setFlag = function(self, flag) { return (self | 1 << flag); }; + Flags.unsetFlag = function(self, flag) { + flag = 1 << flag; + return (self & (~flag)); + }; + Flags.invertFlags = function(self) { return ~self; }; + return Flags; }()); -var MathHelper = (function () { - function MathHelper() { - } - MathHelper.toDegrees = function (radians) { - return radians * 57.295779513082320876798154814105; - }; - MathHelper.toRadians = function (degrees) { - return degrees * 0.017453292519943295769236907684886; - }; - MathHelper.map = function (value, leftMin, leftMax, rightMin, rightMax) { - return rightMin + (value - leftMin) * (rightMax - rightMin) / (leftMax - leftMin); - }; - MathHelper.lerp = function (value1, value2, amount) { - return value1 + (value2 - value1) * amount; - }; - MathHelper.clamp = function (value, min, max) { - if (value < min) - return min; - if (value > max) - return max; - return value; - }; - MathHelper.pointOnCirlce = function (circleCenter, radius, angleInDegrees) { - var radians = MathHelper.toRadians(angleInDegrees); - return new Vector2(Math.cos(radians) * radians + circleCenter.x, Math.sin(radians) * radians + circleCenter.y); - }; - MathHelper.isEven = function (value) { - return value % 2 == 0; - }; - MathHelper.Epsilon = 0.00001; - MathHelper.Rad2Deg = 57.29578; - MathHelper.Deg2Rad = 0.0174532924; - return MathHelper; +var MathHelper = (function() { + function MathHelper() {} + MathHelper.toDegrees = function( + radians) { return radians * 57.295779513082320876798154814105; }; + MathHelper.toRadians = function( + degrees) { return degrees * 0.017453292519943295769236907684886; }; + MathHelper.map = function(value, leftMin, leftMax, rightMin, rightMax) { + return rightMin + + (value - leftMin) * (rightMax - rightMin) / (leftMax - leftMin); + }; + MathHelper.lerp = function( + value1, value2, amount) { return value1 + (value2 - value1) * amount; }; + MathHelper.clamp = function(value, min, max) { + if (value < min) + return min; + if (value > max) + return max; + return value; + }; + MathHelper.pointOnCirlce = function(circleCenter, radius, angleInDegrees) { + var radians = MathHelper.toRadians(angleInDegrees); + return new Vector2(Math.cos(radians) * radians + circleCenter.x, + Math.sin(radians) * radians + circleCenter.y); + }; + MathHelper.isEven = function(value) { return value % 2 == 0; }; + MathHelper.Epsilon = 0.00001; + MathHelper.Rad2Deg = 57.29578; + MathHelper.Deg2Rad = 0.0174532924; + return MathHelper; }()); -var Matrix2D = (function () { - function Matrix2D(m11, m12, m21, m22, m31, m32) { - this.m11 = 0; - this.m12 = 0; - this.m21 = 0; - this.m22 = 0; - this.m31 = 0; - this.m32 = 0; - this.m11 = m11 ? m11 : 1; - this.m12 = m12 ? m12 : 0; - this.m21 = m21 ? m21 : 0; - this.m22 = m22 ? m22 : 1; - this.m31 = m31 ? m31 : 0; - this.m32 = m32 ? m32 : 0; +var Matrix2D = (function() { + function Matrix2D(m11, m12, m21, m22, m31, m32) { + this.m11 = 0; + this.m12 = 0; + this.m21 = 0; + this.m22 = 0; + this.m31 = 0; + this.m32 = 0; + this.m11 = m11 ? m11 : 1; + this.m12 = m12 ? m12 : 0; + this.m21 = m21 ? m21 : 0; + this.m22 = m22 ? m22 : 1; + this.m31 = m31 ? m31 : 0; + this.m32 = m32 ? m32 : 0; + } + Object.defineProperty(Matrix2D, "identity", { + get : function() { return Matrix2D._identity; }, + enumerable : true, + configurable : true + }); + Object.defineProperty(Matrix2D.prototype, "translation", { + get : function() { return new Vector2(this.m31, this.m32); }, + set : function(value) { + this.m31 = value.x; + this.m32 = value.y; + }, + enumerable : true, + configurable : true + }); + Object.defineProperty(Matrix2D.prototype, "rotation", { + get : function() { return Math.atan2(this.m21, this.m11); }, + set : function(value) { + var val1 = Math.cos(value); + var val2 = Math.sin(value); + this.m11 = val1; + this.m12 = val2; + this.m21 = -val2; + this.m22 = val1; + }, + enumerable : true, + configurable : true + }); + Object.defineProperty(Matrix2D.prototype, "rotationDegrees", { + get : function() { return MathHelper.toDegrees(this.rotation); }, + set : function(value) { this.rotation = MathHelper.toRadians(value); }, + enumerable : true, + configurable : true + }); + Object.defineProperty(Matrix2D.prototype, "scale", { + get : function() { return new Vector2(this.m11, this.m22); }, + set : function(value) { + this.m11 = value.x; + this.m12 = value.y; + }, + enumerable : true, + configurable : true + }); + Matrix2D.add = function(matrix1, matrix2) { + matrix1.m11 += matrix2.m11; + matrix1.m12 += matrix2.m12; + matrix1.m21 += matrix2.m21; + matrix1.m22 += matrix2.m22; + matrix1.m31 += matrix2.m31; + matrix1.m32 += matrix2.m32; + return matrix1; + }; + Matrix2D.divide = function(matrix1, matrix2) { + matrix1.m11 /= matrix2.m11; + matrix1.m12 /= matrix2.m12; + matrix1.m21 /= matrix2.m21; + matrix1.m22 /= matrix2.m22; + matrix1.m31 /= matrix2.m31; + matrix1.m32 /= matrix2.m32; + return matrix1; + }; + Matrix2D.multiply = function(matrix1, matrix2) { + var result = new Matrix2D(); + var m11 = (matrix1.m11 * matrix2.m11) + (matrix1.m12 * matrix2.m21); + var m12 = (matrix1.m11 * matrix2.m12) + (matrix1.m12 * matrix2.m22); + var m21 = (matrix1.m21 * matrix2.m11) + (matrix1.m22 * matrix2.m21); + var m22 = (matrix1.m21 * matrix2.m12) + (matrix1.m22 * matrix2.m22); + var m31 = + (matrix1.m31 * matrix2.m11) + (matrix1.m32 * matrix2.m21) + matrix2.m31; + var m32 = + (matrix1.m31 * matrix2.m12) + (matrix1.m32 * matrix2.m22) + matrix2.m32; + result.m11 = m11; + result.m12 = m12; + result.m21 = m21; + result.m22 = m22; + result.m31 = m31; + result.m32 = m32; + return result; + }; + Matrix2D.multiplyTranslation = function(matrix, x, y) { + var trans = Matrix2D.createTranslation(x, y); + return Matrix2D.multiply(matrix, trans); + }; + Matrix2D.prototype.determinant = + function() { return this.m11 * this.m22 - this.m12 * this.m21; }; + Matrix2D.invert = function(matrix, result) { + if (result === void 0) { + result = new Matrix2D(); } - Object.defineProperty(Matrix2D, "identity", { - get: function () { - return Matrix2D._identity; - }, - enumerable: true, - configurable: true - }); - Object.defineProperty(Matrix2D.prototype, "translation", { - get: function () { - return new Vector2(this.m31, this.m32); - }, - set: function (value) { - this.m31 = value.x; - this.m32 = value.y; - }, - enumerable: true, - configurable: true - }); - Object.defineProperty(Matrix2D.prototype, "rotation", { - get: function () { - return Math.atan2(this.m21, this.m11); - }, - set: function (value) { - var val1 = Math.cos(value); - var val2 = Math.sin(value); - this.m11 = val1; - this.m12 = val2; - this.m21 = -val2; - this.m22 = val1; - }, - enumerable: true, - configurable: true - }); - Object.defineProperty(Matrix2D.prototype, "rotationDegrees", { - get: function () { - return MathHelper.toDegrees(this.rotation); - }, - set: function (value) { - this.rotation = MathHelper.toRadians(value); - }, - enumerable: true, - configurable: true - }); - Object.defineProperty(Matrix2D.prototype, "scale", { - get: function () { - return new Vector2(this.m11, this.m22); - }, - set: function (value) { - this.m11 = value.x; - this.m12 = value.y; - }, - enumerable: true, - configurable: true - }); - Matrix2D.add = function (matrix1, matrix2) { - matrix1.m11 += matrix2.m11; - matrix1.m12 += matrix2.m12; - matrix1.m21 += matrix2.m21; - matrix1.m22 += matrix2.m22; - matrix1.m31 += matrix2.m31; - matrix1.m32 += matrix2.m32; - return matrix1; - }; - Matrix2D.divide = function (matrix1, matrix2) { - matrix1.m11 /= matrix2.m11; - matrix1.m12 /= matrix2.m12; - matrix1.m21 /= matrix2.m21; - matrix1.m22 /= matrix2.m22; - matrix1.m31 /= matrix2.m31; - matrix1.m32 /= matrix2.m32; - return matrix1; - }; - Matrix2D.multiply = function (matrix1, matrix2) { - var result = new Matrix2D(); - var m11 = (matrix1.m11 * matrix2.m11) + (matrix1.m12 * matrix2.m21); - var m12 = (matrix1.m11 * matrix2.m12) + (matrix1.m12 * matrix2.m22); - var m21 = (matrix1.m21 * matrix2.m11) + (matrix1.m22 * matrix2.m21); - var m22 = (matrix1.m21 * matrix2.m12) + (matrix1.m22 * matrix2.m22); - var m31 = (matrix1.m31 * matrix2.m11) + (matrix1.m32 * matrix2.m21) + matrix2.m31; - var m32 = (matrix1.m31 * matrix2.m12) + (matrix1.m32 * matrix2.m22) + matrix2.m32; - result.m11 = m11; - result.m12 = m12; - result.m21 = m21; - result.m22 = m22; - result.m31 = m31; - result.m32 = m32; - return result; - }; - Matrix2D.multiplyTranslation = function (matrix, x, y) { - var trans = Matrix2D.createTranslation(x, y); - return Matrix2D.multiply(matrix, trans); - }; - Matrix2D.prototype.determinant = function () { - return this.m11 * this.m22 - this.m12 * this.m21; - }; - Matrix2D.invert = function (matrix, result) { - if (result === void 0) { result = new Matrix2D(); } - var det = 1 / matrix.determinant(); - result.m11 = matrix.m22 * det; - result.m12 = -matrix.m12 * det; - result.m21 = -matrix.m21 * det; - result.m22 = matrix.m11 * det; - result.m31 = (matrix.m32 * matrix.m21 - matrix.m31 * matrix.m22) * det; - result.m32 = -(matrix.m32 * matrix.m11 - matrix.m31 * matrix.m12) * det; - return result; - }; - Matrix2D.createTranslation = function (xPosition, yPosition, result) { - result = result ? result : new Matrix2D(); - result.m11 = 1; - result.m12 = 0; - result.m21 = 0; - result.m22 = 1; - result.m31 = xPosition; - result.m32 = yPosition; - return result; - }; - Matrix2D.createRotation = function (radians, result) { - result = new Matrix2D(); - var val1 = Math.cos(radians); - var val2 = Math.sin(radians); - result.m11 = val1; - result.m12 = val2; - result.m21 = -val2; - result.m22 = val1; - return result; - }; - Matrix2D.createScale = function (xScale, yScale, result) { - if (result === void 0) { result = new Matrix2D(); } - result.m11 = xScale; - result.m12 = 0; - result.m21 = 0; - result.m22 = yScale; - result.m31 = 0; - result.m32 = 0; - return result; - }; - Matrix2D.prototype.toEgretMatrix = function () { - var matrix = new egret.Matrix(this.m11, this.m12, this.m21, this.m22, this.m31, this.m32); - return matrix; - }; - Matrix2D._identity = new Matrix2D(1, 0, 0, 1, 0, 0); - return Matrix2D; + var det = 1 / matrix.determinant(); + result.m11 = matrix.m22 * det; + result.m12 = -matrix.m12 * det; + result.m21 = -matrix.m21 * det; + result.m22 = matrix.m11 * det; + result.m31 = (matrix.m32 * matrix.m21 - matrix.m31 * matrix.m22) * det; + result.m32 = -(matrix.m32 * matrix.m11 - matrix.m31 * matrix.m12) * det; + return result; + }; + Matrix2D.createTranslation = function(xPosition, yPosition, result) { + result = result ? result : new Matrix2D(); + result.m11 = 1; + result.m12 = 0; + result.m21 = 0; + result.m22 = 1; + result.m31 = xPosition; + result.m32 = yPosition; + return result; + }; + Matrix2D.createRotation = function(radians, result) { + result = new Matrix2D(); + var val1 = Math.cos(radians); + var val2 = Math.sin(radians); + result.m11 = val1; + result.m12 = val2; + result.m21 = -val2; + result.m22 = val1; + return result; + }; + Matrix2D.createScale = function(xScale, yScale, result) { + if (result === void 0) { + result = new Matrix2D(); + } + result.m11 = xScale; + result.m12 = 0; + result.m21 = 0; + result.m22 = yScale; + result.m31 = 0; + result.m32 = 0; + return result; + }; + Matrix2D.prototype.toEgretMatrix = function() { + var matrix = new egret.Matrix(this.m11, this.m12, this.m21, this.m22, + this.m31, this.m32); + return matrix; + }; + Matrix2D._identity = new Matrix2D(1, 0, 0, 1, 0, 0); + return Matrix2D; }()); -var Rectangle = (function () { - function Rectangle(x, y, width, height) { - this.x = x ? x : 0; - this.y = y ? y : 0; - this.width = width ? width : 0; - this.height = height ? height : 0; - } - Object.defineProperty(Rectangle.prototype, "left", { - get: function () { - return this.x; - }, - enumerable: true, - configurable: true - }); - Object.defineProperty(Rectangle.prototype, "right", { - get: function () { - return this.x + this.width; - }, - enumerable: true, - configurable: true - }); - Object.defineProperty(Rectangle.prototype, "top", { - get: function () { - return this.y; - }, - enumerable: true, - configurable: true - }); - Object.defineProperty(Rectangle.prototype, "bottom", { - get: function () { - return this.y + this.height; - }, - enumerable: true, - configurable: true - }); - Object.defineProperty(Rectangle.prototype, "center", { - get: function () { - return new Vector2(this.x + (this.width / 2), this.y + (this.height / 2)); - }, - enumerable: true, - configurable: true - }); - Object.defineProperty(Rectangle.prototype, "location", { - get: function () { - return new Vector2(this.x, this.y); - }, - set: function (value) { - this.x = value.x; - this.y = value.y; - }, - enumerable: true, - configurable: true - }); - Object.defineProperty(Rectangle.prototype, "size", { - get: function () { - return new Vector2(this.width, this.height); - }, - set: function (value) { - this.width = value.x; - this.height = value.y; - }, - enumerable: true, - configurable: true - }); - Rectangle.prototype.intersects = function (value) { - return value.left < this.right && - this.left < value.right && - value.top < this.bottom && - this.top < value.bottom; - }; - Rectangle.prototype.contains = function (value) { - return ((((this.x <= value.x) && (value.x < (this.x + this.width))) && - (this.y <= value.y)) && +var Rectangle = (function() { + function Rectangle(x, y, width, height) { + this.x = x ? x : 0; + this.y = y ? y : 0; + this.width = width ? width : 0; + this.height = height ? height : 0; + } + Object.defineProperty(Rectangle.prototype, "left", { + get : function() { return this.x; }, + enumerable : true, + configurable : true + }); + Object.defineProperty(Rectangle.prototype, "right", { + get : function() { return this.x + this.width; }, + enumerable : true, + configurable : true + }); + Object.defineProperty(Rectangle.prototype, "top", { + get : function() { return this.y; }, + enumerable : true, + configurable : true + }); + Object.defineProperty(Rectangle.prototype, "bottom", { + get : function() { return this.y + this.height; }, + enumerable : true, + configurable : true + }); + Object.defineProperty(Rectangle.prototype, "center", { + get : function() { + return new Vector2(this.x + (this.width / 2), this.y + (this.height / 2)); + }, + enumerable : true, + configurable : true + }); + Object.defineProperty(Rectangle.prototype, "location", { + get : function() { return new Vector2(this.x, this.y); }, + set : function(value) { + this.x = value.x; + this.y = value.y; + }, + enumerable : true, + configurable : true + }); + Object.defineProperty(Rectangle.prototype, "size", { + get : function() { return new Vector2(this.width, this.height); }, + set : function(value) { + this.width = value.x; + this.height = value.y; + }, + enumerable : true, + configurable : true + }); + Rectangle.prototype.intersects = function(value) { + return value.left < this.right && this.left < value.right && + value.top < this.bottom && this.top < value.bottom; + }; + Rectangle.prototype.contains = function(value) { + return ((((this.x <= value.x) && (value.x < (this.x + this.width))) && + (this.y <= value.y)) && (value.y < (this.y + this.height))); - }; - Rectangle.prototype.containsRect = function (value) { - return ((((this.x <= value.x) && (value.x < (this.x + this.width))) && - (this.y <= value.y)) && + }; + Rectangle.prototype.containsRect = function(value) { + return ((((this.x <= value.x) && (value.x < (this.x + this.width))) && + (this.y <= value.y)) && (value.y < (this.y + this.height))); - }; - Rectangle.prototype.getHalfSize = function () { - return new Vector2(this.width * 0.5, this.height * 0.5); - }; - Rectangle.fromMinMax = function (minX, minY, maxX, maxY) { - return new Rectangle(minX, minY, maxX - minX, maxY - minY); - }; - Rectangle.prototype.getClosestPointOnRectangleBorderToPoint = function (point) { - var edgeNormal = new Vector2(0, 0); - var res = new Vector2(0, 0); - res.x = MathHelper.clamp(point.x, this.left, this.right); - res.y = MathHelper.clamp(point.y, this.top, this.bottom); - if (this.contains(res)) { - var dl = res.x - this.left; - var dr = this.right - res.x; - var dt = res.y - this.top; - var db = this.bottom - res.y; - var min = Math.min(dl, dr, dt, db); - if (min == dt) { - res.y = this.top; - edgeNormal.y = -1; - } - else if (min == db) { - res.y = this.bottom; - edgeNormal.y = 1; - } - else if (min == dl) { - res.x = this.left; - edgeNormal.x = -1; - } - else { - res.x = this.right; - edgeNormal.x = 1; - } - } - else { - if (res.x == this.left) { - edgeNormal.x = -1; - } - if (res.x == this.right) { - edgeNormal.x = 1; - } - if (res.y == this.top) { - edgeNormal.y = -1; - } - if (res.y == this.bottom) { - edgeNormal.y = 1; - } - } - return { res: res, edgeNormal: edgeNormal }; - }; - Rectangle.prototype.calculateBounds = function (parentPosition, position, origin, scale, rotation, width, height) { - if (rotation == 0) { - this.x = parentPosition.x + position.x - origin.x * scale.x; - this.y = parentPosition.y + position.y - origin.y * scale.y; - this.width = width * scale.x; - this.height = height * scale.y; - } - else { - var worldPosX = parentPosition.x + position.x; - var worldPosY = parentPosition.y + position.y; - this._transformMat = Matrix2D.createTranslation(-worldPosX - origin.x, -worldPosY - origin.y); - this._tempMat = Matrix2D.createScale(scale.x, scale.y); - this._transformMat = Matrix2D.multiply(this._transformMat, this._tempMat); - this._tempMat = Matrix2D.createRotation(rotation); - this._transformMat = Matrix2D.multiply(this._transformMat, this._tempMat); - this._tempMat = Matrix2D.createTranslation(worldPosX, worldPosY); - this._transformMat = Matrix2D.multiply(this._transformMat, this._tempMat); - var topLeft = new Vector2(worldPosX, worldPosY); - var topRight = new Vector2(worldPosX + width, worldPosY); - var bottomLeft = new Vector2(worldPosX, worldPosY + height); - var bottomRight = new Vector2(worldPosX + width, worldPosY + height); - topLeft = Vector2Ext.transformR(topLeft, this._transformMat); - topRight = Vector2Ext.transformR(topRight, this._transformMat); - bottomLeft = Vector2Ext.transformR(bottomLeft, this._transformMat); - bottomRight = Vector2Ext.transformR(bottomRight, this._transformMat); - var minX = Math.min(topLeft.x, bottomRight.x, topRight.x, bottomLeft.x); - var maxX = Math.max(topLeft.x, bottomRight.x, topRight.x, bottomLeft.x); - var minY = Math.min(topLeft.y, bottomRight.y, topRight.y, bottomLeft.y); - var maxY = Math.max(topLeft.y, bottomRight.y, topRight.y, bottomLeft.y); - this.location = new Vector2(minX, minY); - this.width = maxX - minX; - this.height = maxY - minY; - } - }; - Rectangle.rectEncompassingPoints = function (points) { - var minX = Number.POSITIVE_INFINITY; - var minY = Number.POSITIVE_INFINITY; - var maxX = Number.NEGATIVE_INFINITY; - var maxY = Number.NEGATIVE_INFINITY; - for (var i = 0; i < points.length; i++) { - var pt = points[i]; - if (pt.x < minX) { - minX = pt.x; - } - if (pt.x > maxX) { - maxX = pt.x; - } - if (pt.y < minY) { - minY = pt.y; - } - if (pt.y > maxY) { - maxY = pt.y; - } - } - return this.fromMinMax(minX, minY, maxX, maxY); - }; - return Rectangle; -}()); -var Vector2 = (function () { - function Vector2(x, y) { - this.x = 0; - this.y = 0; - this.x = x ? x : 0; - this.y = y ? y : this.x; + }; + Rectangle.prototype.getHalfSize = + function() { return new Vector2(this.width * 0.5, this.height * 0.5); }; + Rectangle.fromMinMax = function( + minX, minY, maxX, + maxY) { return new Rectangle(minX, minY, maxX - minX, maxY - minY); }; + Rectangle.prototype.getClosestPointOnRectangleBorderToPoint = function( + point) { + var edgeNormal = new Vector2(0, 0); + var res = new Vector2(0, 0); + res.x = MathHelper.clamp(point.x, this.left, this.right); + res.y = MathHelper.clamp(point.y, this.top, this.bottom); + if (this.contains(res)) { + var dl = res.x - this.left; + var dr = this.right - res.x; + var dt = res.y - this.top; + var db = this.bottom - res.y; + var min = Math.min(dl, dr, dt, db); + if (min == dt) { + res.y = this.top; + edgeNormal.y = -1; + } else if (min == db) { + res.y = this.bottom; + edgeNormal.y = 1; + } else if (min == dl) { + res.x = this.left; + edgeNormal.x = -1; + } else { + res.x = this.right; + edgeNormal.x = 1; + } + } else { + if (res.x == this.left) { + edgeNormal.x = -1; + } + if (res.x == this.right) { + edgeNormal.x = 1; + } + if (res.y == this.top) { + edgeNormal.y = -1; + } + if (res.y == this.bottom) { + edgeNormal.y = 1; + } } - Object.defineProperty(Vector2, "zero", { - get: function () { - return Vector2.zeroVector2; - }, - enumerable: true, - configurable: true - }); - Object.defineProperty(Vector2, "one", { - get: function () { - return Vector2.unitVector2; - }, - enumerable: true, - configurable: true - }); - Object.defineProperty(Vector2, "unitX", { - get: function () { - return Vector2.unitXVector; - }, - enumerable: true, - configurable: true - }); - Object.defineProperty(Vector2, "unitY", { - get: function () { - return Vector2.unitYVector; - }, - enumerable: true, - configurable: true - }); - Vector2.add = function (value1, value2) { - var result = new Vector2(0, 0); - result.x = value1.x + value2.x; - result.y = value1.y + value2.y; - return result; - }; - Vector2.divide = function (value1, value2) { - var result = new Vector2(0, 0); - result.x = value1.x / value2.x; - result.y = value1.y / value2.y; - return result; - }; - Vector2.multiply = function (value1, value2) { - var result = new Vector2(0, 0); - result.x = value1.x * value2.x; - result.y = value1.y * value2.y; - return result; - }; - Vector2.subtract = function (value1, value2) { - var result = new Vector2(0, 0); - result.x = value1.x - value2.x; - result.y = value1.y - value2.y; - return result; - }; - Vector2.prototype.normalize = function () { - var val = 1 / Math.sqrt((this.x * this.x) + (this.y * this.y)); - this.x *= val; - this.y *= val; - }; - Vector2.prototype.length = function () { - return Math.sqrt((this.x * this.x) + (this.y * this.y)); - }; - Vector2.prototype.round = function () { - return new Vector2(Math.round(this.x), Math.round(this.y)); - }; - Vector2.normalize = function (value) { - var val = 1 / Math.sqrt((value.x * value.x) + (value.y * value.y)); - value.x *= val; - value.y *= val; - return value; - }; - Vector2.dot = function (value1, value2) { - return (value1.x * value2.x) + (value1.y * value2.y); - }; - Vector2.distanceSquared = function (value1, value2) { - var v1 = value1.x - value2.x, v2 = value1.y - value2.y; - return (v1 * v1) + (v2 * v2); - }; - Vector2.clamp = function (value1, min, max) { - return new Vector2(MathHelper.clamp(value1.x, min.x, max.x), MathHelper.clamp(value1.y, min.y, max.y)); - }; - Vector2.lerp = function (value1, value2, amount) { - return new Vector2(MathHelper.lerp(value1.x, value2.x, amount), MathHelper.lerp(value1.y, value2.y, amount)); - }; - Vector2.transform = function (position, matrix) { - return new Vector2((position.x * matrix.m11) + (position.y * matrix.m21), (position.x * matrix.m12) + (position.y * matrix.m22)); - }; - Vector2.distance = function (value1, value2) { - var v1 = value1.x - value2.x, v2 = value1.y - value2.y; - return Math.sqrt((v1 * v1) + (v2 * v2)); - }; - Vector2.negate = function (value) { - var result = new Vector2(); - result.x = -value.x; - result.y = -value.y; - return result; - }; - Vector2.unitYVector = new Vector2(0, 1); - Vector2.unitXVector = new Vector2(1, 0); - Vector2.unitVector2 = new Vector2(1, 1); - Vector2.zeroVector2 = new Vector2(0, 0); - return Vector2; -}()); -var Vector3 = (function () { - function Vector3(x, y, z) { - this.x = x; - this.y = y; - this.z = z; + return {res : res, edgeNormal : edgeNormal}; + }; + Rectangle.prototype.calculateBounds = function( + parentPosition, position, origin, scale, rotation, width, height) { + if (rotation == 0) { + this.x = parentPosition.x + position.x - origin.x * scale.x; + this.y = parentPosition.y + position.y - origin.y * scale.y; + this.width = width * scale.x; + this.height = height * scale.y; + } else { + var worldPosX = parentPosition.x + position.x; + var worldPosY = parentPosition.y + position.y; + this._transformMat = Matrix2D.createTranslation(-worldPosX - origin.x, + -worldPosY - origin.y); + this._tempMat = Matrix2D.createScale(scale.x, scale.y); + this._transformMat = Matrix2D.multiply(this._transformMat, this._tempMat); + this._tempMat = Matrix2D.createRotation(rotation); + this._transformMat = Matrix2D.multiply(this._transformMat, this._tempMat); + this._tempMat = Matrix2D.createTranslation(worldPosX, worldPosY); + this._transformMat = Matrix2D.multiply(this._transformMat, this._tempMat); + var topLeft = new Vector2(worldPosX, worldPosY); + var topRight = new Vector2(worldPosX + width, worldPosY); + var bottomLeft = new Vector2(worldPosX, worldPosY + height); + var bottomRight = new Vector2(worldPosX + width, worldPosY + height); + topLeft = Vector2Ext.transformR(topLeft, this._transformMat); + topRight = Vector2Ext.transformR(topRight, this._transformMat); + bottomLeft = Vector2Ext.transformR(bottomLeft, this._transformMat); + bottomRight = Vector2Ext.transformR(bottomRight, this._transformMat); + var minX = Math.min(topLeft.x, bottomRight.x, topRight.x, bottomLeft.x); + var maxX = Math.max(topLeft.x, bottomRight.x, topRight.x, bottomLeft.x); + var minY = Math.min(topLeft.y, bottomRight.y, topRight.y, bottomLeft.y); + var maxY = Math.max(topLeft.y, bottomRight.y, topRight.y, bottomLeft.y); + this.location = new Vector2(minX, minY); + this.width = maxX - minX; + this.height = maxY - minY; } - return Vector3; -}()); -var ColliderTriggerHelper = (function () { - function ColliderTriggerHelper(entity) { - this._activeTriggerIntersections = []; - this._previousTriggerIntersections = []; - this._tempTriggerList = []; - this._entity = entity; + }; + Rectangle.rectEncompassingPoints = function(points) { + var minX = Number.POSITIVE_INFINITY; + var minY = Number.POSITIVE_INFINITY; + var maxX = Number.NEGATIVE_INFINITY; + var maxY = Number.NEGATIVE_INFINITY; + for (var i = 0; i < points.length; i++) { + var pt = points[i]; + if (pt.x < minX) { + minX = pt.x; + } + if (pt.x > maxX) { + maxX = pt.x; + } + if (pt.y < minY) { + minY = pt.y; + } + if (pt.y > maxY) { + maxY = pt.y; + } } - ColliderTriggerHelper.prototype.update = function () { - var colliders = this._entity.getComponents(Collider); - for (var i = 0; i < colliders.length; i++) { - var collider = colliders[i]; - var neighbors = Physics.boxcastBroadphase(collider.bounds, collider.collidesWithLayers); - var _loop_5 = function (j) { - var neighbor = neighbors[j]; - if (!collider.isTrigger && !neighbor.isTrigger) - return "continue"; - if (collider.overlaps(neighbor)) { - var pair_1 = new Pair(collider, neighbor); - var shouldReportTriggerEvent = this_1._activeTriggerIntersections.findIndex(function (value) { - return value.first == pair_1.first && value.second == pair_1.second; - }) == -1 && this_1._previousTriggerIntersections.findIndex(function (value) { - return value.first == pair_1.first && value.second == pair_1.second; - }) == -1; - if (shouldReportTriggerEvent) - this_1.notifyTriggerListeners(pair_1, true); - if (!this_1._activeTriggerIntersections.contains(pair_1)) - this_1._activeTriggerIntersections.push(pair_1); - } - }; - var this_1 = this; - for (var j = 0; j < neighbors.length; j++) { - _loop_5(j); - } + return this.fromMinMax(minX, minY, maxX, maxY); + }; + return Rectangle; +}()); +var Vector2 = (function() { + function Vector2(x, y) { + this.x = 0; + this.y = 0; + this.x = x ? x : 0; + this.y = y ? y : this.x; + } + Object.defineProperty(Vector2, "zero", { + get : function() { return Vector2.zeroVector2; }, + enumerable : true, + configurable : true + }); + Object.defineProperty(Vector2, "one", { + get : function() { return Vector2.unitVector2; }, + enumerable : true, + configurable : true + }); + Object.defineProperty(Vector2, "unitX", { + get : function() { return Vector2.unitXVector; }, + enumerable : true, + configurable : true + }); + Object.defineProperty(Vector2, "unitY", { + get : function() { return Vector2.unitYVector; }, + enumerable : true, + configurable : true + }); + Vector2.add = function(value1, value2) { + var result = new Vector2(0, 0); + result.x = value1.x + value2.x; + result.y = value1.y + value2.y; + return result; + }; + Vector2.divide = function(value1, value2) { + var result = new Vector2(0, 0); + result.x = value1.x / value2.x; + result.y = value1.y / value2.y; + return result; + }; + Vector2.multiply = function(value1, value2) { + var result = new Vector2(0, 0); + result.x = value1.x * value2.x; + result.y = value1.y * value2.y; + return result; + }; + Vector2.subtract = function(value1, value2) { + var result = new Vector2(0, 0); + result.x = value1.x - value2.x; + result.y = value1.y - value2.y; + return result; + }; + Vector2.prototype.normalize = function() { + var val = 1 / Math.sqrt((this.x * this.x) + (this.y * this.y)); + this.x *= val; + this.y *= val; + }; + Vector2.prototype.length = + function() { return Math.sqrt((this.x * this.x) + (this.y * this.y)); }; + Vector2.prototype.round = function() { + return new Vector2(Math.round(this.x), Math.round(this.y)); + }; + Vector2.normalize = function(value) { + var val = 1 / Math.sqrt((value.x * value.x) + (value.y * value.y)); + value.x *= val; + value.y *= val; + return value; + }; + Vector2.dot = function( + value1, value2) { return (value1.x * value2.x) + (value1.y * value2.y); }; + Vector2.distanceSquared = function(value1, value2) { + var v1 = value1.x - value2.x, v2 = value1.y - value2.y; + return (v1 * v1) + (v2 * v2); + }; + Vector2.clamp = function(value1, min, max) { + return new Vector2(MathHelper.clamp(value1.x, min.x, max.x), + MathHelper.clamp(value1.y, min.y, max.y)); + }; + Vector2.lerp = function(value1, value2, amount) { + return new Vector2(MathHelper.lerp(value1.x, value2.x, amount), + MathHelper.lerp(value1.y, value2.y, amount)); + }; + Vector2.transform = function(position, matrix) { + return new Vector2((position.x * matrix.m11) + (position.y * matrix.m21), + (position.x * matrix.m12) + (position.y * matrix.m22)); + }; + Vector2.distance = function(value1, value2) { + var v1 = value1.x - value2.x, v2 = value1.y - value2.y; + return Math.sqrt((v1 * v1) + (v2 * v2)); + }; + Vector2.negate = function(value) { + var result = new Vector2(); + result.x = -value.x; + result.y = -value.y; + return result; + }; + Vector2.unitYVector = new Vector2(0, 1); + Vector2.unitXVector = new Vector2(1, 0); + Vector2.unitVector2 = new Vector2(1, 1); + Vector2.zeroVector2 = new Vector2(0, 0); + return Vector2; +}()); +var Vector3 = (function() { + function Vector3(x, y, z) { + this.x = x; + this.y = y; + this.z = z; + } + return Vector3; +}()); +var ColliderTriggerHelper = (function() { + function ColliderTriggerHelper(entity) { + this._activeTriggerIntersections = []; + this._previousTriggerIntersections = []; + this._tempTriggerList = []; + this._entity = entity; + } + ColliderTriggerHelper.prototype.update = function() { + var colliders = this._entity.getComponents(Collider); + for (var i = 0; i < colliders.length; i++) { + var collider = colliders[i]; + var neighbors = Physics.boxcastBroadphase(collider.bounds, + collider.collidesWithLayers); + var _loop_5 = function(j) { + var neighbor = neighbors[j]; + if (!collider.isTrigger && !neighbor.isTrigger) + return "continue"; + if (collider.overlaps(neighbor)) { + var pair_1 = new Pair(collider, neighbor); + var shouldReportTriggerEvent = + this_1._activeTriggerIntersections.findIndex(function(value) { + return value.first == pair_1.first && + value.second == pair_1.second; + }) == -1 && + this_1._previousTriggerIntersections.findIndex(function(value) { + return value.first == pair_1.first && + value.second == pair_1.second; + }) == -1; + if (shouldReportTriggerEvent) + this_1.notifyTriggerListeners(pair_1, true); + if (!this_1._activeTriggerIntersections.contains(pair_1)) + this_1._activeTriggerIntersections.push(pair_1); } - ListPool.free(colliders); - this.checkForExitedColliders(); + }; + var this_1 = this; + for (var j = 0; j < neighbors.length; j++) { + _loop_5(j); + } + } + ListPool.free(colliders); + this.checkForExitedColliders(); + }; + ColliderTriggerHelper.prototype.checkForExitedColliders = function() { + var _this = this; + var _loop_6 = function(i) { + var index = + this_2._previousTriggerIntersections.findIndex(function(value) { + if (value.first == _this._activeTriggerIntersections[i].first && + value.second == _this._activeTriggerIntersections[i].second) + return true; + return false; + }); + if (index != -1) + this_2._previousTriggerIntersections.removeAt(index); }; - ColliderTriggerHelper.prototype.checkForExitedColliders = function () { - var _this = this; - var _loop_6 = function (i) { - var index = this_2._previousTriggerIntersections.findIndex(function (value) { - if (value.first == _this._activeTriggerIntersections[i].first && value.second == _this._activeTriggerIntersections[i].second) - return true; - return false; - }); - if (index != -1) - this_2._previousTriggerIntersections.removeAt(index); - }; - var this_2 = this; - for (var i = 0; i < this._activeTriggerIntersections.length; i++) { - _loop_6(i); + var this_2 = this; + for (var i = 0; i < this._activeTriggerIntersections.length; i++) { + _loop_6(i); + } + for (var i = 0; i < this._previousTriggerIntersections.length; i++) { + this.notifyTriggerListeners(this._previousTriggerIntersections[i], false); + } + this._previousTriggerIntersections.length = 0; + for (var i = 0; i < this._activeTriggerIntersections.length; i++) { + if (!this._previousTriggerIntersections.contains( + this._activeTriggerIntersections[i])) { + this._previousTriggerIntersections.push( + this._activeTriggerIntersections[i]); + } + } + this._activeTriggerIntersections.length = 0; + }; + ColliderTriggerHelper.prototype.notifyTriggerListeners = function( + collisionPair, isEntering) { + collisionPair.first.entity.getComponents("ITriggerListener", + this._tempTriggerList); + for (var i = 0; i < this._tempTriggerList.length; i++) { + if (isEntering) { + this._tempTriggerList[i].onTriggerEnter(collisionPair.second, + collisionPair.first); + } else { + this._tempTriggerList[i].onTriggerExit(collisionPair.second, + collisionPair.first); + } + this._tempTriggerList.length = 0; + if (collisionPair.second.entity) { + collisionPair.second.entity.getComponents("ITriggerListener", + this._tempTriggerList); + for (var i_2 = 0; i_2 < this._tempTriggerList.length; i_2++) { + if (isEntering) { + this._tempTriggerList[i_2].onTriggerEnter(collisionPair.first, + collisionPair.second); + } else { + this._tempTriggerList[i_2].onTriggerExit(collisionPair.first, + collisionPair.second); + } } - for (var i = 0; i < this._previousTriggerIntersections.length; i++) { - this.notifyTriggerListeners(this._previousTriggerIntersections[i], false); - } - this._previousTriggerIntersections.length = 0; - for (var i = 0; i < this._activeTriggerIntersections.length; i++) { - if (!this._previousTriggerIntersections.contains(this._activeTriggerIntersections[i])) { - this._previousTriggerIntersections.push(this._activeTriggerIntersections[i]); - } - } - this._activeTriggerIntersections.length = 0; - }; - ColliderTriggerHelper.prototype.notifyTriggerListeners = function (collisionPair, isEntering) { - collisionPair.first.entity.getComponents("ITriggerListener", this._tempTriggerList); - for (var i = 0; i < this._tempTriggerList.length; i++) { - if (isEntering) { - this._tempTriggerList[i].onTriggerEnter(collisionPair.second, collisionPair.first); - } - else { - this._tempTriggerList[i].onTriggerExit(collisionPair.second, collisionPair.first); - } - this._tempTriggerList.length = 0; - if (collisionPair.second.entity) { - collisionPair.second.entity.getComponents("ITriggerListener", this._tempTriggerList); - for (var i_2 = 0; i_2 < this._tempTriggerList.length; i_2++) { - if (isEntering) { - this._tempTriggerList[i_2].onTriggerEnter(collisionPair.first, collisionPair.second); - } - else { - this._tempTriggerList[i_2].onTriggerExit(collisionPair.first, collisionPair.second); - } - } - this._tempTriggerList.length = 0; - } - } - }; - return ColliderTriggerHelper; + this._tempTriggerList.length = 0; + } + } + }; + return ColliderTriggerHelper; }()); var PointSectors; -(function (PointSectors) { - PointSectors[PointSectors["center"] = 0] = "center"; - PointSectors[PointSectors["top"] = 1] = "top"; - PointSectors[PointSectors["bottom"] = 2] = "bottom"; - PointSectors[PointSectors["topLeft"] = 9] = "topLeft"; - PointSectors[PointSectors["topRight"] = 5] = "topRight"; - PointSectors[PointSectors["left"] = 8] = "left"; - PointSectors[PointSectors["right"] = 4] = "right"; - PointSectors[PointSectors["bottomLeft"] = 10] = "bottomLeft"; - PointSectors[PointSectors["bottomRight"] = 6] = "bottomRight"; +(function(PointSectors) { +PointSectors[PointSectors["center"] = 0] = "center"; +PointSectors[PointSectors["top"] = 1] = "top"; +PointSectors[PointSectors["bottom"] = 2] = "bottom"; +PointSectors[PointSectors["topLeft"] = 9] = "topLeft"; +PointSectors[PointSectors["topRight"] = 5] = "topRight"; +PointSectors[PointSectors["left"] = 8] = "left"; +PointSectors[PointSectors["right"] = 4] = "right"; +PointSectors[PointSectors["bottomLeft"] = 10] = "bottomLeft"; +PointSectors[PointSectors["bottomRight"] = 6] = "bottomRight"; })(PointSectors || (PointSectors = {})); -var Collisions = (function () { - function Collisions() { +var Collisions = (function() { + function Collisions() {} + Collisions.isLineToLine = function(a1, a2, b1, b2) { + var b = Vector2.subtract(a2, a1); + var d = Vector2.subtract(b2, b1); + var bDotDPerp = b.x * d.y - b.y * d.x; + if (bDotDPerp == 0) + return false; + var c = Vector2.subtract(b1, a1); + var t = (c.x * d.y - c.y * d.x) / bDotDPerp; + if (t < 0 || t > 1) + return false; + var u = (c.x * b.y - c.y * b.x) / bDotDPerp; + if (u < 0 || u > 1) + return false; + return true; + }; + Collisions.lineToLineIntersection = function(a1, a2, b1, b2) { + var intersection = new Vector2(0, 0); + var b = Vector2.subtract(a2, a1); + var d = Vector2.subtract(b2, b1); + var bDotDPerp = b.x * d.y - b.y * d.x; + if (bDotDPerp == 0) + return intersection; + var c = Vector2.subtract(b1, a1); + var t = (c.x * d.y - c.y * d.x) / bDotDPerp; + if (t < 0 || t > 1) + return intersection; + var u = (c.x * b.y - c.y * b.x) / bDotDPerp; + if (u < 0 || u > 1) + return intersection; + intersection = Vector2.add(a1, new Vector2(t * b.x, t * b.y)); + return intersection; + }; + Collisions.closestPointOnLine = function(lineA, lineB, closestTo) { + var v = Vector2.subtract(lineB, lineA); + var w = Vector2.subtract(closestTo, lineA); + var t = Vector2.dot(w, v) / Vector2.dot(v, v); + t = MathHelper.clamp(t, 0, 1); + return Vector2.add(lineA, new Vector2(v.x * t, v.y * t)); + }; + Collisions.isCircleToCircle = function(circleCenter1, circleRadius1, + circleCenter2, circleRadius2) { + return Vector2.distanceSquared(circleCenter1, circleCenter2) < + (circleRadius1 + circleRadius2) * (circleRadius1 + circleRadius2); + }; + Collisions.isCircleToLine = function(circleCenter, radius, lineFrom, lineTo) { + return Vector2.distanceSquared( + circleCenter, + this.closestPointOnLine(lineFrom, lineTo, circleCenter)) < + radius * radius; + }; + Collisions.isCircleToPoint = function(circleCenter, radius, point) { + return Vector2.distanceSquared(circleCenter, point) < radius * radius; + }; + Collisions.isRectToCircle = function(rect, cPosition, cRadius) { + var ew = rect.width * 0.5; + var eh = rect.height * 0.5; + var vx = Math.max(0, Math.max(cPosition.x - rect.x) - ew); + var vy = Math.max(0, Math.max(cPosition.y - rect.y) - eh); + return vx * vx + vy * vy < cRadius * cRadius; + }; + Collisions.isRectToLine = function(rect, lineFrom, lineTo) { + var fromSector = + this.getSector(rect.x, rect.y, rect.width, rect.height, lineFrom); + var toSector = + this.getSector(rect.x, rect.y, rect.width, rect.height, lineTo); + if (fromSector == PointSectors.center || toSector == PointSectors.center) { + return true; + } else if ((fromSector & toSector) != 0) { + return false; + } else { + var both = fromSector | toSector; + var edgeFrom = void 0; + var edgeTo = void 0; + if ((both & PointSectors.top) != 0) { + edgeFrom = new Vector2(rect.x, rect.y); + edgeTo = new Vector2(rect.x + rect.width, rect.y); + if (this.isLineToLine(edgeFrom, edgeTo, lineFrom, lineTo)) + return true; + } + if ((both & PointSectors.bottom) != 0) { + edgeFrom = new Vector2(rect.x, rect.y + rect.height); + edgeTo = new Vector2(rect.x + rect.width, rect.y + rect.height); + if (this.isLineToLine(edgeFrom, edgeTo, lineFrom, lineTo)) + return true; + } + if ((both & PointSectors.left) != 0) { + edgeFrom = new Vector2(rect.x, rect.y); + edgeTo = new Vector2(rect.x, rect.y + rect.height); + if (this.isLineToLine(edgeFrom, edgeTo, lineFrom, lineTo)) + return true; + } + if ((both & PointSectors.right) != 0) { + edgeFrom = new Vector2(rect.x + rect.width, rect.y); + edgeTo = new Vector2(rect.x + rect.width, rect.y + rect.height); + if (this.isLineToLine(edgeFrom, edgeTo, lineFrom, lineTo)) + return true; + } } - Collisions.isLineToLine = function (a1, a2, b1, b2) { - var b = Vector2.subtract(a2, a1); - var d = Vector2.subtract(b2, b1); - var bDotDPerp = b.x * d.y - b.y * d.x; - if (bDotDPerp == 0) - return false; - var c = Vector2.subtract(b1, a1); - var t = (c.x * d.y - c.y * d.x) / bDotDPerp; - if (t < 0 || t > 1) - return false; - var u = (c.x * b.y - c.y * b.x) / bDotDPerp; - if (u < 0 || u > 1) - return false; + return false; + }; + Collisions.isRectToPoint = function(rX, rY, rW, rH, point) { + return point.x >= rX && point.y >= rY && point.x < rX + rW && + point.y < rY + rH; + }; + Collisions.getSector = function(rX, rY, rW, rH, point) { + var sector = PointSectors.center; + if (point.x < rX) + sector |= PointSectors.left; + else if (point.x >= rX + rW) + sector |= PointSectors.right; + if (point.y < rY) + sector |= PointSectors.top; + else if (point.y >= rY + rH) + sector |= PointSectors.bottom; + return sector; + }; + return Collisions; +}()); +var Physics = (function() { + function Physics() {} + Physics.reset = function() { + this._spatialHash = new SpatialHash(this.spatialHashCellSize); + }; + Physics.clear = function() { this._spatialHash.clear(); }; + Physics.overlapCircleAll = function(center, randius, results, layerMask) { + if (layerMask === void 0) { + layerMask = -1; + } + return this._spatialHash.overlapCircle(center, randius, results, layerMask); + }; + Physics.boxcastBroadphase = function(rect, layerMask) { + if (layerMask === void 0) { + layerMask = this.allLayers; + } + return this._spatialHash.aabbBroadphase(rect, null, layerMask); + }; + Physics.boxcastBroadphaseExcludingSelf = function(collider, rect, layerMask) { + if (layerMask === void 0) { + layerMask = this.allLayers; + } + return this._spatialHash.aabbBroadphase(rect, collider, layerMask); + }; + Physics.addCollider = function( + collider) { Physics._spatialHash.register(collider); }; + Physics.removeCollider = function( + collider) { Physics._spatialHash.remove(collider); }; + Physics.updateCollider = function(collider) { + this._spatialHash.remove(collider); + this._spatialHash.register(collider); + }; + Physics.spatialHashCellSize = 100; + Physics.allLayers = -1; + return Physics; +}()); +var Shape = (function() { + function Shape() {} + return Shape; +}()); +var Polygon = (function(_super) { + __extends(Polygon, _super); + function Polygon(points, isBox) { + var _this = _super.call(this) || this; + _this.isUnrotated = true; + _this._areEdgeNormalsDirty = true; + _this.setPoints(points); + _this.isBox = isBox; + return _this; + } + Object.defineProperty(Polygon.prototype, "edgeNormals", { + get : function() { + if (this._areEdgeNormalsDirty) + this.buildEdgeNormals(); + return this._edgeNormals; + }, + enumerable : true, + configurable : true + }); + Polygon.prototype.buildEdgeNormals = function() { + var totalEdges = this.isBox ? 2 : this.points.length; + if (this._edgeNormals == null || this._edgeNormals.length != totalEdges) + this._edgeNormals = new Array(totalEdges); + var p2; + for (var i = 0; i < totalEdges; i++) { + var p1 = this.points[i]; + if (i + 1 >= this.points.length) + p2 = this.points[0]; + else + p2 = this.points[i + 1]; + var perp = Vector2Ext.perpendicular(p1, p2); + perp = Vector2.normalize(perp); + this._edgeNormals[i] = perp; + } + }; + Polygon.prototype.setPoints = function(points) { + this.points = points; + this.recalculateCenterAndEdgeNormals(); + this._originalPoints = []; + for (var i = 0; i < this.points.length; i++) { + this._originalPoints.push(this.points[i]); + } + }; + Polygon.prototype.collidesWithShape = function(other) { + var result = new CollisionResult(); + if (other instanceof Polygon) { + return ShapeCollisions.polygonToPolygon(this, other); + } + if (other instanceof Circle) { + result = ShapeCollisions.circleToPolygon(other, this); + if (result) { + result.invertResult(); + return result; + } + return null; + } + throw new Error("overlaps of Polygon to " + other + " are not supported"); + }; + Polygon.prototype.recalculateCenterAndEdgeNormals = function() { + this._polygonCenter = Polygon.findPolygonCenter(this.points); + this._areEdgeNormalsDirty = true; + }; + Polygon.prototype.overlaps = function(other) { + var result; + if (other instanceof Polygon) + return ShapeCollisions.polygonToPolygon(this, other); + if (other instanceof Circle) { + result = ShapeCollisions.circleToPolygon(other, this); + if (result) { + result.invertResult(); return true; - }; - Collisions.lineToLineIntersection = function (a1, a2, b1, b2) { - var intersection = new Vector2(0, 0); - var b = Vector2.subtract(a2, a1); - var d = Vector2.subtract(b2, b1); - var bDotDPerp = b.x * d.y - b.y * d.x; - if (bDotDPerp == 0) - return intersection; - var c = Vector2.subtract(b1, a1); - var t = (c.x * d.y - c.y * d.x) / bDotDPerp; - if (t < 0 || t > 1) - return intersection; - var u = (c.x * b.y - c.y * b.x) / bDotDPerp; - if (u < 0 || u > 1) - return intersection; - intersection = Vector2.add(a1, new Vector2(t * b.x, t * b.y)); - return intersection; - }; - Collisions.closestPointOnLine = function (lineA, lineB, closestTo) { - var v = Vector2.subtract(lineB, lineA); - var w = Vector2.subtract(closestTo, lineA); - var t = Vector2.dot(w, v) / Vector2.dot(v, v); - t = MathHelper.clamp(t, 0, 1); - return Vector2.add(lineA, new Vector2(v.x * t, v.y * t)); - }; - Collisions.isCircleToCircle = function (circleCenter1, circleRadius1, circleCenter2, circleRadius2) { - return Vector2.distanceSquared(circleCenter1, circleCenter2) < (circleRadius1 + circleRadius2) * (circleRadius1 + circleRadius2); - }; - Collisions.isCircleToLine = function (circleCenter, radius, lineFrom, lineTo) { - return Vector2.distanceSquared(circleCenter, this.closestPointOnLine(lineFrom, lineTo, circleCenter)) < radius * radius; - }; - Collisions.isCircleToPoint = function (circleCenter, radius, point) { - return Vector2.distanceSquared(circleCenter, point) < radius * radius; - }; - Collisions.isRectToCircle = function (rect, cPosition, cRadius) { - var ew = rect.width * 0.5; - var eh = rect.height * 0.5; - var vx = Math.max(0, Math.max(cPosition.x - rect.x) - ew); - var vy = Math.max(0, Math.max(cPosition.y - rect.y) - eh); - return vx * vx + vy * vy < cRadius * cRadius; - }; - Collisions.isRectToLine = function (rect, lineFrom, lineTo) { - var fromSector = this.getSector(rect.x, rect.y, rect.width, rect.height, lineFrom); - var toSector = this.getSector(rect.x, rect.y, rect.width, rect.height, lineTo); - if (fromSector == PointSectors.center || toSector == PointSectors.center) { - return true; - } - else if ((fromSector & toSector) != 0) { - return false; - } - else { - var both = fromSector | toSector; - var edgeFrom = void 0; - var edgeTo = void 0; - if ((both & PointSectors.top) != 0) { - edgeFrom = new Vector2(rect.x, rect.y); - edgeTo = new Vector2(rect.x + rect.width, rect.y); - if (this.isLineToLine(edgeFrom, edgeTo, lineFrom, lineTo)) - return true; - } - if ((both & PointSectors.bottom) != 0) { - edgeFrom = new Vector2(rect.x, rect.y + rect.height); - edgeTo = new Vector2(rect.x + rect.width, rect.y + rect.height); - if (this.isLineToLine(edgeFrom, edgeTo, lineFrom, lineTo)) - return true; - } - if ((both & PointSectors.left) != 0) { - edgeFrom = new Vector2(rect.x, rect.y); - edgeTo = new Vector2(rect.x, rect.y + rect.height); - if (this.isLineToLine(edgeFrom, edgeTo, lineFrom, lineTo)) - return true; - } - if ((both & PointSectors.right) != 0) { - edgeFrom = new Vector2(rect.x + rect.width, rect.y); - edgeTo = new Vector2(rect.x + rect.width, rect.y + rect.height); - if (this.isLineToLine(edgeFrom, edgeTo, lineFrom, lineTo)) - return true; - } - } - return false; - }; - Collisions.isRectToPoint = function (rX, rY, rW, rH, point) { - return point.x >= rX && point.y >= rY && point.x < rX + rW && point.y < rY + rH; - }; - Collisions.getSector = function (rX, rY, rW, rH, point) { - var sector = PointSectors.center; - if (point.x < rX) - sector |= PointSectors.left; - else if (point.x >= rX + rW) - sector |= PointSectors.right; - if (point.y < rY) - sector |= PointSectors.top; - else if (point.y >= rY + rH) - sector |= PointSectors.bottom; - return sector; - }; - return Collisions; -}()); -var Physics = (function () { - function Physics() { + } + return false; } - Physics.reset = function () { - this._spatialHash = new SpatialHash(this.spatialHashCellSize); - }; - Physics.clear = function () { - this._spatialHash.clear(); - }; - Physics.overlapCircleAll = function (center, randius, results, layerMask) { - if (layerMask === void 0) { layerMask = -1; } - return this._spatialHash.overlapCircle(center, randius, results, layerMask); - }; - Physics.boxcastBroadphase = function (rect, layerMask) { - if (layerMask === void 0) { layerMask = this.allLayers; } - return this._spatialHash.aabbBroadphase(rect, null, layerMask); - }; - Physics.boxcastBroadphaseExcludingSelf = function (collider, rect, layerMask) { - if (layerMask === void 0) { layerMask = this.allLayers; } - return this._spatialHash.aabbBroadphase(rect, collider, layerMask); - }; - Physics.addCollider = function (collider) { - Physics._spatialHash.register(collider); - }; - Physics.removeCollider = function (collider) { - Physics._spatialHash.remove(collider); - }; - Physics.updateCollider = function (collider) { - this._spatialHash.remove(collider); - this._spatialHash.register(collider); - }; - Physics.spatialHashCellSize = 100; - Physics.allLayers = -1; - return Physics; -}()); -var Shape = (function () { - function Shape() { + throw new Error("overlaps of Pologon to " + other + " are not supported"); + }; + Polygon.findPolygonCenter = function(points) { + var x = 0, y = 0; + for (var i = 0; i < points.length; i++) { + x += points[i].x; + y += points[i].y; } - return Shape; -}()); -var Polygon = (function (_super) { - __extends(Polygon, _super); - function Polygon(points, isBox) { - var _this = _super.call(this) || this; - _this.isUnrotated = true; - _this._areEdgeNormalsDirty = true; - _this.setPoints(points); - _this.isBox = isBox; - return _this; + return new Vector2(x / points.length, y / points.length); + }; + Polygon.getClosestPointOnPolygonToPoint = function(points, point) { + var distanceSquared = Number.MAX_VALUE; + var edgeNormal = new Vector2(0, 0); + var closestPoint = new Vector2(0, 0); + var tempDistanceSquared; + for (var i = 0; i < points.length; i++) { + var j = i + 1; + if (j == points.length) + j = 0; + var closest = + ShapeCollisions.closestPointOnLine(points[i], points[j], point); + tempDistanceSquared = Vector2.distanceSquared(point, closest); + if (tempDistanceSquared < distanceSquared) { + distanceSquared = tempDistanceSquared; + closestPoint = closest; + var line = Vector2.subtract(points[j], points[i]); + edgeNormal.x = -line.y; + edgeNormal.y = line.x; + } } - Object.defineProperty(Polygon.prototype, "edgeNormals", { - get: function () { - if (this._areEdgeNormalsDirty) - this.buildEdgeNormals(); - return this._edgeNormals; - }, - enumerable: true, - configurable: true - }); - Polygon.prototype.buildEdgeNormals = function () { - var totalEdges = this.isBox ? 2 : this.points.length; - if (this._edgeNormals == null || this._edgeNormals.length != totalEdges) - this._edgeNormals = new Array(totalEdges); - var p2; - for (var i = 0; i < totalEdges; i++) { - var p1 = this.points[i]; - if (i + 1 >= this.points.length) - p2 = this.points[0]; - else - p2 = this.points[i + 1]; - var perp = Vector2Ext.perpendicular(p1, p2); - perp = Vector2.normalize(perp); - this._edgeNormals[i] = perp; - } + edgeNormal = Vector2.normalize(edgeNormal); + return { + closestPoint : closestPoint, + distanceSquared : distanceSquared, + edgeNormal : edgeNormal }; - Polygon.prototype.setPoints = function (points) { - this.points = points; - this.recalculateCenterAndEdgeNormals(); - this._originalPoints = []; - for (var i = 0; i < this.points.length; i++) { - this._originalPoints.push(this.points[i]); - } - }; - Polygon.prototype.collidesWithShape = function (other) { - var result = new CollisionResult(); - if (other instanceof Polygon) { - return ShapeCollisions.polygonToPolygon(this, other); - } - if (other instanceof Circle) { - result = ShapeCollisions.circleToPolygon(other, this); - if (result) { - result.invertResult(); - return result; - } - return null; - } - throw new Error("overlaps of Polygon to " + other + " are not supported"); - }; - Polygon.prototype.recalculateCenterAndEdgeNormals = function () { - this._polygonCenter = Polygon.findPolygonCenter(this.points); + }; + Polygon.prototype.pointCollidesWithShape = function( + point) { return ShapeCollisions.pointToPoly(point, this); }; + Polygon.prototype.containsPoint = function(point) { + point = Vector2.subtract(point, this.position); + var isInside = false; + for (var i = 0, j = this.points.length - 1; i < this.points.length; + j = i++) { + if (((this.points[i].y > point.y) != (this.points[j].y > point.y)) && + (point.x < (this.points[j].x - this.points[i].x) * + (point.y - this.points[i].y) / + (this.points[j].y - this.points[i].y) + + this.points[i].x)) { + isInside = !isInside; + } + } + return isInside; + }; + Polygon.buildSymmertricalPolygon = function(vertCount, radius) { + var verts = new Array(vertCount); + for (var i = 0; i < vertCount; i++) { + var a = 2 * Math.PI * (i / vertCount); + verts[i] = new Vector2(Math.cos(a), Math.sin(a) * radius); + } + return verts; + }; + Polygon.prototype.recalculateBounds = function(collider) { + this.center = collider.localOffset; + if (collider.shouldColliderScaleAndRotationWithTransform) { + var hasUnitScale = true; + var tempMat = void 0; + var combinedMatrix = Matrix2D.createTranslation(-this._polygonCenter.x, + -this._polygonCenter.y); + if (collider.entity.scale != Vector2.one) { + tempMat = Matrix2D.createScale(collider.entity.scale.x, + collider.entity.scale.y); + combinedMatrix = Matrix2D.multiply(combinedMatrix, tempMat); + hasUnitScale = false; + var scaledOffset = + Vector2.multiply(collider.localOffset, collider.entity.scale); + this.center = scaledOffset; + } + if (collider.entity.rotation != 0) { + tempMat = Matrix2D.createRotation(collider.entity.rotation); + combinedMatrix = Matrix2D.multiply(combinedMatrix, tempMat); + var offsetAngle = + Math.atan2(collider.localOffset.y, collider.localOffset.x) * + MathHelper.Rad2Deg; + var offsetLength = hasUnitScale + ? collider._localOffsetLength + : (Vector2.multiply(collider.localOffset, + collider.entity.scale)) + .length(); + this.center = MathHelper.pointOnCirlce( + Vector2.zero, offsetLength, + MathHelper.toDegrees(collider.entity.rotation) + offsetAngle); + } + tempMat = Matrix2D.createTranslation(this._polygonCenter.x, + this._polygonCenter.y); + combinedMatrix = Matrix2D.multiply(combinedMatrix, tempMat); + Vector2Ext.transform(this._originalPoints, combinedMatrix, this.points); + this.isUnrotated = collider.entity.rotation == 0; + if (collider._isRotationDirty) this._areEdgeNormalsDirty = true; - }; - Polygon.prototype.overlaps = function (other) { - var result; - if (other instanceof Polygon) - return ShapeCollisions.polygonToPolygon(this, other); - if (other instanceof Circle) { - result = ShapeCollisions.circleToPolygon(other, this); - if (result) { - result.invertResult(); - return true; - } - return false; - } - throw new Error("overlaps of Pologon to " + other + " are not supported"); - }; - Polygon.findPolygonCenter = function (points) { - var x = 0, y = 0; - for (var i = 0; i < points.length; i++) { - x += points[i].x; - y += points[i].y; - } - return new Vector2(x / points.length, y / points.length); - }; - Polygon.getClosestPointOnPolygonToPoint = function (points, point) { - var distanceSquared = Number.MAX_VALUE; - var edgeNormal = new Vector2(0, 0); - var closestPoint = new Vector2(0, 0); - var tempDistanceSquared; - for (var i = 0; i < points.length; i++) { - var j = i + 1; - if (j == points.length) - j = 0; - var closest = ShapeCollisions.closestPointOnLine(points[i], points[j], point); - tempDistanceSquared = Vector2.distanceSquared(point, closest); - if (tempDistanceSquared < distanceSquared) { - distanceSquared = tempDistanceSquared; - closestPoint = closest; - var line = Vector2.subtract(points[j], points[i]); - edgeNormal.x = -line.y; - edgeNormal.y = line.x; - } - } - edgeNormal = Vector2.normalize(edgeNormal); - return { closestPoint: closestPoint, distanceSquared: distanceSquared, edgeNormal: edgeNormal }; - }; - Polygon.prototype.pointCollidesWithShape = function (point) { - return ShapeCollisions.pointToPoly(point, this); - }; - Polygon.prototype.containsPoint = function (point) { - point = Vector2.subtract(point, this.position); - var isInside = false; - for (var i = 0, j = this.points.length - 1; i < this.points.length; j = i++) { - if (((this.points[i].y > point.y) != (this.points[j].y > point.y)) && - (point.x < (this.points[j].x - this.points[i].x) * (point.y - this.points[i].y) / (this.points[j].y - this.points[i].y) + - this.points[i].x)) { - isInside = !isInside; - } - } - return isInside; - }; - Polygon.buildSymmertricalPolygon = function (vertCount, radius) { - var verts = new Array(vertCount); - for (var i = 0; i < vertCount; i++) { - var a = 2 * Math.PI * (i / vertCount); - verts[i] = new Vector2(Math.cos(a), Math.sin(a) * radius); - } - return verts; - }; - Polygon.prototype.recalculateBounds = function (collider) { - this.center = collider.localOffset; - if (collider.shouldColliderScaleAndRotationWithTransform) { - var hasUnitScale = true; - var tempMat = void 0; - var combinedMatrix = Matrix2D.createTranslation(-this._polygonCenter.x, -this._polygonCenter.y); - if (collider.entity.scale != Vector2.one) { - tempMat = Matrix2D.createScale(collider.entity.scale.x, collider.entity.scale.y); - combinedMatrix = Matrix2D.multiply(combinedMatrix, tempMat); - hasUnitScale = false; - var scaledOffset = Vector2.multiply(collider.localOffset, collider.entity.scale); - this.center = scaledOffset; - } - if (collider.entity.rotation != 0) { - tempMat = Matrix2D.createRotation(collider.entity.rotation); - combinedMatrix = Matrix2D.multiply(combinedMatrix, tempMat); - var offsetAngle = Math.atan2(collider.localOffset.y, collider.localOffset.x) * MathHelper.Rad2Deg; - var offsetLength = hasUnitScale ? collider._localOffsetLength : (Vector2.multiply(collider.localOffset, collider.entity.scale)).length(); - this.center = MathHelper.pointOnCirlce(Vector2.zero, offsetLength, MathHelper.toDegrees(collider.entity.rotation) + offsetAngle); - } - tempMat = Matrix2D.createTranslation(this._polygonCenter.x, this._polygonCenter.y); - combinedMatrix = Matrix2D.multiply(combinedMatrix, tempMat); - Vector2Ext.transform(this._originalPoints, combinedMatrix, this.points); - this.isUnrotated = collider.entity.rotation == 0; - if (collider._isRotationDirty) - this._areEdgeNormalsDirty = true; - } - this.position = Vector2.add(collider.entity.position, this.center); - this.bounds = Rectangle.rectEncompassingPoints(this.points); - this.bounds.location = Vector2.add(this.bounds.location, this.position); - }; - return Polygon; -}(Shape)); -var Box = (function (_super) { - __extends(Box, _super); - function Box(width, height) { - var _this = _super.call(this, Box.buildBox(width, height), true) || this; - _this.width = width; - _this.height = height; - return _this; } - Box.buildBox = function (width, height) { - var halfWidth = width / 2; - var halfHeight = height / 2; - var verts = new Array(4); - verts[0] = new Vector2(-halfWidth, -halfHeight); - verts[1] = new Vector2(halfWidth, -halfHeight); - verts[2] = new Vector2(halfWidth, halfHeight); - verts[3] = new Vector2(-halfWidth, halfHeight); - return verts; - }; - Box.prototype.updateBox = function (width, height) { - this.width = width; - this.height = height; - var halfWidth = width / 2; - var halfHeight = height / 2; - this.points[0] = new Vector2(-halfWidth, -halfHeight); - this.points[1] = new Vector2(halfWidth, -halfHeight); - this.points[2] = new Vector2(halfWidth, halfHeight); - this.points[3] = new Vector2(-halfWidth, halfHeight); - for (var i = 0; i < this.points.length; i++) - this._originalPoints[i] = this.points[i]; - }; - Box.prototype.containsPoint = function (point) { - if (this.isUnrotated) - return this.bounds.contains(point); - return _super.prototype.containsPoint.call(this, point); - }; - return Box; + this.position = Vector2.add(collider.entity.position, this.center); + this.bounds = Rectangle.rectEncompassingPoints(this.points); + this.bounds.location = Vector2.add(this.bounds.location, this.position); + }; + return Polygon; +}(Shape)); +var Box = (function(_super) { + __extends(Box, _super); + function Box(width, height) { + var _this = _super.call(this, Box.buildBox(width, height), true) || this; + _this.width = width; + _this.height = height; + return _this; + } + Box.buildBox = function(width, height) { + var halfWidth = width / 2; + var halfHeight = height / 2; + var verts = new Array(4); + verts[0] = new Vector2(-halfWidth, -halfHeight); + verts[1] = new Vector2(halfWidth, -halfHeight); + verts[2] = new Vector2(halfWidth, halfHeight); + verts[3] = new Vector2(-halfWidth, halfHeight); + return verts; + }; + Box.prototype.updateBox = function(width, height) { + this.width = width; + this.height = height; + var halfWidth = width / 2; + var halfHeight = height / 2; + this.points[0] = new Vector2(-halfWidth, -halfHeight); + this.points[1] = new Vector2(halfWidth, -halfHeight); + this.points[2] = new Vector2(halfWidth, halfHeight); + this.points[3] = new Vector2(-halfWidth, halfHeight); + for (var i = 0; i < this.points.length; i++) + this._originalPoints[i] = this.points[i]; + }; + Box.prototype.containsPoint = function(point) { + if (this.isUnrotated) + return this.bounds.contains(point); + return _super.prototype.containsPoint.call(this, point); + }; + return Box; }(Polygon)); -var Circle = (function (_super) { - __extends(Circle, _super); - function Circle(radius) { - var _this = _super.call(this) || this; - _this.radius = radius; - _this._originalRadius = radius; - return _this; +var Circle = (function(_super) { + __extends(Circle, _super); + function Circle(radius) { + var _this = _super.call(this) || this; + _this.radius = radius; + _this._originalRadius = radius; + return _this; + } + Circle.prototype.pointCollidesWithShape = function( + point) { return ShapeCollisions.pointToCircle(point, this); }; + Circle.prototype.collidesWithShape = function(other) { + if (other instanceof Box && other.isUnrotated) { + return ShapeCollisions.circleToBox(this, other); } - Circle.prototype.pointCollidesWithShape = function (point) { - return ShapeCollisions.pointToCircle(point, this); - }; - Circle.prototype.collidesWithShape = function (other) { - if (other instanceof Box && other.isUnrotated) { - return ShapeCollisions.circleToBox(this, other); - } - if (other instanceof Circle) { - return ShapeCollisions.circleToCircle(this, other); - } - if (other instanceof Polygon) { - return ShapeCollisions.circleToPolygon(this, other); - } - throw new Error("Collisions of Circle to " + other + " are not supported"); - }; - Circle.prototype.recalculateBounds = function (collider) { - this.center = collider.localOffset; - if (collider.shouldColliderScaleAndRotationWithTransform) { - var scale = collider.entity.scale; - var hasUnitScale = scale.x == 1 && scale.y == 1; - var maxScale = Math.max(scale.x, scale.y); - this.radius = this._originalRadius * maxScale; - if (collider.entity.rotation != 0) { - var offsetAngle = Math.atan2(collider.localOffset.y, collider.localOffset.x) * MathHelper.Rad2Deg; - var offsetLength = hasUnitScale ? collider._localOffsetLength : (Vector2.multiply(collider.localOffset, collider.entity.scale)).length(); - this.center = MathHelper.pointOnCirlce(Vector2.zero, offsetLength, MathHelper.toDegrees(collider.entity.rotation) + offsetAngle); - } - } - this.position = Vector2.add(collider.entity.position, this.center); - this.bounds = new Rectangle(this.position.x - this.radius, this.position.y - this.radius, this.radius * 2, this.radius * 2); - }; - Circle.prototype.overlaps = function (other) { - if (other instanceof Box && other.isUnrotated) - return Collisions.isRectToCircle(other.bounds, this.position, this.radius); - if (other instanceof Circle) - return Collisions.isCircleToCircle(this.position, this.radius, other.position, other.radius); - if (other instanceof Polygon) - return ShapeCollisions.circleToPolygon(this, other); - throw new Error("overlaps of circle to " + other + " are not supported"); - }; - return Circle; + if (other instanceof Circle) { + return ShapeCollisions.circleToCircle(this, other); + } + if (other instanceof Polygon) { + return ShapeCollisions.circleToPolygon(this, other); + } + throw new Error("Collisions of Circle to " + other + " are not supported"); + }; + Circle.prototype.recalculateBounds = function(collider) { + this.center = collider.localOffset; + if (collider.shouldColliderScaleAndRotationWithTransform) { + var scale = collider.entity.scale; + var hasUnitScale = scale.x == 1 && scale.y == 1; + var maxScale = Math.max(scale.x, scale.y); + this.radius = this._originalRadius * maxScale; + if (collider.entity.rotation != 0) { + var offsetAngle = + Math.atan2(collider.localOffset.y, collider.localOffset.x) * + MathHelper.Rad2Deg; + var offsetLength = hasUnitScale + ? collider._localOffsetLength + : (Vector2.multiply(collider.localOffset, + collider.entity.scale)) + .length(); + this.center = MathHelper.pointOnCirlce( + Vector2.zero, offsetLength, + MathHelper.toDegrees(collider.entity.rotation) + offsetAngle); + } + } + this.position = Vector2.add(collider.entity.position, this.center); + this.bounds = new Rectangle(this.position.x - this.radius, + this.position.y - this.radius, this.radius * 2, + this.radius * 2); + }; + Circle.prototype.overlaps = function(other) { + if (other instanceof Box && other.isUnrotated) + return Collisions.isRectToCircle(other.bounds, this.position, + this.radius); + if (other instanceof Circle) + return Collisions.isCircleToCircle(this.position, this.radius, + other.position, other.radius); + if (other instanceof Polygon) + return ShapeCollisions.circleToPolygon(this, other); + throw new Error("overlaps of circle to " + other + " are not supported"); + }; + return Circle; }(Shape)); -var CollisionResult = (function () { - function CollisionResult() { - } - CollisionResult.prototype.invertResult = function () { - this.minimumTranslationVector = Vector2.negate(this.minimumTranslationVector); - this.normal = Vector2.negate(this.normal); - }; - return CollisionResult; +var CollisionResult = (function() { + function CollisionResult() {} + CollisionResult.prototype.invertResult = function() { + this.minimumTranslationVector = + Vector2.negate(this.minimumTranslationVector); + this.normal = Vector2.negate(this.normal); + }; + return CollisionResult; }()); -var ShapeCollisions = (function () { - function ShapeCollisions() { +var ShapeCollisions = (function() { + function ShapeCollisions() {} + ShapeCollisions.polygonToPolygon = function(first, second) { + var result = new CollisionResult(); + var isIntersecting = true; + var firstEdges = first.edgeNormals; + var secondEdges = second.edgeNormals; + var minIntervalDistance = Number.POSITIVE_INFINITY; + var translationAxis = new Vector2(); + var polygonOffset = Vector2.subtract(first.position, second.position); + var axis; + for (var edgeIndex = 0; edgeIndex < firstEdges.length + secondEdges.length; + edgeIndex++) { + if (edgeIndex < firstEdges.length) { + axis = firstEdges[edgeIndex]; + } else { + axis = secondEdges[edgeIndex - firstEdges.length]; + } + var minA = 0; + var minB = 0; + var maxA = 0; + var maxB = 0; + var intervalDist = 0; + var ta = this.getInterval(axis, first, minA, maxA); + minA = ta.min; + minB = ta.max; + var tb = this.getInterval(axis, second, minB, maxB); + minB = tb.min; + maxB = tb.max; + var relativeIntervalOffset = Vector2.dot(polygonOffset, axis); + minA += relativeIntervalOffset; + maxA += relativeIntervalOffset; + intervalDist = this.intervalDistance(minA, maxA, minB, maxB); + if (intervalDist > 0) + isIntersecting = false; + if (!isIntersecting) + return null; + intervalDist = Math.abs(intervalDist); + if (intervalDist < minIntervalDistance) { + minIntervalDistance = intervalDist; + translationAxis = axis; + if (Vector2.dot(translationAxis, polygonOffset) < 0) + translationAxis = new Vector2(-translationAxis); + } } - ShapeCollisions.polygonToPolygon = function (first, second) { - var result = new CollisionResult(); - var isIntersecting = true; - var firstEdges = first.edgeNormals; - var secondEdges = second.edgeNormals; - var minIntervalDistance = Number.POSITIVE_INFINITY; - var translationAxis = new Vector2(); - var polygonOffset = Vector2.subtract(first.position, second.position); - var axis; - for (var edgeIndex = 0; edgeIndex < firstEdges.length + secondEdges.length; edgeIndex++) { - if (edgeIndex < firstEdges.length) { - axis = firstEdges[edgeIndex]; - } - else { - axis = secondEdges[edgeIndex - firstEdges.length]; - } - var minA = 0; - var minB = 0; - var maxA = 0; - var maxB = 0; - var intervalDist = 0; - var ta = this.getInterval(axis, first, minA, maxA); - minA = ta.min; - minB = ta.max; - var tb = this.getInterval(axis, second, minB, maxB); - minB = tb.min; - maxB = tb.max; - var relativeIntervalOffset = Vector2.dot(polygonOffset, axis); - minA += relativeIntervalOffset; - maxA += relativeIntervalOffset; - intervalDist = this.intervalDistance(minA, maxA, minB, maxB); - if (intervalDist > 0) - isIntersecting = false; - if (!isIntersecting) - return null; - intervalDist = Math.abs(intervalDist); - if (intervalDist < minIntervalDistance) { - minIntervalDistance = intervalDist; - translationAxis = axis; - if (Vector2.dot(translationAxis, polygonOffset) < 0) - translationAxis = new Vector2(-translationAxis); - } - } - result.normal = translationAxis; - result.minimumTranslationVector = Vector2.multiply(new Vector2(-translationAxis), new Vector2(minIntervalDistance)); - return result; - }; - ShapeCollisions.intervalDistance = function (minA, maxA, minB, maxB) { - if (minA < minB) - return minB - maxA; - return minA - minB; - }; - ShapeCollisions.getInterval = function (axis, polygon, min, max) { - var dot = Vector2.dot(polygon.points[0], axis); - min = max = dot; - for (var i = 1; i < polygon.points.length; i++) { - dot = Vector2.dot(polygon.points[i], axis); - if (dot < min) { - min = dot; - } - else if (dot > max) { - max = dot; - } - } - return { min: min, max: max }; - }; - ShapeCollisions.circleToPolygon = function (circle, polygon) { - var result = new CollisionResult(); - var poly2Circle = Vector2.subtract(circle.position, polygon.position); - var gpp = Polygon.getClosestPointOnPolygonToPoint(polygon.points, poly2Circle); - var closestPoint = gpp.closestPoint; - var distanceSquared = gpp.distanceSquared; - result.normal = gpp.edgeNormal; - var circleCenterInsidePoly = polygon.containsPoint(circle.position); - if (distanceSquared > circle.radius * circle.radius && !circleCenterInsidePoly) - return null; - var mtv; - if (circleCenterInsidePoly) { - mtv = Vector2.multiply(result.normal, new Vector2(Math.sqrt(distanceSquared) - circle.radius)); - } - else { - if (distanceSquared == 0) { - mtv = Vector2.multiply(result.normal, new Vector2(circle.radius)); - } - else { - var distance = Math.sqrt(distanceSquared); - mtv = Vector2.multiply(new Vector2(-Vector2.subtract(poly2Circle, closestPoint)), new Vector2((circle.radius - distanceSquared) / distance)); - } - } - result.minimumTranslationVector = mtv; - result.point = Vector2.add(closestPoint, polygon.position); - return result; - }; - ShapeCollisions.circleToBox = function (circle, box) { - var result = new CollisionResult(); - var closestPointOnBounds = box.bounds.getClosestPointOnRectangleBorderToPoint(circle.position).res; - if (box.containsPoint(circle.position)) { - result.point = closestPointOnBounds; - var safePlace = Vector2.add(closestPointOnBounds, Vector2.subtract(result.normal, new Vector2(circle.radius))); - result.minimumTranslationVector = Vector2.subtract(circle.position, safePlace); - return result; - } - var sqrDistance = Vector2.distanceSquared(closestPointOnBounds, circle.position); - if (sqrDistance == 0) { - result.minimumTranslationVector = Vector2.multiply(result.normal, new Vector2(circle.radius)); - } - else if (sqrDistance <= circle.radius * circle.radius) { - result.normal = Vector2.subtract(circle.position, closestPointOnBounds); - var depth = result.normal.length() - circle.radius; - result.normal = Vector2Ext.normalize(result.normal); - result.minimumTranslationVector = Vector2.multiply(new Vector2(depth), result.normal); - return result; - } - return null; - }; - ShapeCollisions.pointToCircle = function (point, circle) { - var result = new CollisionResult(); - var distanceSquared = Vector2.distanceSquared(point, circle.position); - var sumOfRadii = 1 + circle.radius; - var collided = distanceSquared < sumOfRadii * sumOfRadii; - if (collided) { - result.normal = Vector2.normalize(Vector2.subtract(point, circle.position)); - var depth = sumOfRadii - Math.sqrt(distanceSquared); - result.minimumTranslationVector = Vector2.multiply(new Vector2(-depth, -depth), result.normal); - result.point = Vector2.add(circle.position, Vector2.multiply(result.normal, new Vector2(circle.radius, circle.radius))); - return result; - } - return null; - }; - ShapeCollisions.closestPointOnLine = function (lineA, lineB, closestTo) { - var v = Vector2.subtract(lineB, lineA); - var w = Vector2.subtract(closestTo, lineA); - var t = Vector2.dot(w, v) / Vector2.dot(v, v); - t = MathHelper.clamp(t, 0, 1); - return Vector2.add(lineA, Vector2.multiply(v, new Vector2(t, t))); - }; - ShapeCollisions.pointToPoly = function (point, poly) { - var result = new CollisionResult(); - if (poly.containsPoint(point)) { - var distanceSquared = void 0; - var gpp = Polygon.getClosestPointOnPolygonToPoint(poly.points, Vector2.subtract(point, poly.position)); - var closestPoint = gpp.closestPoint; - distanceSquared = gpp.distanceSquared; - result.normal = gpp.edgeNormal; - result.minimumTranslationVector = Vector2.multiply(result.normal, new Vector2(Math.sqrt(distanceSquared), Math.sqrt(distanceSquared))); - result.point = Vector2.add(closestPoint, poly.position); - return result; - } - return null; - }; - ShapeCollisions.circleToCircle = function (first, second) { - var result = new CollisionResult(); - var distanceSquared = Vector2.distanceSquared(first.position, second.position); - var sumOfRadii = first.radius + second.radius; - var collided = distanceSquared < sumOfRadii * sumOfRadii; - if (collided) { - result.normal = Vector2.normalize(Vector2.subtract(first.position, second.position)); - var depth = sumOfRadii - Math.sqrt(distanceSquared); - result.minimumTranslationVector = Vector2.multiply(new Vector2(-depth), result.normal); - result.point = Vector2.add(second.position, Vector2.multiply(result.normal, new Vector2(second.radius))); - return result; - } - return null; - }; - return ShapeCollisions; + result.normal = translationAxis; + result.minimumTranslationVector = Vector2.multiply( + new Vector2(-translationAxis), new Vector2(minIntervalDistance)); + return result; + }; + ShapeCollisions.intervalDistance = function(minA, maxA, minB, maxB) { + if (minA < minB) + return minB - maxA; + return minA - minB; + }; + ShapeCollisions.getInterval = function(axis, polygon, min, max) { + var dot = Vector2.dot(polygon.points[0], axis); + min = max = dot; + for (var i = 1; i < polygon.points.length; i++) { + dot = Vector2.dot(polygon.points[i], axis); + if (dot < min) { + min = dot; + } else if (dot > max) { + max = dot; + } + } + return {min : min, max : max}; + }; + ShapeCollisions.circleToPolygon = function(circle, polygon) { + var result = new CollisionResult(); + var poly2Circle = Vector2.subtract(circle.position, polygon.position); + var gpp = + Polygon.getClosestPointOnPolygonToPoint(polygon.points, poly2Circle); + var closestPoint = gpp.closestPoint; + var distanceSquared = gpp.distanceSquared; + result.normal = gpp.edgeNormal; + var circleCenterInsidePoly = polygon.containsPoint(circle.position); + if (distanceSquared > circle.radius * circle.radius && + !circleCenterInsidePoly) + return null; + var mtv; + if (circleCenterInsidePoly) { + mtv = Vector2.multiply( + result.normal, + new Vector2(Math.sqrt(distanceSquared) - circle.radius)); + } else { + if (distanceSquared == 0) { + mtv = Vector2.multiply(result.normal, new Vector2(circle.radius)); + } else { + var distance = Math.sqrt(distanceSquared); + mtv = Vector2.multiply( + new Vector2(-Vector2.subtract(poly2Circle, closestPoint)), + new Vector2((circle.radius - distanceSquared) / distance)); + } + } + result.minimumTranslationVector = mtv; + result.point = Vector2.add(closestPoint, polygon.position); + return result; + }; + ShapeCollisions.circleToBox = function(circle, box) { + var result = new CollisionResult(); + var closestPointOnBounds = + box.bounds.getClosestPointOnRectangleBorderToPoint(circle.position).res; + if (box.containsPoint(circle.position)) { + result.point = closestPointOnBounds; + var safePlace = Vector2.add( + closestPointOnBounds, + Vector2.subtract(result.normal, new Vector2(circle.radius))); + result.minimumTranslationVector = + Vector2.subtract(circle.position, safePlace); + return result; + } + var sqrDistance = + Vector2.distanceSquared(closestPointOnBounds, circle.position); + if (sqrDistance == 0) { + result.minimumTranslationVector = + Vector2.multiply(result.normal, new Vector2(circle.radius)); + } else if (sqrDistance <= circle.radius * circle.radius) { + result.normal = Vector2.subtract(circle.position, closestPointOnBounds); + var depth = result.normal.length() - circle.radius; + result.normal = Vector2Ext.normalize(result.normal); + result.minimumTranslationVector = + Vector2.multiply(new Vector2(depth), result.normal); + return result; + } + return null; + }; + ShapeCollisions.pointToCircle = function(point, circle) { + var result = new CollisionResult(); + var distanceSquared = Vector2.distanceSquared(point, circle.position); + var sumOfRadii = 1 + circle.radius; + var collided = distanceSquared < sumOfRadii * sumOfRadii; + if (collided) { + result.normal = + Vector2.normalize(Vector2.subtract(point, circle.position)); + var depth = sumOfRadii - Math.sqrt(distanceSquared); + result.minimumTranslationVector = + Vector2.multiply(new Vector2(-depth, -depth), result.normal); + result.point = Vector2.add( + circle.position, + Vector2.multiply(result.normal, + new Vector2(circle.radius, circle.radius))); + return result; + } + return null; + }; + ShapeCollisions.closestPointOnLine = function(lineA, lineB, closestTo) { + var v = Vector2.subtract(lineB, lineA); + var w = Vector2.subtract(closestTo, lineA); + var t = Vector2.dot(w, v) / Vector2.dot(v, v); + t = MathHelper.clamp(t, 0, 1); + return Vector2.add(lineA, Vector2.multiply(v, new Vector2(t, t))); + }; + ShapeCollisions.pointToPoly = function(point, poly) { + var result = new CollisionResult(); + if (poly.containsPoint(point)) { + var distanceSquared = void 0; + var gpp = Polygon.getClosestPointOnPolygonToPoint( + poly.points, Vector2.subtract(point, poly.position)); + var closestPoint = gpp.closestPoint; + distanceSquared = gpp.distanceSquared; + result.normal = gpp.edgeNormal; + result.minimumTranslationVector = Vector2.multiply( + result.normal, + new Vector2(Math.sqrt(distanceSquared), Math.sqrt(distanceSquared))); + result.point = Vector2.add(closestPoint, poly.position); + return result; + } + return null; + }; + ShapeCollisions.circleToCircle = function(first, second) { + var result = new CollisionResult(); + var distanceSquared = + Vector2.distanceSquared(first.position, second.position); + var sumOfRadii = first.radius + second.radius; + var collided = distanceSquared < sumOfRadii * sumOfRadii; + if (collided) { + result.normal = + Vector2.normalize(Vector2.subtract(first.position, second.position)); + var depth = sumOfRadii - Math.sqrt(distanceSquared); + result.minimumTranslationVector = + Vector2.multiply(new Vector2(-depth), result.normal); + result.point = Vector2.add( + second.position, + Vector2.multiply(result.normal, new Vector2(second.radius))); + return result; + } + return null; + }; + return ShapeCollisions; }()); -var SpatialHash = (function () { - function SpatialHash(cellSize) { - if (cellSize === void 0) { cellSize = 100; } - this.gridBounds = new Rectangle(); - this._tempHashSet = []; - this._cellDict = new NumberDictionary(); - this._cellSize = cellSize; - this._inverseCellSize = 1 / this._cellSize; - this._raycastParser = new RaycastResultParser(); +var SpatialHash = (function() { + function SpatialHash(cellSize) { + if (cellSize === void 0) { + cellSize = 100; } - SpatialHash.prototype.remove = function (collider) { - var bounds = collider.registeredPhysicsBounds; - var p1 = this.cellCoords(bounds.x, bounds.y); - var p2 = this.cellCoords(bounds.right, bounds.bottom); - for (var x = p1.x; x <= p2.x; x++) { - for (var y = p1.y; y <= p2.y; y++) { - var cell = this.cellAtPosition(x, y); - if (!cell) - console.error("removing Collider [" + collider + "] from a cell that it is not present in"); - else - cell.remove(collider); - } - } - }; - SpatialHash.prototype.register = function (collider) { - var bounds = collider.bounds; - collider.registeredPhysicsBounds = bounds; - var p1 = this.cellCoords(bounds.x, bounds.y); - var p2 = this.cellCoords(bounds.right, bounds.bottom); - if (!this.gridBounds.contains(new Vector2(p1.x, p1.y))) { - this.gridBounds = RectangleExt.union(this.gridBounds, p1); - } - if (!this.gridBounds.contains(new Vector2(p2.x, p2.y))) { - this.gridBounds = RectangleExt.union(this.gridBounds, p2); - } - for (var x = p1.x; x <= p2.x; x++) { - for (var y = p1.y; y <= p2.y; y++) { - var c = this.cellAtPosition(x, y, true); - c.push(collider); - } - } - }; - SpatialHash.prototype.clear = function () { - this._cellDict.clear(); - }; - SpatialHash.prototype.overlapCircle = function (circleCenter, radius, results, layerMask) { - var bounds = new Rectangle(circleCenter.x - radius, circleCenter.y - radius, radius * 2, radius * 2); - this._overlapTestCircle.radius = radius; - this._overlapTestCircle.position = circleCenter; - var resultCounter = 0; - var potentials = this.aabbBroadphase(bounds, null, layerMask); - for (var i = 0; i < potentials.length; i++) { - var collider = potentials[i]; - if (collider instanceof BoxCollider) { - results[resultCounter] = collider; - resultCounter++; - } - else { - throw new Error("overlapCircle against this collider type is not implemented!"); - } - if (resultCounter == results.length) - return resultCounter; - } - return resultCounter; - }; - SpatialHash.prototype.aabbBroadphase = function (bounds, excludeCollider, layerMask) { - this._tempHashSet.length = 0; - var p1 = this.cellCoords(bounds.x, bounds.y); - var p2 = this.cellCoords(bounds.right, bounds.bottom); - for (var x = p1.x; x <= p2.x; x++) { - for (var y = p1.y; y <= p2.y; y++) { - var cell = this.cellAtPosition(x, y); - if (!cell) - continue; - for (var i = 0; i < cell.length; i++) { - var collider = cell[i]; - if (collider == excludeCollider || !Flags.isFlagSet(layerMask, collider.physicsLayer)) - continue; - if (bounds.intersects(collider.bounds)) { - if (this._tempHashSet.indexOf(collider) == -1) - this._tempHashSet.push(collider); - } - } - } - } - return this._tempHashSet; - }; - SpatialHash.prototype.cellAtPosition = function (x, y, createCellIfEmpty) { - if (createCellIfEmpty === void 0) { createCellIfEmpty = false; } - var cell = this._cellDict.tryGetValue(x, y); - if (!cell) { - if (createCellIfEmpty) { - cell = []; - this._cellDict.add(x, y, cell); - } - } - return cell; - }; - SpatialHash.prototype.cellCoords = function (x, y) { - return new Point(Math.floor(x * this._inverseCellSize), Math.floor(y * this._inverseCellSize)); - }; - return SpatialHash; -}()); -var RaycastResultParser = (function () { - function RaycastResultParser() { - } - return RaycastResultParser; -}()); -var NumberDictionary = (function () { - function NumberDictionary() { - this._store = new Map(); - } - NumberDictionary.prototype.getKey = function (x, y) { - return Long.fromNumber(x).shiftLeft(32).or(this.intToUint(y)).toString(); - }; - NumberDictionary.prototype.intToUint = function (i) { - if (i >= 0) - return i; + this.gridBounds = new Rectangle(); + this._tempHashSet = []; + this._cellDict = new NumberDictionary(); + this._cellSize = cellSize; + this._inverseCellSize = 1 / this._cellSize; + this._raycastParser = new RaycastResultParser(); + } + SpatialHash.prototype.remove = function(collider) { + var bounds = collider.registeredPhysicsBounds; + var p1 = this.cellCoords(bounds.x, bounds.y); + var p2 = this.cellCoords(bounds.right, bounds.bottom); + for (var x = p1.x; x <= p2.x; x++) { + for (var y = p1.y; y <= p2.y; y++) { + var cell = this.cellAtPosition(x, y); + if (!cell) + console.error("removing Collider [" + collider + + "] from a cell that it is not present in"); else - return 4294967296 + i; - }; - NumberDictionary.prototype.add = function (x, y, list) { - this._store.set(this.getKey(x, y), list); - }; - NumberDictionary.prototype.remove = function (obj) { - this._store.forEach(function (list) { - if (list.contains(obj)) - list.remove(obj); - }); - }; - NumberDictionary.prototype.tryGetValue = function (x, y) { - return this._store.get(this.getKey(x, y)); - }; - NumberDictionary.prototype.clear = function () { - this._store.clear(); - }; - return NumberDictionary; -}()); -var ContentManager = (function () { - function ContentManager() { - this.loadedAssets = new Map(); + cell.remove(collider); + } } - ContentManager.prototype.loadRes = function (name, local) { - var _this = this; - if (local === void 0) { local = true; } - return new Promise(function (resolve, reject) { - var res = _this.loadedAssets.get(name); - if (res) { - resolve(res); - return; - } - if (local) { - RES.getResAsync(name).then(function (data) { - _this.loadedAssets.set(name, data); - resolve(data); - }).catch(function (err) { - console.error("资源加载错误:", name, err); - reject(err); - }); - } - else { - RES.getResByUrl(name).then(function (data) { - _this.loadedAssets.set(name, data); - resolve(data); - }).catch(function (err) { - console.error("资源加载错误:", name, err); - reject(err); - }); - } - }); - }; - ContentManager.prototype.dispose = function () { - this.loadedAssets.forEach(function (value) { - var assetsToRemove = value; - assetsToRemove.dispose(); - }); - this.loadedAssets.clear(); - }; - return ContentManager; -}()); -var Emitter = (function () { - function Emitter() { - this._messageTable = new Map(); + }; + SpatialHash.prototype.register = function(collider) { + var bounds = collider.bounds; + collider.registeredPhysicsBounds = bounds; + var p1 = this.cellCoords(bounds.x, bounds.y); + var p2 = this.cellCoords(bounds.right, bounds.bottom); + if (!this.gridBounds.contains(new Vector2(p1.x, p1.y))) { + this.gridBounds = RectangleExt.union(this.gridBounds, p1); } - Emitter.prototype.addObserver = function (eventType, handler) { - var list = this._messageTable.get(eventType); - if (!list) { - list = []; - this._messageTable.set(eventType, list); + if (!this.gridBounds.contains(new Vector2(p2.x, p2.y))) { + this.gridBounds = RectangleExt.union(this.gridBounds, p2); + } + for (var x = p1.x; x <= p2.x; x++) { + for (var y = p1.y; y <= p2.y; y++) { + var c = this.cellAtPosition(x, y, true); + c.push(collider); + } + } + }; + SpatialHash.prototype.clear = function() { this._cellDict.clear(); }; + SpatialHash.prototype.overlapCircle = function(circleCenter, radius, results, + layerMask) { + var bounds = new Rectangle(circleCenter.x - radius, circleCenter.y - radius, + radius * 2, radius * 2); + this._overlapTestCircle.radius = radius; + this._overlapTestCircle.position = circleCenter; + var resultCounter = 0; + var potentials = this.aabbBroadphase(bounds, null, layerMask); + for (var i = 0; i < potentials.length; i++) { + var collider = potentials[i]; + if (collider instanceof BoxCollider) { + results[resultCounter] = collider; + resultCounter++; + } else { + throw new Error( + "overlapCircle against this collider type is not implemented!"); + } + if (resultCounter == results.length) + return resultCounter; + } + return resultCounter; + }; + SpatialHash.prototype.aabbBroadphase = function(bounds, excludeCollider, + layerMask) { + this._tempHashSet.length = 0; + var p1 = this.cellCoords(bounds.x, bounds.y); + var p2 = this.cellCoords(bounds.right, bounds.bottom); + for (var x = p1.x; x <= p2.x; x++) { + for (var y = p1.y; y <= p2.y; y++) { + var cell = this.cellAtPosition(x, y); + if (!cell) + continue; + for (var i = 0; i < cell.length; i++) { + var collider = cell[i]; + if (collider == excludeCollider || + !Flags.isFlagSet(layerMask, collider.physicsLayer)) + continue; + if (bounds.intersects(collider.bounds)) { + if (this._tempHashSet.indexOf(collider) == -1) + this._tempHashSet.push(collider); + } } - if (list.contains(handler)) - console.warn("您试图添加相同的观察者两次"); - list.push(handler); - }; - Emitter.prototype.removeObserver = function (eventType, handler) { - this._messageTable.get(eventType).remove(handler); - }; - Emitter.prototype.emit = function (eventType, data) { - var list = this._messageTable.get(eventType); - if (list) { - for (var i = list.length - 1; i >= 0; i--) - list[i](data); - } - }; - return Emitter; -}()); -var GlobalManager = (function () { - function GlobalManager() { + } } - Object.defineProperty(GlobalManager.prototype, "enabled", { - get: function () { - return this._enabled; - }, - set: function (value) { - this.setEnabled(value); - }, - enumerable: true, - configurable: true - }); - GlobalManager.prototype.setEnabled = function (isEnabled) { - if (this._enabled != isEnabled) { - this._enabled = isEnabled; - if (this._enabled) { - this.onEnabled(); - } - else { - this.onDisabled(); - } - } - }; - GlobalManager.prototype.onEnabled = function () { }; - GlobalManager.prototype.onDisabled = function () { }; - GlobalManager.prototype.update = function () { }; - GlobalManager.registerGlobalManager = function (manager) { - this.globalManagers.push(manager); - manager.enabled = true; - }; - GlobalManager.unregisterGlobalManager = function (manager) { - this.globalManagers.remove(manager); - manager.enabled = false; - }; - GlobalManager.getGlobalManager = function (type) { - for (var i = 0; i < this.globalManagers.length; i++) { - if (this.globalManagers[i] instanceof type) - return this.globalManagers[i]; - } - return null; - }; - GlobalManager.globalManagers = []; - return GlobalManager; -}()); -var TouchState = (function () { - function TouchState() { - this.x = 0; - this.y = 0; - this.touchPoint = -1; - this.touchDown = false; + return this._tempHashSet; + }; + SpatialHash.prototype.cellAtPosition = function(x, y, createCellIfEmpty) { + if (createCellIfEmpty === void 0) { + createCellIfEmpty = false; } - Object.defineProperty(TouchState.prototype, "position", { - get: function () { - return new Vector2(this.x, this.y); - }, - enumerable: true, - configurable: true - }); - TouchState.prototype.reset = function () { - this.x = 0; - this.y = 0; - this.touchDown = false; - this.touchPoint = -1; - }; - return TouchState; -}()); -var Input = (function () { - function Input() { + var cell = this._cellDict.tryGetValue(x, y); + if (!cell) { + if (createCellIfEmpty) { + cell = []; + this._cellDict.add(x, y, cell); + } } - Object.defineProperty(Input, "touchPosition", { - get: function () { - if (!this._gameTouchs[0]) - return Vector2.zero; - return this._gameTouchs[0].position; - }, - enumerable: true, - configurable: true + return cell; + }; + SpatialHash.prototype.cellCoords = function(x, y) { + return new Point(Math.floor(x * this._inverseCellSize), + Math.floor(y * this._inverseCellSize)); + }; + return SpatialHash; +}()); +var RaycastResultParser = (function() { + function RaycastResultParser() {} + return RaycastResultParser; +}()); +var NumberDictionary = (function() { + function NumberDictionary() { this._store = new Map(); } + NumberDictionary.prototype.getKey = function(x, y) { + return Long.fromNumber(x).shiftLeft(32).or(this.intToUint(y)).toString(); + }; + NumberDictionary.prototype.intToUint = function(i) { + if (i >= 0) + return i; + else + return 4294967296 + i; + }; + NumberDictionary.prototype.add = function( + x, y, list) { this._store.set(this.getKey(x, y), list); }; + NumberDictionary.prototype.remove = function(obj) { + this._store.forEach(function(list) { + if (list.contains(obj)) + list.remove(obj); }); - Object.defineProperty(Input, "maxSupportedTouch", { - get: function () { - return this._stage.maxTouches; - }, - set: function (value) { - this._stage.maxTouches = value; - this.initTouchCache(); - }, - enumerable: true, - configurable: true + }; + NumberDictionary.prototype.tryGetValue = function( + x, y) { return this._store.get(this.getKey(x, y)); }; + NumberDictionary.prototype.clear = function() { this._store.clear(); }; + return NumberDictionary; +}()); +var ContentManager = (function() { + function ContentManager() { this.loadedAssets = new Map(); } + ContentManager.prototype.loadRes = function(name, local) { + var _this = this; + if (local === void 0) { + local = true; + } + return new Promise(function(resolve, reject) { + var res = _this.loadedAssets.get(name); + if (res) { + resolve(res); + return; + } + if (local) { + RES.getResAsync(name) + .then(function(data) { + _this.loadedAssets.set(name, data); + resolve(data); + }) + .catch(function(err) { + console.error("资源加载错误:", name, err); + reject(err); + }); + } else { + RES.getResByUrl(name) + .then(function(data) { + _this.loadedAssets.set(name, data); + resolve(data); + }) + .catch(function(err) { + console.error("资源加载错误:", name, err); + reject(err); + }); + } }); - Object.defineProperty(Input, "resolutionScale", { - get: function () { - return this._resolutionScale; - }, - enumerable: true, - configurable: true + }; + ContentManager.prototype.dispose = function() { + this.loadedAssets.forEach(function(value) { + var assetsToRemove = value; + assetsToRemove.dispose(); }); - Object.defineProperty(Input, "totalTouchCount", { - get: function () { - return this._totalTouchCount; - }, - enumerable: true, - configurable: true - }); - Object.defineProperty(Input, "gameTouchs", { - get: function () { - return this._gameTouchs; - }, - enumerable: true, - configurable: true - }); - Object.defineProperty(Input, "touchPositionDelta", { - get: function () { - var delta = Vector2.subtract(this.touchPosition, this._previousTouchState.position); - if (delta.length() > 0) { - this.setpreviousTouchState(this._gameTouchs[0]); - } - return delta; - }, - enumerable: true, - configurable: true - }); - Input.initialize = function (stage) { - if (this._init) - return; - this._init = true; - this._stage = stage; - 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(); - }; - Input.initTouchCache = function () { - this._totalTouchCount = 0; + this.loadedAssets.clear(); + }; + return ContentManager; +}()); +var Emitter = (function() { + function Emitter() { this._messageTable = new Map(); } + Emitter.prototype.addObserver = function(eventType, handler) { + var list = this._messageTable.get(eventType); + if (!list) { + list = []; + this._messageTable.set(eventType, list); + } + if (list.contains(handler)) + console.warn("您试图添加相同的观察者两次"); + list.push(handler); + }; + Emitter.prototype.removeObserver = function( + eventType, + handler) { this._messageTable.get(eventType).remove(handler); }; + Emitter.prototype.emit = function(eventType, data) { + var list = this._messageTable.get(eventType); + if (list) { + for (var i = list.length - 1; i >= 0; i--) + list[i](data); + } + }; + return Emitter; +}()); +var GlobalManager = (function() { + function GlobalManager() {} + Object.defineProperty(GlobalManager.prototype, "enabled", { + get : function() { return this._enabled; }, + set : function(value) { this.setEnabled(value); }, + enumerable : true, + configurable : true + }); + GlobalManager.prototype.setEnabled = function(isEnabled) { + if (this._enabled != isEnabled) { + this._enabled = isEnabled; + if (this._enabled) { + this.onEnabled(); + } else { + this.onDisabled(); + } + } + }; + GlobalManager.prototype.onEnabled = function() {}; + GlobalManager.prototype.onDisabled = function() {}; + GlobalManager.prototype.update = function() {}; + GlobalManager.registerGlobalManager = function(manager) { + this.globalManagers.push(manager); + manager.enabled = true; + }; + GlobalManager.unregisterGlobalManager = function(manager) { + this.globalManagers.remove(manager); + manager.enabled = false; + }; + GlobalManager.getGlobalManager = function(type) { + for (var i = 0; i < this.globalManagers.length; i++) { + if (this.globalManagers[i] instanceof type) + return this.globalManagers[i]; + } + return null; + }; + GlobalManager.globalManagers = []; + return GlobalManager; +}()); +var TouchState = (function() { + function TouchState() { + this.x = 0; + this.y = 0; + this.touchPoint = -1; + this.touchDown = false; + } + Object.defineProperty(TouchState.prototype, "position", { + get : function() { return new Vector2(this.x, this.y); }, + enumerable : true, + configurable : true + }); + TouchState.prototype.reset = function() { + this.x = 0; + this.y = 0; + this.touchDown = false; + this.touchPoint = -1; + }; + return TouchState; +}()); +var Input = (function() { + function Input() {} + Object.defineProperty(Input, "touchPosition", { + get : function() { + if (!this._gameTouchs[0]) + return Vector2.zero; + return this._gameTouchs[0].position; + }, + enumerable : true, + configurable : true + }); + Object.defineProperty(Input, "maxSupportedTouch", { + get : function() { return this._stage.maxTouches; }, + set : function(value) { + this._stage.maxTouches = value; + this.initTouchCache(); + }, + enumerable : true, + configurable : true + }); + Object.defineProperty(Input, "resolutionScale", { + get : function() { return this._resolutionScale; }, + enumerable : true, + configurable : true + }); + Object.defineProperty(Input, "totalTouchCount", { + get : function() { return this._totalTouchCount; }, + enumerable : true, + configurable : true + }); + Object.defineProperty(Input, "gameTouchs", { + get : function() { return this._gameTouchs; }, + enumerable : true, + configurable : true + }); + Object.defineProperty(Input, "touchPositionDelta", { + get : function() { + var delta = Vector2.subtract(this.touchPosition, + this._previousTouchState.position); + if (delta.length() > 0) { + this.setpreviousTouchState(this._gameTouchs[0]); + } + return delta; + }, + enumerable : true, + configurable : true + }); + Input.initialize = function(stage) { + if (this._init) + return; + this._init = true; + this._stage = stage; + 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(); + }; + Input.initTouchCache = function() { + this._totalTouchCount = 0; + this._touchIndex = 0; + this._gameTouchs.length = 0; + for (var i = 0; i < this.maxSupportedTouch; i++) { + this._gameTouchs.push(new TouchState()); + } + }; + Input.touchBegin = function(evt) { + if (this._touchIndex < this.maxSupportedTouch) { + this._gameTouchs[this._touchIndex].touchPoint = evt.touchPointID; + this._gameTouchs[this._touchIndex].touchDown = evt.touchDown; + this._gameTouchs[this._touchIndex].x = evt.stageX; + this._gameTouchs[this._touchIndex].y = evt.stageY; + if (this._touchIndex == 0) { + this.setpreviousTouchState(this._gameTouchs[0]); + } + this._touchIndex++; + this._totalTouchCount++; + } + }; + Input.touchMove = function(evt) { + if (evt.touchPointID == this._gameTouchs[0].touchPoint) { + this.setpreviousTouchState(this._gameTouchs[0]); + } + var touchIndex = this._gameTouchs.findIndex(function( + touch) { return touch.touchPoint == evt.touchPointID; }); + if (touchIndex != -1) { + var touchData = this._gameTouchs[touchIndex]; + touchData.x = evt.stageX; + touchData.y = evt.stageY; + } + }; + Input.touchEnd = function(evt) { + var touchIndex = this._gameTouchs.findIndex(function( + touch) { return touch.touchPoint == evt.touchPointID; }); + if (touchIndex != -1) { + var touchData = this._gameTouchs[touchIndex]; + touchData.reset(); + if (touchIndex == 0) + this._previousTouchState.reset(); + this._totalTouchCount--; + if (this.totalTouchCount == 0) { this._touchIndex = 0; - this._gameTouchs.length = 0; - for (var i = 0; i < this.maxSupportedTouch; i++) { - this._gameTouchs.push(new TouchState()); - } - }; - Input.touchBegin = function (evt) { - if (this._touchIndex < this.maxSupportedTouch) { - this._gameTouchs[this._touchIndex].touchPoint = evt.touchPointID; - this._gameTouchs[this._touchIndex].touchDown = evt.touchDown; - this._gameTouchs[this._touchIndex].x = evt.stageX; - this._gameTouchs[this._touchIndex].y = evt.stageY; - if (this._touchIndex == 0) { - this.setpreviousTouchState(this._gameTouchs[0]); - } - this._touchIndex++; - this._totalTouchCount++; - } - }; - Input.touchMove = function (evt) { - if (evt.touchPointID == this._gameTouchs[0].touchPoint) { - this.setpreviousTouchState(this._gameTouchs[0]); - } - var touchIndex = this._gameTouchs.findIndex(function (touch) { return touch.touchPoint == evt.touchPointID; }); - if (touchIndex != -1) { - var touchData = this._gameTouchs[touchIndex]; - touchData.x = evt.stageX; - touchData.y = evt.stageY; - } - }; - Input.touchEnd = function (evt) { - var touchIndex = this._gameTouchs.findIndex(function (touch) { return touch.touchPoint == evt.touchPointID; }); - if (touchIndex != -1) { - var touchData = this._gameTouchs[touchIndex]; - touchData.reset(); - if (touchIndex == 0) - this._previousTouchState.reset(); - this._totalTouchCount--; - if (this.totalTouchCount == 0) { - this._touchIndex = 0; - } - } - }; - Input.setpreviousTouchState = function (touchState) { - this._previousTouchState = new TouchState(); - this._previousTouchState.x = touchState.position.x; - this._previousTouchState.y = touchState.position.y; - this._previousTouchState.touchPoint = touchState.touchPoint; - this._previousTouchState.touchDown = touchState.touchDown; - }; - Input.scaledPosition = function (position) { - var scaledPos = new Vector2(position.x - this._resolutionOffset.x, position.y - this._resolutionOffset.y); - return Vector2.multiply(scaledPos, this.resolutionScale); - }; - Input._init = false; - Input._previousTouchState = new TouchState(); - Input._gameTouchs = []; - Input._resolutionOffset = new Vector2(); - Input._resolutionScale = Vector2.one; - Input._touchIndex = 0; - Input._totalTouchCount = 0; - return Input; -}()); -var ListPool = (function () { - function ListPool() { + } } - ListPool.warmCache = function (cacheCount) { - cacheCount -= this._objectQueue.length; - if (cacheCount > 0) { - for (var i = 0; i < cacheCount; i++) { - this._objectQueue.unshift([]); - } - } - }; - ListPool.trimCache = function (cacheCount) { - while (cacheCount > this._objectQueue.length) - this._objectQueue.shift(); - }; - ListPool.clearCache = function () { - this._objectQueue.length = 0; - }; - ListPool.obtain = function () { - if (this._objectQueue.length > 0) - return this._objectQueue.shift(); - return []; - }; - ListPool.free = function (obj) { - this._objectQueue.unshift(obj); - obj.length = 0; - }; - ListPool._objectQueue = []; - return ListPool; + }; + Input.setpreviousTouchState = function(touchState) { + this._previousTouchState = new TouchState(); + this._previousTouchState.x = touchState.position.x; + this._previousTouchState.y = touchState.position.y; + this._previousTouchState.touchPoint = touchState.touchPoint; + this._previousTouchState.touchDown = touchState.touchDown; + }; + Input.scaledPosition = function(position) { + var scaledPos = new Vector2(position.x - this._resolutionOffset.x, + position.y - this._resolutionOffset.y); + return Vector2.multiply(scaledPos, this.resolutionScale); + }; + Input._init = false; + Input._previousTouchState = new TouchState(); + Input._gameTouchs = []; + Input._resolutionOffset = new Vector2(); + Input._resolutionScale = Vector2.one; + Input._touchIndex = 0; + Input._totalTouchCount = 0; + return Input; }()); -var Pair = (function () { - function Pair(first, second) { - this.first = first; - this.second = second; +var ListPool = (function() { + function ListPool() {} + ListPool.warmCache = function(cacheCount) { + cacheCount -= this._objectQueue.length; + if (cacheCount > 0) { + for (var i = 0; i < cacheCount; i++) { + this._objectQueue.unshift([]); + } } - Pair.prototype.clear = function () { - this.first = this.second = null; - }; - Pair.prototype.equals = function (other) { - return this.first == other.first && this.second == other.second; - }; - return Pair; + }; + ListPool.trimCache = function(cacheCount) { + while (cacheCount > this._objectQueue.length) + this._objectQueue.shift(); + }; + ListPool.clearCache = function() { this._objectQueue.length = 0; }; + ListPool.obtain = function() { + if (this._objectQueue.length > 0) + return this._objectQueue.shift(); + return []; + }; + ListPool.free = function(obj) { + this._objectQueue.unshift(obj); + obj.length = 0; + }; + ListPool._objectQueue = []; + return ListPool; }()); -var RectangleExt = (function () { - function RectangleExt() { - } - RectangleExt.union = function (first, point) { - var rect = new Rectangle(point.x, point.y, 0, 0); - return this.unionR(first, rect); - }; - RectangleExt.unionR = function (value1, value2) { - var result = new Rectangle(); - result.x = Math.min(value1.x, value2.x); - result.y = Math.min(value1.y, value2.y); - result.width = Math.max(value1.right, value2.right) - result.x; - result.height = Math.max(value1.bottom, value2.bottom) - result.y; - return result; - }; - return RectangleExt; +var Pair = (function() { + function Pair(first, second) { + this.first = first; + this.second = second; + } + Pair.prototype.clear = function() { this.first = this.second = null; }; + Pair.prototype.equals = function(other) { + return this.first == other.first && this.second == other.second; + }; + return Pair; }()); -var Triangulator = (function () { - function Triangulator() { - this.triangleIndices = []; - this._triPrev = new Array(12); - this._triNext = new Array(12); +var RectangleExt = (function() { + function RectangleExt() {} + RectangleExt.union = function(first, point) { + var rect = new Rectangle(point.x, point.y, 0, 0); + return this.unionR(first, rect); + }; + RectangleExt.unionR = function(value1, value2) { + var result = new Rectangle(); + result.x = Math.min(value1.x, value2.x); + result.y = Math.min(value1.y, value2.y); + result.width = Math.max(value1.right, value2.right) - result.x; + result.height = Math.max(value1.bottom, value2.bottom) - result.y; + return result; + }; + return RectangleExt; +}()); +var Triangulator = (function() { + function Triangulator() { + this.triangleIndices = []; + this._triPrev = new Array(12); + this._triNext = new Array(12); + } + Triangulator.prototype.triangulate = function(points, arePointsCCW) { + if (arePointsCCW === void 0) { + arePointsCCW = true; } - Triangulator.prototype.triangulate = function (points, arePointsCCW) { - if (arePointsCCW === void 0) { arePointsCCW = true; } - var count = points.length; - this.initialize(count); - var iterations = 0; - var index = 0; - while (count > 3 && iterations < 500) { - iterations++; - var isEar = true; - var a = points[this._triPrev[index]]; - var b = points[index]; - var c = points[this._triNext[index]]; - if (Vector2Ext.isTriangleCCW(a, b, c)) { - var k = this._triNext[this._triNext[index]]; - do { - if (Triangulator.testPointTriangle(points[k], a, b, c)) { - isEar = false; - break; - } - k = this._triNext[k]; - } while (k != this._triPrev[index]); - } - else { - isEar = false; - } - if (isEar) { - this.triangleIndices.push(this._triPrev[index]); - this.triangleIndices.push(index); - this.triangleIndices.push(this._triNext[index]); - this._triNext[this._triPrev[index]] = this._triNext[index]; - this._triPrev[this._triNext[index]] = this._triPrev[index]; - count--; - index = this._triPrev[index]; - } - else { - index = this._triNext[index]; - } - } + var count = points.length; + this.initialize(count); + var iterations = 0; + var index = 0; + while (count > 3 && iterations < 500) { + iterations++; + var isEar = true; + var a = points[this._triPrev[index]]; + var b = points[index]; + var c = points[this._triNext[index]]; + if (Vector2Ext.isTriangleCCW(a, b, c)) { + var k = this._triNext[this._triNext[index]]; + do { + if (Triangulator.testPointTriangle(points[k], a, b, c)) { + isEar = false; + break; + } + k = this._triNext[k]; + } while (k != this._triPrev[index]); + } else { + isEar = false; + } + if (isEar) { this.triangleIndices.push(this._triPrev[index]); this.triangleIndices.push(index); this.triangleIndices.push(this._triNext[index]); - if (!arePointsCCW) - this.triangleIndices.reverse(); - }; - Triangulator.prototype.initialize = function (count) { - this.triangleIndices.length = 0; - if (this._triNext.length < count) { - this._triNext.reverse(); - this._triNext = new Array(Math.max(this._triNext.length * 2, count)); - } - if (this._triPrev.length < count) { - this._triPrev.reverse(); - this._triPrev = new Array(Math.max(this._triPrev.length * 2, count)); - } - for (var i = 0; i < count; i++) { - this._triPrev[i] = i - 1; - this._triNext[i] = i + 1; - } - this._triPrev[0] = count - 1; - this._triNext[count - 1] = 0; - }; - Triangulator.testPointTriangle = function (point, a, b, c) { - if (Vector2Ext.cross(Vector2.subtract(point, a), Vector2.subtract(b, a)) < 0) - return false; - if (Vector2Ext.cross(Vector2.subtract(point, b), Vector2.subtract(c, b)) < 0) - return false; - if (Vector2Ext.cross(Vector2.subtract(point, c), Vector2.subtract(a, c)) < 0) - return false; - return true; - }; - return Triangulator; -}()); -var Vector2Ext = (function () { - function Vector2Ext() { + this._triNext[this._triPrev[index]] = this._triNext[index]; + this._triPrev[this._triNext[index]] = this._triPrev[index]; + count--; + index = this._triPrev[index]; + } else { + index = this._triNext[index]; + } } - Vector2Ext.isTriangleCCW = function (a, center, c) { - return this.cross(Vector2.subtract(center, a), Vector2.subtract(c, center)) < 0; - }; - Vector2Ext.cross = function (u, v) { - return u.y * v.x - u.x * v.y; - }; - Vector2Ext.perpendicular = function (first, second) { - return new Vector2(-1 * (second.y - first.y), second.x - first.x); - }; - Vector2Ext.normalize = function (vec) { - var magnitude = Math.sqrt((vec.x * vec.x) + (vec.y * vec.y)); - if (magnitude > MathHelper.Epsilon) { - vec = Vector2.divide(vec, new Vector2(magnitude)); - } - else { - vec.x = vec.y = 0; - } - return vec; - }; - Vector2Ext.transformA = function (sourceArray, sourceIndex, matrix, destinationArray, destinationIndex, length) { - for (var i = 0; i < length; i++) { - var position = sourceArray[sourceIndex + i]; - var destination = destinationArray[destinationIndex + i]; - destination.x = (position.x * matrix.m11) + (position.y * matrix.m21) + matrix.m31; - destination.y = (position.x * matrix.m12) + (position.y * matrix.m22) + matrix.m32; - destinationArray[destinationIndex + i] = destination; - } - }; - Vector2Ext.transformR = function (position, matrix) { - var x = (position.x * matrix.m11) + (position.y * matrix.m21) + matrix.m31; - var y = (position.x * matrix.m12) + (position.y * matrix.m22) + matrix.m32; - return new Vector2(x, y); - }; - Vector2Ext.transform = function (sourceArray, matrix, destinationArray) { - this.transformA(sourceArray, 0, matrix, destinationArray, 0, sourceArray.length); - }; - Vector2Ext.round = function (vec) { - return new Vector2(Math.round(vec.x), Math.round(vec.y)); - }; - return Vector2Ext; + this.triangleIndices.push(this._triPrev[index]); + this.triangleIndices.push(index); + this.triangleIndices.push(this._triNext[index]); + if (!arePointsCCW) + this.triangleIndices.reverse(); + }; + Triangulator.prototype.initialize = function(count) { + this.triangleIndices.length = 0; + if (this._triNext.length < count) { + this._triNext.reverse(); + this._triNext = new Array(Math.max(this._triNext.length * 2, count)); + } + if (this._triPrev.length < count) { + this._triPrev.reverse(); + this._triPrev = new Array(Math.max(this._triPrev.length * 2, count)); + } + for (var i = 0; i < count; i++) { + this._triPrev[i] = i - 1; + this._triNext[i] = i + 1; + } + this._triPrev[0] = count - 1; + this._triNext[count - 1] = 0; + }; + Triangulator.testPointTriangle = function(point, a, b, c) { + if (Vector2Ext.cross(Vector2.subtract(point, a), Vector2.subtract(b, a)) < + 0) + return false; + if (Vector2Ext.cross(Vector2.subtract(point, b), Vector2.subtract(c, b)) < + 0) + return false; + if (Vector2Ext.cross(Vector2.subtract(point, c), Vector2.subtract(a, c)) < + 0) + return false; + return true; + }; + return Triangulator; +}()); +var Vector2Ext = (function() { + function Vector2Ext() {} + Vector2Ext.isTriangleCCW = function(a, center, c) { + return this.cross(Vector2.subtract(center, a), + Vector2.subtract(c, center)) < 0; + }; + Vector2Ext.cross = function(u, v) { return u.y * v.x - u.x * v.y; }; + Vector2Ext.perpendicular = function(first, second) { + return new Vector2(-1 * (second.y - first.y), second.x - first.x); + }; + Vector2Ext.normalize = function(vec) { + var magnitude = Math.sqrt((vec.x * vec.x) + (vec.y * vec.y)); + if (magnitude > MathHelper.Epsilon) { + vec = Vector2.divide(vec, new Vector2(magnitude)); + } else { + vec.x = vec.y = 0; + } + return vec; + }; + Vector2Ext.transformA = function(sourceArray, sourceIndex, matrix, + destinationArray, destinationIndex, length) { + for (var i = 0; i < length; i++) { + var position = sourceArray[sourceIndex + i]; + var destination = destinationArray[destinationIndex + i]; + destination.x = + (position.x * matrix.m11) + (position.y * matrix.m21) + matrix.m31; + destination.y = + (position.x * matrix.m12) + (position.y * matrix.m22) + matrix.m32; + destinationArray[destinationIndex + i] = destination; + } + }; + Vector2Ext.transformR = function(position, matrix) { + var x = (position.x * matrix.m11) + (position.y * matrix.m21) + matrix.m31; + var y = (position.x * matrix.m12) + (position.y * matrix.m22) + matrix.m32; + return new Vector2(x, y); + }; + Vector2Ext.transform = function(sourceArray, matrix, destinationArray) { + this.transformA(sourceArray, 0, matrix, destinationArray, 0, + sourceArray.length); + }; + Vector2Ext.round = function( + vec) { return new Vector2(Math.round(vec.x), Math.round(vec.y)); }; + return Vector2Ext; }()); diff --git a/source/bin/framework.min.js b/source/bin/framework.min.js index 5ca26592..d6233172 100644 --- a/source/bin/framework.min.js +++ b/source/bin/framework.min.js @@ -1 +1,3477 @@ -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]-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=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;ir?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):o0;){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.x0&&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.priority0;){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.x0;){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=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=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;et&&(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(.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(.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.xe&&(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.rightn.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>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=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<=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<=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<>6;this.ensure(n),this._bits[n]|=1<0){for(var t=0;t0){t=0;for(var e=this._componentsToAdd.length;t0){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=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;n0;)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<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=.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.lefti&&(i=s.x),s.yo&&(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;e1)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))=t&&o.y>=e&&o.x=t+n&&(r|=PointSectors.right),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=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;et.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;i0&&(o=!1),!o)return null;(y=Math.abs(y))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=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;e0&&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;t0)for(var e=0;ethis._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.lengthMathHelper.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 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 = .3, e._maximumZoom = 3, + e.followLerp = .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(.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(.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(.5 * e.width, .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(.1, .6, 2, 1, 1, 0), new t(0, 3, 1, 1, 1, 1), + new t(.5, 8, 2, 1, 0, 1), new t(.25, 8, 1.3, 1, 1, 0), + new t(0, 2, 1, .1, 1, 1), new t(.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 = .4, + n.fadeEaseType = egret.Ease.quadInOut, + n.delayBeforeFadeInDuration = .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 : .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 .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 = .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(.5 * this.width, .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.xi && (i = s.x), + s.yo && (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 = .5 * t.width, o = .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))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 +}(); \ No newline at end of file From 02d86e7b0a3ba9cefb0a4ef65b08b60d394e9d5d Mon Sep 17 00:00:00 2001 From: "Restyled.io" Date: Wed, 1 Jul 2020 06:57:39 +0000 Subject: [PATCH 2/2] Restyled by prettier --- demo/libs/framework/framework.js | 4553 ++++++++------ demo/libs/framework/framework.min.js | 8665 ++++++++++++++++---------- source/bin/framework.js | 4553 ++++++++------ source/bin/framework.min.js | 8665 ++++++++++++++++---------- 4 files changed, 15630 insertions(+), 10806 deletions(-) diff --git a/demo/libs/framework/framework.js b/demo/libs/framework/framework.js index d1c2f5ea..d970796c 100644 --- a/demo/libs/framework/framework.js +++ b/demo/libs/framework/framework.js @@ -1,134 +1,155 @@ -var __extends = (this && this.__extends) || (function() { - var extendStatics = Object.setPrototypeOf || - ({__proto__ : []} instanceof Array && - function(d, b) { d.__proto__ = b; }) || - function(d, b) { - for (var p in b) - if (b.hasOwnProperty(p)) - d[p] = b[p]; - }; - return function(d, b) { - extendStatics(d, b); - function __() { this.constructor = d; } - d.prototype = b === null - ? Object.create(b) - : (__.prototype = b.prototype, new __()); - }; - })(); -var __awaiter = - (this && this.__awaiter) || function(thisArg, _arguments, P, generator) { - return new (P || (P = Promise))(function(resolve, reject) { - function fulfilled(value) { - try { - step(generator.next(value)); - } catch (e) { - reject(e); - } - } - function rejected(value) { - try { - step(generator["throw"](value)); - } catch (e) { - reject(e); - } - } - function step(result) { - result.done ? resolve(result.value) - : new P(function(resolve) { resolve(result.value); }) - .then(fulfilled, rejected); - } - step((generator = generator.apply(thisArg, _arguments || [])).next()); - }); - }; -var __generator = (this && this.__generator) || function(thisArg, body) { - var _ = { - label : 0, - sent : function() { - if (t[0] & 1) - throw t[1]; - return t[1]; - }, - trys : [], - ops : [] - }, - f, y, t, g; - return g = {next : verb(0), "throw" : verb(1), "return" : verb(2)}, - typeof Symbol === "function" && - (g[Symbol.iterator] = function() { return this; }), - g; - function verb(n) { - return function(v) { return step([ n, v ]); }; - } - function step(op) { - if (f) - throw new TypeError("Generator is already executing."); - while (_) - try { - if (f = 1, - y && - (t = op[0] & 2 ? y["return"] - : op[0] ? y["throw"] || - ((t = y["return"]) && t.call(y), 0) - : y.next) && - !(t = t.call(y, op[1])).done) - return t; - if (y = 0, t) - op = [ op[0] & 2, t.value ]; - switch (op[0]) { - case 0: - case 1: - t = op; - break; - case 4: - _.label++; - return {value : op[1], done : false}; - case 5: - _.label++; - y = op[1]; - op = [ 0 ]; - continue; - case 7: - op = _.ops.pop(); - _.trys.pop(); - continue; - default: - if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && - (op[0] === 6 || op[0] === 2)) { - _ = 0; - continue; - } - if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { - _.label = op[1]; - break; - } - if (op[0] === 6 && _.label < t[1]) { - _.label = t[1]; - t = op; - break; - } - if (t && _.label < t[2]) { - _.label = t[2]; - _.ops.push(op); - break; - } - if (t[2]) - _.ops.pop(); - _.trys.pop(); - continue; - } - op = body.call(thisArg, _); - } catch (e) { - op = [ 6, e ]; - y = 0; - } finally { - f = t = 0; +var __extends = + (this && this.__extends) || + (function () { + var extendStatics = + Object.setPrototypeOf || + ({ __proto__: [] } instanceof Array && + function (d, b) { + d.__proto__ = b; + }) || + function (d, b) { + for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; + }; + return function (d, b) { + extendStatics(d, b); + function __() { + this.constructor = d; } - if (op[0] & 5) - throw op[1]; - return {value : op[0] ? op[1] : void 0, done : true}; - } -}; -Array.prototype.findIndex = function(predicate) { + d.prototype = + b === null + ? Object.create(b) + : ((__.prototype = b.prototype), new __()); + }; + })(); +var __awaiter = + (this && this.__awaiter) || + function (thisArg, _arguments, P, generator) { + return new (P || (P = Promise))(function (resolve, reject) { + function fulfilled(value) { + try { + step(generator.next(value)); + } catch (e) { + reject(e); + } + } + function rejected(value) { + try { + step(generator["throw"](value)); + } catch (e) { + reject(e); + } + } + function step(result) { + result.done + ? resolve(result.value) + : new P(function (resolve) { + resolve(result.value); + }).then(fulfilled, rejected); + } + step((generator = generator.apply(thisArg, _arguments || [])).next()); + }); + }; +var __generator = + (this && this.__generator) || + function (thisArg, body) { + var _ = { + label: 0, + sent: function () { + if (t[0] & 1) throw t[1]; + return t[1]; + }, + trys: [], + ops: [], + }, + f, + y, + t, + g; + return ( + (g = { next: verb(0), throw: verb(1), return: verb(2) }), + typeof Symbol === "function" && + (g[Symbol.iterator] = function () { + return this; + }), + g + ); + function verb(n) { + return function (v) { + return step([n, v]); + }; + } + function step(op) { + if (f) throw new TypeError("Generator is already executing."); + while (_) + try { + if ( + ((f = 1), + y && + (t = + op[0] & 2 + ? y["return"] + : op[0] + ? y["throw"] || ((t = y["return"]) && t.call(y), 0) + : y.next) && + !(t = t.call(y, op[1])).done) + ) + return t; + if (((y = 0), t)) op = [op[0] & 2, t.value]; + switch (op[0]) { + case 0: + case 1: + t = op; + break; + case 4: + _.label++; + return { value: op[1], done: false }; + case 5: + _.label++; + y = op[1]; + op = [0]; + continue; + case 7: + op = _.ops.pop(); + _.trys.pop(); + continue; + default: + if ( + !((t = _.trys), (t = t.length > 0 && t[t.length - 1])) && + (op[0] === 6 || op[0] === 2) + ) { + _ = 0; + continue; + } + if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { + _.label = op[1]; + break; + } + if (op[0] === 6 && _.label < t[1]) { + _.label = t[1]; + t = op; + break; + } + if (t && _.label < t[2]) { + _.label = t[2]; + _.ops.push(op); + break; + } + if (t[2]) _.ops.pop(); + _.trys.pop(); + continue; + } + op = body.call(thisArg, _); + } catch (e) { + op = [6, e]; + y = 0; + } finally { + f = t = 0; + } + if (op[0] & 5) throw op[1]; + return { value: op[0] ? op[1] : void 0, done: true }; + } + }; +Array.prototype.findIndex = function (predicate) { function findIndex(array, predicate) { for (var i = 0, len = array.length; i < len; i++) { if (predicate.call(arguments[2], array[i], i, array)) { @@ -139,25 +160,29 @@ Array.prototype.findIndex = function(predicate) { } return findIndex(this, predicate); }; -Array.prototype.any = function(predicate) { - function any(array, predicate) { return array.findIndex(predicate) > -1; } +Array.prototype.any = function (predicate) { + function any(array, predicate) { + return array.findIndex(predicate) > -1; + } return any(this, predicate); }; -Array.prototype.firstOrDefault = function(predicate) { +Array.prototype.firstOrDefault = function (predicate) { function firstOrDefault(array, predicate) { var index = array.findIndex(predicate); return index == -1 ? null : array[index]; } return firstOrDefault(this, predicate); }; -Array.prototype.find = function(predicate) { - function find(array, predicate) { return array.firstOrDefault(predicate); } +Array.prototype.find = function (predicate) { + function find(array, predicate) { + return array.firstOrDefault(predicate); + } return find(this, predicate); }; -Array.prototype.where = function(predicate) { +Array.prototype.where = function (predicate) { function where(array, predicate) { - if (typeof (array.reduce) === "function") { - return array.reduce(function(ret, element, index) { + if (typeof array.reduce === "function") { + return array.reduce(function (ret, element, index) { if (predicate.call(arguments[2], element, index, array)) { ret.push(element); } @@ -176,15 +201,19 @@ Array.prototype.where = function(predicate) { } return where(this, predicate); }; -Array.prototype.count = function(predicate) { - function count(array, predicate) { return array.where(predicate).length; } +Array.prototype.count = function (predicate) { + function count(array, predicate) { + return array.where(predicate).length; + } return count(this, predicate); }; -Array.prototype.findAll = function(predicate) { - function findAll(array, predicate) { return array.where(predicate); } +Array.prototype.findAll = function (predicate) { + function findAll(array, predicate) { + return array.where(predicate); + } return findAll(this, predicate); }; -Array.prototype.contains = function(value) { +Array.prototype.contains = function (value) { function contains(array, value) { for (var i = 0, len = array.length; i < len; i++) { if (array[i] == value) { @@ -195,7 +224,7 @@ Array.prototype.contains = function(value) { } return contains(this, value); }; -Array.prototype.removeAll = function(predicate) { +Array.prototype.removeAll = function (predicate) { function removeAll(array, predicate) { var index; do { @@ -207,9 +236,11 @@ Array.prototype.removeAll = function(predicate) { } removeAll(this, predicate); }; -Array.prototype.remove = function(element) { +Array.prototype.remove = function (element) { function remove(array, element) { - var index = array.findIndex(function(x) { return x === element; }); + var index = array.findIndex(function (x) { + return x === element; + }); if (index >= 0) { array.splice(index, 1); return true; @@ -219,18 +250,22 @@ Array.prototype.remove = function(element) { } return remove(this, element); }; -Array.prototype.removeAt = function(index) { - function removeAt(array, index) { array.splice(index, 1); } +Array.prototype.removeAt = function (index) { + function removeAt(array, index) { + array.splice(index, 1); + } return removeAt(this, index); }; -Array.prototype.removeRange = function(index, count) { - function removeRange(array, index, count) { array.splice(index, count); } +Array.prototype.removeRange = function (index, count) { + function removeRange(array, index, count) { + array.splice(index, count); + } return removeRange(this, index, count); }; -Array.prototype.select = function(selector) { +Array.prototype.select = function (selector) { function select(array, selector) { - if (typeof (array.reduce) === "function") { - return array.reduce(function(ret, element, index) { + if (typeof array.reduce === "function") { + return array.reduce(function (ret, element, index) { ret.push(selector.call(arguments[2], element, index, array)); return ret; }, []); @@ -244,44 +279,47 @@ Array.prototype.select = function(selector) { } return select(this, selector); }; -Array.prototype.orderBy = function(keySelector, comparer) { +Array.prototype.orderBy = function (keySelector, comparer) { function orderBy(array, keySelector, comparer) { - array.sort(function(x, y) { + array.sort(function (x, y) { var v1 = keySelector(x); var v2 = keySelector(y); if (comparer) { return comparer(v1, v2); } else { - return (v1 > v2) ? 1 : -1; + return v1 > v2 ? 1 : -1; } }); return array; } return orderBy(this, keySelector, comparer); }; -Array.prototype.orderByDescending = function(keySelector, comparer) { +Array.prototype.orderByDescending = function (keySelector, comparer) { function orderByDescending(array, keySelector, comparer) { - array.sort(function(x, y) { + array.sort(function (x, y) { var v1 = keySelector(x); var v2 = keySelector(y); if (comparer) { return -comparer(v1, v2); } else { - return (v1 < v2) ? 1 : -1; + return v1 < v2 ? 1 : -1; } }); return array; } return orderByDescending(this, keySelector, comparer); }; -Array.prototype.groupBy = function(keySelector) { +Array.prototype.groupBy = function (keySelector) { function groupBy(array, keySelector) { - if (typeof (array.reduce) === "function") { + if (typeof array.reduce === "function") { var keys_1 = []; - return array.reduce(function(groups, element, index) { + return array.reduce(function (groups, element, index) { var key = JSON.stringify( - keySelector.call(arguments[1], element, index, array)); - var index2 = keys_1.findIndex(function(x) { return x === key; }); + keySelector.call(arguments[1], element, index, array) + ); + var index2 = keys_1.findIndex(function (x) { + return x === key; + }); if (index2 < 0) { index2 = keys_1.push(key) - 1; } @@ -294,10 +332,13 @@ Array.prototype.groupBy = function(keySelector) { } else { var groups = []; var keys = []; - var _loop_1 = function(i, len) { + var _loop_1 = function (i, len) { var key = JSON.stringify( - keySelector.call(arguments_1[1], array[i], i, array)); - var index = keys.findIndex(function(x) { return x === key; }); + keySelector.call(arguments_1[1], array[i], i, array) + ); + var index = keys.findIndex(function (x) { + return x === key; + }); if (index < 0) { index = keys.push(key) - 1; } @@ -315,7 +356,7 @@ Array.prototype.groupBy = function(keySelector) { } return groupBy(this, keySelector); }; -Array.prototype.sum = function(selector) { +Array.prototype.sum = function (selector) { function sum(array, selector) { var ret; for (var i = 0, len = array.length; i < len; i++) { @@ -337,17 +378,17 @@ Array.prototype.sum = function(selector) { } return sum(this, selector); }; -var PriorityQueueNode = (function() { +var PriorityQueueNode = (function () { function PriorityQueueNode() { this.priority = 0; this.insertionIndex = 0; this.queueIndex = 0; } return PriorityQueueNode; -}()); -var AStarPathfinder = (function() { +})(); +var AStarPathfinder = (function () { function AStarPathfinder() {} - AStarPathfinder.search = function(graph, start, goal) { + AStarPathfinder.search = function (graph, start, goal) { var _this = this; var foundPath = false; var cameFrom = new Map(); @@ -356,15 +397,15 @@ var AStarPathfinder = (function() { var frontier = new PriorityQueue(1000); frontier.enqueue(new AStarNode(start), 0); costSoFar.set(start, 0); - var _loop_2 = function() { + var _loop_2 = function () { var current = frontier.dequeue(); if (JSON.stringify(current.data) == JSON.stringify(goal)) { foundPath = true; return "break"; } - graph.getNeighbors(current.data).forEach(function(next) { + graph.getNeighbors(current.data).forEach(function (next) { var newCost = - costSoFar.get(current.data) + graph.cost(current.data, next); + costSoFar.get(current.data) + graph.cost(current.data, next); if (!_this.hasKey(costSoFar, next) || newCost < costSoFar.get(next)) { costSoFar.set(next, newCost); var priority = newCost + graph.heuristic(next, goal); @@ -375,32 +416,29 @@ var AStarPathfinder = (function() { }; while (frontier.count > 0) { var state_1 = _loop_2(); - if (state_1 === "break") - break; + if (state_1 === "break") break; } return foundPath ? this.recontructPath(cameFrom, start, goal) : null; }; - AStarPathfinder.hasKey = function(map, compareKey) { + AStarPathfinder.hasKey = function (map, compareKey) { var iterator = map.keys(); var r; - while (r = iterator.next(), !r.done) { - if (JSON.stringify(r.value) == JSON.stringify(compareKey)) - return true; + while (((r = iterator.next()), !r.done)) { + if (JSON.stringify(r.value) == JSON.stringify(compareKey)) return true; } return false; }; - AStarPathfinder.getKey = function(map, compareKey) { + AStarPathfinder.getKey = function (map, compareKey) { var iterator = map.keys(); var valueIterator = map.values(); var r; var v; - while (r = iterator.next(), v = valueIterator.next(), !r.done) { - if (JSON.stringify(r.value) == JSON.stringify(compareKey)) - return v.value; + while (((r = iterator.next()), (v = valueIterator.next()), !r.done)) { + if (JSON.stringify(r.value) == JSON.stringify(compareKey)) return v.value; } return null; }; - AStarPathfinder.recontructPath = function(cameFrom, start, goal) { + AStarPathfinder.recontructPath = function (cameFrom, start, goal) { var path = []; var current = goal; path.push(goal); @@ -412,8 +450,8 @@ var AStarPathfinder = (function() { return path; }; return AStarPathfinder; -}()); -var AStarNode = (function(_super) { +})(); +var AStarNode = (function (_super) { __extends(AStarNode, _super); function AStarNode(data) { var _this = _super.call(this) || this; @@ -421,11 +459,14 @@ var AStarNode = (function(_super) { return _this; } return AStarNode; -}(PriorityQueueNode)); -var AstarGridGraph = (function() { +})(PriorityQueueNode); +var AstarGridGraph = (function () { function AstarGridGraph(width, height) { this.dirs = [ - new Point(1, 0), new Point(0, -1), new Point(-1, 0), new Point(0, 1) + new Point(1, 0), + new Point(0, -1), + new Point(-1, 0), + new Point(0, 1), ]; this.walls = []; this.weightedNodes = []; @@ -435,55 +476,65 @@ var AstarGridGraph = (function() { this._width = width; this._height = height; } - AstarGridGraph.prototype.isNodeInBounds = function(node) { - return 0 <= node.x && node.x < this._width && 0 <= node.y && - node.y < this._height; + AstarGridGraph.prototype.isNodeInBounds = function (node) { + return ( + 0 <= node.x && + node.x < this._width && + 0 <= node.y && + node.y < this._height + ); }; - AstarGridGraph.prototype.isNodePassable = function(node) { - return !this.walls.firstOrDefault(function( - wall) { return JSON.stringify(wall) == JSON.stringify(node); }); + AstarGridGraph.prototype.isNodePassable = function (node) { + return !this.walls.firstOrDefault(function (wall) { + return JSON.stringify(wall) == JSON.stringify(node); + }); }; - AstarGridGraph.prototype.search = function( - start, goal) { return AStarPathfinder.search(this, start, goal); }; - AstarGridGraph.prototype.getNeighbors = function(node) { + AstarGridGraph.prototype.search = function (start, goal) { + return AStarPathfinder.search(this, start, goal); + }; + AstarGridGraph.prototype.getNeighbors = function (node) { var _this = this; this._neighbors.length = 0; - this.dirs.forEach(function(dir) { + this.dirs.forEach(function (dir) { var next = new Point(node.x + dir.x, node.y + dir.y); if (_this.isNodeInBounds(next) && _this.isNodePassable(next)) _this._neighbors.push(next); }); return this._neighbors; }; - AstarGridGraph.prototype.cost = function(from, to) { - return this.weightedNodes.find(function( - p) { return JSON.stringify(p) == JSON.stringify(to); }) - ? this.weightedNodeWeight - : this.defaultWeight; + AstarGridGraph.prototype.cost = function (from, to) { + return this.weightedNodes.find(function (p) { + return JSON.stringify(p) == JSON.stringify(to); + }) + ? this.weightedNodeWeight + : this.defaultWeight; + }; + AstarGridGraph.prototype.heuristic = function (node, goal) { + return Math.abs(node.x - goal.x) + Math.abs(node.y - goal.y); }; - AstarGridGraph.prototype.heuristic = function( - node, - goal) { return Math.abs(node.x - goal.x) + Math.abs(node.y - goal.y); }; return AstarGridGraph; -}()); -var PriorityQueue = (function() { +})(); +var PriorityQueue = (function () { function PriorityQueue(maxNodes) { this._numNodes = 0; this._nodes = new Array(maxNodes + 1); this._numNodesEverEnqueued = 0; } - PriorityQueue.prototype.clear = function() { + PriorityQueue.prototype.clear = function () { this._nodes.splice(1, this._numNodes); this._numNodes = 0; }; Object.defineProperty(PriorityQueue.prototype, "count", { - get : function() { return this._numNodes; }, - enumerable : true, - configurable : true + get: function () { + return this._numNodes; + }, + enumerable: true, + configurable: true, }); - PriorityQueue.prototype.contains = function( - node) { return (this._nodes[node.queueIndex] == node); }; - PriorityQueue.prototype.enqueue = function(node, priority) { + PriorityQueue.prototype.contains = function (node) { + return this._nodes[node.queueIndex] == node; + }; + PriorityQueue.prototype.enqueue = function (node, priority) { node.priority = priority; this._numNodes++; this._nodes[this._numNodes] = node; @@ -491,12 +542,12 @@ var PriorityQueue = (function() { node.insertionIndex = this._numNodesEverEnqueued++; this.cascadeUp(this._nodes[this._numNodes]); }; - PriorityQueue.prototype.dequeue = function() { + PriorityQueue.prototype.dequeue = function () { var returnMe = this._nodes[1]; this.remove(returnMe); return returnMe; }; - PriorityQueue.prototype.remove = function(node) { + PriorityQueue.prototype.remove = function (node) { if (node.queueIndex == this._numNodes) { this._nodes[this._numNodes] = null; this._numNodes--; @@ -508,25 +559,28 @@ var PriorityQueue = (function() { this._numNodes--; this.onNodeUpdated(formerLastNode); }; - PriorityQueue.prototype.isValidQueue = function() { + PriorityQueue.prototype.isValidQueue = function () { for (var i = 1; i < this._nodes.length; i++) { if (this._nodes[i]) { var childLeftIndex = 2 * i; - if (childLeftIndex < this._nodes.length && - this._nodes[childLeftIndex] && - this.hasHigherPriority(this._nodes[childLeftIndex], this._nodes[i])) + if ( + childLeftIndex < this._nodes.length && + this._nodes[childLeftIndex] && + this.hasHigherPriority(this._nodes[childLeftIndex], this._nodes[i]) + ) return false; var childRightIndex = childLeftIndex + 1; - if (childRightIndex < this._nodes.length && - this._nodes[childRightIndex] && - this.hasHigherPriority(this._nodes[childRightIndex], - this._nodes[i])) + if ( + childRightIndex < this._nodes.length && + this._nodes[childRightIndex] && + this.hasHigherPriority(this._nodes[childRightIndex], this._nodes[i]) + ) return false; } } return true; }; - PriorityQueue.prototype.onNodeUpdated = function(node) { + PriorityQueue.prototype.onNodeUpdated = function (node) { var parentIndex = Math.floor(node.queueIndex / 2); var parentNode = this._nodes[parentIndex]; if (parentIndex > 0 && this.hasHigherPriority(node, parentNode)) { @@ -535,7 +589,7 @@ var PriorityQueue = (function() { this.cascadeDown(node); } }; - PriorityQueue.prototype.cascadeDown = function(node) { + PriorityQueue.prototype.cascadeDown = function (node) { var newParent; var finalQueueIndex = node.queueIndex; while (true) { @@ -569,46 +623,47 @@ var PriorityQueue = (function() { } } }; - PriorityQueue.prototype.cascadeUp = function(node) { + PriorityQueue.prototype.cascadeUp = function (node) { var parent = Math.floor(node.queueIndex / 2); while (parent >= 1) { var parentNode = this._nodes[parent]; - if (this.hasHigherPriority(parentNode, node)) - break; + if (this.hasHigherPriority(parentNode, node)) break; this.swap(node, parentNode); parent = Math.floor(node.queueIndex / 2); } }; - PriorityQueue.prototype.swap = function(node1, node2) { + PriorityQueue.prototype.swap = function (node1, node2) { this._nodes[node1.queueIndex] = node2; this._nodes[node2.queueIndex] = node1; var temp = node1.queueIndex; node1.queueIndex = node2.queueIndex; node2.queueIndex = temp; }; - PriorityQueue.prototype.hasHigherPriority = function(higher, lower) { - return (higher.priority < lower.priority || - (higher.priority == lower.priority && - higher.insertionIndex < lower.insertionIndex)); + PriorityQueue.prototype.hasHigherPriority = function (higher, lower) { + return ( + higher.priority < lower.priority || + (higher.priority == lower.priority && + higher.insertionIndex < lower.insertionIndex) + ); }; return PriorityQueue; -}()); -var BreadthFirstPathfinder = (function() { +})(); +var BreadthFirstPathfinder = (function () { function BreadthFirstPathfinder() {} - BreadthFirstPathfinder.search = function(graph, start, goal) { + BreadthFirstPathfinder.search = function (graph, start, goal) { var _this = this; var foundPath = false; var frontier = []; frontier.unshift(start); var cameFrom = new Map(); cameFrom.set(start, start); - var _loop_3 = function() { + var _loop_3 = function () { var current = frontier.shift(); if (JSON.stringify(current) == JSON.stringify(goal)) { foundPath = true; return "break"; } - graph.getNeighbors(current).forEach(function(next) { + graph.getNeighbors(current).forEach(function (next) { if (!_this.hasKey(cameFrom, next)) { frontier.unshift(next); cameFrom.set(next, current); @@ -617,41 +672,43 @@ var BreadthFirstPathfinder = (function() { }; while (frontier.length > 0) { var state_2 = _loop_3(); - if (state_2 === "break") - break; + if (state_2 === "break") break; } - return foundPath ? AStarPathfinder.recontructPath(cameFrom, start, goal) - : null; + return foundPath + ? AStarPathfinder.recontructPath(cameFrom, start, goal) + : null; }; - BreadthFirstPathfinder.hasKey = function(map, compareKey) { + BreadthFirstPathfinder.hasKey = function (map, compareKey) { var iterator = map.keys(); var r; - while (r = iterator.next(), !r.done) { - if (JSON.stringify(r.value) == JSON.stringify(compareKey)) - return true; + while (((r = iterator.next()), !r.done)) { + if (JSON.stringify(r.value) == JSON.stringify(compareKey)) return true; } return false; }; return BreadthFirstPathfinder; -}()); -var UnweightedGraph = (function() { - function UnweightedGraph() { this.edges = new Map(); } - UnweightedGraph.prototype.addEdgesForNode = function(node, edges) { +})(); +var UnweightedGraph = (function () { + function UnweightedGraph() { + this.edges = new Map(); + } + UnweightedGraph.prototype.addEdgesForNode = function (node, edges) { this.edges.set(node, edges); return this; }; - UnweightedGraph.prototype.getNeighbors = function( - node) { return this.edges.get(node); }; + UnweightedGraph.prototype.getNeighbors = function (node) { + return this.edges.get(node); + }; return UnweightedGraph; -}()); -var Point = (function() { +})(); +var Point = (function () { function Point(x, y) { this.x = x ? x : 0; this.y = y ? y : this.x; } return Point; -}()); -var UnweightedGridGraph = (function() { +})(); +var UnweightedGridGraph = (function () { function UnweightedGridGraph(width, height, allowDiagonalSearch) { if (allowDiagonalSearch === void 0) { allowDiagonalSearch = false; @@ -660,31 +717,42 @@ var UnweightedGridGraph = (function() { this._neighbors = new Array(4); this._width = width; this._hegiht = height; - this._dirs = allowDiagonalSearch ? UnweightedGridGraph.COMPASS_DIRS - : UnweightedGridGraph.CARDINAL_DIRS; + this._dirs = allowDiagonalSearch + ? UnweightedGridGraph.COMPASS_DIRS + : UnweightedGridGraph.CARDINAL_DIRS; } - UnweightedGridGraph.prototype.isNodeInBounds = function(node) { - return 0 <= node.x && node.x < this._width && 0 <= node.y && - node.y < this._hegiht; + UnweightedGridGraph.prototype.isNodeInBounds = function (node) { + return ( + 0 <= node.x && + node.x < this._width && + 0 <= node.y && + node.y < this._hegiht + ); }; - UnweightedGridGraph.prototype.isNodePassable = function(node) { - return !this.walls.firstOrDefault(function( - wall) { return JSON.stringify(wall) == JSON.stringify(node); }); + UnweightedGridGraph.prototype.isNodePassable = function (node) { + return !this.walls.firstOrDefault(function (wall) { + return JSON.stringify(wall) == JSON.stringify(node); + }); }; - UnweightedGridGraph.prototype.getNeighbors = function(node) { + UnweightedGridGraph.prototype.getNeighbors = function (node) { var _this = this; this._neighbors.length = 0; - this._dirs.forEach(function(dir) { + this._dirs.forEach(function (dir) { var next = new Point(node.x + dir.x, node.y + dir.y); if (_this.isNodeInBounds(next) && _this.isNodePassable(next)) _this._neighbors.push(next); }); return this._neighbors; }; - UnweightedGridGraph.prototype.search = function( - start, goal) { return BreadthFirstPathfinder.search(this, start, goal); }; - UnweightedGridGraph.CARDINAL_DIRS = - [ new Point(1, 0), new Point(0, -1), new Point(-1, 0), new Point(0, -1) ]; + UnweightedGridGraph.prototype.search = function (start, goal) { + return BreadthFirstPathfinder.search(this, start, goal); + }; + UnweightedGridGraph.CARDINAL_DIRS = [ + new Point(1, 0), + new Point(0, -1), + new Point(-1, 0), + new Point(0, -1), + ]; UnweightedGridGraph.COMPASS_DIRS = [ new Point(1, 0), new Point(1, -1), @@ -696,8 +764,8 @@ var UnweightedGridGraph = (function() { new Point(1, 1), ]; return UnweightedGridGraph; -}()); -var WeightedGridGraph = (function() { +})(); +var WeightedGridGraph = (function () { function WeightedGridGraph(width, height, allowDiagonalSearch) { if (allowDiagonalSearch === void 0) { allowDiagonalSearch = false; @@ -709,37 +777,49 @@ var WeightedGridGraph = (function() { this._neighbors = new Array(4); this._width = width; this._height = height; - this._dirs = allowDiagonalSearch ? WeightedGridGraph.COMPASS_DIRS - : WeightedGridGraph.CARDINAL_DIRS; + this._dirs = allowDiagonalSearch + ? WeightedGridGraph.COMPASS_DIRS + : WeightedGridGraph.CARDINAL_DIRS; } - WeightedGridGraph.prototype.isNodeInBounds = function(node) { - return 0 <= node.x && node.x < this._width && 0 <= node.y && - node.y < this._height; + WeightedGridGraph.prototype.isNodeInBounds = function (node) { + return ( + 0 <= node.x && + node.x < this._width && + 0 <= node.y && + node.y < this._height + ); }; - WeightedGridGraph.prototype.isNodePassable = function(node) { - return !this.walls.firstOrDefault(function( - wall) { return JSON.stringify(wall) == JSON.stringify(node); }); + WeightedGridGraph.prototype.isNodePassable = function (node) { + return !this.walls.firstOrDefault(function (wall) { + return JSON.stringify(wall) == JSON.stringify(node); + }); }; - WeightedGridGraph.prototype.search = function( - start, goal) { return WeightedPathfinder.search(this, start, goal); }; - WeightedGridGraph.prototype.getNeighbors = function(node) { + WeightedGridGraph.prototype.search = function (start, goal) { + return WeightedPathfinder.search(this, start, goal); + }; + WeightedGridGraph.prototype.getNeighbors = function (node) { var _this = this; this._neighbors.length = 0; - this._dirs.forEach(function(dir) { + this._dirs.forEach(function (dir) { var next = new Point(node.x + dir.x, node.y + dir.y); if (_this.isNodeInBounds(next) && _this.isNodePassable(next)) _this._neighbors.push(next); }); return this._neighbors; }; - WeightedGridGraph.prototype.cost = function(from, to) { - return this.weightedNodes.find(function( - t) { return JSON.stringify(t) == JSON.stringify(to); }) - ? this.weightedNodeWeight - : this.defaultWeight; + WeightedGridGraph.prototype.cost = function (from, to) { + return this.weightedNodes.find(function (t) { + return JSON.stringify(t) == JSON.stringify(to); + }) + ? this.weightedNodeWeight + : this.defaultWeight; }; - WeightedGridGraph.CARDINAL_DIRS = - [ new Point(1, 0), new Point(0, -1), new Point(-1, 0), new Point(0, 1) ]; + WeightedGridGraph.CARDINAL_DIRS = [ + new Point(1, 0), + new Point(0, -1), + new Point(-1, 0), + new Point(0, 1), + ]; WeightedGridGraph.COMPASS_DIRS = [ new Point(1, 0), new Point(1, -1), @@ -751,8 +831,8 @@ var WeightedGridGraph = (function() { new Point(1, 1), ]; return WeightedGridGraph; -}()); -var WeightedNode = (function(_super) { +})(); +var WeightedNode = (function (_super) { __extends(WeightedNode, _super); function WeightedNode(data) { var _this = _super.call(this) || this; @@ -760,10 +840,10 @@ var WeightedNode = (function(_super) { return _this; } return WeightedNode; -}(PriorityQueueNode)); -var WeightedPathfinder = (function() { +})(PriorityQueueNode); +var WeightedPathfinder = (function () { function WeightedPathfinder() {} - WeightedPathfinder.search = function(graph, start, goal) { + WeightedPathfinder.search = function (graph, start, goal) { var _this = this; var foundPath = false; var cameFrom = new Map(); @@ -772,15 +852,15 @@ var WeightedPathfinder = (function() { var frontier = new PriorityQueue(1000); frontier.enqueue(new WeightedNode(start), 0); costSoFar.set(start, 0); - var _loop_4 = function() { + var _loop_4 = function () { var current = frontier.dequeue(); if (JSON.stringify(current.data) == JSON.stringify(goal)) { foundPath = true; return "break"; } - graph.getNeighbors(current.data).forEach(function(next) { + graph.getNeighbors(current.data).forEach(function (next) { var newCost = - costSoFar.get(current.data) + graph.cost(current.data, next); + costSoFar.get(current.data) + graph.cost(current.data, next); if (!_this.hasKey(costSoFar, next) || newCost < costSoFar.get(next)) { costSoFar.set(next, newCost); var priprity = newCost; @@ -791,32 +871,29 @@ var WeightedPathfinder = (function() { }; while (frontier.count > 0) { var state_3 = _loop_4(); - if (state_3 === "break") - break; + if (state_3 === "break") break; } return foundPath ? this.recontructPath(cameFrom, start, goal) : null; }; - WeightedPathfinder.hasKey = function(map, compareKey) { + WeightedPathfinder.hasKey = function (map, compareKey) { var iterator = map.keys(); var r; - while (r = iterator.next(), !r.done) { - if (JSON.stringify(r.value) == JSON.stringify(compareKey)) - return true; + while (((r = iterator.next()), !r.done)) { + if (JSON.stringify(r.value) == JSON.stringify(compareKey)) return true; } return false; }; - WeightedPathfinder.getKey = function(map, compareKey) { + WeightedPathfinder.getKey = function (map, compareKey) { var iterator = map.keys(); var valueIterator = map.values(); var r; var v; - while (r = iterator.next(), v = valueIterator.next(), !r.done) { - if (JSON.stringify(r.value) == JSON.stringify(compareKey)) - return v.value; + while (((r = iterator.next()), (v = valueIterator.next()), !r.done)) { + if (JSON.stringify(r.value) == JSON.stringify(compareKey)) return v.value; } return null; }; - WeightedPathfinder.recontructPath = function(cameFrom, start, goal) { + WeightedPathfinder.recontructPath = function (cameFrom, start, goal) { var path = []; var current = goal; path.push(goal); @@ -828,30 +905,32 @@ var WeightedPathfinder = (function() { return path; }; return WeightedPathfinder; -}()); -var DebugDefaults = (function() { +})(); +var DebugDefaults = (function () { function DebugDefaults() {} - DebugDefaults.verletParticle = 0xDC345E; - DebugDefaults.verletConstraintEdge = 0x433E36; + DebugDefaults.verletParticle = 0xdc345e; + DebugDefaults.verletConstraintEdge = 0x433e36; return DebugDefaults; -}()); -var Component = (function(_super) { +})(); +var Component = (function (_super) { __extends(Component, _super); function Component() { - var _this = _super !== null && _super.apply(this, arguments) || this; + var _this = (_super !== null && _super.apply(this, arguments)) || this; _this._enabled = true; _this.updateInterval = 1; return _this; } Object.defineProperty(Component.prototype, "enabled", { - get : function() { + get: function () { return this.entity ? this.entity.enabled && this._enabled : this._enabled; }, - set : function(value) { this.setEnabled(value); }, - enumerable : true, - configurable : true + set: function (value) { + this.setEnabled(value); + }, + enumerable: true, + configurable: true, }); - Component.prototype.setEnabled = function(isEnabled) { + Component.prototype.setEnabled = function (isEnabled) { if (this._enabled != isEnabled) { this._enabled = isEnabled; if (this._enabled) { @@ -862,26 +941,28 @@ var Component = (function(_super) { } return this; }; - Component.prototype.initialize = function() {}; - Component.prototype.onAddedToEntity = function() {}; - Component.prototype.onRemovedFromEntity = function() {}; - Component.prototype.onEnabled = function() {}; - Component.prototype.onDisabled = function() {}; - Component.prototype.onEntityTransformChanged = function(comp) {}; - Component.prototype.update = function() {}; - Component.prototype.debugRender = function() {}; - Component.prototype.registerComponent = function() { - this.entity.componentBits.set(ComponentTypeManager.getIndexFor(this), - false); + Component.prototype.initialize = function () {}; + Component.prototype.onAddedToEntity = function () {}; + Component.prototype.onRemovedFromEntity = function () {}; + Component.prototype.onEnabled = function () {}; + Component.prototype.onDisabled = function () {}; + Component.prototype.onEntityTransformChanged = function (comp) {}; + Component.prototype.update = function () {}; + Component.prototype.debugRender = function () {}; + Component.prototype.registerComponent = function () { + this.entity.componentBits.set( + ComponentTypeManager.getIndexFor(this), + false + ); this.entity.scene.entityProcessors.onComponentAdded(this.entity); }; - Component.prototype.deregisterComponent = function() { + Component.prototype.deregisterComponent = function () { this.entity.componentBits.set(ComponentTypeManager.getIndexFor(this)); this.entity.scene.entityProcessors.onComponentRemoved(this.entity); }; return Component; -}(egret.DisplayObjectContainer)); -var Entity = (function(_super) { +})(egret.DisplayObjectContainer); +var Entity = (function (_super) { __extends(Entity, _super); function Entity(name) { var _this = _super.call(this) || this; @@ -896,61 +977,81 @@ var Entity = (function(_super) { return _this; } Object.defineProperty(Entity.prototype, "isDestoryed", { - get : function() { return this._isDestoryed; }, - enumerable : true, - configurable : true + get: function () { + return this._isDestoryed; + }, + enumerable: true, + configurable: true, }); Object.defineProperty(Entity.prototype, "position", { - get : function() { return this._position; }, - set : function(value) { this._position = value; }, - enumerable : true, - configurable : true + get: function () { + return this._position; + }, + set: function (value) { + this._position = value; + }, + enumerable: true, + configurable: true, }); Object.defineProperty(Entity.prototype, "scale", { - get : function() { return new Vector2(this.scaleX, this.scaleY); }, - set : function(value) { + get: function () { + return new Vector2(this.scaleX, this.scaleY); + }, + set: function (value) { this.scaleX = value.x; this.scaleY = value.y; }, - enumerable : true, - configurable : true + enumerable: true, + configurable: true, }); Object.defineProperty(Entity.prototype, "enabled", { - get : function() { return this._enabled; }, - set : function(value) { this.setEnabled(value); }, - enumerable : true, - configurable : true + get: function () { + return this._enabled; + }, + set: function (value) { + this.setEnabled(value); + }, + enumerable: true, + configurable: true, }); - Entity.prototype.setEnabled = function(isEnabled) { + Entity.prototype.setEnabled = function (isEnabled) { if (this._enabled != isEnabled) { this._enabled = isEnabled; } return this; }; Object.defineProperty(Entity.prototype, "tag", { - get : function() { return this._tag; }, - set : function(value) { this.setTag(value); }, - enumerable : true, - configurable : true + get: function () { + return this._tag; + }, + set: function (value) { + this.setTag(value); + }, + enumerable: true, + configurable: true, }); Object.defineProperty(Entity.prototype, "stage", { - get : function() { - if (!this.scene) - return null; + get: function () { + if (!this.scene) return null; return this.scene.stage; }, - enumerable : true, - configurable : true + enumerable: true, + configurable: true, }); Object.defineProperty(Entity.prototype, "updateOrder", { - get : function() { return this._updateOrder; }, - set : function(value) { this.setUpdateOrder(value); }, - enumerable : true, - configurable : true + get: function () { + return this._updateOrder; + }, + set: function (value) { + this.setUpdateOrder(value); + }, + enumerable: true, + configurable: true, }); - Entity.prototype.roundPosition = - function() { this.position = Vector2Ext.round(this.position); }; - Entity.prototype.setUpdateOrder = function(updateOrder) { + Entity.prototype.roundPosition = function () { + this.position = Vector2Ext.round(this.position); + }; + Entity.prototype.setUpdateOrder = function (updateOrder) { if (this._updateOrder != updateOrder) { this._updateOrder = updateOrder; if (this.scene) { @@ -958,7 +1059,7 @@ var Entity = (function(_super) { return this; } }; - Entity.prototype.setTag = function(tag) { + Entity.prototype.setTag = function (tag) { if (this._tag != tag) { if (this.scene) { this.scene.entities.removeFromTagList(this); @@ -970,7 +1071,7 @@ var Entity = (function(_super) { } return this; }; - Entity.prototype.attachToScene = function(newScene) { + Entity.prototype.attachToScene = function (newScene) { this.scene = newScene; newScene.entities.add(this); this.components.registerAllComponents(); @@ -978,34 +1079,36 @@ var Entity = (function(_super) { this.getChildAt(i).entity.attachToScene(newScene); } }; - Entity.prototype.detachFromScene = function() { + Entity.prototype.detachFromScene = function () { this.scene.entities.remove(this); this.components.deregisterAllComponents(); for (var i = 0; i < this.numChildren; i++) this.getChildAt(i).entity.detachFromScene(); }; - Entity.prototype.addComponent = function(component) { + Entity.prototype.addComponent = function (component) { component.entity = this; this.components.add(component); this.addChild(component); component.initialize(); return component; }; - Entity.prototype.hasComponent = function( - type) { return this.components.getComponent(type, false) != null; }; - Entity.prototype.getOrCreateComponent = function(type) { + Entity.prototype.hasComponent = function (type) { + return this.components.getComponent(type, false) != null; + }; + Entity.prototype.getOrCreateComponent = function (type) { var comp = this.components.getComponent(type, true); if (!comp) { comp = this.addComponent(type); } return comp; }; - Entity.prototype.getComponent = function( - type) { return this.components.getComponent(type, false); }; - Entity.prototype.getComponents = function(typeName, componentList) { + Entity.prototype.getComponent = function (type) { + return this.components.getComponent(type, false); + }; + Entity.prototype.getComponents = function (typeName, componentList) { return this.components.getComponents(typeName, componentList); }; - Entity.prototype.removeComponentForType = function(type) { + Entity.prototype.removeComponentForType = function (type) { var comp = this.getComponent(type); if (comp) { this.removeComponent(comp); @@ -1013,22 +1116,25 @@ var Entity = (function(_super) { } return false; }; - Entity.prototype.removeComponent = function( - component) { this.components.remove(component); }; - Entity.prototype.removeAllComponents = function() { + Entity.prototype.removeComponent = function (component) { + this.components.remove(component); + }; + Entity.prototype.removeAllComponents = function () { for (var i = 0; i < this.components.count; i++) { this.removeComponent(this.components.buffer[i]); } }; - Entity.prototype.update = function() { this.components.update(); }; - Entity.prototype.onAddedToScene = function() {}; - Entity.prototype.onRemovedFromScene = function() { - if (this._isDestoryed) - this.components.removeAllComponents(); + Entity.prototype.update = function () { + this.components.update(); }; - Entity.prototype.onTransformChanged = function( - comp) { this.components.onEntityTransformChanged(comp); }; - Entity.prototype.destroy = function() { + Entity.prototype.onAddedToScene = function () {}; + Entity.prototype.onRemovedFromScene = function () { + if (this._isDestoryed) this.components.removeAllComponents(); + }; + Entity.prototype.onTransformChanged = function (comp) { + this.components.onEntityTransformChanged(comp); + }; + Entity.prototype.destroy = function () { this._isDestoryed = true; this.scene.entities.remove(this); this.removeChildren(); @@ -1038,8 +1144,8 @@ var Entity = (function(_super) { } }; return Entity; -}(egret.DisplayObjectContainer)); -var Scene = (function(_super) { +})(egret.DisplayObjectContainer); +var Scene = (function (_super) { __extends(Scene, _super); function Scene() { var _this = _super.call(this) || this; @@ -1056,12 +1162,12 @@ var Scene = (function(_super) { _this.addEventListener(egret.Event.DEACTIVATE, _this.onDeactive, _this); return _this; } - Scene.prototype.createEntity = function(name) { + Scene.prototype.createEntity = function (name) { var entity = new Entity(name); entity.position = new Vector2(0, 0); return this.addEntity(entity); }; - Scene.prototype.addEntity = function(entity) { + Scene.prototype.addEntity = function (entity) { this.entities.add(entity); entity.scene = this; this.addChild(entity); @@ -1069,40 +1175,42 @@ var Scene = (function(_super) { this.addEntity(entity.getChildAt(i).entity); return entity; }; - Scene.prototype.destroyAllEntities = function() { + Scene.prototype.destroyAllEntities = function () { for (var i = 0; i < this.entities.count; i++) { this.entities.buffer[i].destroy(); } }; - Scene.prototype.findEntity = function( - name) { return this.entities.findEntity(name); }; - Scene.prototype.addEntityProcessor = function(processor) { + Scene.prototype.findEntity = function (name) { + return this.entities.findEntity(name); + }; + Scene.prototype.addEntityProcessor = function (processor) { processor.scene = this; this.entityProcessors.add(processor); return processor; }; - Scene.prototype.removeEntityProcessor = function( - processor) { this.entityProcessors.remove(processor); }; - Scene.prototype.getEntityProcessor = - function() { return this.entityProcessors.getProcessor(); }; - Scene.prototype.addRenderer = function(renderer) { + Scene.prototype.removeEntityProcessor = function (processor) { + this.entityProcessors.remove(processor); + }; + Scene.prototype.getEntityProcessor = function () { + return this.entityProcessors.getProcessor(); + }; + Scene.prototype.addRenderer = function (renderer) { this._renderers.push(renderer); this._renderers.sort(); renderer.onAddedToScene(this); return renderer; }; - Scene.prototype.getRenderer = function(type) { + Scene.prototype.getRenderer = function (type) { for (var i = 0; i < this._renderers.length; i++) { - if (this._renderers[i] instanceof type) - return this._renderers[i]; + if (this._renderers[i] instanceof type) return this._renderers[i]; } return null; }; - Scene.prototype.removeRenderer = function(renderer) { + Scene.prototype.removeRenderer = function (renderer) { this._renderers.remove(renderer); renderer.unload(); }; - Scene.prototype.begin = function() { + Scene.prototype.begin = function () { if (SceneManager.sceneTransition) { SceneManager.stage.addChildAt(this, SceneManager.stage.numChildren - 1); } else { @@ -1111,19 +1219,22 @@ var Scene = (function(_super) { if (this._renderers.length == 0) { this.addRenderer(new DefaultRenderer()); console.warn( - "场景开始时没有渲染器 自动添加DefaultRenderer以保证能够正常渲染"); + "场景开始时没有渲染器 自动添加DefaultRenderer以保证能够正常渲染" + ); } - this.camera = - this.createEntity("camera").getOrCreateComponent(new Camera()); + this.camera = this.createEntity("camera").getOrCreateComponent( + new Camera() + ); Physics.reset(); - if (this.entityProcessors) - this.entityProcessors.begin(); - this.camera.onSceneSizeChanged(this.stage.stageWidth, - this.stage.stageHeight); + if (this.entityProcessors) this.entityProcessors.begin(); + this.camera.onSceneSizeChanged( + this.stage.stageWidth, + this.stage.stageHeight + ); this._didSceneBegin = true; this.onStart(); }; - Scene.prototype.end = function() { + Scene.prototype.end = function () { this._didSceneBegin = false; this.removeEventListener(egret.Event.DEACTIVATE, this.onDeactive, this); this.removeEventListener(egret.Event.ACTIVATE, this.onActive, this); @@ -1138,28 +1249,27 @@ var Scene = (function(_super) { Physics.clear(); this.camera = null; this.content.dispose(); - if (this.entityProcessors) - this.entityProcessors.end(); + if (this.entityProcessors) this.entityProcessors.end(); this.unload(); }; - Scene.prototype.onStart = function() { - return __awaiter(this, void 0, void 0, function() { - return __generator(this, function(_a) { return [ 2 ]; }); + Scene.prototype.onStart = function () { + return __awaiter(this, void 0, void 0, function () { + return __generator(this, function (_a) { + return [2]; + }); }); }; - Scene.prototype.onActive = function() {}; - Scene.prototype.onDeactive = function() {}; - Scene.prototype.unload = function() {}; - Scene.prototype.update = function() { + Scene.prototype.onActive = function () {}; + Scene.prototype.onDeactive = function () {}; + Scene.prototype.unload = function () {}; + Scene.prototype.update = function () { this.entities.updateLists(); - if (this.entityProcessors) - this.entityProcessors.update(); + if (this.entityProcessors) this.entityProcessors.update(); this.entities.update(); - if (this.entityProcessors) - this.entityProcessors.lateUpdate(); + if (this.entityProcessors) this.entityProcessors.lateUpdate(); this.renderableComponents.updateList(); }; - Scene.prototype.postRender = function() { + Scene.prototype.postRender = function () { var enabledCounter = 0; if (this.enablePostProcessing) { for (var i = 0; i < this._postProcessors.length; i++) { @@ -1171,34 +1281,37 @@ var Scene = (function(_super) { } } }; - Scene.prototype.render = function() { + Scene.prototype.render = function () { for (var i = 0; i < this._renderers.length; i++) { this._renderers[i].render(this); } }; - Scene.prototype.addPostProcessor = function(postProcessor) { + Scene.prototype.addPostProcessor = function (postProcessor) { this._postProcessors.push(postProcessor); this._postProcessors.sort(); postProcessor.onAddedToScene(this); if (this._didSceneBegin) { - postProcessor.onSceneBackBufferSizeChanged(this.stage.stageWidth, - this.stage.stageHeight); + postProcessor.onSceneBackBufferSizeChanged( + this.stage.stageWidth, + this.stage.stageHeight + ); } return postProcessor; }; return Scene; -}(egret.DisplayObjectContainer)); -var SceneManager = (function() { +})(egret.DisplayObjectContainer); +var SceneManager = (function () { function SceneManager(stage) { stage.addEventListener(egret.Event.ENTER_FRAME, SceneManager.update, this); SceneManager.stage = stage; SceneManager.initialize(stage); } Object.defineProperty(SceneManager, "scene", { - get : function() { return this._scene; }, - set : function(value) { - if (!value) - throw new Error("场景不能为空"); + get: function () { + return this._scene; + }, + set: function (value) { + if (!value) throw new Error("场景不能为空"); if (this._scene == null) { this._scene = value; this._scene.begin(); @@ -1206,21 +1319,25 @@ var SceneManager = (function() { this._nextScene = value; } }, - enumerable : true, - configurable : true + enumerable: true, + configurable: true, }); - SceneManager.initialize = function(stage) { Input.initialize(stage); }; - SceneManager.update = function() { + SceneManager.initialize = function (stage) { + Input.initialize(stage); + }; + SceneManager.update = function () { Time.update(egret.getTimer()); if (SceneManager._scene) { for (var i = GlobalManager.globalManagers.length - 1; i >= 0; i--) { if (GlobalManager.globalManagers[i].enabled) GlobalManager.globalManagers[i].update(); } - if (!SceneManager.sceneTransition || - (SceneManager.sceneTransition && - (!SceneManager.sceneTransition.loadsNewScene || - SceneManager.sceneTransition.isNewSceneLoaded))) { + if ( + !SceneManager.sceneTransition || + (SceneManager.sceneTransition && + (!SceneManager.sceneTransition.loadsNewScene || + SceneManager.sceneTransition.isNewSceneLoaded)) + ) { SceneManager._scene.update(); } if (SceneManager._nextScene) { @@ -1236,7 +1353,7 @@ var SceneManager = (function() { } SceneManager.render(); }; - SceneManager.render = function() { + SceneManager.render = function () { if (this.sceneTransition) { this.sceneTransition.preRender(); if (this._scene && !this.sceneTransition.hasPreviousSceneRender) { @@ -1255,7 +1372,7 @@ var SceneManager = (function() { this._scene.postRender(); } }; - SceneManager.startSceneTransition = function(sceneTransition) { + SceneManager.startSceneTransition = function (sceneTransition) { if (this.sceneTransition) { console.warn("在前一个场景完成之前,不能开始一个新的场景转换。"); return; @@ -1264,21 +1381,21 @@ var SceneManager = (function() { return sceneTransition; }; return SceneManager; -}()); +})(); var DirtyType; -(function(DirtyType) { -DirtyType[DirtyType["clean"] = 0] = "clean"; -DirtyType[DirtyType["positionDirty"] = 1] = "positionDirty"; -DirtyType[DirtyType["scaleDirty"] = 2] = "scaleDirty"; -DirtyType[DirtyType["rotationDirty"] = 3] = "rotationDirty"; +(function (DirtyType) { + DirtyType[(DirtyType["clean"] = 0)] = "clean"; + DirtyType[(DirtyType["positionDirty"] = 1)] = "positionDirty"; + DirtyType[(DirtyType["scaleDirty"] = 2)] = "scaleDirty"; + DirtyType[(DirtyType["rotationDirty"] = 3)] = "rotationDirty"; })(DirtyType || (DirtyType = {})); var ComponentTransform; -(function(ComponentTransform) { -ComponentTransform[ComponentTransform["position"] = 0] = "position"; -ComponentTransform[ComponentTransform["scale"] = 1] = "scale"; -ComponentTransform[ComponentTransform["rotation"] = 2] = "rotation"; +(function (ComponentTransform) { + ComponentTransform[(ComponentTransform["position"] = 0)] = "position"; + ComponentTransform[(ComponentTransform["scale"] = 1)] = "scale"; + ComponentTransform[(ComponentTransform["rotation"] = 2)] = "rotation"; })(ComponentTransform || (ComponentTransform = {})); -var Transform = (function() { +var Transform = (function () { function Transform(entity) { this._localRotation = 0; this._worldTransform = Matrix2D.identity; @@ -1290,149 +1407,179 @@ var Transform = (function() { this._children = []; } Object.defineProperty(Transform.prototype, "childCount", { - get : function() { return this._children.length; }, - enumerable : true, - configurable : true + get: function () { + return this._children.length; + }, + enumerable: true, + configurable: true, }); - Transform.prototype.getChild = function( - index) { return this._children[index]; }; + Transform.prototype.getChild = function (index) { + return this._children[index]; + }; Object.defineProperty(Transform.prototype, "worldInverseTransform", { - get : function() { + get: function () { this.updateTransform(); if (this._worldInverseDirty) { - this._worldInverseTransform = - Matrix2D.invert(this._worldTransform, this._worldInverseTransform); + this._worldInverseTransform = Matrix2D.invert( + this._worldTransform, + this._worldInverseTransform + ); this._worldInverseDirty = false; } return this._worldInverseTransform; }, - enumerable : true, - configurable : true + enumerable: true, + configurable: true, }); Object.defineProperty(Transform.prototype, "localToWorldTransform", { - get : function() { + get: function () { this.updateTransform(); return this._worldTransform; }, - enumerable : true, - configurable : true + enumerable: true, + configurable: true, }); Object.defineProperty(Transform.prototype, "worldToLocalTransform", { - get : function() { + get: function () { if (this._worldToLocalDirty) { if (!this.parent) { this._worldInverseTransform = new Matrix2D(); } else { this.parent.updateTransform(); this._worldToLocalTransform = Matrix2D.invert( - this.parent._worldTransform, this._worldToLocalTransform); + this.parent._worldTransform, + this._worldToLocalTransform + ); } this._worldToLocalDirty = false; } return this._worldToLocalTransform; }, - enumerable : true, - configurable : true + enumerable: true, + configurable: true, }); Object.defineProperty(Transform.prototype, "parent", { - get : function() { return this._parent; }, - set : function(value) { this.setParent(value); }, - enumerable : true, - configurable : true + get: function () { + return this._parent; + }, + set: function (value) { + this.setParent(value); + }, + enumerable: true, + configurable: true, }); - Transform.prototype.setParent = function(parent) { - if (this._parent == parent) - return this; - if (this._parent) - this._parent._children.remove(this); - if (parent) - parent._children.push(this); + Transform.prototype.setParent = function (parent) { + if (this._parent == parent) return this; + if (this._parent) this._parent._children.remove(this); + if (parent) parent._children.push(this); this._parent = parent; return this; }; Object.defineProperty(Transform.prototype, "rotation", { - get : function() { + get: function () { this.updateTransform(); return this._rotation; }, - set : function(value) { this.setRotation(value); }, - enumerable : true, - configurable : true + set: function (value) { + this.setRotation(value); + }, + enumerable: true, + configurable: true, }); Object.defineProperty(Transform.prototype, "localRotation", { - get : function() { + get: function () { this.updateTransform(); return this._localRotation; }, - set : function(value) { this.setLocalRotation(value); }, - enumerable : true, - configurable : true + set: function (value) { + this.setLocalRotation(value); + }, + enumerable: true, + configurable: true, }); Object.defineProperty(Transform.prototype, "position", { - get : function() { + get: function () { this.updateTransform(); if (this._positionDirty) { if (!this.parent) { this._position = this._localPosition; } else { this.parent.updateTransform(); - this._position = Vector2Ext.transformR(this._localPosition, - this.parent._worldTransform); + this._position = Vector2Ext.transformR( + this._localPosition, + this.parent._worldTransform + ); } this._positionDirty = false; } return this._position; }, - set : function(value) { this.setPosition(value); }, - enumerable : true, - configurable : true + set: function (value) { + this.setPosition(value); + }, + enumerable: true, + configurable: true, }); Object.defineProperty(Transform.prototype, "localPosition", { - get : function() { + get: function () { this.updateTransform(); return this._localPosition; }, - set : function(value) { this.setLocalPosition(value); }, - enumerable : true, - configurable : true + set: function (value) { + this.setLocalPosition(value); + }, + enumerable: true, + configurable: true, }); Object.defineProperty(Transform.prototype, "scale", { - get : function() { + get: function () { this.updateTransform(); return this._scale; }, - set : function(value) { this.setScale(value); }, - enumerable : true, - configurable : true + set: function (value) { + this.setScale(value); + }, + enumerable: true, + configurable: true, }); Object.defineProperty(Transform.prototype, "localScale", { - get : function() { + get: function () { this.updateTransform(); return this._localScale; }, - set : function(value) { this.setLocalScale(value); }, - enumerable : true, - configurable : true + set: function (value) { + this.setLocalScale(value); + }, + enumerable: true, + configurable: true, }); Object.defineProperty(Transform.prototype, "rotationDegrees", { - get : function() { return MathHelper.toDegrees(this._rotation); }, - set : function(value) { this.setRotation(MathHelper.toRadians(value)); }, - enumerable : true, - configurable : true + get: function () { + return MathHelper.toDegrees(this._rotation); + }, + set: function (value) { + this.setRotation(MathHelper.toRadians(value)); + }, + enumerable: true, + configurable: true, }); Object.defineProperty(Transform.prototype, "localRotationDegrees", { - get : function() { return MathHelper.toDegrees(this._localRotation); }, - set : function(value) { this.localRotation = MathHelper.toRadians(value); }, - enumerable : true, - configurable : true + get: function () { + return MathHelper.toDegrees(this._localRotation); + }, + set: function (value) { + this.localRotation = MathHelper.toRadians(value); + }, + enumerable: true, + configurable: true, }); - Transform.prototype.setLocalScale = function(scale) { + Transform.prototype.setLocalScale = function (scale) { this._localScale = scale; this._localDirty = this._positionDirty = this._localScaleDirty = true; this.setDirty(DirtyType.scaleDirty); return this; }; - Transform.prototype.setScale = function(scale) { + Transform.prototype.setScale = function (scale) { this._scale = scale; if (this.parent) { this.localScale = Vector2.divide(scale, this.parent._scale); @@ -1441,16 +1588,16 @@ var Transform = (function() { } return this; }; - Transform.prototype.setLocalRotationDegrees = function( - degrees) { return this.setLocalRotation(MathHelper.toRadians(degrees)); }; - Transform.prototype.setLocalRotation = function(radians) { + Transform.prototype.setLocalRotationDegrees = function (degrees) { + return this.setLocalRotation(MathHelper.toRadians(degrees)); + }; + Transform.prototype.setLocalRotation = function (radians) { this._localRotation = radians; - this._localDirty = this._positionDirty = this._localPositionDirty = - this._localRotationDirty = this._localScaleDirty = true; + this._localDirty = this._positionDirty = this._localPositionDirty = this._localRotationDirty = this._localScaleDirty = true; this.setDirty(DirtyType.rotationDirty); return this; }; - Transform.prototype.setRotation = function(radians) { + Transform.prototype.setRotation = function (radians) { this._rotation = radians; if (this.parent) { this.localRotation = this.parent.rotation + radians; @@ -1459,61 +1606,62 @@ var Transform = (function() { } return this; }; - Transform.prototype.setRotationDegrees = function( - degrees) { return this.setRotation(MathHelper.toRadians(degrees)); }; - Transform.prototype.setLocalPosition = function(localPosition) { - if (localPosition == this._localPosition) - return this; + Transform.prototype.setRotationDegrees = function (degrees) { + return this.setRotation(MathHelper.toRadians(degrees)); + }; + Transform.prototype.setLocalPosition = function (localPosition) { + if (localPosition == this._localPosition) return this; this._localPosition = localPosition; - this._localDirty = this._positionDirty = this._localPositionDirty = - this._localRotationDirty = this._localScaleDirty = true; + this._localDirty = this._positionDirty = this._localPositionDirty = this._localRotationDirty = this._localScaleDirty = true; this.setDirty(DirtyType.positionDirty); return this; }; - Transform.prototype.setPosition = function(position) { - if (position == this._position) - return this; + Transform.prototype.setPosition = function (position) { + if (position == this._position) return this; this._position = position; if (this.parent) { - this.localPosition = - Vector2.transform(this._position, this._worldToLocalTransform); + this.localPosition = Vector2.transform( + this._position, + this._worldToLocalTransform + ); } else { this.localPosition = position; } this._positionDirty = false; return this; }; - Transform.prototype.setDirty = function(dirtyFlagType) { + Transform.prototype.setDirty = function (dirtyFlagType) { if ((this._hierachyDirty & dirtyFlagType) == 0) { this._hierachyDirty |= dirtyFlagType; switch (dirtyFlagType) { - 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); - break; + 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); + break; } - if (this._children == null) - this._children = []; + if (this._children == null) this._children = []; for (var i = 0; i < this._children.length; i++) { this._children[i].setDirty(dirtyFlagType); } } }; - Transform.prototype.roundPosition = - function() { this.position = this._position.round(); }; - Transform.prototype.updateTransform = function() { + Transform.prototype.roundPosition = function () { + this.position = this._position.round(); + }; + Transform.prototype.updateTransform = function () { if (this._hierachyDirty != DirtyType.clean) { - if (this.parent) - this.parent.updateTransform(); + if (this.parent) this.parent.updateTransform(); if (this._localDirty) { if (this._localPositionDirty) { this._translationMatrix = Matrix2D.createTranslation( - this._localPosition.x, this._localPosition.y); + this._localPosition.x, + this._localPosition.y + ); this._localPositionDirty = false; } if (this._localRotationDirty) { @@ -1521,14 +1669,20 @@ var Transform = (function() { this._localRotationDirty = false; } if (this._localScaleDirty) { - this._scaleMatrix = - Matrix2D.createScale(this._localScale.x, this._localScale.y); + this._scaleMatrix = Matrix2D.createScale( + this._localScale.x, + this._localScale.y + ); this._localScaleDirty = false; } - this._localTransform = - Matrix2D.multiply(this._scaleMatrix, this._rotationMatrix); - this._localTransform = - Matrix2D.multiply(this._localTransform, this._translationMatrix); + this._localTransform = Matrix2D.multiply( + this._scaleMatrix, + this._rotationMatrix + ); + this._localTransform = Matrix2D.multiply( + this._localTransform, + this._translationMatrix + ); if (!this.parent) { this._worldTransform = this._localTransform; this._rotation = this._localRotation; @@ -1538,8 +1692,10 @@ var Transform = (function() { this._localDirty = false; } if (this.parent) { - this._worldTransform = Matrix2D.multiply(this._localTransform, - this.parent._worldTransform); + 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 = true; @@ -1550,8 +1706,8 @@ var Transform = (function() { } }; return Transform; -}()); -var Camera = (function(_super) { +})(); +var Camera = (function (_super) { __extends(Camera, _super); function Camera() { var _this = _super.call(this) || this; @@ -1572,64 +1728,79 @@ var Camera = (function(_super) { return _this; } Object.defineProperty(Camera.prototype, "zoom", { - get : function() { - if (this._zoom == 0) - return 1; + get: function () { + if (this._zoom == 0) return 1; if (this._zoom < 1) return MathHelper.map(this._zoom, this._minimumZoom, 1, -1, 0); return MathHelper.map(this._zoom, 1, this._maximumZoom, 0, 1); }, - set : function(value) { this.setZoom(value); }, - enumerable : true, - configurable : true + set: function (value) { + this.setZoom(value); + }, + enumerable: true, + configurable: true, }); Object.defineProperty(Camera.prototype, "minimumZoom", { - get : function() { return this._minimumZoom; }, - set : function(value) { this.setMinimumZoom(value); }, - enumerable : true, - configurable : true + get: function () { + return this._minimumZoom; + }, + set: function (value) { + this.setMinimumZoom(value); + }, + enumerable: true, + configurable: true, }); Object.defineProperty(Camera.prototype, "maximumZoom", { - get : function() { return this._maximumZoom; }, - set : function(value) { this.setMaximumZoom(value); }, - enumerable : true, - configurable : true + get: function () { + return this._maximumZoom; + }, + set: function (value) { + this.setMaximumZoom(value); + }, + enumerable: true, + configurable: true, }); Object.defineProperty(Camera.prototype, "origin", { - get : function() { return this._origin; }, - set : function(value) { + get: function () { + return this._origin; + }, + set: function (value) { if (this._origin != value) { this._origin = value; } }, - enumerable : true, - configurable : true + enumerable: true, + configurable: true, }); Object.defineProperty(Camera.prototype, "position", { - get : function() { return this.entity.position; }, - set : function(value) { this.entity.position = value; }, - enumerable : true, - configurable : true + get: function () { + return this.entity.position; + }, + set: function (value) { + this.entity.position = value; + }, + enumerable: true, + configurable: true, }); - Camera.prototype.onSceneSizeChanged = function(newWidth, newHeight) { + Camera.prototype.onSceneSizeChanged = function (newWidth, newHeight) { var oldOrigin = this._origin; this.origin = new Vector2(newWidth / 2, newHeight / 2); this.entity.position = Vector2.add( - this.entity.position, Vector2.subtract(this._origin, oldOrigin)); + this.entity.position, + Vector2.subtract(this._origin, oldOrigin) + ); }; - Camera.prototype.setMinimumZoom = function(minZoom) { - if (this._zoom < minZoom) - this._zoom = this.minimumZoom; + Camera.prototype.setMinimumZoom = function (minZoom) { + if (this._zoom < minZoom) this._zoom = this.minimumZoom; this._minimumZoom = minZoom; return this; }; - Camera.prototype.setMaximumZoom = function(maxZoom) { - if (this._zoom > maxZoom) - this._zoom = maxZoom; + Camera.prototype.setMaximumZoom = function (maxZoom) { + if (this._zoom > maxZoom) this._zoom = maxZoom; this._maximumZoom = maxZoom; return this; }; - Camera.prototype.setZoom = function(zoom) { + Camera.prototype.setZoom = function (zoom) { var newZoom = MathHelper.clamp(zoom, -1, 1); if (newZoom == 0) { this._zoom = 1; @@ -1642,67 +1813,94 @@ var Camera = (function(_super) { SceneManager.scene.scaleY = this._zoom; return this; }; - Camera.prototype.setRotation = function(rotation) { + Camera.prototype.setRotation = function (rotation) { SceneManager.scene.rotation = rotation; return this; }; - Camera.prototype.setPosition = function(position) { + Camera.prototype.setPosition = function (position) { this.entity.position = position; return this; }; - Camera.prototype.follow = function(targetEntity, cameraStyle) { + Camera.prototype.follow = function (targetEntity, cameraStyle) { if (cameraStyle === void 0) { cameraStyle = CameraStyle.cameraWindow; } this.targetEntity = targetEntity; this.cameraStyle = cameraStyle; - var cameraBounds = new Rectangle(0, 0, SceneManager.stage.stageWidth, - SceneManager.stage.stageHeight); + var cameraBounds = new Rectangle( + 0, + 0, + SceneManager.stage.stageWidth, + SceneManager.stage.stageHeight + ); switch (this.cameraStyle) { - case CameraStyle.cameraWindow: - var w = cameraBounds.width / 6; - var h = cameraBounds.height / 3; - this.deadzone = new Rectangle((cameraBounds.width - w) / 2, - (cameraBounds.height - h) / 2, w, h); - break; - case CameraStyle.lockOn: - this.deadzone = new Rectangle(cameraBounds.width / 2, - cameraBounds.height / 2, 10, 10); - break; + case CameraStyle.cameraWindow: + var w = cameraBounds.width / 6; + var h = cameraBounds.height / 3; + this.deadzone = new Rectangle( + (cameraBounds.width - w) / 2, + (cameraBounds.height - h) / 2, + w, + h + ); + break; + case CameraStyle.lockOn: + this.deadzone = new Rectangle( + cameraBounds.width / 2, + cameraBounds.height / 2, + 10, + 10 + ); + break; } }; - Camera.prototype.update = function() { - var cameraBounds = new Rectangle(0, 0, SceneManager.stage.stageWidth, - SceneManager.stage.stageHeight); + Camera.prototype.update = function () { + var cameraBounds = new Rectangle( + 0, + 0, + SceneManager.stage.stageWidth, + SceneManager.stage.stageHeight + ); var halfScreen = Vector2.multiply( - new Vector2(cameraBounds.width, cameraBounds.height), new Vector2(0.5)); + new Vector2(cameraBounds.width, cameraBounds.height), + new Vector2(0.5) + ); this._worldSpaceDeadZone.x = - this.position.x - halfScreen.x + this.deadzone.x + this.focusOffset.x; + this.position.x - halfScreen.x + this.deadzone.x + this.focusOffset.x; this._worldSpaceDeadZone.y = - this.position.y - halfScreen.y + this.deadzone.y + this.focusOffset.y; + this.position.y - halfScreen.y + this.deadzone.y + this.focusOffset.y; this._worldSpaceDeadZone.width = this.deadzone.width; this._worldSpaceDeadZone.height = this.deadzone.height; - if (this.targetEntity) - this.updateFollow(); + if (this.targetEntity) this.updateFollow(); this.position = Vector2.lerp( - this.position, Vector2.add(this.position, this._desiredPositionDelta), - this.followLerp); + this.position, + Vector2.add(this.position, this._desiredPositionDelta), + this.followLerp + ); this.entity.roundPosition(); if (this.mapLockEnabled) { this.position = this.clampToMapSize(this.position); this.entity.roundPosition(); } }; - Camera.prototype.clampToMapSize = function(position) { - var cameraBounds = new Rectangle(0, 0, SceneManager.stage.stageWidth, - SceneManager.stage.stageHeight); + Camera.prototype.clampToMapSize = function (position) { + var cameraBounds = new Rectangle( + 0, + 0, + SceneManager.stage.stageWidth, + SceneManager.stage.stageHeight + ); var halfScreen = Vector2.multiply( - new Vector2(cameraBounds.width, cameraBounds.height), new Vector2(0.5)); - var cameraMax = new Vector2(this.mapSize.x - halfScreen.x, - this.mapSize.y - halfScreen.y); + new Vector2(cameraBounds.width, cameraBounds.height), + new Vector2(0.5) + ); + var cameraMax = new Vector2( + this.mapSize.x - halfScreen.x, + this.mapSize.y - halfScreen.y + ); return Vector2.clamp(position, halfScreen, cameraMax); }; - Camera.prototype.updateFollow = function() { + Camera.prototype.updateFollow = function () { this._desiredPositionDelta.x = this._desiredPositionDelta.y = 0; if (this.cameraStyle == CameraStyle.lockOn) { var targetX = this.targetEntity.position.x; @@ -1718,79 +1916,81 @@ var Camera = (function(_super) { } else { if (!this._targetCollider) { this._targetCollider = this.targetEntity.getComponent(Collider); - if (!this._targetCollider) - return; + if (!this._targetCollider) return; } var targetBounds = this.targetEntity.getComponent(Collider).bounds; if (!this._worldSpaceDeadZone.containsRect(targetBounds)) { if (this._worldSpaceDeadZone.left > targetBounds.left) this._desiredPositionDelta.x = - targetBounds.left - this._worldSpaceDeadZone.left; + targetBounds.left - this._worldSpaceDeadZone.left; else if (this._worldSpaceDeadZone.right < targetBounds.right) this._desiredPositionDelta.x = - targetBounds.right - this._worldSpaceDeadZone.right; + targetBounds.right - this._worldSpaceDeadZone.right; if (this._worldSpaceDeadZone.bottom < targetBounds.bottom) this._desiredPositionDelta.y = - targetBounds.bottom - this._worldSpaceDeadZone.bottom; + targetBounds.bottom - this._worldSpaceDeadZone.bottom; else if (this._worldSpaceDeadZone.top > targetBounds.top) this._desiredPositionDelta.y = - targetBounds.top - this._worldSpaceDeadZone.top; + targetBounds.top - this._worldSpaceDeadZone.top; } } }; return Camera; -}(Component)); +})(Component); var CameraStyle; -(function(CameraStyle) { -CameraStyle[CameraStyle["lockOn"] = 0] = "lockOn"; -CameraStyle[CameraStyle["cameraWindow"] = 1] = "cameraWindow"; +(function (CameraStyle) { + CameraStyle[(CameraStyle["lockOn"] = 0)] = "lockOn"; + CameraStyle[(CameraStyle["cameraWindow"] = 1)] = "cameraWindow"; })(CameraStyle || (CameraStyle = {})); -var ComponentPool = (function() { +var ComponentPool = (function () { function ComponentPool(typeClass) { this._type = typeClass; this._cache = []; } - ComponentPool.prototype.obtain = function() { + ComponentPool.prototype.obtain = function () { try { return this._cache.length > 0 ? this._cache.shift() : new this._type(); } catch (err) { throw new Error(this._type + err); } }; - ComponentPool.prototype.free = function(component) { + ComponentPool.prototype.free = function (component) { component.reset(); this._cache.push(component); }; return ComponentPool; -}()); -var Mesh = (function(_super) { +})(); +var Mesh = (function (_super) { __extends(Mesh, _super); function Mesh() { - return _super !== null && _super.apply(this, arguments) || this; + return (_super !== null && _super.apply(this, arguments)) || this; } - Mesh.prototype.initialize = function() {}; - Mesh.prototype.setVertPosition = function(positions) { + Mesh.prototype.initialize = function () {}; + Mesh.prototype.setVertPosition = function (positions) { var createVerts = !this._verts || this._verts.length != positions.length; - if (createVerts) - this._verts = new Array(positions.length); + if (createVerts) this._verts = new Array(positions.length); for (var i = 0; i < this._verts.length; i++) { this._verts[i] = new VertexPosition(positions[i]); } return this; }; - Mesh.prototype.setTriangles = function(triangles) { + Mesh.prototype.setTriangles = function (triangles) { this._primitiveCount = triangles.length / 3; this._triangles = triangles; return this; }; - Mesh.prototype.recalculateBounds = function() { + Mesh.prototype.recalculateBounds = function () { this._topLeftVertPosition = new Vector2(Number.MAX_VALUE, Number.MAX_VALUE); var max = new Vector2(Number.MIN_VALUE, Number.MIN_VALUE); for (var i = 0; i < this._verts.length; i++) { - this._topLeftVertPosition.x = - Math.min(this._topLeftVertPosition.x, this._verts[i].position.x); - this._topLeftVertPosition.y = - Math.min(this._topLeftVertPosition.y, this._verts[i].position.y); + this._topLeftVertPosition.x = Math.min( + this._topLeftVertPosition.x, + this._verts[i].position.x + ); + this._topLeftVertPosition.y = Math.min( + this._topLeftVertPosition.y, + this._verts[i].position.y + ); max.x = Math.max(max.x, this._verts[i].position.x); max.y = Math.max(max.y, this._verts[i].position.y); } @@ -1798,14 +1998,16 @@ var Mesh = (function(_super) { this._height = max.y - this._topLeftVertPosition.y; return this; }; - Mesh.prototype.render = function() {}; + Mesh.prototype.render = function () {}; return Mesh; -}(Component)); -var VertexPosition = (function() { - function VertexPosition(position) { this.position = position; } +})(Component); +var VertexPosition = (function () { + function VertexPosition(position) { + this.position = position; + } return VertexPosition; -}()); -var PolygonMesh = (function(_super) { +})(); +var PolygonMesh = (function (_super) { __extends(PolygonMesh, _super); function PolygonMesh(points, arePointsCCW) { if (arePointsCCW === void 0) { @@ -1820,18 +2022,18 @@ var PolygonMesh = (function(_super) { return _this; } return PolygonMesh; -}(Mesh)); -var PooledComponent = (function(_super) { +})(Mesh); +var PooledComponent = (function (_super) { __extends(PooledComponent, _super); function PooledComponent() { - return _super !== null && _super.apply(this, arguments) || this; + return (_super !== null && _super.apply(this, arguments)) || this; } return PooledComponent; -}(Component)); -var RenderableComponent = (function(_super) { +})(Component); +var RenderableComponent = (function (_super) { __extends(RenderableComponent, _super); function RenderableComponent() { - var _this = _super !== null && _super.apply(this, arguments) || this; + var _this = (_super !== null && _super.apply(this, arguments)) || this; _this._areBoundsDirty = true; _this._bounds = new Rectangle(); _this._localOffset = Vector2.zero; @@ -1839,62 +2041,77 @@ var RenderableComponent = (function(_super) { return _this; } Object.defineProperty(RenderableComponent.prototype, "width", { - get : function() { return this.getWidth(); }, - enumerable : true, - configurable : true + get: function () { + return this.getWidth(); + }, + enumerable: true, + configurable: true, }); Object.defineProperty(RenderableComponent.prototype, "height", { - get : function() { return this.getHeight(); }, - enumerable : true, - configurable : true + get: function () { + return this.getHeight(); + }, + enumerable: true, + configurable: true, }); Object.defineProperty(RenderableComponent.prototype, "isVisible", { - get : function() { return this._isVisible; }, - set : function(value) { - this._isVisible = value; - if (this._isVisible) - this.onBecameVisible(); - else - this.onBecameInvisible(); + get: function () { + return this._isVisible; }, - enumerable : true, - configurable : true + set: function (value) { + this._isVisible = value; + if (this._isVisible) this.onBecameVisible(); + else this.onBecameInvisible(); + }, + enumerable: true, + configurable: true, }); Object.defineProperty(RenderableComponent.prototype, "bounds", { - get : function() { - return new Rectangle(this.getBounds().x, this.getBounds().y, - this.getBounds().width, this.getBounds().height); + get: function () { + return new Rectangle( + this.getBounds().x, + this.getBounds().y, + this.getBounds().width, + this.getBounds().height + ); }, - enumerable : true, - configurable : true + enumerable: true, + configurable: true, }); - RenderableComponent.prototype.getWidth = - function() { return this.bounds.width; }; - RenderableComponent.prototype.getHeight = - function() { return this.bounds.height; }; - RenderableComponent.prototype.onBecameVisible = function() {}; - RenderableComponent.prototype.onBecameInvisible = function() {}; - RenderableComponent.prototype.isVisibleFromCamera = function(camera) { + RenderableComponent.prototype.getWidth = function () { + return this.bounds.width; + }; + RenderableComponent.prototype.getHeight = function () { + return this.bounds.height; + }; + RenderableComponent.prototype.onBecameVisible = function () {}; + RenderableComponent.prototype.onBecameInvisible = function () {}; + RenderableComponent.prototype.isVisibleFromCamera = function (camera) { this.isVisible = camera.getBounds().intersects(this.getBounds()); return this.isVisible; }; - RenderableComponent.prototype.onEntityTransformChanged = function( - comp) { this._areBoundsDirty = true; }; + RenderableComponent.prototype.onEntityTransformChanged = function (comp) { + this._areBoundsDirty = true; + }; return RenderableComponent; -}(PooledComponent)); -var ScreenSpaceCamera = (function(_super) { +})(PooledComponent); +var ScreenSpaceCamera = (function (_super) { __extends(ScreenSpaceCamera, _super); function ScreenSpaceCamera() { - return _super !== null && _super.apply(this, arguments) || this; + return (_super !== null && _super.apply(this, arguments)) || this; } - ScreenSpaceCamera.prototype.updateMatrixes = function() {}; + ScreenSpaceCamera.prototype.updateMatrixes = function () {}; return ScreenSpaceCamera; -}(Camera)); -var Sprite = (function() { +})(Camera); +var Sprite = (function () { function Sprite(texture, sourceRect, origin) { if (sourceRect === void 0) { - sourceRect = - new Rectangle(0, 0, texture.textureWidth, texture.textureHeight); + sourceRect = new Rectangle( + 0, + 0, + texture.textureWidth, + texture.textureHeight + ); } if (origin === void 0) { origin = sourceRect.getHalfSize(); @@ -1912,72 +2129,103 @@ var Sprite = (function() { this.uvs.height = sourceRect.height * inverseTexH; } return Sprite; -}()); -var SpriteRenderer = (function(_super) { +})(); +var SpriteRenderer = (function (_super) { __extends(SpriteRenderer, _super); function SpriteRenderer() { - return _super !== null && _super.apply(this, arguments) || this; + return (_super !== null && _super.apply(this, arguments)) || this; } Object.defineProperty(SpriteRenderer.prototype, "origin", { - get : function() { return this._origin; }, - set : function(value) { this.setOrigin(value); }, - enumerable : true, - configurable : true + get: function () { + return this._origin; + }, + set: function (value) { + this.setOrigin(value); + }, + enumerable: true, + configurable: true, }); - SpriteRenderer.prototype.setOrigin = function(origin) { + SpriteRenderer.prototype.setOrigin = function (origin) { if (this._origin != origin) { this._origin = origin; } return this; }; - SpriteRenderer.prototype.setSprite = function(sprite) { + SpriteRenderer.prototype.setSprite = function (sprite) { this.removeChildren(); this._sprite = sprite; - if (this._sprite) - this._origin = this._sprite.origin; + if (this._sprite) this._origin = this._sprite.origin; this._bitmap = new egret.Bitmap(sprite.texture2D); this.addChild(this._bitmap); return this; }; - SpriteRenderer.prototype.setColor = function(color) { - var colorMatrix = - [ 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0 ]; + SpriteRenderer.prototype.setColor = function (color) { + var colorMatrix = [ + 1, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + ]; colorMatrix[0] = Math.floor(color / 256 / 256) / 255; - colorMatrix[6] = Math.floor(color / 256 % 256) / 255; - colorMatrix[12] = color % 256 / 255; + colorMatrix[6] = Math.floor((color / 256) % 256) / 255; + colorMatrix[12] = (color % 256) / 255; var colorFilter = new egret.ColorMatrixFilter(colorMatrix); - this.filters = [ colorFilter ]; + this.filters = [colorFilter]; return this; }; - SpriteRenderer.prototype.isVisibleFromCamera = function(camera) { - this.isVisible = - new Rectangle(0, 0, this.stage.stageWidth, this.stage.stageHeight) - .intersects(this.bounds); + SpriteRenderer.prototype.isVisibleFromCamera = function (camera) { + this.isVisible = new Rectangle( + 0, + 0, + this.stage.stageWidth, + this.stage.stageHeight + ).intersects(this.bounds); this.visible = this.isVisible; return this.isVisible; }; - SpriteRenderer.prototype.render = function(camera) { - this.x = this.entity.position.x - this.origin.x - camera.position.x + - camera.origin.x; - this.y = this.entity.position.y - this.origin.y - camera.position.y + - camera.origin.y; + SpriteRenderer.prototype.render = function (camera) { + this.x = + this.entity.position.x - + this.origin.x - + camera.position.x + + camera.origin.x; + this.y = + this.entity.position.y - + this.origin.y - + camera.position.y + + camera.origin.y; }; - SpriteRenderer.prototype.onRemovedFromEntity = function() { - if (this.parent) - this.parent.removeChild(this); + SpriteRenderer.prototype.onRemovedFromEntity = function () { + if (this.parent) this.parent.removeChild(this); }; - SpriteRenderer.prototype.reset = function() {}; + SpriteRenderer.prototype.reset = function () {}; return SpriteRenderer; -}(RenderableComponent)); -var Mover = (function(_super) { +})(RenderableComponent); +var Mover = (function (_super) { __extends(Mover, _super); function Mover() { - return _super !== null && _super.apply(this, arguments) || this; + return (_super !== null && _super.apply(this, arguments)) || this; } - Mover.prototype.onAddedToEntity = function() { + Mover.prototype.onAddedToEntity = function () { this._triggerHelper = new ColliderTriggerHelper(this.entity); }; - Mover.prototype.calculateMovement = function(motion) { + Mover.prototype.calculateMovement = function (motion) { var collisionResult = new CollisionResult(); if (!this.entity.getComponent(Collider) || !this._triggerHelper) { return null; @@ -1985,21 +2233,24 @@ var Mover = (function(_super) { var colliders = this.entity.getComponents(Collider); for (var i = 0; i < colliders.length; i++) { var collider = colliders[i]; - if (collider.isTrigger) - continue; + if (collider.isTrigger) continue; var bounds = collider.bounds; bounds.x += motion.x; bounds.y += motion.y; var neighbors = Physics.boxcastBroadphaseExcludingSelf( - collider, bounds, collider.collidesWithLayers); + collider, + bounds, + collider.collidesWithLayers + ); for (var j = 0; j < neighbors.length; j++) { var neighbor = neighbors[j]; - if (neighbor.isTrigger) - continue; + if (neighbor.isTrigger) continue; var _internalcollisionResult = collider.collidesWith(neighbor, motion); if (_internalcollisionResult) { motion = Vector2.subtract( - motion, _internalcollisionResult.minimumTranslationVector); + motion, + _internalcollisionResult.minimumTranslationVector + ); if (_internalcollisionResult.collider) { collisionResult = _internalcollisionResult; } @@ -2009,22 +2260,21 @@ var Mover = (function(_super) { ListPool.free(colliders); return collisionResult; }; - Mover.prototype.applyMovement = function(motion) { + Mover.prototype.applyMovement = function (motion) { this.entity.position = Vector2.add(this.entity.position, motion); - if (this._triggerHelper) - this._triggerHelper.update(); + if (this._triggerHelper) this._triggerHelper.update(); }; - Mover.prototype.move = function(motion) { + Mover.prototype.move = function (motion) { var collisionResult = this.calculateMovement(motion); this.applyMovement(motion); return collisionResult; }; return Mover; -}(Component)); -var Collider = (function(_super) { +})(Component); +var Collider = (function (_super) { __extends(Collider, _super); function Collider() { - var _this = _super !== null && _super.apply(this, arguments) || this; + var _this = (_super !== null && _super.apply(this, arguments)) || this; _this.physicsLayer = 1 << 0; _this.shouldColliderScaleAndRotationWithTransform = true; _this.collidesWithLayers = Physics.allLayers; @@ -2034,23 +2284,27 @@ var Collider = (function(_super) { return _this; } Object.defineProperty(Collider.prototype, "bounds", { - get : function() { + get: function () { if (this._isPositionDirty || this._isRotationDirty) { this.shape.recalculateBounds(this); this._isPositionDirty = this._isRotationDirty = false; } return this.shape.bounds; }, - enumerable : true, - configurable : true + enumerable: true, + configurable: true, }); Object.defineProperty(Collider.prototype, "localOffset", { - get : function() { return this._localOffset; }, - set : function(value) { this.setLocalOffset(value); }, - enumerable : true, - configurable : true + get: function () { + return this._localOffset; + }, + set: function (value) { + this.setLocalOffset(value); + }, + enumerable: true, + configurable: true, }); - Collider.prototype.setLocalOffset = function(offset) { + Collider.prototype.setLocalOffset = function (offset) { if (this._localOffset != offset) { this.unregisterColliderWithPhysicsSystem(); this._localOffset = offset; @@ -2059,34 +2313,35 @@ var Collider = (function(_super) { this.registerColliderWithPhysicsSystem(); } }; - Collider.prototype.registerColliderWithPhysicsSystem = function() { + Collider.prototype.registerColliderWithPhysicsSystem = function () { if (this._isParentEntityAddedToScene && !this._isColliderRegistered) { Physics.addCollider(this); this._isColliderRegistered = true; } }; - Collider.prototype.unregisterColliderWithPhysicsSystem = function() { + Collider.prototype.unregisterColliderWithPhysicsSystem = function () { if (this._isParentEntityAddedToScene && this._isColliderRegistered) { Physics.removeCollider(this); } this._isColliderRegistered = false; }; - Collider.prototype.overlaps = function( - other) { return this.shape.overlaps(other.shape); }; - Collider.prototype.collidesWith = function(collider, motion) { + Collider.prototype.overlaps = function (other) { + return this.shape.overlaps(other.shape); + }; + Collider.prototype.collidesWith = function (collider, motion) { var oldPosition = this.shape.position; this.shape.position = Vector2.add(this.shape.position, motion); var result = this.shape.collidesWithShape(collider.shape); - if (result) - result.collider = collider; + if (result) result.collider = collider; this.shape.position = oldPosition; return result; }; - Collider.prototype.onAddedToEntity = function() { + Collider.prototype.onAddedToEntity = function () { if (this._colliderRequiresAutoSizing) { if (!(this instanceof BoxCollider)) { console.error( - "Only box and circle colliders can be created automatically"); + "Only box and circle colliders can be created automatically" + ); } var renderable = this.entity.getComponent(RenderableComponent); if (renderable) { @@ -2097,42 +2352,44 @@ var Collider = (function(_super) { var boxCollider = this; boxCollider.width = width; boxCollider.height = height; - this.localOffset = - Vector2.subtract(renderbaleBounds.center, this.entity.position); + this.localOffset = Vector2.subtract( + renderbaleBounds.center, + this.entity.position + ); } } } this._isParentEntityAddedToScene = true; this.registerColliderWithPhysicsSystem(); }; - Collider.prototype.onRemovedFromEntity = function() { + Collider.prototype.onRemovedFromEntity = function () { this.unregisterColliderWithPhysicsSystem(); this._isParentEntityAddedToScene = false; }; - Collider.prototype.onEntityTransformChanged = function(comp) { + Collider.prototype.onEntityTransformChanged = function (comp) { switch (comp) { - case ComponentTransform.position: - this._isPositionDirty = true; - break; - case ComponentTransform.scale: - this._isPositionDirty = true; - break; - case ComponentTransform.rotation: - this._isRotationDirty = true; - break; + case ComponentTransform.position: + this._isPositionDirty = true; + break; + case ComponentTransform.scale: + this._isPositionDirty = true; + break; + case ComponentTransform.rotation: + this._isRotationDirty = true; + break; } - if (this._isColliderRegistered) - Physics.updateCollider(this); + if (this._isColliderRegistered) Physics.updateCollider(this); }; - Collider.prototype.onEnabled = function() { + Collider.prototype.onEnabled = function () { this.registerColliderWithPhysicsSystem(); this._isPositionDirty = this._isRotationDirty = true; }; - Collider.prototype.onDisabled = - function() { this.unregisterColliderWithPhysicsSystem(); }; + Collider.prototype.onDisabled = function () { + this.unregisterColliderWithPhysicsSystem(); + }; return Collider; -}(Component)); -var BoxCollider = (function(_super) { +})(Component); +var BoxCollider = (function (_super) { __extends(BoxCollider, _super); function BoxCollider() { var _this = _super.call(this) || this; @@ -2141,12 +2398,16 @@ var BoxCollider = (function(_super) { return _this; } Object.defineProperty(BoxCollider.prototype, "width", { - get : function() { return this.shape.width; }, - set : function(value) { this.setWidth(value); }, - enumerable : true, - configurable : true + get: function () { + return this.shape.width; + }, + set: function (value) { + this.setWidth(value); + }, + enumerable: true, + configurable: true, }); - BoxCollider.prototype.setWidth = function(width) { + BoxCollider.prototype.setWidth = function (width) { this._colliderRequiresAutoSizing = false; var box = this.shape; if (width != box.width) { @@ -2158,12 +2419,16 @@ var BoxCollider = (function(_super) { return this; }; Object.defineProperty(BoxCollider.prototype, "height", { - get : function() { return this.shape.height; }, - set : function(value) { this.setHeight(value); }, - enumerable : true, - configurable : true + get: function () { + return this.shape.height; + }, + set: function (value) { + this.setHeight(value); + }, + enumerable: true, + configurable: true, }); - BoxCollider.prototype.setHeight = function(height) { + BoxCollider.prototype.setHeight = function (height) { this._colliderRequiresAutoSizing = false; var box = this.shape; if (height != box.height) { @@ -2173,7 +2438,7 @@ var BoxCollider = (function(_super) { Physics.updateCollider(this); } }; - BoxCollider.prototype.setSize = function(width, height) { + BoxCollider.prototype.setSize = function (width, height) { this._colliderRequiresAutoSizing = false; var box = this.shape; if (width != box.width || height != box.height) { @@ -2185,189 +2450,184 @@ var BoxCollider = (function(_super) { return this; }; return BoxCollider; -}(Collider)); -var EntitySystem = (function() { +})(Collider); +var EntitySystem = (function () { function EntitySystem(matcher) { this._entities = []; this._matcher = matcher ? matcher : Matcher.empty(); } Object.defineProperty(EntitySystem.prototype, "matcher", { - get : function() { return this._matcher; }, - enumerable : true, - configurable : true + get: function () { + return this._matcher; + }, + enumerable: true, + configurable: true, }); Object.defineProperty(EntitySystem.prototype, "scene", { - get : function() { return this._scene; }, - set : function(value) { + get: function () { + return this._scene; + }, + set: function (value) { this._scene = value; this._entities = []; }, - enumerable : true, - configurable : true + enumerable: true, + configurable: true, }); - EntitySystem.prototype.initialize = function() {}; - EntitySystem.prototype.onChanged = function(entity) { + EntitySystem.prototype.initialize = function () {}; + EntitySystem.prototype.onChanged = function (entity) { var contains = this._entities.contains(entity); var interest = this._matcher.IsIntersted(entity); - if (interest && !contains) - this.add(entity); - else if (!interest && contains) - this.remove(entity); + if (interest && !contains) this.add(entity); + else if (!interest && contains) this.remove(entity); }; - EntitySystem.prototype.add = function(entity) { + EntitySystem.prototype.add = function (entity) { this._entities.push(entity); this.onAdded(entity); }; - EntitySystem.prototype.onAdded = function(entity) {}; - EntitySystem.prototype.remove = function(entity) { + EntitySystem.prototype.onAdded = function (entity) {}; + EntitySystem.prototype.remove = function (entity) { this._entities.remove(entity); this.onRemoved(entity); }; - EntitySystem.prototype.onRemoved = function(entity) {}; - EntitySystem.prototype.update = function() { + EntitySystem.prototype.onRemoved = function (entity) {}; + EntitySystem.prototype.update = function () { this.begin(); this.process(this._entities); }; - EntitySystem.prototype.lateUpdate = function() { + EntitySystem.prototype.lateUpdate = function () { this.lateProcess(this._entities); this.end(); }; - EntitySystem.prototype.begin = function() {}; - EntitySystem.prototype.process = function(entities) {}; - EntitySystem.prototype.lateProcess = function(entities) {}; - EntitySystem.prototype.end = function() {}; + EntitySystem.prototype.begin = function () {}; + EntitySystem.prototype.process = function (entities) {}; + EntitySystem.prototype.lateProcess = function (entities) {}; + EntitySystem.prototype.end = function () {}; return EntitySystem; -}()); -var EntityProcessingSystem = (function(_super) { +})(); +var EntityProcessingSystem = (function (_super) { __extends(EntityProcessingSystem, _super); function EntityProcessingSystem(matcher) { return _super.call(this, matcher) || this; } - EntityProcessingSystem.prototype.lateProcessEntity = function(entity) {}; - EntityProcessingSystem.prototype.process = function(entities) { + EntityProcessingSystem.prototype.lateProcessEntity = function (entity) {}; + EntityProcessingSystem.prototype.process = function (entities) { var _this = this; - entities.forEach(function(entity) { return _this.processEntity(entity); }); + entities.forEach(function (entity) { + return _this.processEntity(entity); + }); }; - EntityProcessingSystem.prototype.lateProcess = function(entities) { + EntityProcessingSystem.prototype.lateProcess = function (entities) { var _this = this; - entities.forEach(function( - entity) { return _this.lateProcessEntity(entity); }); + entities.forEach(function (entity) { + return _this.lateProcessEntity(entity); + }); }; return EntityProcessingSystem; -}(EntitySystem)); -var PassiveSystem = (function(_super) { +})(EntitySystem); +var PassiveSystem = (function (_super) { __extends(PassiveSystem, _super); function PassiveSystem() { - return _super !== null && _super.apply(this, arguments) || this; + return (_super !== null && _super.apply(this, arguments)) || this; } - PassiveSystem.prototype.onChanged = function(entity) {}; - PassiveSystem.prototype.process = function(entities) { + PassiveSystem.prototype.onChanged = function (entity) {}; + PassiveSystem.prototype.process = function (entities) { this.begin(); this.end(); }; return PassiveSystem; -}(EntitySystem)); -var ProcessingSystem = (function(_super) { +})(EntitySystem); +var ProcessingSystem = (function (_super) { __extends(ProcessingSystem, _super); function ProcessingSystem() { - return _super !== null && _super.apply(this, arguments) || this; + return (_super !== null && _super.apply(this, arguments)) || this; } - ProcessingSystem.prototype.onChanged = function(entity) {}; - ProcessingSystem.prototype.process = function(entities) { + ProcessingSystem.prototype.onChanged = function (entity) {}; + ProcessingSystem.prototype.process = function (entities) { this.begin(); this.processSystem(); this.end(); }; return ProcessingSystem; -}(EntitySystem)); -var BitSet = (function() { +})(EntitySystem); +var BitSet = (function () { function BitSet(nbits) { if (nbits === void 0) { nbits = 64; } var length = nbits >> 6; - if ((nbits & BitSet.LONG_MASK) != 0) - length++; + if ((nbits & BitSet.LONG_MASK) != 0) length++; this._bits = new Array(length); } - BitSet.prototype.and = function(bs) { + BitSet.prototype.and = function (bs) { var max = Math.min(this._bits.length, bs._bits.length); var i; - for (var i_1 = 0; i_1 < max; ++i_1) - this._bits[i_1] &= bs._bits[i_1]; - while (i < this._bits.length) - this._bits[i++] = 0; + for (var i_1 = 0; i_1 < max; ++i_1) this._bits[i_1] &= bs._bits[i_1]; + while (i < this._bits.length) this._bits[i++] = 0; }; - BitSet.prototype.andNot = function(bs) { + BitSet.prototype.andNot = function (bs) { var i = Math.min(this._bits.length, bs._bits.length); - while (--i >= 0) - this._bits[i] &= ~bs._bits[i]; + while (--i >= 0) this._bits[i] &= ~bs._bits[i]; }; - BitSet.prototype.cardinality = function() { + BitSet.prototype.cardinality = function () { var card = 0; for (var i = this._bits.length - 1; i >= 0; i--) { var a = this._bits[i]; - if (a == 0) - continue; + if (a == 0) continue; if (a == -1) { card += 64; continue; } a = ((a >> 1) & 0x5555555555555555) + (a & 0x5555555555555555); a = ((a >> 2) & 0x3333333333333333) + (a & 0x3333333333333333); - var b = ((a >> 32) + a); + var b = (a >> 32) + a; b = ((b >> 4) & 0x0f0f0f0f) + (b & 0x0f0f0f0f); b = ((b >> 8) & 0x00ff00ff) + (b & 0x00ff00ff); card += ((b >> 16) & 0x0000ffff) + (b & 0x0000ffff); } return card; }; - BitSet.prototype.clear = function(pos) { + BitSet.prototype.clear = function (pos) { if (pos != undefined) { var offset = pos >> 6; this.ensure(offset); this._bits[offset] &= ~(1 << pos); } else { - for (var i = 0; i < this._bits.length; i++) - this._bits[i] = 0; + for (var i = 0; i < this._bits.length; i++) this._bits[i] = 0; } }; - BitSet.prototype.ensure = function(lastElt) { + BitSet.prototype.ensure = function (lastElt) { if (lastElt >= this._bits.length) { - var nd = new Number[lastElt + 1]; + var nd = new Number[lastElt + 1](); nd = this._bits.copyWithin(0, 0, this._bits.length); this._bits = nd; } }; - BitSet.prototype.get = function(pos) { + BitSet.prototype.get = function (pos) { var offset = pos >> 6; - if (offset >= this._bits.length) - return false; + if (offset >= this._bits.length) return false; return (this._bits[offset] & (1 << pos)) != 0; }; - BitSet.prototype.intersects = function(set) { + BitSet.prototype.intersects = function (set) { var i = Math.min(this._bits.length, set._bits.length); while (--i >= 0) { - if ((this._bits[i] & set._bits[i]) != 0) - return true; + if ((this._bits[i] & set._bits[i]) != 0) return true; } return false; }; - BitSet.prototype.isEmpty = function() { + BitSet.prototype.isEmpty = function () { for (var i = this._bits.length - 1; i >= 0; i--) { - if (this._bits[i]) - return false; + if (this._bits[i]) return false; } return true; }; - BitSet.prototype.nextSetBit = function(from) { + BitSet.prototype.nextSetBit = function (from) { var offset = from >> 6; var mask = 1 << from; while (offset < this._bits.length) { var h = this._bits[offset]; do { - if ((h & mask) != 0) - return from; + if ((h & mask) != 0) return from; mask <<= 1; from++; } while (mask != 0); @@ -2376,7 +2636,7 @@ var BitSet = (function() { } return -1; }; - BitSet.prototype.set = function(pos, value) { + BitSet.prototype.set = function (pos, value) { if (value === void 0) { value = true; } @@ -2390,8 +2650,8 @@ var BitSet = (function() { }; BitSet.LONG_MASK = 0x3f; return BitSet; -}()); -var ComponentList = (function() { +})(); +var ComponentList = (function () { function ComponentList(entity) { this._components = []; this._componentsToAdd = []; @@ -2400,25 +2660,30 @@ var ComponentList = (function() { this._entity = entity; } Object.defineProperty(ComponentList.prototype, "count", { - get : function() { return this._components.length; }, - enumerable : true, - configurable : true + get: function () { + return this._components.length; + }, + enumerable: true, + configurable: true, }); Object.defineProperty(ComponentList.prototype, "buffer", { - get : function() { return this._components; }, - enumerable : true, - configurable : true + get: function () { + return this._components; + }, + enumerable: true, + configurable: true, }); - ComponentList.prototype.add = function( - component) { this._componentsToAdd.push(component); }; - ComponentList.prototype.remove = function(component) { + ComponentList.prototype.add = function (component) { + this._componentsToAdd.push(component); + }; + ComponentList.prototype.remove = function (component) { if (this._componentsToAdd.contains(component)) { this._componentsToAdd.remove(component); return; } this._componentsToRemove.push(component); }; - ComponentList.prototype.removeAllComponents = function() { + ComponentList.prototype.removeAllComponents = function () { for (var i = 0; i < this._components.length; i++) { this.handleRemove(this._components[i]); } @@ -2426,27 +2691,30 @@ var ComponentList = (function() { this._componentsToAdd.length = 0; this._componentsToRemove.length = 0; }; - ComponentList.prototype.deregisterAllComponents = function() { + ComponentList.prototype.deregisterAllComponents = function () { for (var i = 0; i < this._components.length; i++) { var component = this._components[i]; if (component instanceof RenderableComponent) this._entity.scene.renderableComponents.remove(component); this._entity.componentBits.set( - ComponentTypeManager.getIndexFor(component), false); + ComponentTypeManager.getIndexFor(component), + false + ); this._entity.scene.entityProcessors.onComponentRemoved(this._entity); } }; - ComponentList.prototype.registerAllComponents = function() { + ComponentList.prototype.registerAllComponents = function () { for (var i = 0; i < this._components.length; i++) { var component = this._components[i]; if (component instanceof RenderableComponent) this._entity.scene.renderableComponents.add(component); this._entity.componentBits.set( - ComponentTypeManager.getIndexFor(component)); + ComponentTypeManager.getIndexFor(component) + ); this._entity.scene.entityProcessors.onComponentAdded(this._entity); } }; - ComponentList.prototype.updateLists = function() { + ComponentList.prototype.updateLists = function () { if (this._componentsToRemove.length > 0) { for (var i = 0; i < this._componentsToRemove.length; i++) { this.handleRemove(this._componentsToRemove[i]); @@ -2460,7 +2728,8 @@ var ComponentList = (function() { if (component instanceof RenderableComponent) this._entity.scene.renderableComponents.add(component); this._entity.componentBits.set( - ComponentTypeManager.getIndexFor(component)); + ComponentTypeManager.getIndexFor(component) + ); this._entity.scene.entityProcessors.onComponentAdded(this._entity); this._components.push(component); this._tempBufferList.push(component); @@ -2476,37 +2745,38 @@ var ComponentList = (function() { this._tempBufferList.length = 0; } }; - ComponentList.prototype.handleRemove = function(component) { + ComponentList.prototype.handleRemove = function (component) { if (component instanceof RenderableComponent) this._entity.scene.renderableComponents.remove(component); - this._entity.componentBits.set(ComponentTypeManager.getIndexFor(component), - false); + this._entity.componentBits.set( + ComponentTypeManager.getIndexFor(component), + false + ); this._entity.scene.entityProcessors.onComponentRemoved(this._entity); component.onRemovedFromEntity(); component.entity = null; }; - ComponentList.prototype.getComponent = function( - type, onlyReturnInitializedComponents) { + ComponentList.prototype.getComponent = function ( + type, + onlyReturnInitializedComponents + ) { for (var i = 0; i < this._components.length; i++) { var component = this._components[i]; - if (component instanceof type) - return component; + if (component instanceof type) return component; } if (!onlyReturnInitializedComponents) { for (var i = 0; i < this._componentsToAdd.length; i++) { var component = this._componentsToAdd[i]; - if (component instanceof type) - return component; + if (component instanceof type) return component; } } return null; }; - ComponentList.prototype.getComponents = function(typeName, components) { - if (!components) - components = []; + ComponentList.prototype.getComponents = function (typeName, components) { + if (!components) components = []; for (var i = 0; i < this._components.length; i++) { var component = this._components[i]; - if (typeof (typeName) == "string") { + if (typeof typeName == "string") { if (egret.is(component, typeName)) { components.push(component); } @@ -2518,7 +2788,7 @@ var ComponentList = (function() { } for (var i = 0; i < this._componentsToAdd.length; i++) { var component = this._componentsToAdd[i]; - if (typeof (typeName) == "string") { + if (typeof typeName == "string") { if (egret.is(component, typeName)) { components.push(component); } @@ -2530,17 +2800,19 @@ var ComponentList = (function() { } return components; }; - ComponentList.prototype.update = function() { + ComponentList.prototype.update = function () { this.updateLists(); for (var i = 0; i < this._components.length; i++) { var component = this._components[i]; - if (component.enabled && - (component.updateInterval == 1 || - Time.frameCount % component.updateInterval == 0)) + if ( + component.enabled && + (component.updateInterval == 1 || + Time.frameCount % component.updateInterval == 0) + ) component.update(); } }; - ComponentList.prototype.onEntityTransformChanged = function(comp) { + ComponentList.prototype.onEntityTransformChanged = function (comp) { for (var i = 0; i < this._components.length; i++) { if (this._components[i].enabled) this._components[i].onEntityTransformChanged(comp); @@ -2551,14 +2823,14 @@ var ComponentList = (function() { } }; return ComponentList; -}()); -var ComponentTypeManager = (function() { +})(); +var ComponentTypeManager = (function () { function ComponentTypeManager() {} - ComponentTypeManager.add = function(type) { + ComponentTypeManager.add = function (type) { if (!this._componentTypesMask.has(type)) this._componentTypesMask[type] = this._componentTypesMask.size; }; - ComponentTypeManager.getIndexFor = function(type) { + ComponentTypeManager.getIndexFor = function (type) { var v = -1; if (!this._componentTypesMask.has(type)) { this.add(type); @@ -2568,8 +2840,8 @@ var ComponentTypeManager = (function() { }; ComponentTypeManager._componentTypesMask = new Map(); return ComponentTypeManager; -}()); -var EntityList = (function() { +})(); +var EntityList = (function () { function EntityList(scene) { this._entitiesToRemove = []; this._entitiesToAdded = []; @@ -2580,20 +2852,24 @@ var EntityList = (function() { this.scene = scene; } Object.defineProperty(EntityList.prototype, "count", { - get : function() { return this._entities.length; }, - enumerable : true, - configurable : true + get: function () { + return this._entities.length; + }, + enumerable: true, + configurable: true, }); Object.defineProperty(EntityList.prototype, "buffer", { - get : function() { return this._entities; }, - enumerable : true, - configurable : true + get: function () { + return this._entities; + }, + enumerable: true, + configurable: true, }); - EntityList.prototype.add = function(entity) { + EntityList.prototype.add = function (entity) { if (this._entitiesToAdded.indexOf(entity) == -1) this._entitiesToAdded.push(entity); }; - EntityList.prototype.remove = function(entity) { + EntityList.prototype.remove = function (entity) { if (this._entitiesToAdded.contains(entity)) { this._entitiesToAdded.remove(entity); return; @@ -2601,15 +2877,15 @@ var EntityList = (function() { if (!this._entitiesToRemove.contains(entity)) this._entitiesToRemove.push(entity); }; - EntityList.prototype.findEntity = function(name) { + EntityList.prototype.findEntity = function (name) { for (var i = 0; i < this._entities.length; i++) { - if (this._entities[i].name == name) - return this._entities[i]; + if (this._entities[i].name == name) return this._entities[i]; } - return this._entitiesToAdded.firstOrDefault(function( - entity) { return entity.name == name; }); + return this._entitiesToAdded.firstOrDefault(function (entity) { + return entity.name == name; + }); }; - EntityList.prototype.getTagList = function(tag) { + EntityList.prototype.getTagList = function (tag) { var list = this._entityDict.get(tag); if (!list) { list = []; @@ -2617,27 +2893,26 @@ var EntityList = (function() { } return this._entityDict.get(tag); }; - EntityList.prototype.addToTagList = function(entity) { + EntityList.prototype.addToTagList = function (entity) { var list = this.getTagList(entity.tag); if (!list.contains(entity)) { list.push(entity); this._unsortedTags.push(entity.tag); } }; - EntityList.prototype.removeFromTagList = function(entity) { + EntityList.prototype.removeFromTagList = function (entity) { var list = this._entityDict.get(entity.tag); if (list) { list.remove(entity); } }; - EntityList.prototype.update = function() { + EntityList.prototype.update = function () { for (var i = 0; i < this._entities.length; i++) { var entity = this._entities[i]; - if (entity.enabled) - entity.update(); + if (entity.enabled) entity.update(); } }; - EntityList.prototype.removeAllEntities = function() { + EntityList.prototype.removeAllEntities = function () { this._entitiesToAdded.length = 0; this.updateLists(); for (var i = 0; i < this._entities.length; i++) { @@ -2648,13 +2923,13 @@ var EntityList = (function() { this._entities.length = 0; this._entityDict.clear(); }; - EntityList.prototype.updateLists = function() { + EntityList.prototype.updateLists = function () { var _this = this; if (this._entitiesToRemove.length > 0) { var temp = this._entitiesToRemove; this._entitiesToRemove = this._tempEntityList; this._tempEntityList = temp; - this._tempEntityList.forEach(function(entity) { + this._tempEntityList.forEach(function (entity) { _this._entities.remove(entity); entity.scene = null; _this.scene.entityProcessors.onEntityRemoved(entity); @@ -2665,151 +2940,182 @@ var EntityList = (function() { var temp = this._entitiesToAdded; this._entitiesToAdded = this._tempEntityList; this._tempEntityList = temp; - this._tempEntityList.forEach(function(entity) { + this._tempEntityList.forEach(function (entity) { if (!_this._entities.contains(entity)) { _this._entities.push(entity); entity.scene = _this.scene; _this.scene.entityProcessors.onEntityAdded(entity); } }); - this._tempEntityList.forEach(function( - entity) { return entity.onAddedToScene(); }); + this._tempEntityList.forEach(function (entity) { + return entity.onAddedToScene(); + }); this._tempEntityList.length = 0; } if (this._unsortedTags.length > 0) { - this._unsortedTags.forEach(function( - tag) { _this._entityDict.get(tag).sort(); }); + this._unsortedTags.forEach(function (tag) { + _this._entityDict.get(tag).sort(); + }); this._unsortedTags.length = 0; } }; return EntityList; -}()); -var EntityProcessorList = (function() { - function EntityProcessorList() { this._processors = []; } - EntityProcessorList.prototype.add = function( - processor) { this._processors.push(processor); }; - EntityProcessorList.prototype.remove = function( - processor) { this._processors.remove(processor); }; - EntityProcessorList.prototype.onComponentAdded = function( - entity) { this.notifyEntityChanged(entity); }; - EntityProcessorList.prototype.onComponentRemoved = function( - entity) { this.notifyEntityChanged(entity); }; - EntityProcessorList.prototype.onEntityAdded = function( - entity) { this.notifyEntityChanged(entity); }; - EntityProcessorList.prototype.onEntityRemoved = function( - entity) { this.removeFromProcessors(entity); }; - EntityProcessorList.prototype.notifyEntityChanged = function(entity) { +})(); +var EntityProcessorList = (function () { + function EntityProcessorList() { + this._processors = []; + } + EntityProcessorList.prototype.add = function (processor) { + this._processors.push(processor); + }; + EntityProcessorList.prototype.remove = function (processor) { + this._processors.remove(processor); + }; + EntityProcessorList.prototype.onComponentAdded = function (entity) { + this.notifyEntityChanged(entity); + }; + EntityProcessorList.prototype.onComponentRemoved = function (entity) { + this.notifyEntityChanged(entity); + }; + EntityProcessorList.prototype.onEntityAdded = function (entity) { + this.notifyEntityChanged(entity); + }; + EntityProcessorList.prototype.onEntityRemoved = function (entity) { + this.removeFromProcessors(entity); + }; + EntityProcessorList.prototype.notifyEntityChanged = function (entity) { for (var i = 0; i < this._processors.length; i++) { this._processors[i].onChanged(entity); } }; - EntityProcessorList.prototype.removeFromProcessors = function(entity) { + EntityProcessorList.prototype.removeFromProcessors = function (entity) { for (var i = 0; i < this._processors.length; i++) { this._processors[i].remove(entity); } }; - EntityProcessorList.prototype.begin = function() {}; - EntityProcessorList.prototype.update = function() { + EntityProcessorList.prototype.begin = function () {}; + EntityProcessorList.prototype.update = function () { for (var i = 0; i < this._processors.length; i++) { this._processors[i].update(); } }; - EntityProcessorList.prototype.lateUpdate = function() { + EntityProcessorList.prototype.lateUpdate = function () { for (var i = 0; i < this._processors.length; i++) { this._processors[i].lateUpdate(); } }; - EntityProcessorList.prototype.end = function() {}; - EntityProcessorList.prototype.getProcessor = function() { + EntityProcessorList.prototype.end = function () {}; + EntityProcessorList.prototype.getProcessor = function () { for (var i = 0; i < this._processors.length; i++) { var processor = this._processors[i]; - if (processor instanceof EntitySystem) - return processor; + if (processor instanceof EntitySystem) return processor; } return null; }; return EntityProcessorList; -}()); -var Matcher = (function() { +})(); +var Matcher = (function () { function Matcher() { this.allSet = new BitSet(); this.exclusionSet = new BitSet(); this.oneSet = new BitSet(); } - Matcher.empty = function() { return new Matcher(); }; - Matcher.prototype.getAllSet = function() { return this.allSet; }; - Matcher.prototype.getExclusionSet = function() { return this.exclusionSet; }; - Matcher.prototype.getOneSet = function() { return this.oneSet; }; - Matcher.prototype.IsIntersted = function(e) { + Matcher.empty = function () { + return new Matcher(); + }; + Matcher.prototype.getAllSet = function () { + return this.allSet; + }; + Matcher.prototype.getExclusionSet = function () { + return this.exclusionSet; + }; + Matcher.prototype.getOneSet = function () { + return this.oneSet; + }; + Matcher.prototype.IsIntersted = function (e) { if (!this.allSet.isEmpty()) { - for (var i = this.allSet.nextSetBit(0); i >= 0; - i = this.allSet.nextSetBit(i + 1)) { - if (!e.componentBits.get(i)) - return false; + for ( + var i = this.allSet.nextSetBit(0); + i >= 0; + i = this.allSet.nextSetBit(i + 1) + ) { + if (!e.componentBits.get(i)) return false; } } - if (!this.exclusionSet.isEmpty() && - this.exclusionSet.intersects(e.componentBits)) + if ( + !this.exclusionSet.isEmpty() && + this.exclusionSet.intersects(e.componentBits) + ) return false; if (!this.oneSet.isEmpty() && !this.oneSet.intersects(e.componentBits)) return false; return true; }; - Matcher.prototype.all = function() { + Matcher.prototype.all = function () { var _this = this; var types = []; for (var _i = 0; _i < arguments.length; _i++) { types[_i] = arguments[_i]; } - types.forEach(function( - type) { _this.allSet.set(ComponentTypeManager.getIndexFor(type)); }); + types.forEach(function (type) { + _this.allSet.set(ComponentTypeManager.getIndexFor(type)); + }); return this; }; - Matcher.prototype.exclude = function() { + Matcher.prototype.exclude = function () { var _this = this; var types = []; for (var _i = 0; _i < arguments.length; _i++) { types[_i] = arguments[_i]; } - types.forEach(function(type) { + types.forEach(function (type) { _this.exclusionSet.set(ComponentTypeManager.getIndexFor(type)); }); return this; }; - Matcher.prototype.one = function() { + Matcher.prototype.one = function () { var _this = this; var types = []; for (var _i = 0; _i < arguments.length; _i++) { types[_i] = arguments[_i]; } - types.forEach(function( - type) { _this.oneSet.set(ComponentTypeManager.getIndexFor(type)); }); + types.forEach(function (type) { + _this.oneSet.set(ComponentTypeManager.getIndexFor(type)); + }); return this; }; return Matcher; -}()); -var RenderableComponentList = (function() { - function RenderableComponentList() { this._components = []; } +})(); +var RenderableComponentList = (function () { + function RenderableComponentList() { + this._components = []; + } Object.defineProperty(RenderableComponentList.prototype, "count", { - get : function() { return this._components.length; }, - enumerable : true, - configurable : true + get: function () { + return this._components.length; + }, + enumerable: true, + configurable: true, }); Object.defineProperty(RenderableComponentList.prototype, "buffer", { - get : function() { return this._components; }, - enumerable : true, - configurable : true + get: function () { + return this._components; + }, + enumerable: true, + configurable: true, }); - RenderableComponentList.prototype.add = function( - component) { this._components.push(component); }; - RenderableComponentList.prototype.remove = function( - component) { this._components.remove(component); }; - RenderableComponentList.prototype.updateList = function() {}; + RenderableComponentList.prototype.add = function (component) { + this._components.push(component); + }; + RenderableComponentList.prototype.remove = function (component) { + this._components.remove(component); + }; + RenderableComponentList.prototype.updateList = function () {}; return RenderableComponentList; -}()); -var Time = (function() { - function Time() {}; - Time.update = function(currentTime) { +})(); +var Time = (function () { + function Time() {} + Time.update = function (currentTime) { var dt = (currentTime - this._lastTime) / 1000; this.deltaTime = dt * this.timeScale; this.unscaledDeltaTime = dt; @@ -2821,39 +3127,40 @@ var Time = (function() { Time.frameCount = 0; Time._lastTime = 0; return Time; -}()); -var GraphicsCapabilities = (function() { +})(); +var GraphicsCapabilities = (function () { function GraphicsCapabilities() {} - GraphicsCapabilities.prototype.initialize = function( - device) { this.platformInitialize(device); }; - GraphicsCapabilities.prototype.platformInitialize = function(device) { + GraphicsCapabilities.prototype.initialize = function (device) { + this.platformInitialize(device); + }; + GraphicsCapabilities.prototype.platformInitialize = function (device) { var gl = new egret.sys.RenderBuffer().context.getInstance(); this.supportsNonPowerOfTwo = false; this.supportsTextureFilterAnisotropic = - gl.getExtension("EXT_texture_filter_anisotropic") != null; + gl.getExtension("EXT_texture_filter_anisotropic") != null; this.supportsDepth24 = true; this.supportsPackedDepthStencil = true; this.supportsDepthNonLinear = false; this.supportsTextureMaxLevel = true; this.supportsS3tc = - gl.getExtension("WEBGL_compressed_texture_s3tc") != null || - gl.getExtension("WEBGL_compressed_texture_s3tc_srgb") != null; + gl.getExtension("WEBGL_compressed_texture_s3tc") != null || + gl.getExtension("WEBGL_compressed_texture_s3tc_srgb") != null; this.supportsDxt1 = this.supportsS3tc; this.supportsPvrtc = false; this.supportsAtitc = - gl.getExtension("WEBGL_compressed_texture_astc") != null; + gl.getExtension("WEBGL_compressed_texture_astc") != null; this.supportsFramebufferObjectARB = false; }; return GraphicsCapabilities; -}()); -var GraphicsDevice = (function() { +})(); +var GraphicsDevice = (function () { function GraphicsDevice() { this.graphicsCapabilities = new GraphicsCapabilities(); this.graphicsCapabilities.initialize(this); } return GraphicsDevice; -}()); -var Viewport = (function() { +})(); +var Viewport = (function () { function Viewport(x, y, width, height) { this._x = x; this._y = y; @@ -2863,112 +3170,121 @@ var Viewport = (function() { this._maxDepth = 1; } Object.defineProperty(Viewport.prototype, "aspectRatio", { - get : function() { - if ((this._height != 0) && (this._width != 0)) - return (this._width / this._height); + get: function () { + if (this._height != 0 && this._width != 0) + return this._width / this._height; return 0; }, - enumerable : true, - configurable : true + enumerable: true, + configurable: true, }); Object.defineProperty(Viewport.prototype, "bounds", { - get : function() { + get: function () { return new Rectangle(this._x, this._y, this._width, this._height); }, - set : function(value) { + set: function (value) { this._x = value.x; this._y = value.y; this._width = value.width; this._height = value.height; }, - enumerable : true, - configurable : true + enumerable: true, + configurable: true, }); return Viewport; -}()); -var GraphicsResource = (function() { +})(); +var GraphicsResource = (function () { function GraphicsResource() {} return GraphicsResource; -}()); -var GaussianBlurEffect = (function(_super) { +})(); +var GaussianBlurEffect = (function (_super) { __extends(GaussianBlurEffect, _super); function GaussianBlurEffect() { - return _super.call(this, PostProcessor.default_vert, - GaussianBlurEffect.blur_frag, { - screenWidth : SceneManager.stage.stageWidth, - screenHeight : SceneManager.stage.stageHeight - }) || - this; + return ( + _super.call( + this, + PostProcessor.default_vert, + GaussianBlurEffect.blur_frag, + { + screenWidth: SceneManager.stage.stageWidth, + screenHeight: SceneManager.stage.stageHeight, + } + ) || this + ); } GaussianBlurEffect.blur_frag = - "precision mediump float;\n" + - "uniform sampler2D uSampler;\n" + - "uniform float screenWidth;\n" + - "uniform float screenHeight;\n" + - "float normpdf(in float x, in float sigma)\n" + - "{\n" + - "return 0.39894*exp(-0.5*x*x/(sigma*sigma))/sigma;\n" + - "}\n" + - "void main()\n" + - "{\n" + - "vec3 c = texture2D(uSampler, gl_FragCoord.xy / vec2(screenWidth, screenHeight).xy).rgb;\n" + - "const int mSize = 11;\n" + - "const int kSize = (mSize - 1)/2;\n" + - "float kernel[mSize];\n" + - "vec3 final_colour = vec3(0.0);\n" + - "float sigma = 7.0;\n" + - "float z = 0.0;\n" + - "for (int j = 0; j <= kSize; ++j)\n" + - "{\n" + - "kernel[kSize+j] = kernel[kSize-j] = normpdf(float(j),sigma);\n" + - "}\n" + - "for (int j = 0; j < mSize; ++j)\n" + - "{\n" + - "z += kernel[j];\n" + - "}\n" + - "for (int i = -kSize; i <= kSize; ++i)\n" + - "{\n" + - "for (int j = -kSize; j <= kSize; ++j)\n" + - "{\n" + - "final_colour += kernel[kSize+j]*kernel[kSize+i]*texture2D(uSampler, (gl_FragCoord.xy+vec2(float(i),float(j))) / vec2(screenWidth, screenHeight).xy).rgb;\n" + - "}\n}\n" + - "gl_FragColor = vec4(final_colour/(z*z), 1.0);\n" + - "}"; + "precision mediump float;\n" + + "uniform sampler2D uSampler;\n" + + "uniform float screenWidth;\n" + + "uniform float screenHeight;\n" + + "float normpdf(in float x, in float sigma)\n" + + "{\n" + + "return 0.39894*exp(-0.5*x*x/(sigma*sigma))/sigma;\n" + + "}\n" + + "void main()\n" + + "{\n" + + "vec3 c = texture2D(uSampler, gl_FragCoord.xy / vec2(screenWidth, screenHeight).xy).rgb;\n" + + "const int mSize = 11;\n" + + "const int kSize = (mSize - 1)/2;\n" + + "float kernel[mSize];\n" + + "vec3 final_colour = vec3(0.0);\n" + + "float sigma = 7.0;\n" + + "float z = 0.0;\n" + + "for (int j = 0; j <= kSize; ++j)\n" + + "{\n" + + "kernel[kSize+j] = kernel[kSize-j] = normpdf(float(j),sigma);\n" + + "}\n" + + "for (int j = 0; j < mSize; ++j)\n" + + "{\n" + + "z += kernel[j];\n" + + "}\n" + + "for (int i = -kSize; i <= kSize; ++i)\n" + + "{\n" + + "for (int j = -kSize; j <= kSize; ++j)\n" + + "{\n" + + "final_colour += kernel[kSize+j]*kernel[kSize+i]*texture2D(uSampler, (gl_FragCoord.xy+vec2(float(i),float(j))) / vec2(screenWidth, screenHeight).xy).rgb;\n" + + "}\n}\n" + + "gl_FragColor = vec4(final_colour/(z*z), 1.0);\n" + + "}"; return GaussianBlurEffect; -}(egret.CustomFilter)); -var PolygonLightEffect = (function(_super) { +})(egret.CustomFilter); +var PolygonLightEffect = (function (_super) { __extends(PolygonLightEffect, _super); function PolygonLightEffect() { - return _super.call(this, PolygonLightEffect.vertSrc, - PolygonLightEffect.fragmentSrc) || - this; + return ( + _super.call( + this, + PolygonLightEffect.vertSrc, + PolygonLightEffect.fragmentSrc + ) || this + ); } PolygonLightEffect.vertSrc = - "attribute vec2 aVertexPosition;\n" + - "attribute vec2 aTextureCoord;\n" + - "uniform vec2 projectionVector;\n" + - "varying vec2 vTextureCoord;\n" + - "const vec2 center = vec2(-1.0, 1.0);\n" + - "void main(void) {\n" + - " gl_Position = vec4( (aVertexPosition / projectionVector) + center , 0.0, 1.0);\n" + - " vTextureCoord = aTextureCoord;\n" + - "}"; + "attribute vec2 aVertexPosition;\n" + + "attribute vec2 aTextureCoord;\n" + + "uniform vec2 projectionVector;\n" + + "varying vec2 vTextureCoord;\n" + + "const vec2 center = vec2(-1.0, 1.0);\n" + + "void main(void) {\n" + + " gl_Position = vec4( (aVertexPosition / projectionVector) + center , 0.0, 1.0);\n" + + " vTextureCoord = aTextureCoord;\n" + + "}"; PolygonLightEffect.fragmentSrc = - "precision lowp float;\n" + - "varying vec2 vTextureCoord;\n" + - "uniform sampler2D uSampler;\n" + - "#define SAMPLE_COUNT 15\n" + - "uniform vec2 _sampleOffsets[SAMPLE_COUNT];\n" + - "uniform float _sampleWeights[SAMPLE_COUNT];\n" + - "void main(void) {\n" + - "vec4 c = vec4(0, 0, 0, 0);\n" + - "for( int i = 0; i < SAMPLE_COUNT; i++ )\n" + - " c += texture2D( uSampler, vTextureCoord + _sampleOffsets[i] ) * _sampleWeights[i];\n" + - "gl_FragColor = c;\n" + - "}"; + "precision lowp float;\n" + + "varying vec2 vTextureCoord;\n" + + "uniform sampler2D uSampler;\n" + + "#define SAMPLE_COUNT 15\n" + + "uniform vec2 _sampleOffsets[SAMPLE_COUNT];\n" + + "uniform float _sampleWeights[SAMPLE_COUNT];\n" + + "void main(void) {\n" + + "vec4 c = vec4(0, 0, 0, 0);\n" + + "for( int i = 0; i < SAMPLE_COUNT; i++ )\n" + + " c += texture2D( uSampler, vTextureCoord + _sampleOffsets[i] ) * _sampleWeights[i];\n" + + "gl_FragColor = c;\n" + + "}"; return PolygonLightEffect; -}(egret.CustomFilter)); -var PostProcessor = (function() { +})(egret.CustomFilter); +var PostProcessor = (function () { function PostProcessor(effect) { if (effect === void 0) { effect = null; @@ -2976,21 +3292,30 @@ var PostProcessor = (function() { this.enable = true; this.effect = effect; } - PostProcessor.prototype.onAddedToScene = function(scene) { + PostProcessor.prototype.onAddedToScene = function (scene) { this.scene = scene; this.shape = new egret.Shape(); - this.shape.graphics.beginFill(0xFFFFFF, 1); - this.shape.graphics.drawRect(0, 0, SceneManager.stage.stageWidth, - SceneManager.stage.stageHeight); + this.shape.graphics.beginFill(0xffffff, 1); + this.shape.graphics.drawRect( + 0, + 0, + SceneManager.stage.stageWidth, + SceneManager.stage.stageHeight + ); this.shape.graphics.endFill(); scene.addChild(this.shape); }; - PostProcessor.prototype.process = function() { this.drawFullscreenQuad(); }; - PostProcessor.prototype.onSceneBackBufferSizeChanged = function(newWidth, - newHeight) {}; - PostProcessor.prototype.drawFullscreenQuad = - function() { this.scene.filters = [ this.effect ]; }; - PostProcessor.prototype.unload = function() { + PostProcessor.prototype.process = function () { + this.drawFullscreenQuad(); + }; + PostProcessor.prototype.onSceneBackBufferSizeChanged = function ( + newWidth, + newHeight + ) {}; + PostProcessor.prototype.drawFullscreenQuad = function () { + this.scene.filters = [this.effect]; + }; + PostProcessor.prototype.unload = function () { if (this.effect) { this.effect = null; } @@ -2998,23 +3323,29 @@ var PostProcessor = (function() { this.scene = null; }; PostProcessor.default_vert = - "attribute vec2 aVertexPosition;\n" + - "attribute vec2 aTextureCoord;\n" + - "attribute vec2 aColor;\n" + - "uniform vec2 projectionVector;\n" + - "varying vec2 vTextureCoord;\n" + - "varying vec4 vColor;\n" + - "const vec2 center = vec2(-1.0, 1.0);\n" + - "void main(void) {\n" + - "gl_Position = vec4( (aVertexPosition / projectionVector) + center , 0.0, 1.0);\n" + - "vTextureCoord = aTextureCoord;\n" + - "vColor = vec4(aColor.x, aColor.x, aColor.x, aColor.x);\n" + - "}"; + "attribute vec2 aVertexPosition;\n" + + "attribute vec2 aTextureCoord;\n" + + "attribute vec2 aColor;\n" + + "uniform vec2 projectionVector;\n" + + "varying vec2 vTextureCoord;\n" + + "varying vec4 vColor;\n" + + "const vec2 center = vec2(-1.0, 1.0);\n" + + "void main(void) {\n" + + "gl_Position = vec4( (aVertexPosition / projectionVector) + center , 0.0, 1.0);\n" + + "vTextureCoord = aTextureCoord;\n" + + "vColor = vec4(aColor.x, aColor.x, aColor.x, aColor.x);\n" + + "}"; return PostProcessor; -}()); -var BloomSettings = (function() { - function BloomSettings(bloomThreshold, blurAmount, bloomIntensity, - baseIntensity, bloomSaturation, baseSaturation) { +})(); +var BloomSettings = (function () { + function BloomSettings( + bloomThreshold, + blurAmount, + bloomIntensity, + baseIntensity, + bloomSaturation, + baseSaturation + ) { this.threshold = bloomThreshold; this.blurAmount = blurAmount; this.intensity = bloomIntensity; @@ -3024,38 +3355,41 @@ var BloomSettings = (function() { } BloomSettings.presetSettings = [ new BloomSettings(0.1, 0.6, 2, 1, 1, 0), - new BloomSettings(0, 3, 1, 1, 1, 1), new BloomSettings(0.5, 8, 2, 1, 0, 1), + new BloomSettings(0, 3, 1, 1, 1, 1), + new BloomSettings(0.5, 8, 2, 1, 0, 1), new BloomSettings(0.25, 8, 1.3, 1, 1, 0), - new BloomSettings(0, 2, 1, 0.1, 1, 1), new BloomSettings(0.5, 2, 1, 1, 1, 1) + new BloomSettings(0, 2, 1, 0.1, 1, 1), + new BloomSettings(0.5, 2, 1, 1, 1, 1), ]; return BloomSettings; -}()); -var GaussianBlurPostProcessor = (function(_super) { +})(); +var GaussianBlurPostProcessor = (function (_super) { __extends(GaussianBlurPostProcessor, _super); function GaussianBlurPostProcessor() { - return _super !== null && _super.apply(this, arguments) || this; + return (_super !== null && _super.apply(this, arguments)) || this; } - GaussianBlurPostProcessor.prototype.onAddedToScene = function(scene) { + GaussianBlurPostProcessor.prototype.onAddedToScene = function (scene) { _super.prototype.onAddedToScene.call(this, scene); this.effect = new GaussianBlurEffect(); }; return GaussianBlurPostProcessor; -}(PostProcessor)); -var Renderer = (function() { +})(PostProcessor); +var Renderer = (function () { function Renderer() {} - Renderer.prototype.onAddedToScene = function(scene) {}; - Renderer.prototype.beginRender = function(cam) {}; - Renderer.prototype.unload = function() {}; - Renderer.prototype.renderAfterStateCheck = function( - renderable, cam) { renderable.render(cam); }; + Renderer.prototype.onAddedToScene = function (scene) {}; + Renderer.prototype.beginRender = function (cam) {}; + Renderer.prototype.unload = function () {}; + Renderer.prototype.renderAfterStateCheck = function (renderable, cam) { + renderable.render(cam); + }; return Renderer; -}()); -var DefaultRenderer = (function(_super) { +})(); +var DefaultRenderer = (function (_super) { __extends(DefaultRenderer, _super); function DefaultRenderer() { - return _super !== null && _super.apply(this, arguments) || this; + return (_super !== null && _super.apply(this, arguments)) || this; } - DefaultRenderer.prototype.render = function(scene) { + DefaultRenderer.prototype.render = function (scene) { var cam = this.camera ? this.camera : scene.camera; this.beginRender(cam); for (var i = 0; i < scene.renderableComponents.count; i++) { @@ -3065,16 +3399,16 @@ var DefaultRenderer = (function(_super) { } }; return DefaultRenderer; -}(Renderer)); -var ScreenSpaceRenderer = (function(_super) { +})(Renderer); +var ScreenSpaceRenderer = (function (_super) { __extends(ScreenSpaceRenderer, _super); function ScreenSpaceRenderer() { - return _super !== null && _super.apply(this, arguments) || this; + return (_super !== null && _super.apply(this, arguments)) || this; } - ScreenSpaceRenderer.prototype.render = function(scene) {}; + ScreenSpaceRenderer.prototype.render = function (scene) {}; return ScreenSpaceRenderer; -}(Renderer)); -var PolyLight = (function(_super) { +})(Renderer); +var PolyLight = (function (_super) { __extends(PolyLight, _super); function PolyLight(radius, color, power) { var _this = _super.call(this) || this; @@ -3086,12 +3420,16 @@ var PolyLight = (function(_super) { return _this; } Object.defineProperty(PolyLight.prototype, "radius", { - get : function() { return this._radius; }, - set : function(value) { this.setRadius(value); }, - enumerable : true, - configurable : true + get: function () { + return this._radius; + }, + set: function (value) { + this.setRadius(value); + }, + enumerable: true, + configurable: true, }); - PolyLight.prototype.computeTriangleIndices = function(totalTris) { + PolyLight.prototype.computeTriangleIndices = function (totalTris) { if (totalTris === void 0) { totalTris = 20; } @@ -3102,92 +3440,97 @@ var PolyLight = (function(_super) { this._indices.push(i + 1); } }; - PolyLight.prototype.setRadius = function(radius) { + PolyLight.prototype.setRadius = function (radius) { if (radius != this._radius) { this._radius = radius; this._areBoundsDirty = true; } }; - PolyLight.prototype.render = function(camera) {}; - PolyLight.prototype.reset = function() {}; + PolyLight.prototype.render = function (camera) {}; + PolyLight.prototype.reset = function () {}; return PolyLight; -}(RenderableComponent)); -var SceneTransition = (function() { +})(RenderableComponent); +var SceneTransition = (function () { function SceneTransition(sceneLoadAction) { this.sceneLoadAction = sceneLoadAction; this.loadsNewScene = sceneLoadAction != null; } Object.defineProperty(SceneTransition.prototype, "hasPreviousSceneRender", { - get : function() { + get: function () { if (!this._hasPreviousSceneRender) { this._hasPreviousSceneRender = true; return false; } return true; }, - enumerable : true, - configurable : true + enumerable: true, + configurable: true, }); - SceneTransition.prototype.preRender = function() {}; - SceneTransition.prototype.render = function() {}; - SceneTransition.prototype.onBeginTransition = function() { - return __awaiter(this, void 0, void 0, function() { - return __generator(this, function(_a) { + SceneTransition.prototype.preRender = function () {}; + SceneTransition.prototype.render = function () {}; + SceneTransition.prototype.onBeginTransition = function () { + return __awaiter(this, void 0, void 0, function () { + return __generator(this, function (_a) { switch (_a.label) { - case 0: - return [ 4, this.loadNextScene() ]; - case 1: - _a.sent(); - this.transitionComplete(); - return [ 2 ]; + case 0: + return [4, this.loadNextScene()]; + case 1: + _a.sent(); + this.transitionComplete(); + return [2]; } }); }); }; - SceneTransition.prototype.transitionComplete = function() { + SceneTransition.prototype.transitionComplete = function () { SceneManager.sceneTransition = null; if (this.onTransitionCompleted) { this.onTransitionCompleted(); } }; - SceneTransition.prototype.loadNextScene = function() { - return __awaiter(this, void 0, void 0, function() { + SceneTransition.prototype.loadNextScene = function () { + return __awaiter(this, void 0, void 0, function () { var _a; - return __generator(this, function(_b) { + return __generator(this, function (_b) { switch (_b.label) { - case 0: - if (this.onScreenObscured) - this.onScreenObscured(); - if (!this.loadsNewScene) { + case 0: + if (this.onScreenObscured) this.onScreenObscured(); + if (!this.loadsNewScene) { + this.isNewSceneLoaded = true; + } + _a = SceneManager; + return [4, this.sceneLoadAction()]; + case 1: + _a.scene = _b.sent(); this.isNewSceneLoaded = true; - } - _a = SceneManager; - return [ 4, this.sceneLoadAction() ]; - case 1: - _a.scene = _b.sent(); - this.isNewSceneLoaded = true; - return [ 2 ]; + return [2]; } }); }); }; - SceneTransition.prototype.tickEffectProgressProperty = function( - filter, duration, easeType, reverseDirection) { + SceneTransition.prototype.tickEffectProgressProperty = function ( + filter, + duration, + easeType, + reverseDirection + ) { if (reverseDirection === void 0) { reverseDirection = false; } - return new Promise(function(resolve) { + return new Promise(function (resolve) { var start = reverseDirection ? 1 : 0; var end = reverseDirection ? 0 : 1; egret.Tween.get(filter.uniforms) - .set({_progress : start}) - .to({_progress : end}, duration * 1000, easeType) - .call(function() { resolve(); }); + .set({ _progress: start }) + .to({ _progress: end }, duration * 1000, easeType) + .call(function () { + resolve(); + }); }); }; return SceneTransition; -}()); -var FadeTransition = (function(_super) { +})(); +var FadeTransition = (function (_super) { __extends(FadeTransition, _super); function FadeTransition(sceneLoadAction) { var _this = _super.call(this, sceneLoadAction) || this; @@ -3199,138 +3542,165 @@ var FadeTransition = (function(_super) { _this._mask = new egret.Shape(); return _this; } - FadeTransition.prototype.onBeginTransition = function() { - return __awaiter(this, void 0, void 0, function() { + FadeTransition.prototype.onBeginTransition = function () { + return __awaiter(this, void 0, void 0, function () { var _this = this; - return __generator(this, function(_a) { + return __generator(this, function (_a) { this._mask.graphics.beginFill(this.fadeToColor, 1); - this._mask.graphics.drawRect(0, 0, SceneManager.stage.stageWidth, - SceneManager.stage.stageHeight); + 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}, this.fadeOutDuration * 1000, this.fadeEaseType) - .call(function() { - return __awaiter(_this, void 0, void 0, function() { - return __generator(this, function(_a) { - switch (_a.label) { + .to({ _alpha: 1 }, this.fadeOutDuration * 1000, this.fadeEaseType) + .call(function () { + return __awaiter(_this, void 0, void 0, function () { + return __generator(this, function (_a) { + switch (_a.label) { case 0: - return [ 4, this.loadNextScene() ]; + return [4, this.loadNextScene()]; case 1: _a.sent(); - return [ 2 ]; - } - }); + return [2]; + } }); - }) - .wait(this.delayBeforeFadeInDuration) - .call(function() { - egret.Tween.get(_this) - .to({_alpha : 0}, _this.fadeOutDuration * 1000, - _this.fadeEaseType) - .call(function() { - _this.transitionComplete(); - SceneManager.stage.removeChild(_this._mask); - }); }); - return [ 2 ]; + }) + .wait(this.delayBeforeFadeInDuration) + .call(function () { + egret.Tween.get(_this) + .to( + { _alpha: 0 }, + _this.fadeOutDuration * 1000, + _this.fadeEaseType + ) + .call(function () { + _this.transitionComplete(); + SceneManager.stage.removeChild(_this._mask); + }); + }); + return [2]; }); }); }; - FadeTransition.prototype.render = function() { + FadeTransition.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.drawRect( + 0, + 0, + SceneManager.stage.stageWidth, + SceneManager.stage.stageHeight + ); this._mask.graphics.endFill(); }; return FadeTransition; -}(SceneTransition)); -var WindTransition = (function(_super) { +})(SceneTransition); +var WindTransition = (function (_super) { __extends(WindTransition, _super); function WindTransition(sceneLoadAction) { var _this = _super.call(this, sceneLoadAction) || this; _this.duration = 1; _this.easeType = egret.Ease.quadOut; var vertexSrc = - "attribute vec2 aVertexPosition;\n" + - "attribute vec2 aTextureCoord;\n" + - "uniform vec2 projectionVector;\n" + - "varying vec2 vTextureCoord;\n" + - "const vec2 center = vec2(-1.0, 1.0);\n" + - "void main(void) {\n" + - " gl_Position = vec4( (aVertexPosition / projectionVector) + center , 0.0, 1.0);\n" + - " vTextureCoord = aTextureCoord;\n" + - "}"; + "attribute vec2 aVertexPosition;\n" + + "attribute vec2 aTextureCoord;\n" + + "uniform vec2 projectionVector;\n" + + "varying vec2 vTextureCoord;\n" + + "const vec2 center = vec2(-1.0, 1.0);\n" + + "void main(void) {\n" + + " gl_Position = vec4( (aVertexPosition / projectionVector) + center , 0.0, 1.0);\n" + + " vTextureCoord = aTextureCoord;\n" + + "}"; var fragmentSrc = - "precision lowp float;\n" + - "varying vec2 vTextureCoord;\n" + - "uniform sampler2D uSampler;\n" + - "uniform float _progress;\n" + - "uniform float _size;\n" + - "uniform float _windSegments;\n" + - "void main(void) {\n" + - "vec2 co = floor(vec2(0.0, vTextureCoord.y * _windSegments));\n" + - "float x = sin(dot(co.xy, vec2(12.9898, 78.233))) * 43758.5453;\n" + - "float r = x - floor(x);\n" + - "float m = smoothstep(0.0, -_size, vTextureCoord.x * (1.0 - _size) + _size * r - (_progress * (1.0 + _size)));\n" + - "vec4 fg = texture2D(uSampler, vTextureCoord);\n" + - "gl_FragColor = mix(fg, vec4(0, 0, 0, 0), m);\n" + - "}"; - _this._windEffect = new egret.CustomFilter( - vertexSrc, fragmentSrc, - {_progress : 0, _size : 0.3, _windSegments : 100}); + "precision lowp float;\n" + + "varying vec2 vTextureCoord;\n" + + "uniform sampler2D uSampler;\n" + + "uniform float _progress;\n" + + "uniform float _size;\n" + + "uniform float _windSegments;\n" + + "void main(void) {\n" + + "vec2 co = floor(vec2(0.0, vTextureCoord.y * _windSegments));\n" + + "float x = sin(dot(co.xy, vec2(12.9898, 78.233))) * 43758.5453;\n" + + "float r = x - floor(x);\n" + + "float m = smoothstep(0.0, -_size, vTextureCoord.x * (1.0 - _size) + _size * r - (_progress * (1.0 + _size)));\n" + + "vec4 fg = texture2D(uSampler, vTextureCoord);\n" + + "gl_FragColor = mix(fg, vec4(0, 0, 0, 0), m);\n" + + "}"; + _this._windEffect = new egret.CustomFilter(vertexSrc, fragmentSrc, { + _progress: 0, + _size: 0.3, + _windSegments: 100, + }); _this._mask = new egret.Shape(); - _this._mask.graphics.beginFill(0xFFFFFF, 1); - _this._mask.graphics.drawRect(0, 0, SceneManager.stage.stageWidth, - SceneManager.stage.stageHeight); + _this._mask.graphics.beginFill(0xffffff, 1); + _this._mask.graphics.drawRect( + 0, + 0, + SceneManager.stage.stageWidth, + SceneManager.stage.stageHeight + ); _this._mask.graphics.endFill(); - _this._mask.filters = [ _this._windEffect ]; + _this._mask.filters = [_this._windEffect]; SceneManager.stage.addChild(_this._mask); return _this; } Object.defineProperty(WindTransition.prototype, "windSegments", { - set : function(value) { this._windEffect.uniforms._windSegments = value; }, - enumerable : true, - configurable : true + set: function (value) { + this._windEffect.uniforms._windSegments = value; + }, + enumerable: true, + configurable: true, }); Object.defineProperty(WindTransition.prototype, "size", { - set : function(value) { this._windEffect.uniforms._size = value; }, - enumerable : true, - configurable : true + set: function (value) { + this._windEffect.uniforms._size = value; + }, + enumerable: true, + configurable: true, }); - WindTransition.prototype.onBeginTransition = function() { - return __awaiter(this, void 0, void 0, function() { - return __generator(this, function(_a) { + WindTransition.prototype.onBeginTransition = function () { + return __awaiter(this, void 0, void 0, function () { + return __generator(this, function (_a) { switch (_a.label) { - case 0: - this.loadNextScene(); - return [ - 4, this.tickEffectProgressProperty(this._windEffect, this.duration, - this.easeType) - ]; - case 1: - _a.sent(); - this.transitionComplete(); - SceneManager.stage.removeChild(this._mask); - return [ 2 ]; + case 0: + this.loadNextScene(); + return [ + 4, + this.tickEffectProgressProperty( + this._windEffect, + this.duration, + this.easeType + ), + ]; + case 1: + _a.sent(); + this.transitionComplete(); + SceneManager.stage.removeChild(this._mask); + return [2]; } }); }); }; return WindTransition; -}(SceneTransition)); -var BaseView = (function(_super) { +})(SceneTransition); +var BaseView = (function (_super) { __extends(BaseView, _super); function BaseView() { - return _super !== null && _super.apply(this, arguments) || this; + return (_super !== null && _super.apply(this, arguments)) || this; } - BaseView.prototype.init = function() {}; - BaseView.prototype.show = function(data) {}; - BaseView.prototype.refreshData = function(data) { this._data = data; }; - BaseView.prototype.refreshView = function() {}; - BaseView.prototype.close = function() {}; - BaseView.prototype.destroy = function() { + BaseView.prototype.init = function () {}; + BaseView.prototype.show = function (data) {}; + BaseView.prototype.refreshData = function (data) { + this._data = data; + }; + BaseView.prototype.refreshView = function () {}; + BaseView.prototype.close = function () {}; + BaseView.prototype.destroy = function () { if (this.parent) { this.parent.removeChild(this); } @@ -3339,8 +3709,8 @@ var BaseView = (function(_super) { } }; return BaseView; -}(egret.DisplayObjectContainer)); -var BaseFuiView = (function(_super) { +})(egret.DisplayObjectContainer); +var BaseFuiView = (function (_super) { __extends(BaseFuiView, _super); function BaseFuiView(name) { var _this = _super.call(this) || this; @@ -3348,16 +3718,16 @@ var BaseFuiView = (function(_super) { return _this; } return BaseFuiView; -}(BaseView)); -var BaseSingle = (function() { +})(BaseView); +var BaseSingle = (function () { function BaseSingle() {} - BaseSingle.getInstance = function() { + BaseSingle.getInstance = function () { if (this._instance == null) { this._instance = new this(); } return this._instance; }; - BaseSingle.prototype.clearFuiObj = function(obj) { + BaseSingle.prototype.clearFuiObj = function (obj) { if (obj) { egret.Tween.removeTweens(obj.displayObject); if (obj.displayObject && obj.displayObject.parent) { @@ -3370,22 +3740,22 @@ var BaseSingle = (function() { return false; }; return BaseSingle; -}()); -var ViewManager = (function(_super) { +})(); +var ViewManager = (function (_super) { __extends(ViewManager, _super); function ViewManager() { - var _this = _super !== null && _super.apply(this, arguments) || this; + var _this = (_super !== null && _super.apply(this, arguments)) || this; _this._openDic = []; return _this; } - ViewManager.prototype.refreshView = function(viewClass, data) { + ViewManager.prototype.refreshView = function (viewClass, data) { var view = this.getView(viewClass); if (view) { view.refreshData(data); view.refreshView(); } }; - ViewManager.prototype.openView = function(viewClass, data, complete) { + ViewManager.prototype.openView = function (viewClass, data, complete) { var newView = this.getView(viewClass); if (!newView) { newView = new viewClass(); @@ -3397,64 +3767,83 @@ var ViewManager = (function(_super) { } this._openDic.push(newView); }; - ViewManager.prototype.getView = function(viewClass) { - var result = this._openDic.firstOrDefault(function( - a) { return a instanceof viewClass; }); + ViewManager.prototype.getView = function (viewClass) { + var result = this._openDic.firstOrDefault(function (a) { + return a instanceof viewClass; + }); return result; }; - ViewManager.prototype.existView = function(viewClass) { - return this._openDic.findIndex(function( - a) { return a instanceof viewClass; }) != -1; + ViewManager.prototype.existView = function (viewClass) { + return ( + this._openDic.findIndex(function (a) { + return a instanceof viewClass; + }) != -1 + ); }; return ViewManager; -}(BaseSingle)); -var Flags = (function() { +})(BaseSingle); +var Flags = (function () { function Flags() {} - Flags.isFlagSet = function(self, flag) { return (self & flag) != 0; }; - Flags.isUnshiftedFlagSet = function(self, flag) { + Flags.isFlagSet = function (self, flag) { + return (self & flag) != 0; + }; + Flags.isUnshiftedFlagSet = function (self, flag) { flag = 1 << flag; return (self & flag) != 0; }; - Flags.setFlagExclusive = function(self, flag) { return 1 << flag; }; - Flags.setFlag = function(self, flag) { return (self | 1 << flag); }; - Flags.unsetFlag = function(self, flag) { + Flags.setFlagExclusive = function (self, flag) { + return 1 << flag; + }; + Flags.setFlag = function (self, flag) { + return self | (1 << flag); + }; + Flags.unsetFlag = function (self, flag) { flag = 1 << flag; - return (self & (~flag)); + return self & ~flag; + }; + Flags.invertFlags = function (self) { + return ~self; }; - Flags.invertFlags = function(self) { return ~self; }; return Flags; -}()); -var MathHelper = (function() { +})(); +var MathHelper = (function () { function MathHelper() {} - MathHelper.toDegrees = function( - radians) { return radians * 57.295779513082320876798154814105; }; - MathHelper.toRadians = function( - degrees) { return degrees * 0.017453292519943295769236907684886; }; - MathHelper.map = function(value, leftMin, leftMax, rightMin, rightMax) { - return rightMin + - (value - leftMin) * (rightMax - rightMin) / (leftMax - leftMin); + MathHelper.toDegrees = function (radians) { + return radians * 57.295779513082320876798154814105; }; - MathHelper.lerp = function( - value1, value2, amount) { return value1 + (value2 - value1) * amount; }; - MathHelper.clamp = function(value, min, max) { - if (value < min) - return min; - if (value > max) - return max; + MathHelper.toRadians = function (degrees) { + return degrees * 0.017453292519943295769236907684886; + }; + MathHelper.map = function (value, leftMin, leftMax, rightMin, rightMax) { + return ( + rightMin + + ((value - leftMin) * (rightMax - rightMin)) / (leftMax - leftMin) + ); + }; + MathHelper.lerp = function (value1, value2, amount) { + return value1 + (value2 - value1) * amount; + }; + MathHelper.clamp = function (value, min, max) { + if (value < min) return min; + if (value > max) return max; return value; }; - MathHelper.pointOnCirlce = function(circleCenter, radius, angleInDegrees) { + MathHelper.pointOnCirlce = function (circleCenter, radius, angleInDegrees) { var radians = MathHelper.toRadians(angleInDegrees); - return new Vector2(Math.cos(radians) * radians + circleCenter.x, - Math.sin(radians) * radians + circleCenter.y); + return new Vector2( + Math.cos(radians) * radians + circleCenter.x, + Math.sin(radians) * radians + circleCenter.y + ); + }; + MathHelper.isEven = function (value) { + return value % 2 == 0; }; - MathHelper.isEven = function(value) { return value % 2 == 0; }; MathHelper.Epsilon = 0.00001; MathHelper.Rad2Deg = 57.29578; MathHelper.Deg2Rad = 0.0174532924; return MathHelper; -}()); -var Matrix2D = (function() { +})(); +var Matrix2D = (function () { function Matrix2D(m11, m12, m21, m22, m31, m32) { this.m11 = 0; this.m12 = 0; @@ -3470,22 +3859,28 @@ var Matrix2D = (function() { this.m32 = m32 ? m32 : 0; } Object.defineProperty(Matrix2D, "identity", { - get : function() { return Matrix2D._identity; }, - enumerable : true, - configurable : true + get: function () { + return Matrix2D._identity; + }, + enumerable: true, + configurable: true, }); Object.defineProperty(Matrix2D.prototype, "translation", { - get : function() { return new Vector2(this.m31, this.m32); }, - set : function(value) { + get: function () { + return new Vector2(this.m31, this.m32); + }, + set: function (value) { this.m31 = value.x; this.m32 = value.y; }, - enumerable : true, - configurable : true + enumerable: true, + configurable: true, }); Object.defineProperty(Matrix2D.prototype, "rotation", { - get : function() { return Math.atan2(this.m21, this.m11); }, - set : function(value) { + get: function () { + return Math.atan2(this.m21, this.m11); + }, + set: function (value) { var val1 = Math.cos(value); var val2 = Math.sin(value); this.m11 = val1; @@ -3493,25 +3888,31 @@ var Matrix2D = (function() { this.m21 = -val2; this.m22 = val1; }, - enumerable : true, - configurable : true + enumerable: true, + configurable: true, }); Object.defineProperty(Matrix2D.prototype, "rotationDegrees", { - get : function() { return MathHelper.toDegrees(this.rotation); }, - set : function(value) { this.rotation = MathHelper.toRadians(value); }, - enumerable : true, - configurable : true + get: function () { + return MathHelper.toDegrees(this.rotation); + }, + set: function (value) { + this.rotation = MathHelper.toRadians(value); + }, + enumerable: true, + configurable: true, }); Object.defineProperty(Matrix2D.prototype, "scale", { - get : function() { return new Vector2(this.m11, this.m22); }, - set : function(value) { + get: function () { + return new Vector2(this.m11, this.m22); + }, + set: function (value) { this.m11 = value.x; this.m12 = value.y; }, - enumerable : true, - configurable : true + enumerable: true, + configurable: true, }); - Matrix2D.add = function(matrix1, matrix2) { + Matrix2D.add = function (matrix1, matrix2) { matrix1.m11 += matrix2.m11; matrix1.m12 += matrix2.m12; matrix1.m21 += matrix2.m21; @@ -3520,7 +3921,7 @@ var Matrix2D = (function() { matrix1.m32 += matrix2.m32; return matrix1; }; - Matrix2D.divide = function(matrix1, matrix2) { + Matrix2D.divide = function (matrix1, matrix2) { matrix1.m11 /= matrix2.m11; matrix1.m12 /= matrix2.m12; matrix1.m21 /= matrix2.m21; @@ -3529,16 +3930,16 @@ var Matrix2D = (function() { matrix1.m32 /= matrix2.m32; return matrix1; }; - Matrix2D.multiply = function(matrix1, matrix2) { + Matrix2D.multiply = function (matrix1, matrix2) { var result = new Matrix2D(); - var m11 = (matrix1.m11 * matrix2.m11) + (matrix1.m12 * matrix2.m21); - var m12 = (matrix1.m11 * matrix2.m12) + (matrix1.m12 * matrix2.m22); - var m21 = (matrix1.m21 * matrix2.m11) + (matrix1.m22 * matrix2.m21); - var m22 = (matrix1.m21 * matrix2.m12) + (matrix1.m22 * matrix2.m22); + var m11 = matrix1.m11 * matrix2.m11 + matrix1.m12 * matrix2.m21; + var m12 = matrix1.m11 * matrix2.m12 + matrix1.m12 * matrix2.m22; + var m21 = matrix1.m21 * matrix2.m11 + matrix1.m22 * matrix2.m21; + var m22 = matrix1.m21 * matrix2.m12 + matrix1.m22 * matrix2.m22; var m31 = - (matrix1.m31 * matrix2.m11) + (matrix1.m32 * matrix2.m21) + matrix2.m31; + matrix1.m31 * matrix2.m11 + matrix1.m32 * matrix2.m21 + matrix2.m31; var m32 = - (matrix1.m31 * matrix2.m12) + (matrix1.m32 * matrix2.m22) + matrix2.m32; + matrix1.m31 * matrix2.m12 + matrix1.m32 * matrix2.m22 + matrix2.m32; result.m11 = m11; result.m12 = m12; result.m21 = m21; @@ -3547,13 +3948,14 @@ var Matrix2D = (function() { result.m32 = m32; return result; }; - Matrix2D.multiplyTranslation = function(matrix, x, y) { + Matrix2D.multiplyTranslation = function (matrix, x, y) { var trans = Matrix2D.createTranslation(x, y); return Matrix2D.multiply(matrix, trans); }; - Matrix2D.prototype.determinant = - function() { return this.m11 * this.m22 - this.m12 * this.m21; }; - Matrix2D.invert = function(matrix, result) { + Matrix2D.prototype.determinant = function () { + return this.m11 * this.m22 - this.m12 * this.m21; + }; + Matrix2D.invert = function (matrix, result) { if (result === void 0) { result = new Matrix2D(); } @@ -3566,7 +3968,7 @@ var Matrix2D = (function() { result.m32 = -(matrix.m32 * matrix.m11 - matrix.m31 * matrix.m12) * det; return result; }; - Matrix2D.createTranslation = function(xPosition, yPosition, result) { + Matrix2D.createTranslation = function (xPosition, yPosition, result) { result = result ? result : new Matrix2D(); result.m11 = 1; result.m12 = 0; @@ -3576,7 +3978,7 @@ var Matrix2D = (function() { result.m32 = yPosition; return result; }; - Matrix2D.createRotation = function(radians, result) { + Matrix2D.createRotation = function (radians, result) { result = new Matrix2D(); var val1 = Math.cos(radians); var val2 = Math.sin(radians); @@ -3586,7 +3988,7 @@ var Matrix2D = (function() { result.m22 = val1; return result; }; - Matrix2D.createScale = function(xScale, yScale, result) { + Matrix2D.createScale = function (xScale, yScale, result) { if (result === void 0) { result = new Matrix2D(); } @@ -3598,15 +4000,21 @@ var Matrix2D = (function() { result.m32 = 0; return result; }; - Matrix2D.prototype.toEgretMatrix = function() { - var matrix = new egret.Matrix(this.m11, this.m12, this.m21, this.m22, - this.m31, this.m32); + Matrix2D.prototype.toEgretMatrix = function () { + var matrix = new egret.Matrix( + this.m11, + this.m12, + this.m21, + this.m22, + this.m31, + this.m32 + ); return matrix; }; Matrix2D._identity = new Matrix2D(1, 0, 0, 1, 0, 0); return Matrix2D; -}()); -var Rectangle = (function() { +})(); +var Rectangle = (function () { function Rectangle(x, y, width, height) { this.x = x ? x : 0; this.y = y ? y : 0; @@ -3614,71 +4022,95 @@ var Rectangle = (function() { this.height = height ? height : 0; } Object.defineProperty(Rectangle.prototype, "left", { - get : function() { return this.x; }, - enumerable : true, - configurable : true + get: function () { + return this.x; + }, + enumerable: true, + configurable: true, }); Object.defineProperty(Rectangle.prototype, "right", { - get : function() { return this.x + this.width; }, - enumerable : true, - configurable : true + get: function () { + return this.x + this.width; + }, + enumerable: true, + configurable: true, }); Object.defineProperty(Rectangle.prototype, "top", { - get : function() { return this.y; }, - enumerable : true, - configurable : true + get: function () { + return this.y; + }, + enumerable: true, + configurable: true, }); Object.defineProperty(Rectangle.prototype, "bottom", { - get : function() { return this.y + this.height; }, - enumerable : true, - configurable : true + get: function () { + return this.y + this.height; + }, + enumerable: true, + configurable: true, }); Object.defineProperty(Rectangle.prototype, "center", { - get : function() { - return new Vector2(this.x + (this.width / 2), this.y + (this.height / 2)); + get: function () { + return new Vector2(this.x + this.width / 2, this.y + this.height / 2); }, - enumerable : true, - configurable : true + enumerable: true, + configurable: true, }); Object.defineProperty(Rectangle.prototype, "location", { - get : function() { return new Vector2(this.x, this.y); }, - set : function(value) { + get: function () { + return new Vector2(this.x, this.y); + }, + set: function (value) { this.x = value.x; this.y = value.y; }, - enumerable : true, - configurable : true + enumerable: true, + configurable: true, }); Object.defineProperty(Rectangle.prototype, "size", { - get : function() { return new Vector2(this.width, this.height); }, - set : function(value) { + get: function () { + return new Vector2(this.width, this.height); + }, + set: function (value) { this.width = value.x; this.height = value.y; }, - enumerable : true, - configurable : true + enumerable: true, + configurable: true, }); - Rectangle.prototype.intersects = function(value) { - return value.left < this.right && this.left < value.right && - value.top < this.bottom && this.top < value.bottom; + Rectangle.prototype.intersects = function (value) { + return ( + value.left < this.right && + this.left < value.right && + value.top < this.bottom && + this.top < value.bottom + ); }; - Rectangle.prototype.contains = function(value) { - return ((((this.x <= value.x) && (value.x < (this.x + this.width))) && - (this.y <= value.y)) && - (value.y < (this.y + this.height))); + Rectangle.prototype.contains = function (value) { + return ( + this.x <= value.x && + value.x < this.x + this.width && + this.y <= value.y && + value.y < this.y + this.height + ); }; - Rectangle.prototype.containsRect = function(value) { - return ((((this.x <= value.x) && (value.x < (this.x + this.width))) && - (this.y <= value.y)) && - (value.y < (this.y + this.height))); + Rectangle.prototype.containsRect = function (value) { + return ( + this.x <= value.x && + value.x < this.x + this.width && + this.y <= value.y && + value.y < this.y + this.height + ); }; - Rectangle.prototype.getHalfSize = - function() { return new Vector2(this.width * 0.5, this.height * 0.5); }; - Rectangle.fromMinMax = function( - minX, minY, maxX, - maxY) { return new Rectangle(minX, minY, maxX - minX, maxY - minY); }; - Rectangle.prototype.getClosestPointOnRectangleBorderToPoint = function( - point) { + Rectangle.prototype.getHalfSize = function () { + return new Vector2(this.width * 0.5, this.height * 0.5); + }; + Rectangle.fromMinMax = function (minX, minY, maxX, maxY) { + return new Rectangle(minX, minY, maxX - minX, maxY - minY); + }; + Rectangle.prototype.getClosestPointOnRectangleBorderToPoint = function ( + point + ) { var edgeNormal = new Vector2(0, 0); var res = new Vector2(0, 0); res.x = MathHelper.clamp(point.x, this.left, this.right); @@ -3716,10 +4148,17 @@ var Rectangle = (function() { edgeNormal.y = 1; } } - return {res : res, edgeNormal : edgeNormal}; + return { res: res, edgeNormal: edgeNormal }; }; - Rectangle.prototype.calculateBounds = function( - parentPosition, position, origin, scale, rotation, width, height) { + Rectangle.prototype.calculateBounds = function ( + parentPosition, + position, + origin, + scale, + rotation, + width, + height + ) { if (rotation == 0) { this.x = parentPosition.x + position.x - origin.x * scale.x; this.y = parentPosition.y + position.y - origin.y * scale.y; @@ -3728,8 +4167,10 @@ var Rectangle = (function() { } else { var worldPosX = parentPosition.x + position.x; var worldPosY = parentPosition.y + position.y; - this._transformMat = Matrix2D.createTranslation(-worldPosX - origin.x, - -worldPosY - origin.y); + this._transformMat = Matrix2D.createTranslation( + -worldPosX - origin.x, + -worldPosY - origin.y + ); this._tempMat = Matrix2D.createScale(scale.x, scale.y); this._transformMat = Matrix2D.multiply(this._transformMat, this._tempMat); this._tempMat = Matrix2D.createRotation(rotation); @@ -3753,7 +4194,7 @@ var Rectangle = (function() { this.height = maxY - minY; } }; - Rectangle.rectEncompassingPoints = function(points) { + Rectangle.rectEncompassingPoints = function (points) { var minX = Number.POSITIVE_INFINITY; var minY = Number.POSITIVE_INFINITY; var maxX = Number.NEGATIVE_INFINITY; @@ -3776,8 +4217,8 @@ var Rectangle = (function() { return this.fromMinMax(minX, minY, maxX, maxY); }; return Rectangle; -}()); -var Vector2 = (function() { +})(); +var Vector2 = (function () { function Vector2(x, y) { this.x = 0; this.y = 0; @@ -3785,88 +4226,106 @@ var Vector2 = (function() { this.y = y ? y : this.x; } Object.defineProperty(Vector2, "zero", { - get : function() { return Vector2.zeroVector2; }, - enumerable : true, - configurable : true + get: function () { + return Vector2.zeroVector2; + }, + enumerable: true, + configurable: true, }); Object.defineProperty(Vector2, "one", { - get : function() { return Vector2.unitVector2; }, - enumerable : true, - configurable : true + get: function () { + return Vector2.unitVector2; + }, + enumerable: true, + configurable: true, }); Object.defineProperty(Vector2, "unitX", { - get : function() { return Vector2.unitXVector; }, - enumerable : true, - configurable : true + get: function () { + return Vector2.unitXVector; + }, + enumerable: true, + configurable: true, }); Object.defineProperty(Vector2, "unitY", { - get : function() { return Vector2.unitYVector; }, - enumerable : true, - configurable : true + get: function () { + return Vector2.unitYVector; + }, + enumerable: true, + configurable: true, }); - Vector2.add = function(value1, value2) { + Vector2.add = function (value1, value2) { var result = new Vector2(0, 0); result.x = value1.x + value2.x; result.y = value1.y + value2.y; return result; }; - Vector2.divide = function(value1, value2) { + Vector2.divide = function (value1, value2) { var result = new Vector2(0, 0); result.x = value1.x / value2.x; result.y = value1.y / value2.y; return result; }; - Vector2.multiply = function(value1, value2) { + Vector2.multiply = function (value1, value2) { var result = new Vector2(0, 0); result.x = value1.x * value2.x; result.y = value1.y * value2.y; return result; }; - Vector2.subtract = function(value1, value2) { + Vector2.subtract = function (value1, value2) { var result = new Vector2(0, 0); result.x = value1.x - value2.x; result.y = value1.y - value2.y; return result; }; - Vector2.prototype.normalize = function() { - var val = 1 / Math.sqrt((this.x * this.x) + (this.y * this.y)); + Vector2.prototype.normalize = function () { + var val = 1 / Math.sqrt(this.x * this.x + this.y * this.y); this.x *= val; this.y *= val; }; - Vector2.prototype.length = - function() { return Math.sqrt((this.x * this.x) + (this.y * this.y)); }; - Vector2.prototype.round = function() { + Vector2.prototype.length = function () { + return Math.sqrt(this.x * this.x + this.y * this.y); + }; + Vector2.prototype.round = function () { return new Vector2(Math.round(this.x), Math.round(this.y)); }; - Vector2.normalize = function(value) { - var val = 1 / Math.sqrt((value.x * value.x) + (value.y * value.y)); + Vector2.normalize = function (value) { + var val = 1 / Math.sqrt(value.x * value.x + value.y * value.y); value.x *= val; value.y *= val; return value; }; - Vector2.dot = function( - value1, value2) { return (value1.x * value2.x) + (value1.y * value2.y); }; - Vector2.distanceSquared = function(value1, value2) { - var v1 = value1.x - value2.x, v2 = value1.y - value2.y; - return (v1 * v1) + (v2 * v2); + Vector2.dot = function (value1, value2) { + return value1.x * value2.x + value1.y * value2.y; }; - Vector2.clamp = function(value1, min, max) { - return new Vector2(MathHelper.clamp(value1.x, min.x, max.x), - MathHelper.clamp(value1.y, min.y, max.y)); + Vector2.distanceSquared = function (value1, value2) { + var v1 = value1.x - value2.x, + v2 = value1.y - value2.y; + return v1 * v1 + v2 * v2; }; - Vector2.lerp = function(value1, value2, amount) { - return new Vector2(MathHelper.lerp(value1.x, value2.x, amount), - MathHelper.lerp(value1.y, value2.y, amount)); + Vector2.clamp = function (value1, min, max) { + return new Vector2( + MathHelper.clamp(value1.x, min.x, max.x), + MathHelper.clamp(value1.y, min.y, max.y) + ); }; - Vector2.transform = function(position, matrix) { - return new Vector2((position.x * matrix.m11) + (position.y * matrix.m21), - (position.x * matrix.m12) + (position.y * matrix.m22)); + Vector2.lerp = function (value1, value2, amount) { + return new Vector2( + MathHelper.lerp(value1.x, value2.x, amount), + MathHelper.lerp(value1.y, value2.y, amount) + ); }; - Vector2.distance = function(value1, value2) { - var v1 = value1.x - value2.x, v2 = value1.y - value2.y; - return Math.sqrt((v1 * v1) + (v2 * v2)); + Vector2.transform = function (position, matrix) { + return new Vector2( + position.x * matrix.m11 + position.y * matrix.m21, + position.x * matrix.m12 + position.y * matrix.m22 + ); }; - Vector2.negate = function(value) { + Vector2.distance = function (value1, value2) { + var v1 = value1.x - value2.x, + v2 = value1.y - value2.y; + return Math.sqrt(v1 * v1 + v2 * v2); + }; + Vector2.negate = function (value) { var result = new Vector2(); result.x = -value.x; result.y = -value.y; @@ -3877,43 +4336,46 @@ var Vector2 = (function() { Vector2.unitVector2 = new Vector2(1, 1); Vector2.zeroVector2 = new Vector2(0, 0); return Vector2; -}()); -var Vector3 = (function() { +})(); +var Vector3 = (function () { function Vector3(x, y, z) { this.x = x; this.y = y; this.z = z; } return Vector3; -}()); -var ColliderTriggerHelper = (function() { +})(); +var ColliderTriggerHelper = (function () { function ColliderTriggerHelper(entity) { this._activeTriggerIntersections = []; this._previousTriggerIntersections = []; this._tempTriggerList = []; this._entity = entity; } - ColliderTriggerHelper.prototype.update = function() { + ColliderTriggerHelper.prototype.update = function () { var colliders = this._entity.getComponents(Collider); for (var i = 0; i < colliders.length; i++) { var collider = colliders[i]; - var neighbors = Physics.boxcastBroadphase(collider.bounds, - collider.collidesWithLayers); - var _loop_5 = function(j) { + var neighbors = Physics.boxcastBroadphase( + collider.bounds, + collider.collidesWithLayers + ); + var _loop_5 = function (j) { var neighbor = neighbors[j]; - if (!collider.isTrigger && !neighbor.isTrigger) - return "continue"; + if (!collider.isTrigger && !neighbor.isTrigger) return "continue"; if (collider.overlaps(neighbor)) { var pair_1 = new Pair(collider, neighbor); var shouldReportTriggerEvent = - this_1._activeTriggerIntersections.findIndex(function(value) { - return value.first == pair_1.first && - value.second == pair_1.second; - }) == -1 && - this_1._previousTriggerIntersections.findIndex(function(value) { - return value.first == pair_1.first && - value.second == pair_1.second; - }) == -1; + this_1._activeTriggerIntersections.findIndex(function (value) { + return ( + value.first == pair_1.first && value.second == pair_1.second + ); + }) == -1 && + this_1._previousTriggerIntersections.findIndex(function (value) { + return ( + value.first == pair_1.first && value.second == pair_1.second + ); + }) == -1; if (shouldReportTriggerEvent) this_1.notifyTriggerListeners(pair_1, true); if (!this_1._activeTriggerIntersections.contains(pair_1)) @@ -3928,18 +4390,20 @@ var ColliderTriggerHelper = (function() { ListPool.free(colliders); this.checkForExitedColliders(); }; - ColliderTriggerHelper.prototype.checkForExitedColliders = function() { + ColliderTriggerHelper.prototype.checkForExitedColliders = function () { var _this = this; - var _loop_6 = function(i) { - var index = - this_2._previousTriggerIntersections.findIndex(function(value) { - if (value.first == _this._activeTriggerIntersections[i].first && - value.second == _this._activeTriggerIntersections[i].second) - return true; - return false; - }); - if (index != -1) - this_2._previousTriggerIntersections.removeAt(index); + var _loop_6 = function (i) { + var index = this_2._previousTriggerIntersections.findIndex(function ( + value + ) { + if ( + value.first == _this._activeTriggerIntersections[i].first && + value.second == _this._activeTriggerIntersections[i].second + ) + return true; + return false; + }); + if (index != -1) this_2._previousTriggerIntersections.removeAt(index); }; var this_2 = this; for (var i = 0; i < this._activeTriggerIntersections.length; i++) { @@ -3950,37 +4414,55 @@ var ColliderTriggerHelper = (function() { } this._previousTriggerIntersections.length = 0; for (var i = 0; i < this._activeTriggerIntersections.length; i++) { - if (!this._previousTriggerIntersections.contains( - this._activeTriggerIntersections[i])) { + if ( + !this._previousTriggerIntersections.contains( + this._activeTriggerIntersections[i] + ) + ) { this._previousTriggerIntersections.push( - this._activeTriggerIntersections[i]); + this._activeTriggerIntersections[i] + ); } } this._activeTriggerIntersections.length = 0; }; - ColliderTriggerHelper.prototype.notifyTriggerListeners = function( - collisionPair, isEntering) { - collisionPair.first.entity.getComponents("ITriggerListener", - this._tempTriggerList); + ColliderTriggerHelper.prototype.notifyTriggerListeners = function ( + collisionPair, + isEntering + ) { + collisionPair.first.entity.getComponents( + "ITriggerListener", + this._tempTriggerList + ); for (var i = 0; i < this._tempTriggerList.length; i++) { if (isEntering) { - this._tempTriggerList[i].onTriggerEnter(collisionPair.second, - collisionPair.first); + this._tempTriggerList[i].onTriggerEnter( + collisionPair.second, + collisionPair.first + ); } else { - this._tempTriggerList[i].onTriggerExit(collisionPair.second, - collisionPair.first); + this._tempTriggerList[i].onTriggerExit( + collisionPair.second, + collisionPair.first + ); } this._tempTriggerList.length = 0; if (collisionPair.second.entity) { - collisionPair.second.entity.getComponents("ITriggerListener", - this._tempTriggerList); + collisionPair.second.entity.getComponents( + "ITriggerListener", + this._tempTriggerList + ); for (var i_2 = 0; i_2 < this._tempTriggerList.length; i_2++) { if (isEntering) { - this._tempTriggerList[i_2].onTriggerEnter(collisionPair.first, - collisionPair.second); + this._tempTriggerList[i_2].onTriggerEnter( + collisionPair.first, + collisionPair.second + ); } else { - this._tempTriggerList[i_2].onTriggerExit(collisionPair.first, - collisionPair.second); + this._tempTriggerList[i_2].onTriggerExit( + collisionPair.first, + collisionPair.second + ); } } this._tempTriggerList.length = 0; @@ -3988,86 +4470,104 @@ var ColliderTriggerHelper = (function() { } }; return ColliderTriggerHelper; -}()); +})(); var PointSectors; -(function(PointSectors) { -PointSectors[PointSectors["center"] = 0] = "center"; -PointSectors[PointSectors["top"] = 1] = "top"; -PointSectors[PointSectors["bottom"] = 2] = "bottom"; -PointSectors[PointSectors["topLeft"] = 9] = "topLeft"; -PointSectors[PointSectors["topRight"] = 5] = "topRight"; -PointSectors[PointSectors["left"] = 8] = "left"; -PointSectors[PointSectors["right"] = 4] = "right"; -PointSectors[PointSectors["bottomLeft"] = 10] = "bottomLeft"; -PointSectors[PointSectors["bottomRight"] = 6] = "bottomRight"; +(function (PointSectors) { + PointSectors[(PointSectors["center"] = 0)] = "center"; + PointSectors[(PointSectors["top"] = 1)] = "top"; + PointSectors[(PointSectors["bottom"] = 2)] = "bottom"; + PointSectors[(PointSectors["topLeft"] = 9)] = "topLeft"; + PointSectors[(PointSectors["topRight"] = 5)] = "topRight"; + PointSectors[(PointSectors["left"] = 8)] = "left"; + PointSectors[(PointSectors["right"] = 4)] = "right"; + PointSectors[(PointSectors["bottomLeft"] = 10)] = "bottomLeft"; + PointSectors[(PointSectors["bottomRight"] = 6)] = "bottomRight"; })(PointSectors || (PointSectors = {})); -var Collisions = (function() { +var Collisions = (function () { function Collisions() {} - Collisions.isLineToLine = function(a1, a2, b1, b2) { + Collisions.isLineToLine = function (a1, a2, b1, b2) { var b = Vector2.subtract(a2, a1); var d = Vector2.subtract(b2, b1); var bDotDPerp = b.x * d.y - b.y * d.x; - if (bDotDPerp == 0) - return false; + if (bDotDPerp == 0) return false; var c = Vector2.subtract(b1, a1); var t = (c.x * d.y - c.y * d.x) / bDotDPerp; - if (t < 0 || t > 1) - return false; + if (t < 0 || t > 1) return false; var u = (c.x * b.y - c.y * b.x) / bDotDPerp; - if (u < 0 || u > 1) - return false; + if (u < 0 || u > 1) return false; return true; }; - Collisions.lineToLineIntersection = function(a1, a2, b1, b2) { + Collisions.lineToLineIntersection = function (a1, a2, b1, b2) { var intersection = new Vector2(0, 0); var b = Vector2.subtract(a2, a1); var d = Vector2.subtract(b2, b1); var bDotDPerp = b.x * d.y - b.y * d.x; - if (bDotDPerp == 0) - return intersection; + if (bDotDPerp == 0) return intersection; var c = Vector2.subtract(b1, a1); var t = (c.x * d.y - c.y * d.x) / bDotDPerp; - if (t < 0 || t > 1) - return intersection; + if (t < 0 || t > 1) return intersection; var u = (c.x * b.y - c.y * b.x) / bDotDPerp; - if (u < 0 || u > 1) - return intersection; + if (u < 0 || u > 1) return intersection; intersection = Vector2.add(a1, new Vector2(t * b.x, t * b.y)); return intersection; }; - Collisions.closestPointOnLine = function(lineA, lineB, closestTo) { + Collisions.closestPointOnLine = function (lineA, lineB, closestTo) { var v = Vector2.subtract(lineB, lineA); var w = Vector2.subtract(closestTo, lineA); var t = Vector2.dot(w, v) / Vector2.dot(v, v); t = MathHelper.clamp(t, 0, 1); return Vector2.add(lineA, new Vector2(v.x * t, v.y * t)); }; - Collisions.isCircleToCircle = function(circleCenter1, circleRadius1, - circleCenter2, circleRadius2) { - return Vector2.distanceSquared(circleCenter1, circleCenter2) < - (circleRadius1 + circleRadius2) * (circleRadius1 + circleRadius2); + Collisions.isCircleToCircle = function ( + circleCenter1, + circleRadius1, + circleCenter2, + circleRadius2 + ) { + return ( + Vector2.distanceSquared(circleCenter1, circleCenter2) < + (circleRadius1 + circleRadius2) * (circleRadius1 + circleRadius2) + ); }; - Collisions.isCircleToLine = function(circleCenter, radius, lineFrom, lineTo) { - return Vector2.distanceSquared( - circleCenter, - this.closestPointOnLine(lineFrom, lineTo, circleCenter)) < - radius * radius; + Collisions.isCircleToLine = function ( + circleCenter, + radius, + lineFrom, + lineTo + ) { + return ( + Vector2.distanceSquared( + circleCenter, + this.closestPointOnLine(lineFrom, lineTo, circleCenter) + ) < + radius * radius + ); }; - Collisions.isCircleToPoint = function(circleCenter, radius, point) { + Collisions.isCircleToPoint = function (circleCenter, radius, point) { return Vector2.distanceSquared(circleCenter, point) < radius * radius; }; - Collisions.isRectToCircle = function(rect, cPosition, cRadius) { + Collisions.isRectToCircle = function (rect, cPosition, cRadius) { var ew = rect.width * 0.5; var eh = rect.height * 0.5; var vx = Math.max(0, Math.max(cPosition.x - rect.x) - ew); var vy = Math.max(0, Math.max(cPosition.y - rect.y) - eh); return vx * vx + vy * vy < cRadius * cRadius; }; - Collisions.isRectToLine = function(rect, lineFrom, lineTo) { - var fromSector = - this.getSector(rect.x, rect.y, rect.width, rect.height, lineFrom); - var toSector = - this.getSector(rect.x, rect.y, rect.width, rect.height, lineTo); + Collisions.isRectToLine = function (rect, lineFrom, lineTo) { + var fromSector = this.getSector( + rect.x, + rect.y, + rect.width, + rect.height, + lineFrom + ); + var toSector = this.getSector( + rect.x, + rect.y, + rect.width, + rect.height, + lineTo + ); if (fromSector == PointSectors.center || toSector == PointSectors.center) { return true; } else if ((fromSector & toSector) != 0) { @@ -4079,89 +4579,90 @@ var Collisions = (function() { if ((both & PointSectors.top) != 0) { edgeFrom = new Vector2(rect.x, rect.y); edgeTo = new Vector2(rect.x + rect.width, rect.y); - if (this.isLineToLine(edgeFrom, edgeTo, lineFrom, lineTo)) - return true; + if (this.isLineToLine(edgeFrom, edgeTo, lineFrom, lineTo)) return true; } if ((both & PointSectors.bottom) != 0) { edgeFrom = new Vector2(rect.x, rect.y + rect.height); edgeTo = new Vector2(rect.x + rect.width, rect.y + rect.height); - if (this.isLineToLine(edgeFrom, edgeTo, lineFrom, lineTo)) - return true; + if (this.isLineToLine(edgeFrom, edgeTo, lineFrom, lineTo)) return true; } if ((both & PointSectors.left) != 0) { edgeFrom = new Vector2(rect.x, rect.y); edgeTo = new Vector2(rect.x, rect.y + rect.height); - if (this.isLineToLine(edgeFrom, edgeTo, lineFrom, lineTo)) - return true; + if (this.isLineToLine(edgeFrom, edgeTo, lineFrom, lineTo)) return true; } if ((both & PointSectors.right) != 0) { edgeFrom = new Vector2(rect.x + rect.width, rect.y); edgeTo = new Vector2(rect.x + rect.width, rect.y + rect.height); - if (this.isLineToLine(edgeFrom, edgeTo, lineFrom, lineTo)) - return true; + if (this.isLineToLine(edgeFrom, edgeTo, lineFrom, lineTo)) return true; } } return false; }; - Collisions.isRectToPoint = function(rX, rY, rW, rH, point) { - return point.x >= rX && point.y >= rY && point.x < rX + rW && - point.y < rY + rH; + Collisions.isRectToPoint = function (rX, rY, rW, rH, point) { + return ( + point.x >= rX && point.y >= rY && point.x < rX + rW && point.y < rY + rH + ); }; - Collisions.getSector = function(rX, rY, rW, rH, point) { + Collisions.getSector = function (rX, rY, rW, rH, point) { var sector = PointSectors.center; - if (point.x < rX) - sector |= PointSectors.left; - else if (point.x >= rX + rW) - sector |= PointSectors.right; - if (point.y < rY) - sector |= PointSectors.top; - else if (point.y >= rY + rH) - sector |= PointSectors.bottom; + if (point.x < rX) sector |= PointSectors.left; + else if (point.x >= rX + rW) sector |= PointSectors.right; + if (point.y < rY) sector |= PointSectors.top; + else if (point.y >= rY + rH) sector |= PointSectors.bottom; return sector; }; return Collisions; -}()); -var Physics = (function() { +})(); +var Physics = (function () { function Physics() {} - Physics.reset = function() { + Physics.reset = function () { this._spatialHash = new SpatialHash(this.spatialHashCellSize); }; - Physics.clear = function() { this._spatialHash.clear(); }; - Physics.overlapCircleAll = function(center, randius, results, layerMask) { + Physics.clear = function () { + this._spatialHash.clear(); + }; + Physics.overlapCircleAll = function (center, randius, results, layerMask) { if (layerMask === void 0) { layerMask = -1; } return this._spatialHash.overlapCircle(center, randius, results, layerMask); }; - Physics.boxcastBroadphase = function(rect, layerMask) { + Physics.boxcastBroadphase = function (rect, layerMask) { if (layerMask === void 0) { layerMask = this.allLayers; } return this._spatialHash.aabbBroadphase(rect, null, layerMask); }; - Physics.boxcastBroadphaseExcludingSelf = function(collider, rect, layerMask) { + Physics.boxcastBroadphaseExcludingSelf = function ( + collider, + rect, + layerMask + ) { if (layerMask === void 0) { layerMask = this.allLayers; } return this._spatialHash.aabbBroadphase(rect, collider, layerMask); }; - Physics.addCollider = function( - collider) { Physics._spatialHash.register(collider); }; - Physics.removeCollider = function( - collider) { Physics._spatialHash.remove(collider); }; - Physics.updateCollider = function(collider) { + Physics.addCollider = function (collider) { + Physics._spatialHash.register(collider); + }; + Physics.removeCollider = function (collider) { + Physics._spatialHash.remove(collider); + }; + Physics.updateCollider = function (collider) { this._spatialHash.remove(collider); this._spatialHash.register(collider); }; Physics.spatialHashCellSize = 100; Physics.allLayers = -1; return Physics; -}()); -var Shape = (function() { +})(); +var Shape = (function () { function Shape() {} return Shape; -}()); -var Polygon = (function(_super) { +})(); +var Polygon = (function (_super) { __extends(Polygon, _super); function Polygon(points, isBox) { var _this = _super.call(this) || this; @@ -4172,31 +4673,28 @@ var Polygon = (function(_super) { return _this; } Object.defineProperty(Polygon.prototype, "edgeNormals", { - get : function() { - if (this._areEdgeNormalsDirty) - this.buildEdgeNormals(); + get: function () { + if (this._areEdgeNormalsDirty) this.buildEdgeNormals(); return this._edgeNormals; }, - enumerable : true, - configurable : true + enumerable: true, + configurable: true, }); - Polygon.prototype.buildEdgeNormals = function() { + Polygon.prototype.buildEdgeNormals = function () { var totalEdges = this.isBox ? 2 : this.points.length; if (this._edgeNormals == null || this._edgeNormals.length != totalEdges) this._edgeNormals = new Array(totalEdges); var p2; for (var i = 0; i < totalEdges; i++) { var p1 = this.points[i]; - if (i + 1 >= this.points.length) - p2 = this.points[0]; - else - p2 = this.points[i + 1]; + if (i + 1 >= this.points.length) p2 = this.points[0]; + else p2 = this.points[i + 1]; var perp = Vector2Ext.perpendicular(p1, p2); perp = Vector2.normalize(perp); this._edgeNormals[i] = perp; } }; - Polygon.prototype.setPoints = function(points) { + Polygon.prototype.setPoints = function (points) { this.points = points; this.recalculateCenterAndEdgeNormals(); this._originalPoints = []; @@ -4204,7 +4702,7 @@ var Polygon = (function(_super) { this._originalPoints.push(this.points[i]); } }; - Polygon.prototype.collidesWithShape = function(other) { + Polygon.prototype.collidesWithShape = function (other) { var result = new CollisionResult(); if (other instanceof Polygon) { return ShapeCollisions.polygonToPolygon(this, other); @@ -4219,11 +4717,11 @@ var Polygon = (function(_super) { } throw new Error("overlaps of Polygon to " + other + " are not supported"); }; - Polygon.prototype.recalculateCenterAndEdgeNormals = function() { + Polygon.prototype.recalculateCenterAndEdgeNormals = function () { this._polygonCenter = Polygon.findPolygonCenter(this.points); this._areEdgeNormalsDirty = true; }; - Polygon.prototype.overlaps = function(other) { + Polygon.prototype.overlaps = function (other) { var result; if (other instanceof Polygon) return ShapeCollisions.polygonToPolygon(this, other); @@ -4237,25 +4735,28 @@ var Polygon = (function(_super) { } throw new Error("overlaps of Pologon to " + other + " are not supported"); }; - Polygon.findPolygonCenter = function(points) { - var x = 0, y = 0; + Polygon.findPolygonCenter = function (points) { + var x = 0, + y = 0; for (var i = 0; i < points.length; i++) { x += points[i].x; y += points[i].y; } return new Vector2(x / points.length, y / points.length); }; - Polygon.getClosestPointOnPolygonToPoint = function(points, point) { + Polygon.getClosestPointOnPolygonToPoint = function (points, point) { var distanceSquared = Number.MAX_VALUE; var edgeNormal = new Vector2(0, 0); var closestPoint = new Vector2(0, 0); var tempDistanceSquared; for (var i = 0; i < points.length; i++) { var j = i + 1; - if (j == points.length) - j = 0; - var closest = - ShapeCollisions.closestPointOnLine(points[i], points[j], point); + if (j == points.length) j = 0; + var closest = ShapeCollisions.closestPointOnLine( + points[i], + points[j], + point + ); tempDistanceSquared = Vector2.distanceSquared(point, closest); if (tempDistanceSquared < distanceSquared) { distanceSquared = tempDistanceSquared; @@ -4267,29 +4768,36 @@ var Polygon = (function(_super) { } edgeNormal = Vector2.normalize(edgeNormal); return { - closestPoint : closestPoint, - distanceSquared : distanceSquared, - edgeNormal : edgeNormal + closestPoint: closestPoint, + distanceSquared: distanceSquared, + edgeNormal: edgeNormal, }; }; - Polygon.prototype.pointCollidesWithShape = function( - point) { return ShapeCollisions.pointToPoly(point, this); }; - Polygon.prototype.containsPoint = function(point) { + Polygon.prototype.pointCollidesWithShape = function (point) { + return ShapeCollisions.pointToPoly(point, this); + }; + Polygon.prototype.containsPoint = function (point) { point = Vector2.subtract(point, this.position); var isInside = false; - for (var i = 0, j = this.points.length - 1; i < this.points.length; - j = i++) { - if (((this.points[i].y > point.y) != (this.points[j].y > point.y)) && - (point.x < (this.points[j].x - this.points[i].x) * - (point.y - this.points[i].y) / - (this.points[j].y - this.points[i].y) + - this.points[i].x)) { + for ( + var i = 0, j = this.points.length - 1; + i < this.points.length; + j = i++ + ) { + if ( + this.points[i].y > point.y != this.points[j].y > point.y && + point.x < + ((this.points[j].x - this.points[i].x) * + (point.y - this.points[i].y)) / + (this.points[j].y - this.points[i].y) + + this.points[i].x + ) { isInside = !isInside; } } return isInside; }; - Polygon.buildSymmertricalPolygon = function(vertCount, radius) { + Polygon.buildSymmertricalPolygon = function (vertCount, radius) { var verts = new Array(vertCount); for (var i = 0; i < vertCount; i++) { var a = 2 * Math.PI * (i / vertCount); @@ -4297,52 +4805,62 @@ var Polygon = (function(_super) { } return verts; }; - Polygon.prototype.recalculateBounds = function(collider) { + Polygon.prototype.recalculateBounds = function (collider) { this.center = collider.localOffset; if (collider.shouldColliderScaleAndRotationWithTransform) { var hasUnitScale = true; var tempMat = void 0; - var combinedMatrix = Matrix2D.createTranslation(-this._polygonCenter.x, - -this._polygonCenter.y); + var combinedMatrix = Matrix2D.createTranslation( + -this._polygonCenter.x, + -this._polygonCenter.y + ); if (collider.entity.scale != Vector2.one) { - tempMat = Matrix2D.createScale(collider.entity.scale.x, - collider.entity.scale.y); + tempMat = Matrix2D.createScale( + collider.entity.scale.x, + collider.entity.scale.y + ); combinedMatrix = Matrix2D.multiply(combinedMatrix, tempMat); hasUnitScale = false; - var scaledOffset = - Vector2.multiply(collider.localOffset, collider.entity.scale); + var scaledOffset = Vector2.multiply( + collider.localOffset, + collider.entity.scale + ); this.center = scaledOffset; } if (collider.entity.rotation != 0) { tempMat = Matrix2D.createRotation(collider.entity.rotation); combinedMatrix = Matrix2D.multiply(combinedMatrix, tempMat); var offsetAngle = - Math.atan2(collider.localOffset.y, collider.localOffset.x) * - MathHelper.Rad2Deg; + Math.atan2(collider.localOffset.y, collider.localOffset.x) * + MathHelper.Rad2Deg; var offsetLength = hasUnitScale - ? collider._localOffsetLength - : (Vector2.multiply(collider.localOffset, - collider.entity.scale)) - .length(); + ? collider._localOffsetLength + : Vector2.multiply( + collider.localOffset, + collider.entity.scale + ).length(); this.center = MathHelper.pointOnCirlce( - Vector2.zero, offsetLength, - MathHelper.toDegrees(collider.entity.rotation) + offsetAngle); + Vector2.zero, + offsetLength, + MathHelper.toDegrees(collider.entity.rotation) + offsetAngle + ); } - tempMat = Matrix2D.createTranslation(this._polygonCenter.x, - this._polygonCenter.y); + tempMat = Matrix2D.createTranslation( + this._polygonCenter.x, + this._polygonCenter.y + ); combinedMatrix = Matrix2D.multiply(combinedMatrix, tempMat); Vector2Ext.transform(this._originalPoints, combinedMatrix, this.points); this.isUnrotated = collider.entity.rotation == 0; - if (collider._isRotationDirty) - this._areEdgeNormalsDirty = true; + if (collider._isRotationDirty) this._areEdgeNormalsDirty = true; } this.position = Vector2.add(collider.entity.position, this.center); this.bounds = Rectangle.rectEncompassingPoints(this.points); this.bounds.location = Vector2.add(this.bounds.location, this.position); }; return Polygon; -}(Shape)); -var Box = (function(_super) { +})(Shape); +var Box = (function (_super) { __extends(Box, _super); function Box(width, height) { var _this = _super.call(this, Box.buildBox(width, height), true) || this; @@ -4350,7 +4868,7 @@ var Box = (function(_super) { _this.height = height; return _this; } - Box.buildBox = function(width, height) { + Box.buildBox = function (width, height) { var halfWidth = width / 2; var halfHeight = height / 2; var verts = new Array(4); @@ -4360,7 +4878,7 @@ var Box = (function(_super) { verts[3] = new Vector2(-halfWidth, halfHeight); return verts; }; - Box.prototype.updateBox = function(width, height) { + Box.prototype.updateBox = function (width, height) { this.width = width; this.height = height; var halfWidth = width / 2; @@ -4372,14 +4890,13 @@ var Box = (function(_super) { for (var i = 0; i < this.points.length; i++) this._originalPoints[i] = this.points[i]; }; - Box.prototype.containsPoint = function(point) { - if (this.isUnrotated) - return this.bounds.contains(point); + Box.prototype.containsPoint = function (point) { + if (this.isUnrotated) return this.bounds.contains(point); return _super.prototype.containsPoint.call(this, point); }; return Box; -}(Polygon)); -var Circle = (function(_super) { +})(Polygon); +var Circle = (function (_super) { __extends(Circle, _super); function Circle(radius) { var _this = _super.call(this) || this; @@ -4387,9 +4904,10 @@ var Circle = (function(_super) { _this._originalRadius = radius; return _this; } - Circle.prototype.pointCollidesWithShape = function( - point) { return ShapeCollisions.pointToCircle(point, this); }; - Circle.prototype.collidesWithShape = function(other) { + Circle.prototype.pointCollidesWithShape = function (point) { + return ShapeCollisions.pointToCircle(point, this); + }; + Circle.prototype.collidesWithShape = function (other) { if (other instanceof Box && other.isUnrotated) { return ShapeCollisions.circleToBox(this, other); } @@ -4401,7 +4919,7 @@ var Circle = (function(_super) { } throw new Error("Collisions of Circle to " + other + " are not supported"); }; - Circle.prototype.recalculateBounds = function(collider) { + Circle.prototype.recalculateBounds = function (collider) { this.center = collider.localOffset; if (collider.shouldColliderScaleAndRotationWithTransform) { var scale = collider.entity.scale; @@ -4410,48 +4928,62 @@ var Circle = (function(_super) { this.radius = this._originalRadius * maxScale; if (collider.entity.rotation != 0) { var offsetAngle = - Math.atan2(collider.localOffset.y, collider.localOffset.x) * - MathHelper.Rad2Deg; + Math.atan2(collider.localOffset.y, collider.localOffset.x) * + MathHelper.Rad2Deg; var offsetLength = hasUnitScale - ? collider._localOffsetLength - : (Vector2.multiply(collider.localOffset, - collider.entity.scale)) - .length(); + ? collider._localOffsetLength + : Vector2.multiply( + collider.localOffset, + collider.entity.scale + ).length(); this.center = MathHelper.pointOnCirlce( - Vector2.zero, offsetLength, - MathHelper.toDegrees(collider.entity.rotation) + offsetAngle); + Vector2.zero, + offsetLength, + MathHelper.toDegrees(collider.entity.rotation) + offsetAngle + ); } } this.position = Vector2.add(collider.entity.position, this.center); - this.bounds = new Rectangle(this.position.x - this.radius, - this.position.y - this.radius, this.radius * 2, - this.radius * 2); + this.bounds = new Rectangle( + this.position.x - this.radius, + this.position.y - this.radius, + this.radius * 2, + this.radius * 2 + ); }; - Circle.prototype.overlaps = function(other) { + Circle.prototype.overlaps = function (other) { if (other instanceof Box && other.isUnrotated) - return Collisions.isRectToCircle(other.bounds, this.position, - this.radius); + return Collisions.isRectToCircle( + other.bounds, + this.position, + this.radius + ); if (other instanceof Circle) - return Collisions.isCircleToCircle(this.position, this.radius, - other.position, other.radius); + return Collisions.isCircleToCircle( + this.position, + this.radius, + other.position, + other.radius + ); if (other instanceof Polygon) return ShapeCollisions.circleToPolygon(this, other); throw new Error("overlaps of circle to " + other + " are not supported"); }; return Circle; -}(Shape)); -var CollisionResult = (function() { +})(Shape); +var CollisionResult = (function () { function CollisionResult() {} - CollisionResult.prototype.invertResult = function() { - this.minimumTranslationVector = - Vector2.negate(this.minimumTranslationVector); + CollisionResult.prototype.invertResult = function () { + this.minimumTranslationVector = Vector2.negate( + this.minimumTranslationVector + ); this.normal = Vector2.negate(this.normal); }; return CollisionResult; -}()); -var ShapeCollisions = (function() { +})(); +var ShapeCollisions = (function () { function ShapeCollisions() {} - ShapeCollisions.polygonToPolygon = function(first, second) { + ShapeCollisions.polygonToPolygon = function (first, second) { var result = new CollisionResult(); var isIntersecting = true; var firstEdges = first.edgeNormals; @@ -4460,8 +4992,11 @@ var ShapeCollisions = (function() { var translationAxis = new Vector2(); var polygonOffset = Vector2.subtract(first.position, second.position); var axis; - for (var edgeIndex = 0; edgeIndex < firstEdges.length + secondEdges.length; - edgeIndex++) { + for ( + var edgeIndex = 0; + edgeIndex < firstEdges.length + secondEdges.length; + edgeIndex++ + ) { if (edgeIndex < firstEdges.length) { axis = firstEdges[edgeIndex]; } else { @@ -4482,10 +5017,8 @@ var ShapeCollisions = (function() { minA += relativeIntervalOffset; maxA += relativeIntervalOffset; intervalDist = this.intervalDistance(minA, maxA, minB, maxB); - if (intervalDist > 0) - isIntersecting = false; - if (!isIntersecting) - return null; + if (intervalDist > 0) isIntersecting = false; + if (!isIntersecting) return null; intervalDist = Math.abs(intervalDist); if (intervalDist < minIntervalDistance) { minIntervalDistance = intervalDist; @@ -4496,15 +5029,16 @@ var ShapeCollisions = (function() { } result.normal = translationAxis; result.minimumTranslationVector = Vector2.multiply( - new Vector2(-translationAxis), new Vector2(minIntervalDistance)); + new Vector2(-translationAxis), + new Vector2(minIntervalDistance) + ); return result; }; - ShapeCollisions.intervalDistance = function(minA, maxA, minB, maxB) { - if (minA < minB) - return minB - maxA; + ShapeCollisions.intervalDistance = function (minA, maxA, minB, maxB) { + if (minA < minB) return minB - maxA; return minA - minB; }; - ShapeCollisions.getInterval = function(axis, polygon, min, max) { + ShapeCollisions.getInterval = function (axis, polygon, min, max) { var dot = Vector2.dot(polygon.points[0], axis); min = max = dot; for (var i = 1; i < polygon.points.length; i++) { @@ -4515,132 +5049,163 @@ var ShapeCollisions = (function() { max = dot; } } - return {min : min, max : max}; + return { min: min, max: max }; }; - ShapeCollisions.circleToPolygon = function(circle, polygon) { + ShapeCollisions.circleToPolygon = function (circle, polygon) { var result = new CollisionResult(); var poly2Circle = Vector2.subtract(circle.position, polygon.position); - var gpp = - Polygon.getClosestPointOnPolygonToPoint(polygon.points, poly2Circle); + var gpp = Polygon.getClosestPointOnPolygonToPoint( + polygon.points, + poly2Circle + ); var closestPoint = gpp.closestPoint; var distanceSquared = gpp.distanceSquared; result.normal = gpp.edgeNormal; var circleCenterInsidePoly = polygon.containsPoint(circle.position); - if (distanceSquared > circle.radius * circle.radius && - !circleCenterInsidePoly) + if ( + distanceSquared > circle.radius * circle.radius && + !circleCenterInsidePoly + ) return null; var mtv; if (circleCenterInsidePoly) { mtv = Vector2.multiply( - result.normal, - new Vector2(Math.sqrt(distanceSquared) - circle.radius)); + result.normal, + new Vector2(Math.sqrt(distanceSquared) - circle.radius) + ); } else { if (distanceSquared == 0) { mtv = Vector2.multiply(result.normal, new Vector2(circle.radius)); } else { var distance = Math.sqrt(distanceSquared); mtv = Vector2.multiply( - new Vector2(-Vector2.subtract(poly2Circle, closestPoint)), - new Vector2((circle.radius - distanceSquared) / distance)); + new Vector2(-Vector2.subtract(poly2Circle, closestPoint)), + new Vector2((circle.radius - distanceSquared) / distance) + ); } } result.minimumTranslationVector = mtv; result.point = Vector2.add(closestPoint, polygon.position); return result; }; - ShapeCollisions.circleToBox = function(circle, box) { + ShapeCollisions.circleToBox = function (circle, box) { var result = new CollisionResult(); - var closestPointOnBounds = - box.bounds.getClosestPointOnRectangleBorderToPoint(circle.position).res; + var closestPointOnBounds = box.bounds.getClosestPointOnRectangleBorderToPoint( + circle.position + ).res; if (box.containsPoint(circle.position)) { result.point = closestPointOnBounds; var safePlace = Vector2.add( - closestPointOnBounds, - Vector2.subtract(result.normal, new Vector2(circle.radius))); - result.minimumTranslationVector = - Vector2.subtract(circle.position, safePlace); + closestPointOnBounds, + Vector2.subtract(result.normal, new Vector2(circle.radius)) + ); + result.minimumTranslationVector = Vector2.subtract( + circle.position, + safePlace + ); return result; } - var sqrDistance = - Vector2.distanceSquared(closestPointOnBounds, circle.position); + var sqrDistance = Vector2.distanceSquared( + closestPointOnBounds, + circle.position + ); if (sqrDistance == 0) { - result.minimumTranslationVector = - Vector2.multiply(result.normal, new Vector2(circle.radius)); + result.minimumTranslationVector = Vector2.multiply( + result.normal, + new Vector2(circle.radius) + ); } else if (sqrDistance <= circle.radius * circle.radius) { result.normal = Vector2.subtract(circle.position, closestPointOnBounds); var depth = result.normal.length() - circle.radius; result.normal = Vector2Ext.normalize(result.normal); - result.minimumTranslationVector = - Vector2.multiply(new Vector2(depth), result.normal); + result.minimumTranslationVector = Vector2.multiply( + new Vector2(depth), + result.normal + ); return result; } return null; }; - ShapeCollisions.pointToCircle = function(point, circle) { + ShapeCollisions.pointToCircle = function (point, circle) { var result = new CollisionResult(); var distanceSquared = Vector2.distanceSquared(point, circle.position); var sumOfRadii = 1 + circle.radius; var collided = distanceSquared < sumOfRadii * sumOfRadii; if (collided) { - result.normal = - Vector2.normalize(Vector2.subtract(point, circle.position)); + result.normal = Vector2.normalize( + Vector2.subtract(point, circle.position) + ); var depth = sumOfRadii - Math.sqrt(distanceSquared); - result.minimumTranslationVector = - Vector2.multiply(new Vector2(-depth, -depth), result.normal); + result.minimumTranslationVector = Vector2.multiply( + new Vector2(-depth, -depth), + result.normal + ); result.point = Vector2.add( - circle.position, - Vector2.multiply(result.normal, - new Vector2(circle.radius, circle.radius))); + circle.position, + Vector2.multiply( + result.normal, + new Vector2(circle.radius, circle.radius) + ) + ); return result; } return null; }; - ShapeCollisions.closestPointOnLine = function(lineA, lineB, closestTo) { + ShapeCollisions.closestPointOnLine = function (lineA, lineB, closestTo) { var v = Vector2.subtract(lineB, lineA); var w = Vector2.subtract(closestTo, lineA); var t = Vector2.dot(w, v) / Vector2.dot(v, v); t = MathHelper.clamp(t, 0, 1); return Vector2.add(lineA, Vector2.multiply(v, new Vector2(t, t))); }; - ShapeCollisions.pointToPoly = function(point, poly) { + ShapeCollisions.pointToPoly = function (point, poly) { var result = new CollisionResult(); if (poly.containsPoint(point)) { var distanceSquared = void 0; var gpp = Polygon.getClosestPointOnPolygonToPoint( - poly.points, Vector2.subtract(point, poly.position)); + poly.points, + Vector2.subtract(point, poly.position) + ); var closestPoint = gpp.closestPoint; distanceSquared = gpp.distanceSquared; result.normal = gpp.edgeNormal; result.minimumTranslationVector = Vector2.multiply( - result.normal, - new Vector2(Math.sqrt(distanceSquared), Math.sqrt(distanceSquared))); + result.normal, + new Vector2(Math.sqrt(distanceSquared), Math.sqrt(distanceSquared)) + ); result.point = Vector2.add(closestPoint, poly.position); return result; } return null; }; - ShapeCollisions.circleToCircle = function(first, second) { + ShapeCollisions.circleToCircle = function (first, second) { var result = new CollisionResult(); - var distanceSquared = - Vector2.distanceSquared(first.position, second.position); + var distanceSquared = Vector2.distanceSquared( + first.position, + second.position + ); var sumOfRadii = first.radius + second.radius; var collided = distanceSquared < sumOfRadii * sumOfRadii; if (collided) { - result.normal = - Vector2.normalize(Vector2.subtract(first.position, second.position)); + result.normal = Vector2.normalize( + Vector2.subtract(first.position, second.position) + ); var depth = sumOfRadii - Math.sqrt(distanceSquared); - result.minimumTranslationVector = - Vector2.multiply(new Vector2(-depth), result.normal); + result.minimumTranslationVector = Vector2.multiply( + new Vector2(-depth), + result.normal + ); result.point = Vector2.add( - second.position, - Vector2.multiply(result.normal, new Vector2(second.radius))); + second.position, + Vector2.multiply(result.normal, new Vector2(second.radius)) + ); return result; } return null; }; return ShapeCollisions; -}()); -var SpatialHash = (function() { +})(); +var SpatialHash = (function () { function SpatialHash(cellSize) { if (cellSize === void 0) { cellSize = 100; @@ -4652,7 +5217,7 @@ var SpatialHash = (function() { this._inverseCellSize = 1 / this._cellSize; this._raycastParser = new RaycastResultParser(); } - SpatialHash.prototype.remove = function(collider) { + SpatialHash.prototype.remove = function (collider) { var bounds = collider.registeredPhysicsBounds; var p1 = this.cellCoords(bounds.x, bounds.y); var p2 = this.cellCoords(bounds.right, bounds.bottom); @@ -4660,14 +5225,16 @@ var SpatialHash = (function() { for (var y = p1.y; y <= p2.y; y++) { var cell = this.cellAtPosition(x, y); if (!cell) - console.error("removing Collider [" + collider + - "] from a cell that it is not present in"); - else - cell.remove(collider); + console.error( + "removing Collider [" + + collider + + "] from a cell that it is not present in" + ); + else cell.remove(collider); } } }; - SpatialHash.prototype.register = function(collider) { + SpatialHash.prototype.register = function (collider) { var bounds = collider.bounds; collider.registeredPhysicsBounds = bounds; var p1 = this.cellCoords(bounds.x, bounds.y); @@ -4685,11 +5252,21 @@ var SpatialHash = (function() { } } }; - SpatialHash.prototype.clear = function() { this._cellDict.clear(); }; - SpatialHash.prototype.overlapCircle = function(circleCenter, radius, results, - layerMask) { - var bounds = new Rectangle(circleCenter.x - radius, circleCenter.y - radius, - radius * 2, radius * 2); + SpatialHash.prototype.clear = function () { + this._cellDict.clear(); + }; + SpatialHash.prototype.overlapCircle = function ( + circleCenter, + radius, + results, + layerMask + ) { + var bounds = new Rectangle( + circleCenter.x - radius, + circleCenter.y - radius, + radius * 2, + radius * 2 + ); this._overlapTestCircle.radius = radius; this._overlapTestCircle.position = circleCenter; var resultCounter = 0; @@ -4701,27 +5278,31 @@ var SpatialHash = (function() { resultCounter++; } else { throw new Error( - "overlapCircle against this collider type is not implemented!"); + "overlapCircle against this collider type is not implemented!" + ); } - if (resultCounter == results.length) - return resultCounter; + if (resultCounter == results.length) return resultCounter; } return resultCounter; }; - SpatialHash.prototype.aabbBroadphase = function(bounds, excludeCollider, - layerMask) { + SpatialHash.prototype.aabbBroadphase = function ( + bounds, + excludeCollider, + layerMask + ) { this._tempHashSet.length = 0; var p1 = this.cellCoords(bounds.x, bounds.y); var p2 = this.cellCoords(bounds.right, bounds.bottom); for (var x = p1.x; x <= p2.x; x++) { for (var y = p1.y; y <= p2.y; y++) { var cell = this.cellAtPosition(x, y); - if (!cell) - continue; + if (!cell) continue; for (var i = 0; i < cell.length; i++) { var collider = cell[i]; - if (collider == excludeCollider || - !Flags.isFlagSet(layerMask, collider.physicsLayer)) + if ( + collider == excludeCollider || + !Flags.isFlagSet(layerMask, collider.physicsLayer) + ) continue; if (bounds.intersects(collider.bounds)) { if (this._tempHashSet.indexOf(collider) == -1) @@ -4732,7 +5313,7 @@ var SpatialHash = (function() { } return this._tempHashSet; }; - SpatialHash.prototype.cellAtPosition = function(x, y, createCellIfEmpty) { + SpatialHash.prototype.cellAtPosition = function (x, y, createCellIfEmpty) { if (createCellIfEmpty === void 0) { createCellIfEmpty = false; } @@ -4745,48 +5326,55 @@ var SpatialHash = (function() { } return cell; }; - SpatialHash.prototype.cellCoords = function(x, y) { - return new Point(Math.floor(x * this._inverseCellSize), - Math.floor(y * this._inverseCellSize)); + SpatialHash.prototype.cellCoords = function (x, y) { + return new Point( + Math.floor(x * this._inverseCellSize), + Math.floor(y * this._inverseCellSize) + ); }; return SpatialHash; -}()); -var RaycastResultParser = (function() { +})(); +var RaycastResultParser = (function () { function RaycastResultParser() {} return RaycastResultParser; -}()); -var NumberDictionary = (function() { - function NumberDictionary() { this._store = new Map(); } - NumberDictionary.prototype.getKey = function(x, y) { +})(); +var NumberDictionary = (function () { + function NumberDictionary() { + this._store = new Map(); + } + NumberDictionary.prototype.getKey = function (x, y) { return Long.fromNumber(x).shiftLeft(32).or(this.intToUint(y)).toString(); }; - NumberDictionary.prototype.intToUint = function(i) { - if (i >= 0) - return i; - else - return 4294967296 + i; + NumberDictionary.prototype.intToUint = function (i) { + if (i >= 0) return i; + else return 4294967296 + i; }; - NumberDictionary.prototype.add = function( - x, y, list) { this._store.set(this.getKey(x, y), list); }; - NumberDictionary.prototype.remove = function(obj) { - this._store.forEach(function(list) { - if (list.contains(obj)) - list.remove(obj); + NumberDictionary.prototype.add = function (x, y, list) { + this._store.set(this.getKey(x, y), list); + }; + NumberDictionary.prototype.remove = function (obj) { + this._store.forEach(function (list) { + if (list.contains(obj)) list.remove(obj); }); }; - NumberDictionary.prototype.tryGetValue = function( - x, y) { return this._store.get(this.getKey(x, y)); }; - NumberDictionary.prototype.clear = function() { this._store.clear(); }; + NumberDictionary.prototype.tryGetValue = function (x, y) { + return this._store.get(this.getKey(x, y)); + }; + NumberDictionary.prototype.clear = function () { + this._store.clear(); + }; return NumberDictionary; -}()); -var ContentManager = (function() { - function ContentManager() { this.loadedAssets = new Map(); } - ContentManager.prototype.loadRes = function(name, local) { +})(); +var ContentManager = (function () { + function ContentManager() { + this.loadedAssets = new Map(); + } + ContentManager.prototype.loadRes = function (name, local) { var _this = this; if (local === void 0) { local = true; } - return new Promise(function(resolve, reject) { + return new Promise(function (resolve, reject) { var res = _this.loadedAssets.get(name); if (res) { resolve(res); @@ -4794,69 +5382,73 @@ var ContentManager = (function() { } if (local) { RES.getResAsync(name) - .then(function(data) { - _this.loadedAssets.set(name, data); - resolve(data); - }) - .catch(function(err) { - console.error("资源加载错误:", name, err); - reject(err); - }); + .then(function (data) { + _this.loadedAssets.set(name, data); + resolve(data); + }) + .catch(function (err) { + console.error("资源加载错误:", name, err); + reject(err); + }); } else { RES.getResByUrl(name) - .then(function(data) { - _this.loadedAssets.set(name, data); - resolve(data); - }) - .catch(function(err) { - console.error("资源加载错误:", name, err); - reject(err); - }); + .then(function (data) { + _this.loadedAssets.set(name, data); + resolve(data); + }) + .catch(function (err) { + console.error("资源加载错误:", name, err); + reject(err); + }); } }); }; - ContentManager.prototype.dispose = function() { - this.loadedAssets.forEach(function(value) { + ContentManager.prototype.dispose = function () { + this.loadedAssets.forEach(function (value) { var assetsToRemove = value; assetsToRemove.dispose(); }); this.loadedAssets.clear(); }; return ContentManager; -}()); -var Emitter = (function() { - function Emitter() { this._messageTable = new Map(); } - Emitter.prototype.addObserver = function(eventType, handler) { +})(); +var Emitter = (function () { + function Emitter() { + this._messageTable = new Map(); + } + Emitter.prototype.addObserver = function (eventType, handler) { var list = this._messageTable.get(eventType); if (!list) { list = []; this._messageTable.set(eventType, list); } - if (list.contains(handler)) - console.warn("您试图添加相同的观察者两次"); + if (list.contains(handler)) console.warn("您试图添加相同的观察者两次"); list.push(handler); }; - Emitter.prototype.removeObserver = function( - eventType, - handler) { this._messageTable.get(eventType).remove(handler); }; - Emitter.prototype.emit = function(eventType, data) { + Emitter.prototype.removeObserver = function (eventType, handler) { + this._messageTable.get(eventType).remove(handler); + }; + Emitter.prototype.emit = function (eventType, data) { var list = this._messageTable.get(eventType); if (list) { - for (var i = list.length - 1; i >= 0; i--) - list[i](data); + for (var i = list.length - 1; i >= 0; i--) list[i](data); } }; return Emitter; -}()); -var GlobalManager = (function() { +})(); +var GlobalManager = (function () { function GlobalManager() {} Object.defineProperty(GlobalManager.prototype, "enabled", { - get : function() { return this._enabled; }, - set : function(value) { this.setEnabled(value); }, - enumerable : true, - configurable : true + get: function () { + return this._enabled; + }, + set: function (value) { + this.setEnabled(value); + }, + enumerable: true, + configurable: true, }); - GlobalManager.prototype.setEnabled = function(isEnabled) { + GlobalManager.prototype.setEnabled = function (isEnabled) { if (this._enabled != isEnabled) { this._enabled = isEnabled; if (this._enabled) { @@ -4866,28 +5458,27 @@ var GlobalManager = (function() { } } }; - GlobalManager.prototype.onEnabled = function() {}; - GlobalManager.prototype.onDisabled = function() {}; - GlobalManager.prototype.update = function() {}; - GlobalManager.registerGlobalManager = function(manager) { + GlobalManager.prototype.onEnabled = function () {}; + GlobalManager.prototype.onDisabled = function () {}; + GlobalManager.prototype.update = function () {}; + GlobalManager.registerGlobalManager = function (manager) { this.globalManagers.push(manager); manager.enabled = true; }; - GlobalManager.unregisterGlobalManager = function(manager) { + GlobalManager.unregisterGlobalManager = function (manager) { this.globalManagers.remove(manager); manager.enabled = false; }; - GlobalManager.getGlobalManager = function(type) { + GlobalManager.getGlobalManager = function (type) { for (var i = 0; i < this.globalManagers.length; i++) { - if (this.globalManagers[i] instanceof type) - return this.globalManagers[i]; + if (this.globalManagers[i] instanceof type) return this.globalManagers[i]; } return null; }; GlobalManager.globalManagers = []; return GlobalManager; -}()); -var TouchState = (function() { +})(); +var TouchState = (function () { function TouchState() { this.x = 0; this.y = 0; @@ -4895,83 +5486,108 @@ var TouchState = (function() { this.touchDown = false; } Object.defineProperty(TouchState.prototype, "position", { - get : function() { return new Vector2(this.x, this.y); }, - enumerable : true, - configurable : true + get: function () { + return new Vector2(this.x, this.y); + }, + enumerable: true, + configurable: true, }); - TouchState.prototype.reset = function() { + TouchState.prototype.reset = function () { this.x = 0; this.y = 0; this.touchDown = false; this.touchPoint = -1; }; return TouchState; -}()); -var Input = (function() { +})(); +var Input = (function () { function Input() {} Object.defineProperty(Input, "touchPosition", { - get : function() { - if (!this._gameTouchs[0]) - return Vector2.zero; + get: function () { + if (!this._gameTouchs[0]) return Vector2.zero; return this._gameTouchs[0].position; }, - enumerable : true, - configurable : true + enumerable: true, + configurable: true, }); Object.defineProperty(Input, "maxSupportedTouch", { - get : function() { return this._stage.maxTouches; }, - set : function(value) { + get: function () { + return this._stage.maxTouches; + }, + set: function (value) { this._stage.maxTouches = value; this.initTouchCache(); }, - enumerable : true, - configurable : true + enumerable: true, + configurable: true, }); Object.defineProperty(Input, "resolutionScale", { - get : function() { return this._resolutionScale; }, - enumerable : true, - configurable : true + get: function () { + return this._resolutionScale; + }, + enumerable: true, + configurable: true, }); Object.defineProperty(Input, "totalTouchCount", { - get : function() { return this._totalTouchCount; }, - enumerable : true, - configurable : true + get: function () { + return this._totalTouchCount; + }, + enumerable: true, + configurable: true, }); Object.defineProperty(Input, "gameTouchs", { - get : function() { return this._gameTouchs; }, - enumerable : true, - configurable : true + get: function () { + return this._gameTouchs; + }, + enumerable: true, + configurable: true, }); Object.defineProperty(Input, "touchPositionDelta", { - get : function() { - var delta = Vector2.subtract(this.touchPosition, - this._previousTouchState.position); + get: function () { + var delta = Vector2.subtract( + this.touchPosition, + this._previousTouchState.position + ); if (delta.length() > 0) { this.setpreviousTouchState(this._gameTouchs[0]); } return delta; }, - enumerable : true, - configurable : true + enumerable: true, + configurable: true, }); - Input.initialize = function(stage) { - if (this._init) - return; + Input.initialize = function (stage) { + if (this._init) return; this._init = true; this._stage = stage; - 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._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(); }; - Input.initTouchCache = function() { + Input.initTouchCache = function () { this._totalTouchCount = 0; this._touchIndex = 0; this._gameTouchs.length = 0; @@ -4979,7 +5595,7 @@ var Input = (function() { this._gameTouchs.push(new TouchState()); } }; - Input.touchBegin = function(evt) { + Input.touchBegin = function (evt) { if (this._touchIndex < this.maxSupportedTouch) { this._gameTouchs[this._touchIndex].touchPoint = evt.touchPointID; this._gameTouchs[this._touchIndex].touchDown = evt.touchDown; @@ -4992,42 +5608,45 @@ var Input = (function() { this._totalTouchCount++; } }; - Input.touchMove = function(evt) { + Input.touchMove = function (evt) { if (evt.touchPointID == this._gameTouchs[0].touchPoint) { this.setpreviousTouchState(this._gameTouchs[0]); } - var touchIndex = this._gameTouchs.findIndex(function( - touch) { return touch.touchPoint == evt.touchPointID; }); + var touchIndex = this._gameTouchs.findIndex(function (touch) { + return touch.touchPoint == evt.touchPointID; + }); if (touchIndex != -1) { var touchData = this._gameTouchs[touchIndex]; touchData.x = evt.stageX; touchData.y = evt.stageY; } }; - Input.touchEnd = function(evt) { - var touchIndex = this._gameTouchs.findIndex(function( - touch) { return touch.touchPoint == evt.touchPointID; }); + Input.touchEnd = function (evt) { + var touchIndex = this._gameTouchs.findIndex(function (touch) { + return touch.touchPoint == evt.touchPointID; + }); if (touchIndex != -1) { var touchData = this._gameTouchs[touchIndex]; touchData.reset(); - if (touchIndex == 0) - this._previousTouchState.reset(); + if (touchIndex == 0) this._previousTouchState.reset(); this._totalTouchCount--; if (this.totalTouchCount == 0) { this._touchIndex = 0; } } }; - Input.setpreviousTouchState = function(touchState) { + Input.setpreviousTouchState = function (touchState) { this._previousTouchState = new TouchState(); this._previousTouchState.x = touchState.position.x; this._previousTouchState.y = touchState.position.y; this._previousTouchState.touchPoint = touchState.touchPoint; this._previousTouchState.touchDown = touchState.touchDown; }; - Input.scaledPosition = function(position) { - var scaledPos = new Vector2(position.x - this._resolutionOffset.x, - position.y - this._resolutionOffset.y); + Input.scaledPosition = function (position) { + var scaledPos = new Vector2( + position.x - this._resolutionOffset.x, + position.y - this._resolutionOffset.y + ); return Vector2.multiply(scaledPos, this.resolutionScale); }; Input._init = false; @@ -5038,10 +5657,10 @@ var Input = (function() { Input._touchIndex = 0; Input._totalTouchCount = 0; return Input; -}()); -var ListPool = (function() { +})(); +var ListPool = (function () { function ListPool() {} - ListPool.warmCache = function(cacheCount) { + ListPool.warmCache = function (cacheCount) { cacheCount -= this._objectQueue.length; if (cacheCount > 0) { for (var i = 0; i < cacheCount; i++) { @@ -5049,41 +5668,43 @@ var ListPool = (function() { } } }; - ListPool.trimCache = function(cacheCount) { - while (cacheCount > this._objectQueue.length) - this._objectQueue.shift(); + ListPool.trimCache = function (cacheCount) { + while (cacheCount > this._objectQueue.length) this._objectQueue.shift(); }; - ListPool.clearCache = function() { this._objectQueue.length = 0; }; - ListPool.obtain = function() { - if (this._objectQueue.length > 0) - return this._objectQueue.shift(); + ListPool.clearCache = function () { + this._objectQueue.length = 0; + }; + ListPool.obtain = function () { + if (this._objectQueue.length > 0) return this._objectQueue.shift(); return []; }; - ListPool.free = function(obj) { + ListPool.free = function (obj) { this._objectQueue.unshift(obj); obj.length = 0; }; ListPool._objectQueue = []; return ListPool; -}()); -var Pair = (function() { +})(); +var Pair = (function () { function Pair(first, second) { this.first = first; this.second = second; } - Pair.prototype.clear = function() { this.first = this.second = null; }; - Pair.prototype.equals = function(other) { + Pair.prototype.clear = function () { + this.first = this.second = null; + }; + Pair.prototype.equals = function (other) { return this.first == other.first && this.second == other.second; }; return Pair; -}()); -var RectangleExt = (function() { +})(); +var RectangleExt = (function () { function RectangleExt() {} - RectangleExt.union = function(first, point) { + RectangleExt.union = function (first, point) { var rect = new Rectangle(point.x, point.y, 0, 0); return this.unionR(first, rect); }; - RectangleExt.unionR = function(value1, value2) { + RectangleExt.unionR = function (value1, value2) { var result = new Rectangle(); result.x = Math.min(value1.x, value2.x); result.y = Math.min(value1.y, value2.y); @@ -5092,14 +5713,14 @@ var RectangleExt = (function() { return result; }; return RectangleExt; -}()); -var Triangulator = (function() { +})(); +var Triangulator = (function () { function Triangulator() { this.triangleIndices = []; this._triPrev = new Array(12); this._triNext = new Array(12); } - Triangulator.prototype.triangulate = function(points, arePointsCCW) { + Triangulator.prototype.triangulate = function (points, arePointsCCW) { if (arePointsCCW === void 0) { arePointsCCW = true; } @@ -5140,10 +5761,9 @@ var Triangulator = (function() { this.triangleIndices.push(this._triPrev[index]); this.triangleIndices.push(index); this.triangleIndices.push(this._triNext[index]); - if (!arePointsCCW) - this.triangleIndices.reverse(); + if (!arePointsCCW) this.triangleIndices.reverse(); }; - Triangulator.prototype.initialize = function(count) { + Triangulator.prototype.initialize = function (count) { this.triangleIndices.length = 0; if (this._triNext.length < count) { this._triNext.reverse(); @@ -5160,32 +5780,38 @@ var Triangulator = (function() { this._triPrev[0] = count - 1; this._triNext[count - 1] = 0; }; - Triangulator.testPointTriangle = function(point, a, b, c) { - if (Vector2Ext.cross(Vector2.subtract(point, a), Vector2.subtract(b, a)) < - 0) + Triangulator.testPointTriangle = function (point, a, b, c) { + if ( + Vector2Ext.cross(Vector2.subtract(point, a), Vector2.subtract(b, a)) < 0 + ) return false; - if (Vector2Ext.cross(Vector2.subtract(point, b), Vector2.subtract(c, b)) < - 0) + if ( + Vector2Ext.cross(Vector2.subtract(point, b), Vector2.subtract(c, b)) < 0 + ) return false; - if (Vector2Ext.cross(Vector2.subtract(point, c), Vector2.subtract(a, c)) < - 0) + if ( + Vector2Ext.cross(Vector2.subtract(point, c), Vector2.subtract(a, c)) < 0 + ) return false; return true; }; return Triangulator; -}()); -var Vector2Ext = (function() { +})(); +var Vector2Ext = (function () { function Vector2Ext() {} - Vector2Ext.isTriangleCCW = function(a, center, c) { - return this.cross(Vector2.subtract(center, a), - Vector2.subtract(c, center)) < 0; + Vector2Ext.isTriangleCCW = function (a, center, c) { + return ( + this.cross(Vector2.subtract(center, a), Vector2.subtract(c, center)) < 0 + ); }; - Vector2Ext.cross = function(u, v) { return u.y * v.x - u.x * v.y; }; - Vector2Ext.perpendicular = function(first, second) { + Vector2Ext.cross = function (u, v) { + return u.y * v.x - u.x * v.y; + }; + Vector2Ext.perpendicular = function (first, second) { return new Vector2(-1 * (second.y - first.y), second.x - first.x); }; - Vector2Ext.normalize = function(vec) { - var magnitude = Math.sqrt((vec.x * vec.x) + (vec.y * vec.y)); + Vector2Ext.normalize = function (vec) { + var magnitude = Math.sqrt(vec.x * vec.x + vec.y * vec.y); if (magnitude > MathHelper.Epsilon) { vec = Vector2.divide(vec, new Vector2(magnitude)); } else { @@ -5193,28 +5819,41 @@ var Vector2Ext = (function() { } return vec; }; - Vector2Ext.transformA = function(sourceArray, sourceIndex, matrix, - destinationArray, destinationIndex, length) { + Vector2Ext.transformA = function ( + sourceArray, + sourceIndex, + matrix, + destinationArray, + destinationIndex, + length + ) { for (var i = 0; i < length; i++) { var position = sourceArray[sourceIndex + i]; var destination = destinationArray[destinationIndex + i]; destination.x = - (position.x * matrix.m11) + (position.y * matrix.m21) + matrix.m31; + position.x * matrix.m11 + position.y * matrix.m21 + matrix.m31; destination.y = - (position.x * matrix.m12) + (position.y * matrix.m22) + matrix.m32; + position.x * matrix.m12 + position.y * matrix.m22 + matrix.m32; destinationArray[destinationIndex + i] = destination; } }; - Vector2Ext.transformR = function(position, matrix) { - var x = (position.x * matrix.m11) + (position.y * matrix.m21) + matrix.m31; - var y = (position.x * matrix.m12) + (position.y * matrix.m22) + matrix.m32; + Vector2Ext.transformR = function (position, matrix) { + var x = position.x * matrix.m11 + position.y * matrix.m21 + matrix.m31; + var y = position.x * matrix.m12 + position.y * matrix.m22 + matrix.m32; return new Vector2(x, y); }; - Vector2Ext.transform = function(sourceArray, matrix, destinationArray) { - this.transformA(sourceArray, 0, matrix, destinationArray, 0, - sourceArray.length); + Vector2Ext.transform = function (sourceArray, matrix, destinationArray) { + this.transformA( + sourceArray, + 0, + matrix, + destinationArray, + 0, + sourceArray.length + ); + }; + Vector2Ext.round = function (vec) { + return new Vector2(Math.round(vec.x), Math.round(vec.y)); }; - Vector2Ext.round = function( - vec) { return new Vector2(Math.round(vec.x), Math.round(vec.y)); }; return Vector2Ext; -}()); +})(); diff --git a/demo/libs/framework/framework.min.js b/demo/libs/framework/framework.min.js index d6233172..48790482 100644 --- a/demo/libs/framework/framework.min.js +++ b/demo/libs/framework/framework.min.js @@ -1,3477 +1,5250 @@ -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]) +(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())); }; - 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;) + })()); +var __awaiter = + (this && this.__awaiter) || + function (t, e, n, i) { + return new (n || (n = Promise))(function (o, r) { + function s(t) { 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) + h(i.next(t)); } catch (t) { - r = [ 6, t ], i = 0 - } finally { - n = o = 0 + r(t); } - 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 - }, []) + function a(t) { + try { + h(i.throw(t)); + } catch (t) { + r(t); + } } - 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) + 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]); + }; + } }; -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 +(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); }), - 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 + (Array.prototype.firstOrDefault = function (t) { + return (function (t, e) { + var n = t.findIndex(e); + return -1 == n ? null : t[n]; + })(this, t); }), - 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 + (Array.prototype.find = function (t) { + return (function (t, e) { + return t.firstOrDefault(e); + })(this, t); }), - 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) + (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); } - 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 = .3, e._maximumZoom = 3, - e.followLerp = .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 + return n; + })(this, t); }), - 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(.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(.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 + (Array.prototype.count = function (t) { + return (function (t, e) { + return t.where(e).length; + })(this, t); }), - 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(.5 * e.width, .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 + (Array.prototype.findAll = function (t) { + return (function (t, e) { + return t.where(e); + })(this, t); }), - 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 + (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); }), - 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]; + (Array.prototype.removeAll = function (t) { + !(function (t, e) { + var n; 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 + (n = t.findIndex(e)) >= 0 && t.splice(n, 1); + } while (n >= 0); + })(this, t); }), - 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) + (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 + ); + }, []); } - 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 + 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); }), - 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(.1, .6, 2, 1, 1, 0), new t(0, 3, 1, 1, 1, 1), - new t(.5, 8, 2, 1, 0, 1), new t(.25, 8, 1.3, 1, 1, 0), - new t(0, 2, 1, .1, 1, 1), new t(.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 = .4, - n.fadeEaseType = egret.Ease.quadInOut, - n.delayBeforeFadeInDuration = .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 : .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 .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 = .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(.5 * this.width, .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.xi && (i = s.x), - s.yo && (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 = .5 * t.width, o = .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) + (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; - (y = Math.abs(y)) < a && - (a = y, h = n, Vector2.dot(h, c) < 0 && (h = new Vector2(-h))) + }), + (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 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))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 __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 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 + 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); } - 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 ( + (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 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 ( + (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 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 ( + (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 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 ( + (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 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)) || + 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)) + 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); } - } - 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 + }), + (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); + } } - 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] + 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(); } - 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 -}(); \ No newline at end of file + 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 + ); + })(); diff --git a/source/bin/framework.js b/source/bin/framework.js index d1c2f5ea..d970796c 100644 --- a/source/bin/framework.js +++ b/source/bin/framework.js @@ -1,134 +1,155 @@ -var __extends = (this && this.__extends) || (function() { - var extendStatics = Object.setPrototypeOf || - ({__proto__ : []} instanceof Array && - function(d, b) { d.__proto__ = b; }) || - function(d, b) { - for (var p in b) - if (b.hasOwnProperty(p)) - d[p] = b[p]; - }; - return function(d, b) { - extendStatics(d, b); - function __() { this.constructor = d; } - d.prototype = b === null - ? Object.create(b) - : (__.prototype = b.prototype, new __()); - }; - })(); -var __awaiter = - (this && this.__awaiter) || function(thisArg, _arguments, P, generator) { - return new (P || (P = Promise))(function(resolve, reject) { - function fulfilled(value) { - try { - step(generator.next(value)); - } catch (e) { - reject(e); - } - } - function rejected(value) { - try { - step(generator["throw"](value)); - } catch (e) { - reject(e); - } - } - function step(result) { - result.done ? resolve(result.value) - : new P(function(resolve) { resolve(result.value); }) - .then(fulfilled, rejected); - } - step((generator = generator.apply(thisArg, _arguments || [])).next()); - }); - }; -var __generator = (this && this.__generator) || function(thisArg, body) { - var _ = { - label : 0, - sent : function() { - if (t[0] & 1) - throw t[1]; - return t[1]; - }, - trys : [], - ops : [] - }, - f, y, t, g; - return g = {next : verb(0), "throw" : verb(1), "return" : verb(2)}, - typeof Symbol === "function" && - (g[Symbol.iterator] = function() { return this; }), - g; - function verb(n) { - return function(v) { return step([ n, v ]); }; - } - function step(op) { - if (f) - throw new TypeError("Generator is already executing."); - while (_) - try { - if (f = 1, - y && - (t = op[0] & 2 ? y["return"] - : op[0] ? y["throw"] || - ((t = y["return"]) && t.call(y), 0) - : y.next) && - !(t = t.call(y, op[1])).done) - return t; - if (y = 0, t) - op = [ op[0] & 2, t.value ]; - switch (op[0]) { - case 0: - case 1: - t = op; - break; - case 4: - _.label++; - return {value : op[1], done : false}; - case 5: - _.label++; - y = op[1]; - op = [ 0 ]; - continue; - case 7: - op = _.ops.pop(); - _.trys.pop(); - continue; - default: - if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && - (op[0] === 6 || op[0] === 2)) { - _ = 0; - continue; - } - if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { - _.label = op[1]; - break; - } - if (op[0] === 6 && _.label < t[1]) { - _.label = t[1]; - t = op; - break; - } - if (t && _.label < t[2]) { - _.label = t[2]; - _.ops.push(op); - break; - } - if (t[2]) - _.ops.pop(); - _.trys.pop(); - continue; - } - op = body.call(thisArg, _); - } catch (e) { - op = [ 6, e ]; - y = 0; - } finally { - f = t = 0; +var __extends = + (this && this.__extends) || + (function () { + var extendStatics = + Object.setPrototypeOf || + ({ __proto__: [] } instanceof Array && + function (d, b) { + d.__proto__ = b; + }) || + function (d, b) { + for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; + }; + return function (d, b) { + extendStatics(d, b); + function __() { + this.constructor = d; } - if (op[0] & 5) - throw op[1]; - return {value : op[0] ? op[1] : void 0, done : true}; - } -}; -Array.prototype.findIndex = function(predicate) { + d.prototype = + b === null + ? Object.create(b) + : ((__.prototype = b.prototype), new __()); + }; + })(); +var __awaiter = + (this && this.__awaiter) || + function (thisArg, _arguments, P, generator) { + return new (P || (P = Promise))(function (resolve, reject) { + function fulfilled(value) { + try { + step(generator.next(value)); + } catch (e) { + reject(e); + } + } + function rejected(value) { + try { + step(generator["throw"](value)); + } catch (e) { + reject(e); + } + } + function step(result) { + result.done + ? resolve(result.value) + : new P(function (resolve) { + resolve(result.value); + }).then(fulfilled, rejected); + } + step((generator = generator.apply(thisArg, _arguments || [])).next()); + }); + }; +var __generator = + (this && this.__generator) || + function (thisArg, body) { + var _ = { + label: 0, + sent: function () { + if (t[0] & 1) throw t[1]; + return t[1]; + }, + trys: [], + ops: [], + }, + f, + y, + t, + g; + return ( + (g = { next: verb(0), throw: verb(1), return: verb(2) }), + typeof Symbol === "function" && + (g[Symbol.iterator] = function () { + return this; + }), + g + ); + function verb(n) { + return function (v) { + return step([n, v]); + }; + } + function step(op) { + if (f) throw new TypeError("Generator is already executing."); + while (_) + try { + if ( + ((f = 1), + y && + (t = + op[0] & 2 + ? y["return"] + : op[0] + ? y["throw"] || ((t = y["return"]) && t.call(y), 0) + : y.next) && + !(t = t.call(y, op[1])).done) + ) + return t; + if (((y = 0), t)) op = [op[0] & 2, t.value]; + switch (op[0]) { + case 0: + case 1: + t = op; + break; + case 4: + _.label++; + return { value: op[1], done: false }; + case 5: + _.label++; + y = op[1]; + op = [0]; + continue; + case 7: + op = _.ops.pop(); + _.trys.pop(); + continue; + default: + if ( + !((t = _.trys), (t = t.length > 0 && t[t.length - 1])) && + (op[0] === 6 || op[0] === 2) + ) { + _ = 0; + continue; + } + if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { + _.label = op[1]; + break; + } + if (op[0] === 6 && _.label < t[1]) { + _.label = t[1]; + t = op; + break; + } + if (t && _.label < t[2]) { + _.label = t[2]; + _.ops.push(op); + break; + } + if (t[2]) _.ops.pop(); + _.trys.pop(); + continue; + } + op = body.call(thisArg, _); + } catch (e) { + op = [6, e]; + y = 0; + } finally { + f = t = 0; + } + if (op[0] & 5) throw op[1]; + return { value: op[0] ? op[1] : void 0, done: true }; + } + }; +Array.prototype.findIndex = function (predicate) { function findIndex(array, predicate) { for (var i = 0, len = array.length; i < len; i++) { if (predicate.call(arguments[2], array[i], i, array)) { @@ -139,25 +160,29 @@ Array.prototype.findIndex = function(predicate) { } return findIndex(this, predicate); }; -Array.prototype.any = function(predicate) { - function any(array, predicate) { return array.findIndex(predicate) > -1; } +Array.prototype.any = function (predicate) { + function any(array, predicate) { + return array.findIndex(predicate) > -1; + } return any(this, predicate); }; -Array.prototype.firstOrDefault = function(predicate) { +Array.prototype.firstOrDefault = function (predicate) { function firstOrDefault(array, predicate) { var index = array.findIndex(predicate); return index == -1 ? null : array[index]; } return firstOrDefault(this, predicate); }; -Array.prototype.find = function(predicate) { - function find(array, predicate) { return array.firstOrDefault(predicate); } +Array.prototype.find = function (predicate) { + function find(array, predicate) { + return array.firstOrDefault(predicate); + } return find(this, predicate); }; -Array.prototype.where = function(predicate) { +Array.prototype.where = function (predicate) { function where(array, predicate) { - if (typeof (array.reduce) === "function") { - return array.reduce(function(ret, element, index) { + if (typeof array.reduce === "function") { + return array.reduce(function (ret, element, index) { if (predicate.call(arguments[2], element, index, array)) { ret.push(element); } @@ -176,15 +201,19 @@ Array.prototype.where = function(predicate) { } return where(this, predicate); }; -Array.prototype.count = function(predicate) { - function count(array, predicate) { return array.where(predicate).length; } +Array.prototype.count = function (predicate) { + function count(array, predicate) { + return array.where(predicate).length; + } return count(this, predicate); }; -Array.prototype.findAll = function(predicate) { - function findAll(array, predicate) { return array.where(predicate); } +Array.prototype.findAll = function (predicate) { + function findAll(array, predicate) { + return array.where(predicate); + } return findAll(this, predicate); }; -Array.prototype.contains = function(value) { +Array.prototype.contains = function (value) { function contains(array, value) { for (var i = 0, len = array.length; i < len; i++) { if (array[i] == value) { @@ -195,7 +224,7 @@ Array.prototype.contains = function(value) { } return contains(this, value); }; -Array.prototype.removeAll = function(predicate) { +Array.prototype.removeAll = function (predicate) { function removeAll(array, predicate) { var index; do { @@ -207,9 +236,11 @@ Array.prototype.removeAll = function(predicate) { } removeAll(this, predicate); }; -Array.prototype.remove = function(element) { +Array.prototype.remove = function (element) { function remove(array, element) { - var index = array.findIndex(function(x) { return x === element; }); + var index = array.findIndex(function (x) { + return x === element; + }); if (index >= 0) { array.splice(index, 1); return true; @@ -219,18 +250,22 @@ Array.prototype.remove = function(element) { } return remove(this, element); }; -Array.prototype.removeAt = function(index) { - function removeAt(array, index) { array.splice(index, 1); } +Array.prototype.removeAt = function (index) { + function removeAt(array, index) { + array.splice(index, 1); + } return removeAt(this, index); }; -Array.prototype.removeRange = function(index, count) { - function removeRange(array, index, count) { array.splice(index, count); } +Array.prototype.removeRange = function (index, count) { + function removeRange(array, index, count) { + array.splice(index, count); + } return removeRange(this, index, count); }; -Array.prototype.select = function(selector) { +Array.prototype.select = function (selector) { function select(array, selector) { - if (typeof (array.reduce) === "function") { - return array.reduce(function(ret, element, index) { + if (typeof array.reduce === "function") { + return array.reduce(function (ret, element, index) { ret.push(selector.call(arguments[2], element, index, array)); return ret; }, []); @@ -244,44 +279,47 @@ Array.prototype.select = function(selector) { } return select(this, selector); }; -Array.prototype.orderBy = function(keySelector, comparer) { +Array.prototype.orderBy = function (keySelector, comparer) { function orderBy(array, keySelector, comparer) { - array.sort(function(x, y) { + array.sort(function (x, y) { var v1 = keySelector(x); var v2 = keySelector(y); if (comparer) { return comparer(v1, v2); } else { - return (v1 > v2) ? 1 : -1; + return v1 > v2 ? 1 : -1; } }); return array; } return orderBy(this, keySelector, comparer); }; -Array.prototype.orderByDescending = function(keySelector, comparer) { +Array.prototype.orderByDescending = function (keySelector, comparer) { function orderByDescending(array, keySelector, comparer) { - array.sort(function(x, y) { + array.sort(function (x, y) { var v1 = keySelector(x); var v2 = keySelector(y); if (comparer) { return -comparer(v1, v2); } else { - return (v1 < v2) ? 1 : -1; + return v1 < v2 ? 1 : -1; } }); return array; } return orderByDescending(this, keySelector, comparer); }; -Array.prototype.groupBy = function(keySelector) { +Array.prototype.groupBy = function (keySelector) { function groupBy(array, keySelector) { - if (typeof (array.reduce) === "function") { + if (typeof array.reduce === "function") { var keys_1 = []; - return array.reduce(function(groups, element, index) { + return array.reduce(function (groups, element, index) { var key = JSON.stringify( - keySelector.call(arguments[1], element, index, array)); - var index2 = keys_1.findIndex(function(x) { return x === key; }); + keySelector.call(arguments[1], element, index, array) + ); + var index2 = keys_1.findIndex(function (x) { + return x === key; + }); if (index2 < 0) { index2 = keys_1.push(key) - 1; } @@ -294,10 +332,13 @@ Array.prototype.groupBy = function(keySelector) { } else { var groups = []; var keys = []; - var _loop_1 = function(i, len) { + var _loop_1 = function (i, len) { var key = JSON.stringify( - keySelector.call(arguments_1[1], array[i], i, array)); - var index = keys.findIndex(function(x) { return x === key; }); + keySelector.call(arguments_1[1], array[i], i, array) + ); + var index = keys.findIndex(function (x) { + return x === key; + }); if (index < 0) { index = keys.push(key) - 1; } @@ -315,7 +356,7 @@ Array.prototype.groupBy = function(keySelector) { } return groupBy(this, keySelector); }; -Array.prototype.sum = function(selector) { +Array.prototype.sum = function (selector) { function sum(array, selector) { var ret; for (var i = 0, len = array.length; i < len; i++) { @@ -337,17 +378,17 @@ Array.prototype.sum = function(selector) { } return sum(this, selector); }; -var PriorityQueueNode = (function() { +var PriorityQueueNode = (function () { function PriorityQueueNode() { this.priority = 0; this.insertionIndex = 0; this.queueIndex = 0; } return PriorityQueueNode; -}()); -var AStarPathfinder = (function() { +})(); +var AStarPathfinder = (function () { function AStarPathfinder() {} - AStarPathfinder.search = function(graph, start, goal) { + AStarPathfinder.search = function (graph, start, goal) { var _this = this; var foundPath = false; var cameFrom = new Map(); @@ -356,15 +397,15 @@ var AStarPathfinder = (function() { var frontier = new PriorityQueue(1000); frontier.enqueue(new AStarNode(start), 0); costSoFar.set(start, 0); - var _loop_2 = function() { + var _loop_2 = function () { var current = frontier.dequeue(); if (JSON.stringify(current.data) == JSON.stringify(goal)) { foundPath = true; return "break"; } - graph.getNeighbors(current.data).forEach(function(next) { + graph.getNeighbors(current.data).forEach(function (next) { var newCost = - costSoFar.get(current.data) + graph.cost(current.data, next); + costSoFar.get(current.data) + graph.cost(current.data, next); if (!_this.hasKey(costSoFar, next) || newCost < costSoFar.get(next)) { costSoFar.set(next, newCost); var priority = newCost + graph.heuristic(next, goal); @@ -375,32 +416,29 @@ var AStarPathfinder = (function() { }; while (frontier.count > 0) { var state_1 = _loop_2(); - if (state_1 === "break") - break; + if (state_1 === "break") break; } return foundPath ? this.recontructPath(cameFrom, start, goal) : null; }; - AStarPathfinder.hasKey = function(map, compareKey) { + AStarPathfinder.hasKey = function (map, compareKey) { var iterator = map.keys(); var r; - while (r = iterator.next(), !r.done) { - if (JSON.stringify(r.value) == JSON.stringify(compareKey)) - return true; + while (((r = iterator.next()), !r.done)) { + if (JSON.stringify(r.value) == JSON.stringify(compareKey)) return true; } return false; }; - AStarPathfinder.getKey = function(map, compareKey) { + AStarPathfinder.getKey = function (map, compareKey) { var iterator = map.keys(); var valueIterator = map.values(); var r; var v; - while (r = iterator.next(), v = valueIterator.next(), !r.done) { - if (JSON.stringify(r.value) == JSON.stringify(compareKey)) - return v.value; + while (((r = iterator.next()), (v = valueIterator.next()), !r.done)) { + if (JSON.stringify(r.value) == JSON.stringify(compareKey)) return v.value; } return null; }; - AStarPathfinder.recontructPath = function(cameFrom, start, goal) { + AStarPathfinder.recontructPath = function (cameFrom, start, goal) { var path = []; var current = goal; path.push(goal); @@ -412,8 +450,8 @@ var AStarPathfinder = (function() { return path; }; return AStarPathfinder; -}()); -var AStarNode = (function(_super) { +})(); +var AStarNode = (function (_super) { __extends(AStarNode, _super); function AStarNode(data) { var _this = _super.call(this) || this; @@ -421,11 +459,14 @@ var AStarNode = (function(_super) { return _this; } return AStarNode; -}(PriorityQueueNode)); -var AstarGridGraph = (function() { +})(PriorityQueueNode); +var AstarGridGraph = (function () { function AstarGridGraph(width, height) { this.dirs = [ - new Point(1, 0), new Point(0, -1), new Point(-1, 0), new Point(0, 1) + new Point(1, 0), + new Point(0, -1), + new Point(-1, 0), + new Point(0, 1), ]; this.walls = []; this.weightedNodes = []; @@ -435,55 +476,65 @@ var AstarGridGraph = (function() { this._width = width; this._height = height; } - AstarGridGraph.prototype.isNodeInBounds = function(node) { - return 0 <= node.x && node.x < this._width && 0 <= node.y && - node.y < this._height; + AstarGridGraph.prototype.isNodeInBounds = function (node) { + return ( + 0 <= node.x && + node.x < this._width && + 0 <= node.y && + node.y < this._height + ); }; - AstarGridGraph.prototype.isNodePassable = function(node) { - return !this.walls.firstOrDefault(function( - wall) { return JSON.stringify(wall) == JSON.stringify(node); }); + AstarGridGraph.prototype.isNodePassable = function (node) { + return !this.walls.firstOrDefault(function (wall) { + return JSON.stringify(wall) == JSON.stringify(node); + }); }; - AstarGridGraph.prototype.search = function( - start, goal) { return AStarPathfinder.search(this, start, goal); }; - AstarGridGraph.prototype.getNeighbors = function(node) { + AstarGridGraph.prototype.search = function (start, goal) { + return AStarPathfinder.search(this, start, goal); + }; + AstarGridGraph.prototype.getNeighbors = function (node) { var _this = this; this._neighbors.length = 0; - this.dirs.forEach(function(dir) { + this.dirs.forEach(function (dir) { var next = new Point(node.x + dir.x, node.y + dir.y); if (_this.isNodeInBounds(next) && _this.isNodePassable(next)) _this._neighbors.push(next); }); return this._neighbors; }; - AstarGridGraph.prototype.cost = function(from, to) { - return this.weightedNodes.find(function( - p) { return JSON.stringify(p) == JSON.stringify(to); }) - ? this.weightedNodeWeight - : this.defaultWeight; + AstarGridGraph.prototype.cost = function (from, to) { + return this.weightedNodes.find(function (p) { + return JSON.stringify(p) == JSON.stringify(to); + }) + ? this.weightedNodeWeight + : this.defaultWeight; + }; + AstarGridGraph.prototype.heuristic = function (node, goal) { + return Math.abs(node.x - goal.x) + Math.abs(node.y - goal.y); }; - AstarGridGraph.prototype.heuristic = function( - node, - goal) { return Math.abs(node.x - goal.x) + Math.abs(node.y - goal.y); }; return AstarGridGraph; -}()); -var PriorityQueue = (function() { +})(); +var PriorityQueue = (function () { function PriorityQueue(maxNodes) { this._numNodes = 0; this._nodes = new Array(maxNodes + 1); this._numNodesEverEnqueued = 0; } - PriorityQueue.prototype.clear = function() { + PriorityQueue.prototype.clear = function () { this._nodes.splice(1, this._numNodes); this._numNodes = 0; }; Object.defineProperty(PriorityQueue.prototype, "count", { - get : function() { return this._numNodes; }, - enumerable : true, - configurable : true + get: function () { + return this._numNodes; + }, + enumerable: true, + configurable: true, }); - PriorityQueue.prototype.contains = function( - node) { return (this._nodes[node.queueIndex] == node); }; - PriorityQueue.prototype.enqueue = function(node, priority) { + PriorityQueue.prototype.contains = function (node) { + return this._nodes[node.queueIndex] == node; + }; + PriorityQueue.prototype.enqueue = function (node, priority) { node.priority = priority; this._numNodes++; this._nodes[this._numNodes] = node; @@ -491,12 +542,12 @@ var PriorityQueue = (function() { node.insertionIndex = this._numNodesEverEnqueued++; this.cascadeUp(this._nodes[this._numNodes]); }; - PriorityQueue.prototype.dequeue = function() { + PriorityQueue.prototype.dequeue = function () { var returnMe = this._nodes[1]; this.remove(returnMe); return returnMe; }; - PriorityQueue.prototype.remove = function(node) { + PriorityQueue.prototype.remove = function (node) { if (node.queueIndex == this._numNodes) { this._nodes[this._numNodes] = null; this._numNodes--; @@ -508,25 +559,28 @@ var PriorityQueue = (function() { this._numNodes--; this.onNodeUpdated(formerLastNode); }; - PriorityQueue.prototype.isValidQueue = function() { + PriorityQueue.prototype.isValidQueue = function () { for (var i = 1; i < this._nodes.length; i++) { if (this._nodes[i]) { var childLeftIndex = 2 * i; - if (childLeftIndex < this._nodes.length && - this._nodes[childLeftIndex] && - this.hasHigherPriority(this._nodes[childLeftIndex], this._nodes[i])) + if ( + childLeftIndex < this._nodes.length && + this._nodes[childLeftIndex] && + this.hasHigherPriority(this._nodes[childLeftIndex], this._nodes[i]) + ) return false; var childRightIndex = childLeftIndex + 1; - if (childRightIndex < this._nodes.length && - this._nodes[childRightIndex] && - this.hasHigherPriority(this._nodes[childRightIndex], - this._nodes[i])) + if ( + childRightIndex < this._nodes.length && + this._nodes[childRightIndex] && + this.hasHigherPriority(this._nodes[childRightIndex], this._nodes[i]) + ) return false; } } return true; }; - PriorityQueue.prototype.onNodeUpdated = function(node) { + PriorityQueue.prototype.onNodeUpdated = function (node) { var parentIndex = Math.floor(node.queueIndex / 2); var parentNode = this._nodes[parentIndex]; if (parentIndex > 0 && this.hasHigherPriority(node, parentNode)) { @@ -535,7 +589,7 @@ var PriorityQueue = (function() { this.cascadeDown(node); } }; - PriorityQueue.prototype.cascadeDown = function(node) { + PriorityQueue.prototype.cascadeDown = function (node) { var newParent; var finalQueueIndex = node.queueIndex; while (true) { @@ -569,46 +623,47 @@ var PriorityQueue = (function() { } } }; - PriorityQueue.prototype.cascadeUp = function(node) { + PriorityQueue.prototype.cascadeUp = function (node) { var parent = Math.floor(node.queueIndex / 2); while (parent >= 1) { var parentNode = this._nodes[parent]; - if (this.hasHigherPriority(parentNode, node)) - break; + if (this.hasHigherPriority(parentNode, node)) break; this.swap(node, parentNode); parent = Math.floor(node.queueIndex / 2); } }; - PriorityQueue.prototype.swap = function(node1, node2) { + PriorityQueue.prototype.swap = function (node1, node2) { this._nodes[node1.queueIndex] = node2; this._nodes[node2.queueIndex] = node1; var temp = node1.queueIndex; node1.queueIndex = node2.queueIndex; node2.queueIndex = temp; }; - PriorityQueue.prototype.hasHigherPriority = function(higher, lower) { - return (higher.priority < lower.priority || - (higher.priority == lower.priority && - higher.insertionIndex < lower.insertionIndex)); + PriorityQueue.prototype.hasHigherPriority = function (higher, lower) { + return ( + higher.priority < lower.priority || + (higher.priority == lower.priority && + higher.insertionIndex < lower.insertionIndex) + ); }; return PriorityQueue; -}()); -var BreadthFirstPathfinder = (function() { +})(); +var BreadthFirstPathfinder = (function () { function BreadthFirstPathfinder() {} - BreadthFirstPathfinder.search = function(graph, start, goal) { + BreadthFirstPathfinder.search = function (graph, start, goal) { var _this = this; var foundPath = false; var frontier = []; frontier.unshift(start); var cameFrom = new Map(); cameFrom.set(start, start); - var _loop_3 = function() { + var _loop_3 = function () { var current = frontier.shift(); if (JSON.stringify(current) == JSON.stringify(goal)) { foundPath = true; return "break"; } - graph.getNeighbors(current).forEach(function(next) { + graph.getNeighbors(current).forEach(function (next) { if (!_this.hasKey(cameFrom, next)) { frontier.unshift(next); cameFrom.set(next, current); @@ -617,41 +672,43 @@ var BreadthFirstPathfinder = (function() { }; while (frontier.length > 0) { var state_2 = _loop_3(); - if (state_2 === "break") - break; + if (state_2 === "break") break; } - return foundPath ? AStarPathfinder.recontructPath(cameFrom, start, goal) - : null; + return foundPath + ? AStarPathfinder.recontructPath(cameFrom, start, goal) + : null; }; - BreadthFirstPathfinder.hasKey = function(map, compareKey) { + BreadthFirstPathfinder.hasKey = function (map, compareKey) { var iterator = map.keys(); var r; - while (r = iterator.next(), !r.done) { - if (JSON.stringify(r.value) == JSON.stringify(compareKey)) - return true; + while (((r = iterator.next()), !r.done)) { + if (JSON.stringify(r.value) == JSON.stringify(compareKey)) return true; } return false; }; return BreadthFirstPathfinder; -}()); -var UnweightedGraph = (function() { - function UnweightedGraph() { this.edges = new Map(); } - UnweightedGraph.prototype.addEdgesForNode = function(node, edges) { +})(); +var UnweightedGraph = (function () { + function UnweightedGraph() { + this.edges = new Map(); + } + UnweightedGraph.prototype.addEdgesForNode = function (node, edges) { this.edges.set(node, edges); return this; }; - UnweightedGraph.prototype.getNeighbors = function( - node) { return this.edges.get(node); }; + UnweightedGraph.prototype.getNeighbors = function (node) { + return this.edges.get(node); + }; return UnweightedGraph; -}()); -var Point = (function() { +})(); +var Point = (function () { function Point(x, y) { this.x = x ? x : 0; this.y = y ? y : this.x; } return Point; -}()); -var UnweightedGridGraph = (function() { +})(); +var UnweightedGridGraph = (function () { function UnweightedGridGraph(width, height, allowDiagonalSearch) { if (allowDiagonalSearch === void 0) { allowDiagonalSearch = false; @@ -660,31 +717,42 @@ var UnweightedGridGraph = (function() { this._neighbors = new Array(4); this._width = width; this._hegiht = height; - this._dirs = allowDiagonalSearch ? UnweightedGridGraph.COMPASS_DIRS - : UnweightedGridGraph.CARDINAL_DIRS; + this._dirs = allowDiagonalSearch + ? UnweightedGridGraph.COMPASS_DIRS + : UnweightedGridGraph.CARDINAL_DIRS; } - UnweightedGridGraph.prototype.isNodeInBounds = function(node) { - return 0 <= node.x && node.x < this._width && 0 <= node.y && - node.y < this._hegiht; + UnweightedGridGraph.prototype.isNodeInBounds = function (node) { + return ( + 0 <= node.x && + node.x < this._width && + 0 <= node.y && + node.y < this._hegiht + ); }; - UnweightedGridGraph.prototype.isNodePassable = function(node) { - return !this.walls.firstOrDefault(function( - wall) { return JSON.stringify(wall) == JSON.stringify(node); }); + UnweightedGridGraph.prototype.isNodePassable = function (node) { + return !this.walls.firstOrDefault(function (wall) { + return JSON.stringify(wall) == JSON.stringify(node); + }); }; - UnweightedGridGraph.prototype.getNeighbors = function(node) { + UnweightedGridGraph.prototype.getNeighbors = function (node) { var _this = this; this._neighbors.length = 0; - this._dirs.forEach(function(dir) { + this._dirs.forEach(function (dir) { var next = new Point(node.x + dir.x, node.y + dir.y); if (_this.isNodeInBounds(next) && _this.isNodePassable(next)) _this._neighbors.push(next); }); return this._neighbors; }; - UnweightedGridGraph.prototype.search = function( - start, goal) { return BreadthFirstPathfinder.search(this, start, goal); }; - UnweightedGridGraph.CARDINAL_DIRS = - [ new Point(1, 0), new Point(0, -1), new Point(-1, 0), new Point(0, -1) ]; + UnweightedGridGraph.prototype.search = function (start, goal) { + return BreadthFirstPathfinder.search(this, start, goal); + }; + UnweightedGridGraph.CARDINAL_DIRS = [ + new Point(1, 0), + new Point(0, -1), + new Point(-1, 0), + new Point(0, -1), + ]; UnweightedGridGraph.COMPASS_DIRS = [ new Point(1, 0), new Point(1, -1), @@ -696,8 +764,8 @@ var UnweightedGridGraph = (function() { new Point(1, 1), ]; return UnweightedGridGraph; -}()); -var WeightedGridGraph = (function() { +})(); +var WeightedGridGraph = (function () { function WeightedGridGraph(width, height, allowDiagonalSearch) { if (allowDiagonalSearch === void 0) { allowDiagonalSearch = false; @@ -709,37 +777,49 @@ var WeightedGridGraph = (function() { this._neighbors = new Array(4); this._width = width; this._height = height; - this._dirs = allowDiagonalSearch ? WeightedGridGraph.COMPASS_DIRS - : WeightedGridGraph.CARDINAL_DIRS; + this._dirs = allowDiagonalSearch + ? WeightedGridGraph.COMPASS_DIRS + : WeightedGridGraph.CARDINAL_DIRS; } - WeightedGridGraph.prototype.isNodeInBounds = function(node) { - return 0 <= node.x && node.x < this._width && 0 <= node.y && - node.y < this._height; + WeightedGridGraph.prototype.isNodeInBounds = function (node) { + return ( + 0 <= node.x && + node.x < this._width && + 0 <= node.y && + node.y < this._height + ); }; - WeightedGridGraph.prototype.isNodePassable = function(node) { - return !this.walls.firstOrDefault(function( - wall) { return JSON.stringify(wall) == JSON.stringify(node); }); + WeightedGridGraph.prototype.isNodePassable = function (node) { + return !this.walls.firstOrDefault(function (wall) { + return JSON.stringify(wall) == JSON.stringify(node); + }); }; - WeightedGridGraph.prototype.search = function( - start, goal) { return WeightedPathfinder.search(this, start, goal); }; - WeightedGridGraph.prototype.getNeighbors = function(node) { + WeightedGridGraph.prototype.search = function (start, goal) { + return WeightedPathfinder.search(this, start, goal); + }; + WeightedGridGraph.prototype.getNeighbors = function (node) { var _this = this; this._neighbors.length = 0; - this._dirs.forEach(function(dir) { + this._dirs.forEach(function (dir) { var next = new Point(node.x + dir.x, node.y + dir.y); if (_this.isNodeInBounds(next) && _this.isNodePassable(next)) _this._neighbors.push(next); }); return this._neighbors; }; - WeightedGridGraph.prototype.cost = function(from, to) { - return this.weightedNodes.find(function( - t) { return JSON.stringify(t) == JSON.stringify(to); }) - ? this.weightedNodeWeight - : this.defaultWeight; + WeightedGridGraph.prototype.cost = function (from, to) { + return this.weightedNodes.find(function (t) { + return JSON.stringify(t) == JSON.stringify(to); + }) + ? this.weightedNodeWeight + : this.defaultWeight; }; - WeightedGridGraph.CARDINAL_DIRS = - [ new Point(1, 0), new Point(0, -1), new Point(-1, 0), new Point(0, 1) ]; + WeightedGridGraph.CARDINAL_DIRS = [ + new Point(1, 0), + new Point(0, -1), + new Point(-1, 0), + new Point(0, 1), + ]; WeightedGridGraph.COMPASS_DIRS = [ new Point(1, 0), new Point(1, -1), @@ -751,8 +831,8 @@ var WeightedGridGraph = (function() { new Point(1, 1), ]; return WeightedGridGraph; -}()); -var WeightedNode = (function(_super) { +})(); +var WeightedNode = (function (_super) { __extends(WeightedNode, _super); function WeightedNode(data) { var _this = _super.call(this) || this; @@ -760,10 +840,10 @@ var WeightedNode = (function(_super) { return _this; } return WeightedNode; -}(PriorityQueueNode)); -var WeightedPathfinder = (function() { +})(PriorityQueueNode); +var WeightedPathfinder = (function () { function WeightedPathfinder() {} - WeightedPathfinder.search = function(graph, start, goal) { + WeightedPathfinder.search = function (graph, start, goal) { var _this = this; var foundPath = false; var cameFrom = new Map(); @@ -772,15 +852,15 @@ var WeightedPathfinder = (function() { var frontier = new PriorityQueue(1000); frontier.enqueue(new WeightedNode(start), 0); costSoFar.set(start, 0); - var _loop_4 = function() { + var _loop_4 = function () { var current = frontier.dequeue(); if (JSON.stringify(current.data) == JSON.stringify(goal)) { foundPath = true; return "break"; } - graph.getNeighbors(current.data).forEach(function(next) { + graph.getNeighbors(current.data).forEach(function (next) { var newCost = - costSoFar.get(current.data) + graph.cost(current.data, next); + costSoFar.get(current.data) + graph.cost(current.data, next); if (!_this.hasKey(costSoFar, next) || newCost < costSoFar.get(next)) { costSoFar.set(next, newCost); var priprity = newCost; @@ -791,32 +871,29 @@ var WeightedPathfinder = (function() { }; while (frontier.count > 0) { var state_3 = _loop_4(); - if (state_3 === "break") - break; + if (state_3 === "break") break; } return foundPath ? this.recontructPath(cameFrom, start, goal) : null; }; - WeightedPathfinder.hasKey = function(map, compareKey) { + WeightedPathfinder.hasKey = function (map, compareKey) { var iterator = map.keys(); var r; - while (r = iterator.next(), !r.done) { - if (JSON.stringify(r.value) == JSON.stringify(compareKey)) - return true; + while (((r = iterator.next()), !r.done)) { + if (JSON.stringify(r.value) == JSON.stringify(compareKey)) return true; } return false; }; - WeightedPathfinder.getKey = function(map, compareKey) { + WeightedPathfinder.getKey = function (map, compareKey) { var iterator = map.keys(); var valueIterator = map.values(); var r; var v; - while (r = iterator.next(), v = valueIterator.next(), !r.done) { - if (JSON.stringify(r.value) == JSON.stringify(compareKey)) - return v.value; + while (((r = iterator.next()), (v = valueIterator.next()), !r.done)) { + if (JSON.stringify(r.value) == JSON.stringify(compareKey)) return v.value; } return null; }; - WeightedPathfinder.recontructPath = function(cameFrom, start, goal) { + WeightedPathfinder.recontructPath = function (cameFrom, start, goal) { var path = []; var current = goal; path.push(goal); @@ -828,30 +905,32 @@ var WeightedPathfinder = (function() { return path; }; return WeightedPathfinder; -}()); -var DebugDefaults = (function() { +})(); +var DebugDefaults = (function () { function DebugDefaults() {} - DebugDefaults.verletParticle = 0xDC345E; - DebugDefaults.verletConstraintEdge = 0x433E36; + DebugDefaults.verletParticle = 0xdc345e; + DebugDefaults.verletConstraintEdge = 0x433e36; return DebugDefaults; -}()); -var Component = (function(_super) { +})(); +var Component = (function (_super) { __extends(Component, _super); function Component() { - var _this = _super !== null && _super.apply(this, arguments) || this; + var _this = (_super !== null && _super.apply(this, arguments)) || this; _this._enabled = true; _this.updateInterval = 1; return _this; } Object.defineProperty(Component.prototype, "enabled", { - get : function() { + get: function () { return this.entity ? this.entity.enabled && this._enabled : this._enabled; }, - set : function(value) { this.setEnabled(value); }, - enumerable : true, - configurable : true + set: function (value) { + this.setEnabled(value); + }, + enumerable: true, + configurable: true, }); - Component.prototype.setEnabled = function(isEnabled) { + Component.prototype.setEnabled = function (isEnabled) { if (this._enabled != isEnabled) { this._enabled = isEnabled; if (this._enabled) { @@ -862,26 +941,28 @@ var Component = (function(_super) { } return this; }; - Component.prototype.initialize = function() {}; - Component.prototype.onAddedToEntity = function() {}; - Component.prototype.onRemovedFromEntity = function() {}; - Component.prototype.onEnabled = function() {}; - Component.prototype.onDisabled = function() {}; - Component.prototype.onEntityTransformChanged = function(comp) {}; - Component.prototype.update = function() {}; - Component.prototype.debugRender = function() {}; - Component.prototype.registerComponent = function() { - this.entity.componentBits.set(ComponentTypeManager.getIndexFor(this), - false); + Component.prototype.initialize = function () {}; + Component.prototype.onAddedToEntity = function () {}; + Component.prototype.onRemovedFromEntity = function () {}; + Component.prototype.onEnabled = function () {}; + Component.prototype.onDisabled = function () {}; + Component.prototype.onEntityTransformChanged = function (comp) {}; + Component.prototype.update = function () {}; + Component.prototype.debugRender = function () {}; + Component.prototype.registerComponent = function () { + this.entity.componentBits.set( + ComponentTypeManager.getIndexFor(this), + false + ); this.entity.scene.entityProcessors.onComponentAdded(this.entity); }; - Component.prototype.deregisterComponent = function() { + Component.prototype.deregisterComponent = function () { this.entity.componentBits.set(ComponentTypeManager.getIndexFor(this)); this.entity.scene.entityProcessors.onComponentRemoved(this.entity); }; return Component; -}(egret.DisplayObjectContainer)); -var Entity = (function(_super) { +})(egret.DisplayObjectContainer); +var Entity = (function (_super) { __extends(Entity, _super); function Entity(name) { var _this = _super.call(this) || this; @@ -896,61 +977,81 @@ var Entity = (function(_super) { return _this; } Object.defineProperty(Entity.prototype, "isDestoryed", { - get : function() { return this._isDestoryed; }, - enumerable : true, - configurable : true + get: function () { + return this._isDestoryed; + }, + enumerable: true, + configurable: true, }); Object.defineProperty(Entity.prototype, "position", { - get : function() { return this._position; }, - set : function(value) { this._position = value; }, - enumerable : true, - configurable : true + get: function () { + return this._position; + }, + set: function (value) { + this._position = value; + }, + enumerable: true, + configurable: true, }); Object.defineProperty(Entity.prototype, "scale", { - get : function() { return new Vector2(this.scaleX, this.scaleY); }, - set : function(value) { + get: function () { + return new Vector2(this.scaleX, this.scaleY); + }, + set: function (value) { this.scaleX = value.x; this.scaleY = value.y; }, - enumerable : true, - configurable : true + enumerable: true, + configurable: true, }); Object.defineProperty(Entity.prototype, "enabled", { - get : function() { return this._enabled; }, - set : function(value) { this.setEnabled(value); }, - enumerable : true, - configurable : true + get: function () { + return this._enabled; + }, + set: function (value) { + this.setEnabled(value); + }, + enumerable: true, + configurable: true, }); - Entity.prototype.setEnabled = function(isEnabled) { + Entity.prototype.setEnabled = function (isEnabled) { if (this._enabled != isEnabled) { this._enabled = isEnabled; } return this; }; Object.defineProperty(Entity.prototype, "tag", { - get : function() { return this._tag; }, - set : function(value) { this.setTag(value); }, - enumerable : true, - configurable : true + get: function () { + return this._tag; + }, + set: function (value) { + this.setTag(value); + }, + enumerable: true, + configurable: true, }); Object.defineProperty(Entity.prototype, "stage", { - get : function() { - if (!this.scene) - return null; + get: function () { + if (!this.scene) return null; return this.scene.stage; }, - enumerable : true, - configurable : true + enumerable: true, + configurable: true, }); Object.defineProperty(Entity.prototype, "updateOrder", { - get : function() { return this._updateOrder; }, - set : function(value) { this.setUpdateOrder(value); }, - enumerable : true, - configurable : true + get: function () { + return this._updateOrder; + }, + set: function (value) { + this.setUpdateOrder(value); + }, + enumerable: true, + configurable: true, }); - Entity.prototype.roundPosition = - function() { this.position = Vector2Ext.round(this.position); }; - Entity.prototype.setUpdateOrder = function(updateOrder) { + Entity.prototype.roundPosition = function () { + this.position = Vector2Ext.round(this.position); + }; + Entity.prototype.setUpdateOrder = function (updateOrder) { if (this._updateOrder != updateOrder) { this._updateOrder = updateOrder; if (this.scene) { @@ -958,7 +1059,7 @@ var Entity = (function(_super) { return this; } }; - Entity.prototype.setTag = function(tag) { + Entity.prototype.setTag = function (tag) { if (this._tag != tag) { if (this.scene) { this.scene.entities.removeFromTagList(this); @@ -970,7 +1071,7 @@ var Entity = (function(_super) { } return this; }; - Entity.prototype.attachToScene = function(newScene) { + Entity.prototype.attachToScene = function (newScene) { this.scene = newScene; newScene.entities.add(this); this.components.registerAllComponents(); @@ -978,34 +1079,36 @@ var Entity = (function(_super) { this.getChildAt(i).entity.attachToScene(newScene); } }; - Entity.prototype.detachFromScene = function() { + Entity.prototype.detachFromScene = function () { this.scene.entities.remove(this); this.components.deregisterAllComponents(); for (var i = 0; i < this.numChildren; i++) this.getChildAt(i).entity.detachFromScene(); }; - Entity.prototype.addComponent = function(component) { + Entity.prototype.addComponent = function (component) { component.entity = this; this.components.add(component); this.addChild(component); component.initialize(); return component; }; - Entity.prototype.hasComponent = function( - type) { return this.components.getComponent(type, false) != null; }; - Entity.prototype.getOrCreateComponent = function(type) { + Entity.prototype.hasComponent = function (type) { + return this.components.getComponent(type, false) != null; + }; + Entity.prototype.getOrCreateComponent = function (type) { var comp = this.components.getComponent(type, true); if (!comp) { comp = this.addComponent(type); } return comp; }; - Entity.prototype.getComponent = function( - type) { return this.components.getComponent(type, false); }; - Entity.prototype.getComponents = function(typeName, componentList) { + Entity.prototype.getComponent = function (type) { + return this.components.getComponent(type, false); + }; + Entity.prototype.getComponents = function (typeName, componentList) { return this.components.getComponents(typeName, componentList); }; - Entity.prototype.removeComponentForType = function(type) { + Entity.prototype.removeComponentForType = function (type) { var comp = this.getComponent(type); if (comp) { this.removeComponent(comp); @@ -1013,22 +1116,25 @@ var Entity = (function(_super) { } return false; }; - Entity.prototype.removeComponent = function( - component) { this.components.remove(component); }; - Entity.prototype.removeAllComponents = function() { + Entity.prototype.removeComponent = function (component) { + this.components.remove(component); + }; + Entity.prototype.removeAllComponents = function () { for (var i = 0; i < this.components.count; i++) { this.removeComponent(this.components.buffer[i]); } }; - Entity.prototype.update = function() { this.components.update(); }; - Entity.prototype.onAddedToScene = function() {}; - Entity.prototype.onRemovedFromScene = function() { - if (this._isDestoryed) - this.components.removeAllComponents(); + Entity.prototype.update = function () { + this.components.update(); }; - Entity.prototype.onTransformChanged = function( - comp) { this.components.onEntityTransformChanged(comp); }; - Entity.prototype.destroy = function() { + Entity.prototype.onAddedToScene = function () {}; + Entity.prototype.onRemovedFromScene = function () { + if (this._isDestoryed) this.components.removeAllComponents(); + }; + Entity.prototype.onTransformChanged = function (comp) { + this.components.onEntityTransformChanged(comp); + }; + Entity.prototype.destroy = function () { this._isDestoryed = true; this.scene.entities.remove(this); this.removeChildren(); @@ -1038,8 +1144,8 @@ var Entity = (function(_super) { } }; return Entity; -}(egret.DisplayObjectContainer)); -var Scene = (function(_super) { +})(egret.DisplayObjectContainer); +var Scene = (function (_super) { __extends(Scene, _super); function Scene() { var _this = _super.call(this) || this; @@ -1056,12 +1162,12 @@ var Scene = (function(_super) { _this.addEventListener(egret.Event.DEACTIVATE, _this.onDeactive, _this); return _this; } - Scene.prototype.createEntity = function(name) { + Scene.prototype.createEntity = function (name) { var entity = new Entity(name); entity.position = new Vector2(0, 0); return this.addEntity(entity); }; - Scene.prototype.addEntity = function(entity) { + Scene.prototype.addEntity = function (entity) { this.entities.add(entity); entity.scene = this; this.addChild(entity); @@ -1069,40 +1175,42 @@ var Scene = (function(_super) { this.addEntity(entity.getChildAt(i).entity); return entity; }; - Scene.prototype.destroyAllEntities = function() { + Scene.prototype.destroyAllEntities = function () { for (var i = 0; i < this.entities.count; i++) { this.entities.buffer[i].destroy(); } }; - Scene.prototype.findEntity = function( - name) { return this.entities.findEntity(name); }; - Scene.prototype.addEntityProcessor = function(processor) { + Scene.prototype.findEntity = function (name) { + return this.entities.findEntity(name); + }; + Scene.prototype.addEntityProcessor = function (processor) { processor.scene = this; this.entityProcessors.add(processor); return processor; }; - Scene.prototype.removeEntityProcessor = function( - processor) { this.entityProcessors.remove(processor); }; - Scene.prototype.getEntityProcessor = - function() { return this.entityProcessors.getProcessor(); }; - Scene.prototype.addRenderer = function(renderer) { + Scene.prototype.removeEntityProcessor = function (processor) { + this.entityProcessors.remove(processor); + }; + Scene.prototype.getEntityProcessor = function () { + return this.entityProcessors.getProcessor(); + }; + Scene.prototype.addRenderer = function (renderer) { this._renderers.push(renderer); this._renderers.sort(); renderer.onAddedToScene(this); return renderer; }; - Scene.prototype.getRenderer = function(type) { + Scene.prototype.getRenderer = function (type) { for (var i = 0; i < this._renderers.length; i++) { - if (this._renderers[i] instanceof type) - return this._renderers[i]; + if (this._renderers[i] instanceof type) return this._renderers[i]; } return null; }; - Scene.prototype.removeRenderer = function(renderer) { + Scene.prototype.removeRenderer = function (renderer) { this._renderers.remove(renderer); renderer.unload(); }; - Scene.prototype.begin = function() { + Scene.prototype.begin = function () { if (SceneManager.sceneTransition) { SceneManager.stage.addChildAt(this, SceneManager.stage.numChildren - 1); } else { @@ -1111,19 +1219,22 @@ var Scene = (function(_super) { if (this._renderers.length == 0) { this.addRenderer(new DefaultRenderer()); console.warn( - "场景开始时没有渲染器 自动添加DefaultRenderer以保证能够正常渲染"); + "场景开始时没有渲染器 自动添加DefaultRenderer以保证能够正常渲染" + ); } - this.camera = - this.createEntity("camera").getOrCreateComponent(new Camera()); + this.camera = this.createEntity("camera").getOrCreateComponent( + new Camera() + ); Physics.reset(); - if (this.entityProcessors) - this.entityProcessors.begin(); - this.camera.onSceneSizeChanged(this.stage.stageWidth, - this.stage.stageHeight); + if (this.entityProcessors) this.entityProcessors.begin(); + this.camera.onSceneSizeChanged( + this.stage.stageWidth, + this.stage.stageHeight + ); this._didSceneBegin = true; this.onStart(); }; - Scene.prototype.end = function() { + Scene.prototype.end = function () { this._didSceneBegin = false; this.removeEventListener(egret.Event.DEACTIVATE, this.onDeactive, this); this.removeEventListener(egret.Event.ACTIVATE, this.onActive, this); @@ -1138,28 +1249,27 @@ var Scene = (function(_super) { Physics.clear(); this.camera = null; this.content.dispose(); - if (this.entityProcessors) - this.entityProcessors.end(); + if (this.entityProcessors) this.entityProcessors.end(); this.unload(); }; - Scene.prototype.onStart = function() { - return __awaiter(this, void 0, void 0, function() { - return __generator(this, function(_a) { return [ 2 ]; }); + Scene.prototype.onStart = function () { + return __awaiter(this, void 0, void 0, function () { + return __generator(this, function (_a) { + return [2]; + }); }); }; - Scene.prototype.onActive = function() {}; - Scene.prototype.onDeactive = function() {}; - Scene.prototype.unload = function() {}; - Scene.prototype.update = function() { + Scene.prototype.onActive = function () {}; + Scene.prototype.onDeactive = function () {}; + Scene.prototype.unload = function () {}; + Scene.prototype.update = function () { this.entities.updateLists(); - if (this.entityProcessors) - this.entityProcessors.update(); + if (this.entityProcessors) this.entityProcessors.update(); this.entities.update(); - if (this.entityProcessors) - this.entityProcessors.lateUpdate(); + if (this.entityProcessors) this.entityProcessors.lateUpdate(); this.renderableComponents.updateList(); }; - Scene.prototype.postRender = function() { + Scene.prototype.postRender = function () { var enabledCounter = 0; if (this.enablePostProcessing) { for (var i = 0; i < this._postProcessors.length; i++) { @@ -1171,34 +1281,37 @@ var Scene = (function(_super) { } } }; - Scene.prototype.render = function() { + Scene.prototype.render = function () { for (var i = 0; i < this._renderers.length; i++) { this._renderers[i].render(this); } }; - Scene.prototype.addPostProcessor = function(postProcessor) { + Scene.prototype.addPostProcessor = function (postProcessor) { this._postProcessors.push(postProcessor); this._postProcessors.sort(); postProcessor.onAddedToScene(this); if (this._didSceneBegin) { - postProcessor.onSceneBackBufferSizeChanged(this.stage.stageWidth, - this.stage.stageHeight); + postProcessor.onSceneBackBufferSizeChanged( + this.stage.stageWidth, + this.stage.stageHeight + ); } return postProcessor; }; return Scene; -}(egret.DisplayObjectContainer)); -var SceneManager = (function() { +})(egret.DisplayObjectContainer); +var SceneManager = (function () { function SceneManager(stage) { stage.addEventListener(egret.Event.ENTER_FRAME, SceneManager.update, this); SceneManager.stage = stage; SceneManager.initialize(stage); } Object.defineProperty(SceneManager, "scene", { - get : function() { return this._scene; }, - set : function(value) { - if (!value) - throw new Error("场景不能为空"); + get: function () { + return this._scene; + }, + set: function (value) { + if (!value) throw new Error("场景不能为空"); if (this._scene == null) { this._scene = value; this._scene.begin(); @@ -1206,21 +1319,25 @@ var SceneManager = (function() { this._nextScene = value; } }, - enumerable : true, - configurable : true + enumerable: true, + configurable: true, }); - SceneManager.initialize = function(stage) { Input.initialize(stage); }; - SceneManager.update = function() { + SceneManager.initialize = function (stage) { + Input.initialize(stage); + }; + SceneManager.update = function () { Time.update(egret.getTimer()); if (SceneManager._scene) { for (var i = GlobalManager.globalManagers.length - 1; i >= 0; i--) { if (GlobalManager.globalManagers[i].enabled) GlobalManager.globalManagers[i].update(); } - if (!SceneManager.sceneTransition || - (SceneManager.sceneTransition && - (!SceneManager.sceneTransition.loadsNewScene || - SceneManager.sceneTransition.isNewSceneLoaded))) { + if ( + !SceneManager.sceneTransition || + (SceneManager.sceneTransition && + (!SceneManager.sceneTransition.loadsNewScene || + SceneManager.sceneTransition.isNewSceneLoaded)) + ) { SceneManager._scene.update(); } if (SceneManager._nextScene) { @@ -1236,7 +1353,7 @@ var SceneManager = (function() { } SceneManager.render(); }; - SceneManager.render = function() { + SceneManager.render = function () { if (this.sceneTransition) { this.sceneTransition.preRender(); if (this._scene && !this.sceneTransition.hasPreviousSceneRender) { @@ -1255,7 +1372,7 @@ var SceneManager = (function() { this._scene.postRender(); } }; - SceneManager.startSceneTransition = function(sceneTransition) { + SceneManager.startSceneTransition = function (sceneTransition) { if (this.sceneTransition) { console.warn("在前一个场景完成之前,不能开始一个新的场景转换。"); return; @@ -1264,21 +1381,21 @@ var SceneManager = (function() { return sceneTransition; }; return SceneManager; -}()); +})(); var DirtyType; -(function(DirtyType) { -DirtyType[DirtyType["clean"] = 0] = "clean"; -DirtyType[DirtyType["positionDirty"] = 1] = "positionDirty"; -DirtyType[DirtyType["scaleDirty"] = 2] = "scaleDirty"; -DirtyType[DirtyType["rotationDirty"] = 3] = "rotationDirty"; +(function (DirtyType) { + DirtyType[(DirtyType["clean"] = 0)] = "clean"; + DirtyType[(DirtyType["positionDirty"] = 1)] = "positionDirty"; + DirtyType[(DirtyType["scaleDirty"] = 2)] = "scaleDirty"; + DirtyType[(DirtyType["rotationDirty"] = 3)] = "rotationDirty"; })(DirtyType || (DirtyType = {})); var ComponentTransform; -(function(ComponentTransform) { -ComponentTransform[ComponentTransform["position"] = 0] = "position"; -ComponentTransform[ComponentTransform["scale"] = 1] = "scale"; -ComponentTransform[ComponentTransform["rotation"] = 2] = "rotation"; +(function (ComponentTransform) { + ComponentTransform[(ComponentTransform["position"] = 0)] = "position"; + ComponentTransform[(ComponentTransform["scale"] = 1)] = "scale"; + ComponentTransform[(ComponentTransform["rotation"] = 2)] = "rotation"; })(ComponentTransform || (ComponentTransform = {})); -var Transform = (function() { +var Transform = (function () { function Transform(entity) { this._localRotation = 0; this._worldTransform = Matrix2D.identity; @@ -1290,149 +1407,179 @@ var Transform = (function() { this._children = []; } Object.defineProperty(Transform.prototype, "childCount", { - get : function() { return this._children.length; }, - enumerable : true, - configurable : true + get: function () { + return this._children.length; + }, + enumerable: true, + configurable: true, }); - Transform.prototype.getChild = function( - index) { return this._children[index]; }; + Transform.prototype.getChild = function (index) { + return this._children[index]; + }; Object.defineProperty(Transform.prototype, "worldInverseTransform", { - get : function() { + get: function () { this.updateTransform(); if (this._worldInverseDirty) { - this._worldInverseTransform = - Matrix2D.invert(this._worldTransform, this._worldInverseTransform); + this._worldInverseTransform = Matrix2D.invert( + this._worldTransform, + this._worldInverseTransform + ); this._worldInverseDirty = false; } return this._worldInverseTransform; }, - enumerable : true, - configurable : true + enumerable: true, + configurable: true, }); Object.defineProperty(Transform.prototype, "localToWorldTransform", { - get : function() { + get: function () { this.updateTransform(); return this._worldTransform; }, - enumerable : true, - configurable : true + enumerable: true, + configurable: true, }); Object.defineProperty(Transform.prototype, "worldToLocalTransform", { - get : function() { + get: function () { if (this._worldToLocalDirty) { if (!this.parent) { this._worldInverseTransform = new Matrix2D(); } else { this.parent.updateTransform(); this._worldToLocalTransform = Matrix2D.invert( - this.parent._worldTransform, this._worldToLocalTransform); + this.parent._worldTransform, + this._worldToLocalTransform + ); } this._worldToLocalDirty = false; } return this._worldToLocalTransform; }, - enumerable : true, - configurable : true + enumerable: true, + configurable: true, }); Object.defineProperty(Transform.prototype, "parent", { - get : function() { return this._parent; }, - set : function(value) { this.setParent(value); }, - enumerable : true, - configurable : true + get: function () { + return this._parent; + }, + set: function (value) { + this.setParent(value); + }, + enumerable: true, + configurable: true, }); - Transform.prototype.setParent = function(parent) { - if (this._parent == parent) - return this; - if (this._parent) - this._parent._children.remove(this); - if (parent) - parent._children.push(this); + Transform.prototype.setParent = function (parent) { + if (this._parent == parent) return this; + if (this._parent) this._parent._children.remove(this); + if (parent) parent._children.push(this); this._parent = parent; return this; }; Object.defineProperty(Transform.prototype, "rotation", { - get : function() { + get: function () { this.updateTransform(); return this._rotation; }, - set : function(value) { this.setRotation(value); }, - enumerable : true, - configurable : true + set: function (value) { + this.setRotation(value); + }, + enumerable: true, + configurable: true, }); Object.defineProperty(Transform.prototype, "localRotation", { - get : function() { + get: function () { this.updateTransform(); return this._localRotation; }, - set : function(value) { this.setLocalRotation(value); }, - enumerable : true, - configurable : true + set: function (value) { + this.setLocalRotation(value); + }, + enumerable: true, + configurable: true, }); Object.defineProperty(Transform.prototype, "position", { - get : function() { + get: function () { this.updateTransform(); if (this._positionDirty) { if (!this.parent) { this._position = this._localPosition; } else { this.parent.updateTransform(); - this._position = Vector2Ext.transformR(this._localPosition, - this.parent._worldTransform); + this._position = Vector2Ext.transformR( + this._localPosition, + this.parent._worldTransform + ); } this._positionDirty = false; } return this._position; }, - set : function(value) { this.setPosition(value); }, - enumerable : true, - configurable : true + set: function (value) { + this.setPosition(value); + }, + enumerable: true, + configurable: true, }); Object.defineProperty(Transform.prototype, "localPosition", { - get : function() { + get: function () { this.updateTransform(); return this._localPosition; }, - set : function(value) { this.setLocalPosition(value); }, - enumerable : true, - configurable : true + set: function (value) { + this.setLocalPosition(value); + }, + enumerable: true, + configurable: true, }); Object.defineProperty(Transform.prototype, "scale", { - get : function() { + get: function () { this.updateTransform(); return this._scale; }, - set : function(value) { this.setScale(value); }, - enumerable : true, - configurable : true + set: function (value) { + this.setScale(value); + }, + enumerable: true, + configurable: true, }); Object.defineProperty(Transform.prototype, "localScale", { - get : function() { + get: function () { this.updateTransform(); return this._localScale; }, - set : function(value) { this.setLocalScale(value); }, - enumerable : true, - configurable : true + set: function (value) { + this.setLocalScale(value); + }, + enumerable: true, + configurable: true, }); Object.defineProperty(Transform.prototype, "rotationDegrees", { - get : function() { return MathHelper.toDegrees(this._rotation); }, - set : function(value) { this.setRotation(MathHelper.toRadians(value)); }, - enumerable : true, - configurable : true + get: function () { + return MathHelper.toDegrees(this._rotation); + }, + set: function (value) { + this.setRotation(MathHelper.toRadians(value)); + }, + enumerable: true, + configurable: true, }); Object.defineProperty(Transform.prototype, "localRotationDegrees", { - get : function() { return MathHelper.toDegrees(this._localRotation); }, - set : function(value) { this.localRotation = MathHelper.toRadians(value); }, - enumerable : true, - configurable : true + get: function () { + return MathHelper.toDegrees(this._localRotation); + }, + set: function (value) { + this.localRotation = MathHelper.toRadians(value); + }, + enumerable: true, + configurable: true, }); - Transform.prototype.setLocalScale = function(scale) { + Transform.prototype.setLocalScale = function (scale) { this._localScale = scale; this._localDirty = this._positionDirty = this._localScaleDirty = true; this.setDirty(DirtyType.scaleDirty); return this; }; - Transform.prototype.setScale = function(scale) { + Transform.prototype.setScale = function (scale) { this._scale = scale; if (this.parent) { this.localScale = Vector2.divide(scale, this.parent._scale); @@ -1441,16 +1588,16 @@ var Transform = (function() { } return this; }; - Transform.prototype.setLocalRotationDegrees = function( - degrees) { return this.setLocalRotation(MathHelper.toRadians(degrees)); }; - Transform.prototype.setLocalRotation = function(radians) { + Transform.prototype.setLocalRotationDegrees = function (degrees) { + return this.setLocalRotation(MathHelper.toRadians(degrees)); + }; + Transform.prototype.setLocalRotation = function (radians) { this._localRotation = radians; - this._localDirty = this._positionDirty = this._localPositionDirty = - this._localRotationDirty = this._localScaleDirty = true; + this._localDirty = this._positionDirty = this._localPositionDirty = this._localRotationDirty = this._localScaleDirty = true; this.setDirty(DirtyType.rotationDirty); return this; }; - Transform.prototype.setRotation = function(radians) { + Transform.prototype.setRotation = function (radians) { this._rotation = radians; if (this.parent) { this.localRotation = this.parent.rotation + radians; @@ -1459,61 +1606,62 @@ var Transform = (function() { } return this; }; - Transform.prototype.setRotationDegrees = function( - degrees) { return this.setRotation(MathHelper.toRadians(degrees)); }; - Transform.prototype.setLocalPosition = function(localPosition) { - if (localPosition == this._localPosition) - return this; + Transform.prototype.setRotationDegrees = function (degrees) { + return this.setRotation(MathHelper.toRadians(degrees)); + }; + Transform.prototype.setLocalPosition = function (localPosition) { + if (localPosition == this._localPosition) return this; this._localPosition = localPosition; - this._localDirty = this._positionDirty = this._localPositionDirty = - this._localRotationDirty = this._localScaleDirty = true; + this._localDirty = this._positionDirty = this._localPositionDirty = this._localRotationDirty = this._localScaleDirty = true; this.setDirty(DirtyType.positionDirty); return this; }; - Transform.prototype.setPosition = function(position) { - if (position == this._position) - return this; + Transform.prototype.setPosition = function (position) { + if (position == this._position) return this; this._position = position; if (this.parent) { - this.localPosition = - Vector2.transform(this._position, this._worldToLocalTransform); + this.localPosition = Vector2.transform( + this._position, + this._worldToLocalTransform + ); } else { this.localPosition = position; } this._positionDirty = false; return this; }; - Transform.prototype.setDirty = function(dirtyFlagType) { + Transform.prototype.setDirty = function (dirtyFlagType) { if ((this._hierachyDirty & dirtyFlagType) == 0) { this._hierachyDirty |= dirtyFlagType; switch (dirtyFlagType) { - 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); - break; + 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); + break; } - if (this._children == null) - this._children = []; + if (this._children == null) this._children = []; for (var i = 0; i < this._children.length; i++) { this._children[i].setDirty(dirtyFlagType); } } }; - Transform.prototype.roundPosition = - function() { this.position = this._position.round(); }; - Transform.prototype.updateTransform = function() { + Transform.prototype.roundPosition = function () { + this.position = this._position.round(); + }; + Transform.prototype.updateTransform = function () { if (this._hierachyDirty != DirtyType.clean) { - if (this.parent) - this.parent.updateTransform(); + if (this.parent) this.parent.updateTransform(); if (this._localDirty) { if (this._localPositionDirty) { this._translationMatrix = Matrix2D.createTranslation( - this._localPosition.x, this._localPosition.y); + this._localPosition.x, + this._localPosition.y + ); this._localPositionDirty = false; } if (this._localRotationDirty) { @@ -1521,14 +1669,20 @@ var Transform = (function() { this._localRotationDirty = false; } if (this._localScaleDirty) { - this._scaleMatrix = - Matrix2D.createScale(this._localScale.x, this._localScale.y); + this._scaleMatrix = Matrix2D.createScale( + this._localScale.x, + this._localScale.y + ); this._localScaleDirty = false; } - this._localTransform = - Matrix2D.multiply(this._scaleMatrix, this._rotationMatrix); - this._localTransform = - Matrix2D.multiply(this._localTransform, this._translationMatrix); + this._localTransform = Matrix2D.multiply( + this._scaleMatrix, + this._rotationMatrix + ); + this._localTransform = Matrix2D.multiply( + this._localTransform, + this._translationMatrix + ); if (!this.parent) { this._worldTransform = this._localTransform; this._rotation = this._localRotation; @@ -1538,8 +1692,10 @@ var Transform = (function() { this._localDirty = false; } if (this.parent) { - this._worldTransform = Matrix2D.multiply(this._localTransform, - this.parent._worldTransform); + 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 = true; @@ -1550,8 +1706,8 @@ var Transform = (function() { } }; return Transform; -}()); -var Camera = (function(_super) { +})(); +var Camera = (function (_super) { __extends(Camera, _super); function Camera() { var _this = _super.call(this) || this; @@ -1572,64 +1728,79 @@ var Camera = (function(_super) { return _this; } Object.defineProperty(Camera.prototype, "zoom", { - get : function() { - if (this._zoom == 0) - return 1; + get: function () { + if (this._zoom == 0) return 1; if (this._zoom < 1) return MathHelper.map(this._zoom, this._minimumZoom, 1, -1, 0); return MathHelper.map(this._zoom, 1, this._maximumZoom, 0, 1); }, - set : function(value) { this.setZoom(value); }, - enumerable : true, - configurable : true + set: function (value) { + this.setZoom(value); + }, + enumerable: true, + configurable: true, }); Object.defineProperty(Camera.prototype, "minimumZoom", { - get : function() { return this._minimumZoom; }, - set : function(value) { this.setMinimumZoom(value); }, - enumerable : true, - configurable : true + get: function () { + return this._minimumZoom; + }, + set: function (value) { + this.setMinimumZoom(value); + }, + enumerable: true, + configurable: true, }); Object.defineProperty(Camera.prototype, "maximumZoom", { - get : function() { return this._maximumZoom; }, - set : function(value) { this.setMaximumZoom(value); }, - enumerable : true, - configurable : true + get: function () { + return this._maximumZoom; + }, + set: function (value) { + this.setMaximumZoom(value); + }, + enumerable: true, + configurable: true, }); Object.defineProperty(Camera.prototype, "origin", { - get : function() { return this._origin; }, - set : function(value) { + get: function () { + return this._origin; + }, + set: function (value) { if (this._origin != value) { this._origin = value; } }, - enumerable : true, - configurable : true + enumerable: true, + configurable: true, }); Object.defineProperty(Camera.prototype, "position", { - get : function() { return this.entity.position; }, - set : function(value) { this.entity.position = value; }, - enumerable : true, - configurable : true + get: function () { + return this.entity.position; + }, + set: function (value) { + this.entity.position = value; + }, + enumerable: true, + configurable: true, }); - Camera.prototype.onSceneSizeChanged = function(newWidth, newHeight) { + Camera.prototype.onSceneSizeChanged = function (newWidth, newHeight) { var oldOrigin = this._origin; this.origin = new Vector2(newWidth / 2, newHeight / 2); this.entity.position = Vector2.add( - this.entity.position, Vector2.subtract(this._origin, oldOrigin)); + this.entity.position, + Vector2.subtract(this._origin, oldOrigin) + ); }; - Camera.prototype.setMinimumZoom = function(minZoom) { - if (this._zoom < minZoom) - this._zoom = this.minimumZoom; + Camera.prototype.setMinimumZoom = function (minZoom) { + if (this._zoom < minZoom) this._zoom = this.minimumZoom; this._minimumZoom = minZoom; return this; }; - Camera.prototype.setMaximumZoom = function(maxZoom) { - if (this._zoom > maxZoom) - this._zoom = maxZoom; + Camera.prototype.setMaximumZoom = function (maxZoom) { + if (this._zoom > maxZoom) this._zoom = maxZoom; this._maximumZoom = maxZoom; return this; }; - Camera.prototype.setZoom = function(zoom) { + Camera.prototype.setZoom = function (zoom) { var newZoom = MathHelper.clamp(zoom, -1, 1); if (newZoom == 0) { this._zoom = 1; @@ -1642,67 +1813,94 @@ var Camera = (function(_super) { SceneManager.scene.scaleY = this._zoom; return this; }; - Camera.prototype.setRotation = function(rotation) { + Camera.prototype.setRotation = function (rotation) { SceneManager.scene.rotation = rotation; return this; }; - Camera.prototype.setPosition = function(position) { + Camera.prototype.setPosition = function (position) { this.entity.position = position; return this; }; - Camera.prototype.follow = function(targetEntity, cameraStyle) { + Camera.prototype.follow = function (targetEntity, cameraStyle) { if (cameraStyle === void 0) { cameraStyle = CameraStyle.cameraWindow; } this.targetEntity = targetEntity; this.cameraStyle = cameraStyle; - var cameraBounds = new Rectangle(0, 0, SceneManager.stage.stageWidth, - SceneManager.stage.stageHeight); + var cameraBounds = new Rectangle( + 0, + 0, + SceneManager.stage.stageWidth, + SceneManager.stage.stageHeight + ); switch (this.cameraStyle) { - case CameraStyle.cameraWindow: - var w = cameraBounds.width / 6; - var h = cameraBounds.height / 3; - this.deadzone = new Rectangle((cameraBounds.width - w) / 2, - (cameraBounds.height - h) / 2, w, h); - break; - case CameraStyle.lockOn: - this.deadzone = new Rectangle(cameraBounds.width / 2, - cameraBounds.height / 2, 10, 10); - break; + case CameraStyle.cameraWindow: + var w = cameraBounds.width / 6; + var h = cameraBounds.height / 3; + this.deadzone = new Rectangle( + (cameraBounds.width - w) / 2, + (cameraBounds.height - h) / 2, + w, + h + ); + break; + case CameraStyle.lockOn: + this.deadzone = new Rectangle( + cameraBounds.width / 2, + cameraBounds.height / 2, + 10, + 10 + ); + break; } }; - Camera.prototype.update = function() { - var cameraBounds = new Rectangle(0, 0, SceneManager.stage.stageWidth, - SceneManager.stage.stageHeight); + Camera.prototype.update = function () { + var cameraBounds = new Rectangle( + 0, + 0, + SceneManager.stage.stageWidth, + SceneManager.stage.stageHeight + ); var halfScreen = Vector2.multiply( - new Vector2(cameraBounds.width, cameraBounds.height), new Vector2(0.5)); + new Vector2(cameraBounds.width, cameraBounds.height), + new Vector2(0.5) + ); this._worldSpaceDeadZone.x = - this.position.x - halfScreen.x + this.deadzone.x + this.focusOffset.x; + this.position.x - halfScreen.x + this.deadzone.x + this.focusOffset.x; this._worldSpaceDeadZone.y = - this.position.y - halfScreen.y + this.deadzone.y + this.focusOffset.y; + this.position.y - halfScreen.y + this.deadzone.y + this.focusOffset.y; this._worldSpaceDeadZone.width = this.deadzone.width; this._worldSpaceDeadZone.height = this.deadzone.height; - if (this.targetEntity) - this.updateFollow(); + if (this.targetEntity) this.updateFollow(); this.position = Vector2.lerp( - this.position, Vector2.add(this.position, this._desiredPositionDelta), - this.followLerp); + this.position, + Vector2.add(this.position, this._desiredPositionDelta), + this.followLerp + ); this.entity.roundPosition(); if (this.mapLockEnabled) { this.position = this.clampToMapSize(this.position); this.entity.roundPosition(); } }; - Camera.prototype.clampToMapSize = function(position) { - var cameraBounds = new Rectangle(0, 0, SceneManager.stage.stageWidth, - SceneManager.stage.stageHeight); + Camera.prototype.clampToMapSize = function (position) { + var cameraBounds = new Rectangle( + 0, + 0, + SceneManager.stage.stageWidth, + SceneManager.stage.stageHeight + ); var halfScreen = Vector2.multiply( - new Vector2(cameraBounds.width, cameraBounds.height), new Vector2(0.5)); - var cameraMax = new Vector2(this.mapSize.x - halfScreen.x, - this.mapSize.y - halfScreen.y); + new Vector2(cameraBounds.width, cameraBounds.height), + new Vector2(0.5) + ); + var cameraMax = new Vector2( + this.mapSize.x - halfScreen.x, + this.mapSize.y - halfScreen.y + ); return Vector2.clamp(position, halfScreen, cameraMax); }; - Camera.prototype.updateFollow = function() { + Camera.prototype.updateFollow = function () { this._desiredPositionDelta.x = this._desiredPositionDelta.y = 0; if (this.cameraStyle == CameraStyle.lockOn) { var targetX = this.targetEntity.position.x; @@ -1718,79 +1916,81 @@ var Camera = (function(_super) { } else { if (!this._targetCollider) { this._targetCollider = this.targetEntity.getComponent(Collider); - if (!this._targetCollider) - return; + if (!this._targetCollider) return; } var targetBounds = this.targetEntity.getComponent(Collider).bounds; if (!this._worldSpaceDeadZone.containsRect(targetBounds)) { if (this._worldSpaceDeadZone.left > targetBounds.left) this._desiredPositionDelta.x = - targetBounds.left - this._worldSpaceDeadZone.left; + targetBounds.left - this._worldSpaceDeadZone.left; else if (this._worldSpaceDeadZone.right < targetBounds.right) this._desiredPositionDelta.x = - targetBounds.right - this._worldSpaceDeadZone.right; + targetBounds.right - this._worldSpaceDeadZone.right; if (this._worldSpaceDeadZone.bottom < targetBounds.bottom) this._desiredPositionDelta.y = - targetBounds.bottom - this._worldSpaceDeadZone.bottom; + targetBounds.bottom - this._worldSpaceDeadZone.bottom; else if (this._worldSpaceDeadZone.top > targetBounds.top) this._desiredPositionDelta.y = - targetBounds.top - this._worldSpaceDeadZone.top; + targetBounds.top - this._worldSpaceDeadZone.top; } } }; return Camera; -}(Component)); +})(Component); var CameraStyle; -(function(CameraStyle) { -CameraStyle[CameraStyle["lockOn"] = 0] = "lockOn"; -CameraStyle[CameraStyle["cameraWindow"] = 1] = "cameraWindow"; +(function (CameraStyle) { + CameraStyle[(CameraStyle["lockOn"] = 0)] = "lockOn"; + CameraStyle[(CameraStyle["cameraWindow"] = 1)] = "cameraWindow"; })(CameraStyle || (CameraStyle = {})); -var ComponentPool = (function() { +var ComponentPool = (function () { function ComponentPool(typeClass) { this._type = typeClass; this._cache = []; } - ComponentPool.prototype.obtain = function() { + ComponentPool.prototype.obtain = function () { try { return this._cache.length > 0 ? this._cache.shift() : new this._type(); } catch (err) { throw new Error(this._type + err); } }; - ComponentPool.prototype.free = function(component) { + ComponentPool.prototype.free = function (component) { component.reset(); this._cache.push(component); }; return ComponentPool; -}()); -var Mesh = (function(_super) { +})(); +var Mesh = (function (_super) { __extends(Mesh, _super); function Mesh() { - return _super !== null && _super.apply(this, arguments) || this; + return (_super !== null && _super.apply(this, arguments)) || this; } - Mesh.prototype.initialize = function() {}; - Mesh.prototype.setVertPosition = function(positions) { + Mesh.prototype.initialize = function () {}; + Mesh.prototype.setVertPosition = function (positions) { var createVerts = !this._verts || this._verts.length != positions.length; - if (createVerts) - this._verts = new Array(positions.length); + if (createVerts) this._verts = new Array(positions.length); for (var i = 0; i < this._verts.length; i++) { this._verts[i] = new VertexPosition(positions[i]); } return this; }; - Mesh.prototype.setTriangles = function(triangles) { + Mesh.prototype.setTriangles = function (triangles) { this._primitiveCount = triangles.length / 3; this._triangles = triangles; return this; }; - Mesh.prototype.recalculateBounds = function() { + Mesh.prototype.recalculateBounds = function () { this._topLeftVertPosition = new Vector2(Number.MAX_VALUE, Number.MAX_VALUE); var max = new Vector2(Number.MIN_VALUE, Number.MIN_VALUE); for (var i = 0; i < this._verts.length; i++) { - this._topLeftVertPosition.x = - Math.min(this._topLeftVertPosition.x, this._verts[i].position.x); - this._topLeftVertPosition.y = - Math.min(this._topLeftVertPosition.y, this._verts[i].position.y); + this._topLeftVertPosition.x = Math.min( + this._topLeftVertPosition.x, + this._verts[i].position.x + ); + this._topLeftVertPosition.y = Math.min( + this._topLeftVertPosition.y, + this._verts[i].position.y + ); max.x = Math.max(max.x, this._verts[i].position.x); max.y = Math.max(max.y, this._verts[i].position.y); } @@ -1798,14 +1998,16 @@ var Mesh = (function(_super) { this._height = max.y - this._topLeftVertPosition.y; return this; }; - Mesh.prototype.render = function() {}; + Mesh.prototype.render = function () {}; return Mesh; -}(Component)); -var VertexPosition = (function() { - function VertexPosition(position) { this.position = position; } +})(Component); +var VertexPosition = (function () { + function VertexPosition(position) { + this.position = position; + } return VertexPosition; -}()); -var PolygonMesh = (function(_super) { +})(); +var PolygonMesh = (function (_super) { __extends(PolygonMesh, _super); function PolygonMesh(points, arePointsCCW) { if (arePointsCCW === void 0) { @@ -1820,18 +2022,18 @@ var PolygonMesh = (function(_super) { return _this; } return PolygonMesh; -}(Mesh)); -var PooledComponent = (function(_super) { +})(Mesh); +var PooledComponent = (function (_super) { __extends(PooledComponent, _super); function PooledComponent() { - return _super !== null && _super.apply(this, arguments) || this; + return (_super !== null && _super.apply(this, arguments)) || this; } return PooledComponent; -}(Component)); -var RenderableComponent = (function(_super) { +})(Component); +var RenderableComponent = (function (_super) { __extends(RenderableComponent, _super); function RenderableComponent() { - var _this = _super !== null && _super.apply(this, arguments) || this; + var _this = (_super !== null && _super.apply(this, arguments)) || this; _this._areBoundsDirty = true; _this._bounds = new Rectangle(); _this._localOffset = Vector2.zero; @@ -1839,62 +2041,77 @@ var RenderableComponent = (function(_super) { return _this; } Object.defineProperty(RenderableComponent.prototype, "width", { - get : function() { return this.getWidth(); }, - enumerable : true, - configurable : true + get: function () { + return this.getWidth(); + }, + enumerable: true, + configurable: true, }); Object.defineProperty(RenderableComponent.prototype, "height", { - get : function() { return this.getHeight(); }, - enumerable : true, - configurable : true + get: function () { + return this.getHeight(); + }, + enumerable: true, + configurable: true, }); Object.defineProperty(RenderableComponent.prototype, "isVisible", { - get : function() { return this._isVisible; }, - set : function(value) { - this._isVisible = value; - if (this._isVisible) - this.onBecameVisible(); - else - this.onBecameInvisible(); + get: function () { + return this._isVisible; }, - enumerable : true, - configurable : true + set: function (value) { + this._isVisible = value; + if (this._isVisible) this.onBecameVisible(); + else this.onBecameInvisible(); + }, + enumerable: true, + configurable: true, }); Object.defineProperty(RenderableComponent.prototype, "bounds", { - get : function() { - return new Rectangle(this.getBounds().x, this.getBounds().y, - this.getBounds().width, this.getBounds().height); + get: function () { + return new Rectangle( + this.getBounds().x, + this.getBounds().y, + this.getBounds().width, + this.getBounds().height + ); }, - enumerable : true, - configurable : true + enumerable: true, + configurable: true, }); - RenderableComponent.prototype.getWidth = - function() { return this.bounds.width; }; - RenderableComponent.prototype.getHeight = - function() { return this.bounds.height; }; - RenderableComponent.prototype.onBecameVisible = function() {}; - RenderableComponent.prototype.onBecameInvisible = function() {}; - RenderableComponent.prototype.isVisibleFromCamera = function(camera) { + RenderableComponent.prototype.getWidth = function () { + return this.bounds.width; + }; + RenderableComponent.prototype.getHeight = function () { + return this.bounds.height; + }; + RenderableComponent.prototype.onBecameVisible = function () {}; + RenderableComponent.prototype.onBecameInvisible = function () {}; + RenderableComponent.prototype.isVisibleFromCamera = function (camera) { this.isVisible = camera.getBounds().intersects(this.getBounds()); return this.isVisible; }; - RenderableComponent.prototype.onEntityTransformChanged = function( - comp) { this._areBoundsDirty = true; }; + RenderableComponent.prototype.onEntityTransformChanged = function (comp) { + this._areBoundsDirty = true; + }; return RenderableComponent; -}(PooledComponent)); -var ScreenSpaceCamera = (function(_super) { +})(PooledComponent); +var ScreenSpaceCamera = (function (_super) { __extends(ScreenSpaceCamera, _super); function ScreenSpaceCamera() { - return _super !== null && _super.apply(this, arguments) || this; + return (_super !== null && _super.apply(this, arguments)) || this; } - ScreenSpaceCamera.prototype.updateMatrixes = function() {}; + ScreenSpaceCamera.prototype.updateMatrixes = function () {}; return ScreenSpaceCamera; -}(Camera)); -var Sprite = (function() { +})(Camera); +var Sprite = (function () { function Sprite(texture, sourceRect, origin) { if (sourceRect === void 0) { - sourceRect = - new Rectangle(0, 0, texture.textureWidth, texture.textureHeight); + sourceRect = new Rectangle( + 0, + 0, + texture.textureWidth, + texture.textureHeight + ); } if (origin === void 0) { origin = sourceRect.getHalfSize(); @@ -1912,72 +2129,103 @@ var Sprite = (function() { this.uvs.height = sourceRect.height * inverseTexH; } return Sprite; -}()); -var SpriteRenderer = (function(_super) { +})(); +var SpriteRenderer = (function (_super) { __extends(SpriteRenderer, _super); function SpriteRenderer() { - return _super !== null && _super.apply(this, arguments) || this; + return (_super !== null && _super.apply(this, arguments)) || this; } Object.defineProperty(SpriteRenderer.prototype, "origin", { - get : function() { return this._origin; }, - set : function(value) { this.setOrigin(value); }, - enumerable : true, - configurable : true + get: function () { + return this._origin; + }, + set: function (value) { + this.setOrigin(value); + }, + enumerable: true, + configurable: true, }); - SpriteRenderer.prototype.setOrigin = function(origin) { + SpriteRenderer.prototype.setOrigin = function (origin) { if (this._origin != origin) { this._origin = origin; } return this; }; - SpriteRenderer.prototype.setSprite = function(sprite) { + SpriteRenderer.prototype.setSprite = function (sprite) { this.removeChildren(); this._sprite = sprite; - if (this._sprite) - this._origin = this._sprite.origin; + if (this._sprite) this._origin = this._sprite.origin; this._bitmap = new egret.Bitmap(sprite.texture2D); this.addChild(this._bitmap); return this; }; - SpriteRenderer.prototype.setColor = function(color) { - var colorMatrix = - [ 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0 ]; + SpriteRenderer.prototype.setColor = function (color) { + var colorMatrix = [ + 1, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + ]; colorMatrix[0] = Math.floor(color / 256 / 256) / 255; - colorMatrix[6] = Math.floor(color / 256 % 256) / 255; - colorMatrix[12] = color % 256 / 255; + colorMatrix[6] = Math.floor((color / 256) % 256) / 255; + colorMatrix[12] = (color % 256) / 255; var colorFilter = new egret.ColorMatrixFilter(colorMatrix); - this.filters = [ colorFilter ]; + this.filters = [colorFilter]; return this; }; - SpriteRenderer.prototype.isVisibleFromCamera = function(camera) { - this.isVisible = - new Rectangle(0, 0, this.stage.stageWidth, this.stage.stageHeight) - .intersects(this.bounds); + SpriteRenderer.prototype.isVisibleFromCamera = function (camera) { + this.isVisible = new Rectangle( + 0, + 0, + this.stage.stageWidth, + this.stage.stageHeight + ).intersects(this.bounds); this.visible = this.isVisible; return this.isVisible; }; - SpriteRenderer.prototype.render = function(camera) { - this.x = this.entity.position.x - this.origin.x - camera.position.x + - camera.origin.x; - this.y = this.entity.position.y - this.origin.y - camera.position.y + - camera.origin.y; + SpriteRenderer.prototype.render = function (camera) { + this.x = + this.entity.position.x - + this.origin.x - + camera.position.x + + camera.origin.x; + this.y = + this.entity.position.y - + this.origin.y - + camera.position.y + + camera.origin.y; }; - SpriteRenderer.prototype.onRemovedFromEntity = function() { - if (this.parent) - this.parent.removeChild(this); + SpriteRenderer.prototype.onRemovedFromEntity = function () { + if (this.parent) this.parent.removeChild(this); }; - SpriteRenderer.prototype.reset = function() {}; + SpriteRenderer.prototype.reset = function () {}; return SpriteRenderer; -}(RenderableComponent)); -var Mover = (function(_super) { +})(RenderableComponent); +var Mover = (function (_super) { __extends(Mover, _super); function Mover() { - return _super !== null && _super.apply(this, arguments) || this; + return (_super !== null && _super.apply(this, arguments)) || this; } - Mover.prototype.onAddedToEntity = function() { + Mover.prototype.onAddedToEntity = function () { this._triggerHelper = new ColliderTriggerHelper(this.entity); }; - Mover.prototype.calculateMovement = function(motion) { + Mover.prototype.calculateMovement = function (motion) { var collisionResult = new CollisionResult(); if (!this.entity.getComponent(Collider) || !this._triggerHelper) { return null; @@ -1985,21 +2233,24 @@ var Mover = (function(_super) { var colliders = this.entity.getComponents(Collider); for (var i = 0; i < colliders.length; i++) { var collider = colliders[i]; - if (collider.isTrigger) - continue; + if (collider.isTrigger) continue; var bounds = collider.bounds; bounds.x += motion.x; bounds.y += motion.y; var neighbors = Physics.boxcastBroadphaseExcludingSelf( - collider, bounds, collider.collidesWithLayers); + collider, + bounds, + collider.collidesWithLayers + ); for (var j = 0; j < neighbors.length; j++) { var neighbor = neighbors[j]; - if (neighbor.isTrigger) - continue; + if (neighbor.isTrigger) continue; var _internalcollisionResult = collider.collidesWith(neighbor, motion); if (_internalcollisionResult) { motion = Vector2.subtract( - motion, _internalcollisionResult.minimumTranslationVector); + motion, + _internalcollisionResult.minimumTranslationVector + ); if (_internalcollisionResult.collider) { collisionResult = _internalcollisionResult; } @@ -2009,22 +2260,21 @@ var Mover = (function(_super) { ListPool.free(colliders); return collisionResult; }; - Mover.prototype.applyMovement = function(motion) { + Mover.prototype.applyMovement = function (motion) { this.entity.position = Vector2.add(this.entity.position, motion); - if (this._triggerHelper) - this._triggerHelper.update(); + if (this._triggerHelper) this._triggerHelper.update(); }; - Mover.prototype.move = function(motion) { + Mover.prototype.move = function (motion) { var collisionResult = this.calculateMovement(motion); this.applyMovement(motion); return collisionResult; }; return Mover; -}(Component)); -var Collider = (function(_super) { +})(Component); +var Collider = (function (_super) { __extends(Collider, _super); function Collider() { - var _this = _super !== null && _super.apply(this, arguments) || this; + var _this = (_super !== null && _super.apply(this, arguments)) || this; _this.physicsLayer = 1 << 0; _this.shouldColliderScaleAndRotationWithTransform = true; _this.collidesWithLayers = Physics.allLayers; @@ -2034,23 +2284,27 @@ var Collider = (function(_super) { return _this; } Object.defineProperty(Collider.prototype, "bounds", { - get : function() { + get: function () { if (this._isPositionDirty || this._isRotationDirty) { this.shape.recalculateBounds(this); this._isPositionDirty = this._isRotationDirty = false; } return this.shape.bounds; }, - enumerable : true, - configurable : true + enumerable: true, + configurable: true, }); Object.defineProperty(Collider.prototype, "localOffset", { - get : function() { return this._localOffset; }, - set : function(value) { this.setLocalOffset(value); }, - enumerable : true, - configurable : true + get: function () { + return this._localOffset; + }, + set: function (value) { + this.setLocalOffset(value); + }, + enumerable: true, + configurable: true, }); - Collider.prototype.setLocalOffset = function(offset) { + Collider.prototype.setLocalOffset = function (offset) { if (this._localOffset != offset) { this.unregisterColliderWithPhysicsSystem(); this._localOffset = offset; @@ -2059,34 +2313,35 @@ var Collider = (function(_super) { this.registerColliderWithPhysicsSystem(); } }; - Collider.prototype.registerColliderWithPhysicsSystem = function() { + Collider.prototype.registerColliderWithPhysicsSystem = function () { if (this._isParentEntityAddedToScene && !this._isColliderRegistered) { Physics.addCollider(this); this._isColliderRegistered = true; } }; - Collider.prototype.unregisterColliderWithPhysicsSystem = function() { + Collider.prototype.unregisterColliderWithPhysicsSystem = function () { if (this._isParentEntityAddedToScene && this._isColliderRegistered) { Physics.removeCollider(this); } this._isColliderRegistered = false; }; - Collider.prototype.overlaps = function( - other) { return this.shape.overlaps(other.shape); }; - Collider.prototype.collidesWith = function(collider, motion) { + Collider.prototype.overlaps = function (other) { + return this.shape.overlaps(other.shape); + }; + Collider.prototype.collidesWith = function (collider, motion) { var oldPosition = this.shape.position; this.shape.position = Vector2.add(this.shape.position, motion); var result = this.shape.collidesWithShape(collider.shape); - if (result) - result.collider = collider; + if (result) result.collider = collider; this.shape.position = oldPosition; return result; }; - Collider.prototype.onAddedToEntity = function() { + Collider.prototype.onAddedToEntity = function () { if (this._colliderRequiresAutoSizing) { if (!(this instanceof BoxCollider)) { console.error( - "Only box and circle colliders can be created automatically"); + "Only box and circle colliders can be created automatically" + ); } var renderable = this.entity.getComponent(RenderableComponent); if (renderable) { @@ -2097,42 +2352,44 @@ var Collider = (function(_super) { var boxCollider = this; boxCollider.width = width; boxCollider.height = height; - this.localOffset = - Vector2.subtract(renderbaleBounds.center, this.entity.position); + this.localOffset = Vector2.subtract( + renderbaleBounds.center, + this.entity.position + ); } } } this._isParentEntityAddedToScene = true; this.registerColliderWithPhysicsSystem(); }; - Collider.prototype.onRemovedFromEntity = function() { + Collider.prototype.onRemovedFromEntity = function () { this.unregisterColliderWithPhysicsSystem(); this._isParentEntityAddedToScene = false; }; - Collider.prototype.onEntityTransformChanged = function(comp) { + Collider.prototype.onEntityTransformChanged = function (comp) { switch (comp) { - case ComponentTransform.position: - this._isPositionDirty = true; - break; - case ComponentTransform.scale: - this._isPositionDirty = true; - break; - case ComponentTransform.rotation: - this._isRotationDirty = true; - break; + case ComponentTransform.position: + this._isPositionDirty = true; + break; + case ComponentTransform.scale: + this._isPositionDirty = true; + break; + case ComponentTransform.rotation: + this._isRotationDirty = true; + break; } - if (this._isColliderRegistered) - Physics.updateCollider(this); + if (this._isColliderRegistered) Physics.updateCollider(this); }; - Collider.prototype.onEnabled = function() { + Collider.prototype.onEnabled = function () { this.registerColliderWithPhysicsSystem(); this._isPositionDirty = this._isRotationDirty = true; }; - Collider.prototype.onDisabled = - function() { this.unregisterColliderWithPhysicsSystem(); }; + Collider.prototype.onDisabled = function () { + this.unregisterColliderWithPhysicsSystem(); + }; return Collider; -}(Component)); -var BoxCollider = (function(_super) { +})(Component); +var BoxCollider = (function (_super) { __extends(BoxCollider, _super); function BoxCollider() { var _this = _super.call(this) || this; @@ -2141,12 +2398,16 @@ var BoxCollider = (function(_super) { return _this; } Object.defineProperty(BoxCollider.prototype, "width", { - get : function() { return this.shape.width; }, - set : function(value) { this.setWidth(value); }, - enumerable : true, - configurable : true + get: function () { + return this.shape.width; + }, + set: function (value) { + this.setWidth(value); + }, + enumerable: true, + configurable: true, }); - BoxCollider.prototype.setWidth = function(width) { + BoxCollider.prototype.setWidth = function (width) { this._colliderRequiresAutoSizing = false; var box = this.shape; if (width != box.width) { @@ -2158,12 +2419,16 @@ var BoxCollider = (function(_super) { return this; }; Object.defineProperty(BoxCollider.prototype, "height", { - get : function() { return this.shape.height; }, - set : function(value) { this.setHeight(value); }, - enumerable : true, - configurable : true + get: function () { + return this.shape.height; + }, + set: function (value) { + this.setHeight(value); + }, + enumerable: true, + configurable: true, }); - BoxCollider.prototype.setHeight = function(height) { + BoxCollider.prototype.setHeight = function (height) { this._colliderRequiresAutoSizing = false; var box = this.shape; if (height != box.height) { @@ -2173,7 +2438,7 @@ var BoxCollider = (function(_super) { Physics.updateCollider(this); } }; - BoxCollider.prototype.setSize = function(width, height) { + BoxCollider.prototype.setSize = function (width, height) { this._colliderRequiresAutoSizing = false; var box = this.shape; if (width != box.width || height != box.height) { @@ -2185,189 +2450,184 @@ var BoxCollider = (function(_super) { return this; }; return BoxCollider; -}(Collider)); -var EntitySystem = (function() { +})(Collider); +var EntitySystem = (function () { function EntitySystem(matcher) { this._entities = []; this._matcher = matcher ? matcher : Matcher.empty(); } Object.defineProperty(EntitySystem.prototype, "matcher", { - get : function() { return this._matcher; }, - enumerable : true, - configurable : true + get: function () { + return this._matcher; + }, + enumerable: true, + configurable: true, }); Object.defineProperty(EntitySystem.prototype, "scene", { - get : function() { return this._scene; }, - set : function(value) { + get: function () { + return this._scene; + }, + set: function (value) { this._scene = value; this._entities = []; }, - enumerable : true, - configurable : true + enumerable: true, + configurable: true, }); - EntitySystem.prototype.initialize = function() {}; - EntitySystem.prototype.onChanged = function(entity) { + EntitySystem.prototype.initialize = function () {}; + EntitySystem.prototype.onChanged = function (entity) { var contains = this._entities.contains(entity); var interest = this._matcher.IsIntersted(entity); - if (interest && !contains) - this.add(entity); - else if (!interest && contains) - this.remove(entity); + if (interest && !contains) this.add(entity); + else if (!interest && contains) this.remove(entity); }; - EntitySystem.prototype.add = function(entity) { + EntitySystem.prototype.add = function (entity) { this._entities.push(entity); this.onAdded(entity); }; - EntitySystem.prototype.onAdded = function(entity) {}; - EntitySystem.prototype.remove = function(entity) { + EntitySystem.prototype.onAdded = function (entity) {}; + EntitySystem.prototype.remove = function (entity) { this._entities.remove(entity); this.onRemoved(entity); }; - EntitySystem.prototype.onRemoved = function(entity) {}; - EntitySystem.prototype.update = function() { + EntitySystem.prototype.onRemoved = function (entity) {}; + EntitySystem.prototype.update = function () { this.begin(); this.process(this._entities); }; - EntitySystem.prototype.lateUpdate = function() { + EntitySystem.prototype.lateUpdate = function () { this.lateProcess(this._entities); this.end(); }; - EntitySystem.prototype.begin = function() {}; - EntitySystem.prototype.process = function(entities) {}; - EntitySystem.prototype.lateProcess = function(entities) {}; - EntitySystem.prototype.end = function() {}; + EntitySystem.prototype.begin = function () {}; + EntitySystem.prototype.process = function (entities) {}; + EntitySystem.prototype.lateProcess = function (entities) {}; + EntitySystem.prototype.end = function () {}; return EntitySystem; -}()); -var EntityProcessingSystem = (function(_super) { +})(); +var EntityProcessingSystem = (function (_super) { __extends(EntityProcessingSystem, _super); function EntityProcessingSystem(matcher) { return _super.call(this, matcher) || this; } - EntityProcessingSystem.prototype.lateProcessEntity = function(entity) {}; - EntityProcessingSystem.prototype.process = function(entities) { + EntityProcessingSystem.prototype.lateProcessEntity = function (entity) {}; + EntityProcessingSystem.prototype.process = function (entities) { var _this = this; - entities.forEach(function(entity) { return _this.processEntity(entity); }); + entities.forEach(function (entity) { + return _this.processEntity(entity); + }); }; - EntityProcessingSystem.prototype.lateProcess = function(entities) { + EntityProcessingSystem.prototype.lateProcess = function (entities) { var _this = this; - entities.forEach(function( - entity) { return _this.lateProcessEntity(entity); }); + entities.forEach(function (entity) { + return _this.lateProcessEntity(entity); + }); }; return EntityProcessingSystem; -}(EntitySystem)); -var PassiveSystem = (function(_super) { +})(EntitySystem); +var PassiveSystem = (function (_super) { __extends(PassiveSystem, _super); function PassiveSystem() { - return _super !== null && _super.apply(this, arguments) || this; + return (_super !== null && _super.apply(this, arguments)) || this; } - PassiveSystem.prototype.onChanged = function(entity) {}; - PassiveSystem.prototype.process = function(entities) { + PassiveSystem.prototype.onChanged = function (entity) {}; + PassiveSystem.prototype.process = function (entities) { this.begin(); this.end(); }; return PassiveSystem; -}(EntitySystem)); -var ProcessingSystem = (function(_super) { +})(EntitySystem); +var ProcessingSystem = (function (_super) { __extends(ProcessingSystem, _super); function ProcessingSystem() { - return _super !== null && _super.apply(this, arguments) || this; + return (_super !== null && _super.apply(this, arguments)) || this; } - ProcessingSystem.prototype.onChanged = function(entity) {}; - ProcessingSystem.prototype.process = function(entities) { + ProcessingSystem.prototype.onChanged = function (entity) {}; + ProcessingSystem.prototype.process = function (entities) { this.begin(); this.processSystem(); this.end(); }; return ProcessingSystem; -}(EntitySystem)); -var BitSet = (function() { +})(EntitySystem); +var BitSet = (function () { function BitSet(nbits) { if (nbits === void 0) { nbits = 64; } var length = nbits >> 6; - if ((nbits & BitSet.LONG_MASK) != 0) - length++; + if ((nbits & BitSet.LONG_MASK) != 0) length++; this._bits = new Array(length); } - BitSet.prototype.and = function(bs) { + BitSet.prototype.and = function (bs) { var max = Math.min(this._bits.length, bs._bits.length); var i; - for (var i_1 = 0; i_1 < max; ++i_1) - this._bits[i_1] &= bs._bits[i_1]; - while (i < this._bits.length) - this._bits[i++] = 0; + for (var i_1 = 0; i_1 < max; ++i_1) this._bits[i_1] &= bs._bits[i_1]; + while (i < this._bits.length) this._bits[i++] = 0; }; - BitSet.prototype.andNot = function(bs) { + BitSet.prototype.andNot = function (bs) { var i = Math.min(this._bits.length, bs._bits.length); - while (--i >= 0) - this._bits[i] &= ~bs._bits[i]; + while (--i >= 0) this._bits[i] &= ~bs._bits[i]; }; - BitSet.prototype.cardinality = function() { + BitSet.prototype.cardinality = function () { var card = 0; for (var i = this._bits.length - 1; i >= 0; i--) { var a = this._bits[i]; - if (a == 0) - continue; + if (a == 0) continue; if (a == -1) { card += 64; continue; } a = ((a >> 1) & 0x5555555555555555) + (a & 0x5555555555555555); a = ((a >> 2) & 0x3333333333333333) + (a & 0x3333333333333333); - var b = ((a >> 32) + a); + var b = (a >> 32) + a; b = ((b >> 4) & 0x0f0f0f0f) + (b & 0x0f0f0f0f); b = ((b >> 8) & 0x00ff00ff) + (b & 0x00ff00ff); card += ((b >> 16) & 0x0000ffff) + (b & 0x0000ffff); } return card; }; - BitSet.prototype.clear = function(pos) { + BitSet.prototype.clear = function (pos) { if (pos != undefined) { var offset = pos >> 6; this.ensure(offset); this._bits[offset] &= ~(1 << pos); } else { - for (var i = 0; i < this._bits.length; i++) - this._bits[i] = 0; + for (var i = 0; i < this._bits.length; i++) this._bits[i] = 0; } }; - BitSet.prototype.ensure = function(lastElt) { + BitSet.prototype.ensure = function (lastElt) { if (lastElt >= this._bits.length) { - var nd = new Number[lastElt + 1]; + var nd = new Number[lastElt + 1](); nd = this._bits.copyWithin(0, 0, this._bits.length); this._bits = nd; } }; - BitSet.prototype.get = function(pos) { + BitSet.prototype.get = function (pos) { var offset = pos >> 6; - if (offset >= this._bits.length) - return false; + if (offset >= this._bits.length) return false; return (this._bits[offset] & (1 << pos)) != 0; }; - BitSet.prototype.intersects = function(set) { + BitSet.prototype.intersects = function (set) { var i = Math.min(this._bits.length, set._bits.length); while (--i >= 0) { - if ((this._bits[i] & set._bits[i]) != 0) - return true; + if ((this._bits[i] & set._bits[i]) != 0) return true; } return false; }; - BitSet.prototype.isEmpty = function() { + BitSet.prototype.isEmpty = function () { for (var i = this._bits.length - 1; i >= 0; i--) { - if (this._bits[i]) - return false; + if (this._bits[i]) return false; } return true; }; - BitSet.prototype.nextSetBit = function(from) { + BitSet.prototype.nextSetBit = function (from) { var offset = from >> 6; var mask = 1 << from; while (offset < this._bits.length) { var h = this._bits[offset]; do { - if ((h & mask) != 0) - return from; + if ((h & mask) != 0) return from; mask <<= 1; from++; } while (mask != 0); @@ -2376,7 +2636,7 @@ var BitSet = (function() { } return -1; }; - BitSet.prototype.set = function(pos, value) { + BitSet.prototype.set = function (pos, value) { if (value === void 0) { value = true; } @@ -2390,8 +2650,8 @@ var BitSet = (function() { }; BitSet.LONG_MASK = 0x3f; return BitSet; -}()); -var ComponentList = (function() { +})(); +var ComponentList = (function () { function ComponentList(entity) { this._components = []; this._componentsToAdd = []; @@ -2400,25 +2660,30 @@ var ComponentList = (function() { this._entity = entity; } Object.defineProperty(ComponentList.prototype, "count", { - get : function() { return this._components.length; }, - enumerable : true, - configurable : true + get: function () { + return this._components.length; + }, + enumerable: true, + configurable: true, }); Object.defineProperty(ComponentList.prototype, "buffer", { - get : function() { return this._components; }, - enumerable : true, - configurable : true + get: function () { + return this._components; + }, + enumerable: true, + configurable: true, }); - ComponentList.prototype.add = function( - component) { this._componentsToAdd.push(component); }; - ComponentList.prototype.remove = function(component) { + ComponentList.prototype.add = function (component) { + this._componentsToAdd.push(component); + }; + ComponentList.prototype.remove = function (component) { if (this._componentsToAdd.contains(component)) { this._componentsToAdd.remove(component); return; } this._componentsToRemove.push(component); }; - ComponentList.prototype.removeAllComponents = function() { + ComponentList.prototype.removeAllComponents = function () { for (var i = 0; i < this._components.length; i++) { this.handleRemove(this._components[i]); } @@ -2426,27 +2691,30 @@ var ComponentList = (function() { this._componentsToAdd.length = 0; this._componentsToRemove.length = 0; }; - ComponentList.prototype.deregisterAllComponents = function() { + ComponentList.prototype.deregisterAllComponents = function () { for (var i = 0; i < this._components.length; i++) { var component = this._components[i]; if (component instanceof RenderableComponent) this._entity.scene.renderableComponents.remove(component); this._entity.componentBits.set( - ComponentTypeManager.getIndexFor(component), false); + ComponentTypeManager.getIndexFor(component), + false + ); this._entity.scene.entityProcessors.onComponentRemoved(this._entity); } }; - ComponentList.prototype.registerAllComponents = function() { + ComponentList.prototype.registerAllComponents = function () { for (var i = 0; i < this._components.length; i++) { var component = this._components[i]; if (component instanceof RenderableComponent) this._entity.scene.renderableComponents.add(component); this._entity.componentBits.set( - ComponentTypeManager.getIndexFor(component)); + ComponentTypeManager.getIndexFor(component) + ); this._entity.scene.entityProcessors.onComponentAdded(this._entity); } }; - ComponentList.prototype.updateLists = function() { + ComponentList.prototype.updateLists = function () { if (this._componentsToRemove.length > 0) { for (var i = 0; i < this._componentsToRemove.length; i++) { this.handleRemove(this._componentsToRemove[i]); @@ -2460,7 +2728,8 @@ var ComponentList = (function() { if (component instanceof RenderableComponent) this._entity.scene.renderableComponents.add(component); this._entity.componentBits.set( - ComponentTypeManager.getIndexFor(component)); + ComponentTypeManager.getIndexFor(component) + ); this._entity.scene.entityProcessors.onComponentAdded(this._entity); this._components.push(component); this._tempBufferList.push(component); @@ -2476,37 +2745,38 @@ var ComponentList = (function() { this._tempBufferList.length = 0; } }; - ComponentList.prototype.handleRemove = function(component) { + ComponentList.prototype.handleRemove = function (component) { if (component instanceof RenderableComponent) this._entity.scene.renderableComponents.remove(component); - this._entity.componentBits.set(ComponentTypeManager.getIndexFor(component), - false); + this._entity.componentBits.set( + ComponentTypeManager.getIndexFor(component), + false + ); this._entity.scene.entityProcessors.onComponentRemoved(this._entity); component.onRemovedFromEntity(); component.entity = null; }; - ComponentList.prototype.getComponent = function( - type, onlyReturnInitializedComponents) { + ComponentList.prototype.getComponent = function ( + type, + onlyReturnInitializedComponents + ) { for (var i = 0; i < this._components.length; i++) { var component = this._components[i]; - if (component instanceof type) - return component; + if (component instanceof type) return component; } if (!onlyReturnInitializedComponents) { for (var i = 0; i < this._componentsToAdd.length; i++) { var component = this._componentsToAdd[i]; - if (component instanceof type) - return component; + if (component instanceof type) return component; } } return null; }; - ComponentList.prototype.getComponents = function(typeName, components) { - if (!components) - components = []; + ComponentList.prototype.getComponents = function (typeName, components) { + if (!components) components = []; for (var i = 0; i < this._components.length; i++) { var component = this._components[i]; - if (typeof (typeName) == "string") { + if (typeof typeName == "string") { if (egret.is(component, typeName)) { components.push(component); } @@ -2518,7 +2788,7 @@ var ComponentList = (function() { } for (var i = 0; i < this._componentsToAdd.length; i++) { var component = this._componentsToAdd[i]; - if (typeof (typeName) == "string") { + if (typeof typeName == "string") { if (egret.is(component, typeName)) { components.push(component); } @@ -2530,17 +2800,19 @@ var ComponentList = (function() { } return components; }; - ComponentList.prototype.update = function() { + ComponentList.prototype.update = function () { this.updateLists(); for (var i = 0; i < this._components.length; i++) { var component = this._components[i]; - if (component.enabled && - (component.updateInterval == 1 || - Time.frameCount % component.updateInterval == 0)) + if ( + component.enabled && + (component.updateInterval == 1 || + Time.frameCount % component.updateInterval == 0) + ) component.update(); } }; - ComponentList.prototype.onEntityTransformChanged = function(comp) { + ComponentList.prototype.onEntityTransformChanged = function (comp) { for (var i = 0; i < this._components.length; i++) { if (this._components[i].enabled) this._components[i].onEntityTransformChanged(comp); @@ -2551,14 +2823,14 @@ var ComponentList = (function() { } }; return ComponentList; -}()); -var ComponentTypeManager = (function() { +})(); +var ComponentTypeManager = (function () { function ComponentTypeManager() {} - ComponentTypeManager.add = function(type) { + ComponentTypeManager.add = function (type) { if (!this._componentTypesMask.has(type)) this._componentTypesMask[type] = this._componentTypesMask.size; }; - ComponentTypeManager.getIndexFor = function(type) { + ComponentTypeManager.getIndexFor = function (type) { var v = -1; if (!this._componentTypesMask.has(type)) { this.add(type); @@ -2568,8 +2840,8 @@ var ComponentTypeManager = (function() { }; ComponentTypeManager._componentTypesMask = new Map(); return ComponentTypeManager; -}()); -var EntityList = (function() { +})(); +var EntityList = (function () { function EntityList(scene) { this._entitiesToRemove = []; this._entitiesToAdded = []; @@ -2580,20 +2852,24 @@ var EntityList = (function() { this.scene = scene; } Object.defineProperty(EntityList.prototype, "count", { - get : function() { return this._entities.length; }, - enumerable : true, - configurable : true + get: function () { + return this._entities.length; + }, + enumerable: true, + configurable: true, }); Object.defineProperty(EntityList.prototype, "buffer", { - get : function() { return this._entities; }, - enumerable : true, - configurable : true + get: function () { + return this._entities; + }, + enumerable: true, + configurable: true, }); - EntityList.prototype.add = function(entity) { + EntityList.prototype.add = function (entity) { if (this._entitiesToAdded.indexOf(entity) == -1) this._entitiesToAdded.push(entity); }; - EntityList.prototype.remove = function(entity) { + EntityList.prototype.remove = function (entity) { if (this._entitiesToAdded.contains(entity)) { this._entitiesToAdded.remove(entity); return; @@ -2601,15 +2877,15 @@ var EntityList = (function() { if (!this._entitiesToRemove.contains(entity)) this._entitiesToRemove.push(entity); }; - EntityList.prototype.findEntity = function(name) { + EntityList.prototype.findEntity = function (name) { for (var i = 0; i < this._entities.length; i++) { - if (this._entities[i].name == name) - return this._entities[i]; + if (this._entities[i].name == name) return this._entities[i]; } - return this._entitiesToAdded.firstOrDefault(function( - entity) { return entity.name == name; }); + return this._entitiesToAdded.firstOrDefault(function (entity) { + return entity.name == name; + }); }; - EntityList.prototype.getTagList = function(tag) { + EntityList.prototype.getTagList = function (tag) { var list = this._entityDict.get(tag); if (!list) { list = []; @@ -2617,27 +2893,26 @@ var EntityList = (function() { } return this._entityDict.get(tag); }; - EntityList.prototype.addToTagList = function(entity) { + EntityList.prototype.addToTagList = function (entity) { var list = this.getTagList(entity.tag); if (!list.contains(entity)) { list.push(entity); this._unsortedTags.push(entity.tag); } }; - EntityList.prototype.removeFromTagList = function(entity) { + EntityList.prototype.removeFromTagList = function (entity) { var list = this._entityDict.get(entity.tag); if (list) { list.remove(entity); } }; - EntityList.prototype.update = function() { + EntityList.prototype.update = function () { for (var i = 0; i < this._entities.length; i++) { var entity = this._entities[i]; - if (entity.enabled) - entity.update(); + if (entity.enabled) entity.update(); } }; - EntityList.prototype.removeAllEntities = function() { + EntityList.prototype.removeAllEntities = function () { this._entitiesToAdded.length = 0; this.updateLists(); for (var i = 0; i < this._entities.length; i++) { @@ -2648,13 +2923,13 @@ var EntityList = (function() { this._entities.length = 0; this._entityDict.clear(); }; - EntityList.prototype.updateLists = function() { + EntityList.prototype.updateLists = function () { var _this = this; if (this._entitiesToRemove.length > 0) { var temp = this._entitiesToRemove; this._entitiesToRemove = this._tempEntityList; this._tempEntityList = temp; - this._tempEntityList.forEach(function(entity) { + this._tempEntityList.forEach(function (entity) { _this._entities.remove(entity); entity.scene = null; _this.scene.entityProcessors.onEntityRemoved(entity); @@ -2665,151 +2940,182 @@ var EntityList = (function() { var temp = this._entitiesToAdded; this._entitiesToAdded = this._tempEntityList; this._tempEntityList = temp; - this._tempEntityList.forEach(function(entity) { + this._tempEntityList.forEach(function (entity) { if (!_this._entities.contains(entity)) { _this._entities.push(entity); entity.scene = _this.scene; _this.scene.entityProcessors.onEntityAdded(entity); } }); - this._tempEntityList.forEach(function( - entity) { return entity.onAddedToScene(); }); + this._tempEntityList.forEach(function (entity) { + return entity.onAddedToScene(); + }); this._tempEntityList.length = 0; } if (this._unsortedTags.length > 0) { - this._unsortedTags.forEach(function( - tag) { _this._entityDict.get(tag).sort(); }); + this._unsortedTags.forEach(function (tag) { + _this._entityDict.get(tag).sort(); + }); this._unsortedTags.length = 0; } }; return EntityList; -}()); -var EntityProcessorList = (function() { - function EntityProcessorList() { this._processors = []; } - EntityProcessorList.prototype.add = function( - processor) { this._processors.push(processor); }; - EntityProcessorList.prototype.remove = function( - processor) { this._processors.remove(processor); }; - EntityProcessorList.prototype.onComponentAdded = function( - entity) { this.notifyEntityChanged(entity); }; - EntityProcessorList.prototype.onComponentRemoved = function( - entity) { this.notifyEntityChanged(entity); }; - EntityProcessorList.prototype.onEntityAdded = function( - entity) { this.notifyEntityChanged(entity); }; - EntityProcessorList.prototype.onEntityRemoved = function( - entity) { this.removeFromProcessors(entity); }; - EntityProcessorList.prototype.notifyEntityChanged = function(entity) { +})(); +var EntityProcessorList = (function () { + function EntityProcessorList() { + this._processors = []; + } + EntityProcessorList.prototype.add = function (processor) { + this._processors.push(processor); + }; + EntityProcessorList.prototype.remove = function (processor) { + this._processors.remove(processor); + }; + EntityProcessorList.prototype.onComponentAdded = function (entity) { + this.notifyEntityChanged(entity); + }; + EntityProcessorList.prototype.onComponentRemoved = function (entity) { + this.notifyEntityChanged(entity); + }; + EntityProcessorList.prototype.onEntityAdded = function (entity) { + this.notifyEntityChanged(entity); + }; + EntityProcessorList.prototype.onEntityRemoved = function (entity) { + this.removeFromProcessors(entity); + }; + EntityProcessorList.prototype.notifyEntityChanged = function (entity) { for (var i = 0; i < this._processors.length; i++) { this._processors[i].onChanged(entity); } }; - EntityProcessorList.prototype.removeFromProcessors = function(entity) { + EntityProcessorList.prototype.removeFromProcessors = function (entity) { for (var i = 0; i < this._processors.length; i++) { this._processors[i].remove(entity); } }; - EntityProcessorList.prototype.begin = function() {}; - EntityProcessorList.prototype.update = function() { + EntityProcessorList.prototype.begin = function () {}; + EntityProcessorList.prototype.update = function () { for (var i = 0; i < this._processors.length; i++) { this._processors[i].update(); } }; - EntityProcessorList.prototype.lateUpdate = function() { + EntityProcessorList.prototype.lateUpdate = function () { for (var i = 0; i < this._processors.length; i++) { this._processors[i].lateUpdate(); } }; - EntityProcessorList.prototype.end = function() {}; - EntityProcessorList.prototype.getProcessor = function() { + EntityProcessorList.prototype.end = function () {}; + EntityProcessorList.prototype.getProcessor = function () { for (var i = 0; i < this._processors.length; i++) { var processor = this._processors[i]; - if (processor instanceof EntitySystem) - return processor; + if (processor instanceof EntitySystem) return processor; } return null; }; return EntityProcessorList; -}()); -var Matcher = (function() { +})(); +var Matcher = (function () { function Matcher() { this.allSet = new BitSet(); this.exclusionSet = new BitSet(); this.oneSet = new BitSet(); } - Matcher.empty = function() { return new Matcher(); }; - Matcher.prototype.getAllSet = function() { return this.allSet; }; - Matcher.prototype.getExclusionSet = function() { return this.exclusionSet; }; - Matcher.prototype.getOneSet = function() { return this.oneSet; }; - Matcher.prototype.IsIntersted = function(e) { + Matcher.empty = function () { + return new Matcher(); + }; + Matcher.prototype.getAllSet = function () { + return this.allSet; + }; + Matcher.prototype.getExclusionSet = function () { + return this.exclusionSet; + }; + Matcher.prototype.getOneSet = function () { + return this.oneSet; + }; + Matcher.prototype.IsIntersted = function (e) { if (!this.allSet.isEmpty()) { - for (var i = this.allSet.nextSetBit(0); i >= 0; - i = this.allSet.nextSetBit(i + 1)) { - if (!e.componentBits.get(i)) - return false; + for ( + var i = this.allSet.nextSetBit(0); + i >= 0; + i = this.allSet.nextSetBit(i + 1) + ) { + if (!e.componentBits.get(i)) return false; } } - if (!this.exclusionSet.isEmpty() && - this.exclusionSet.intersects(e.componentBits)) + if ( + !this.exclusionSet.isEmpty() && + this.exclusionSet.intersects(e.componentBits) + ) return false; if (!this.oneSet.isEmpty() && !this.oneSet.intersects(e.componentBits)) return false; return true; }; - Matcher.prototype.all = function() { + Matcher.prototype.all = function () { var _this = this; var types = []; for (var _i = 0; _i < arguments.length; _i++) { types[_i] = arguments[_i]; } - types.forEach(function( - type) { _this.allSet.set(ComponentTypeManager.getIndexFor(type)); }); + types.forEach(function (type) { + _this.allSet.set(ComponentTypeManager.getIndexFor(type)); + }); return this; }; - Matcher.prototype.exclude = function() { + Matcher.prototype.exclude = function () { var _this = this; var types = []; for (var _i = 0; _i < arguments.length; _i++) { types[_i] = arguments[_i]; } - types.forEach(function(type) { + types.forEach(function (type) { _this.exclusionSet.set(ComponentTypeManager.getIndexFor(type)); }); return this; }; - Matcher.prototype.one = function() { + Matcher.prototype.one = function () { var _this = this; var types = []; for (var _i = 0; _i < arguments.length; _i++) { types[_i] = arguments[_i]; } - types.forEach(function( - type) { _this.oneSet.set(ComponentTypeManager.getIndexFor(type)); }); + types.forEach(function (type) { + _this.oneSet.set(ComponentTypeManager.getIndexFor(type)); + }); return this; }; return Matcher; -}()); -var RenderableComponentList = (function() { - function RenderableComponentList() { this._components = []; } +})(); +var RenderableComponentList = (function () { + function RenderableComponentList() { + this._components = []; + } Object.defineProperty(RenderableComponentList.prototype, "count", { - get : function() { return this._components.length; }, - enumerable : true, - configurable : true + get: function () { + return this._components.length; + }, + enumerable: true, + configurable: true, }); Object.defineProperty(RenderableComponentList.prototype, "buffer", { - get : function() { return this._components; }, - enumerable : true, - configurable : true + get: function () { + return this._components; + }, + enumerable: true, + configurable: true, }); - RenderableComponentList.prototype.add = function( - component) { this._components.push(component); }; - RenderableComponentList.prototype.remove = function( - component) { this._components.remove(component); }; - RenderableComponentList.prototype.updateList = function() {}; + RenderableComponentList.prototype.add = function (component) { + this._components.push(component); + }; + RenderableComponentList.prototype.remove = function (component) { + this._components.remove(component); + }; + RenderableComponentList.prototype.updateList = function () {}; return RenderableComponentList; -}()); -var Time = (function() { - function Time() {}; - Time.update = function(currentTime) { +})(); +var Time = (function () { + function Time() {} + Time.update = function (currentTime) { var dt = (currentTime - this._lastTime) / 1000; this.deltaTime = dt * this.timeScale; this.unscaledDeltaTime = dt; @@ -2821,39 +3127,40 @@ var Time = (function() { Time.frameCount = 0; Time._lastTime = 0; return Time; -}()); -var GraphicsCapabilities = (function() { +})(); +var GraphicsCapabilities = (function () { function GraphicsCapabilities() {} - GraphicsCapabilities.prototype.initialize = function( - device) { this.platformInitialize(device); }; - GraphicsCapabilities.prototype.platformInitialize = function(device) { + GraphicsCapabilities.prototype.initialize = function (device) { + this.platformInitialize(device); + }; + GraphicsCapabilities.prototype.platformInitialize = function (device) { var gl = new egret.sys.RenderBuffer().context.getInstance(); this.supportsNonPowerOfTwo = false; this.supportsTextureFilterAnisotropic = - gl.getExtension("EXT_texture_filter_anisotropic") != null; + gl.getExtension("EXT_texture_filter_anisotropic") != null; this.supportsDepth24 = true; this.supportsPackedDepthStencil = true; this.supportsDepthNonLinear = false; this.supportsTextureMaxLevel = true; this.supportsS3tc = - gl.getExtension("WEBGL_compressed_texture_s3tc") != null || - gl.getExtension("WEBGL_compressed_texture_s3tc_srgb") != null; + gl.getExtension("WEBGL_compressed_texture_s3tc") != null || + gl.getExtension("WEBGL_compressed_texture_s3tc_srgb") != null; this.supportsDxt1 = this.supportsS3tc; this.supportsPvrtc = false; this.supportsAtitc = - gl.getExtension("WEBGL_compressed_texture_astc") != null; + gl.getExtension("WEBGL_compressed_texture_astc") != null; this.supportsFramebufferObjectARB = false; }; return GraphicsCapabilities; -}()); -var GraphicsDevice = (function() { +})(); +var GraphicsDevice = (function () { function GraphicsDevice() { this.graphicsCapabilities = new GraphicsCapabilities(); this.graphicsCapabilities.initialize(this); } return GraphicsDevice; -}()); -var Viewport = (function() { +})(); +var Viewport = (function () { function Viewport(x, y, width, height) { this._x = x; this._y = y; @@ -2863,112 +3170,121 @@ var Viewport = (function() { this._maxDepth = 1; } Object.defineProperty(Viewport.prototype, "aspectRatio", { - get : function() { - if ((this._height != 0) && (this._width != 0)) - return (this._width / this._height); + get: function () { + if (this._height != 0 && this._width != 0) + return this._width / this._height; return 0; }, - enumerable : true, - configurable : true + enumerable: true, + configurable: true, }); Object.defineProperty(Viewport.prototype, "bounds", { - get : function() { + get: function () { return new Rectangle(this._x, this._y, this._width, this._height); }, - set : function(value) { + set: function (value) { this._x = value.x; this._y = value.y; this._width = value.width; this._height = value.height; }, - enumerable : true, - configurable : true + enumerable: true, + configurable: true, }); return Viewport; -}()); -var GraphicsResource = (function() { +})(); +var GraphicsResource = (function () { function GraphicsResource() {} return GraphicsResource; -}()); -var GaussianBlurEffect = (function(_super) { +})(); +var GaussianBlurEffect = (function (_super) { __extends(GaussianBlurEffect, _super); function GaussianBlurEffect() { - return _super.call(this, PostProcessor.default_vert, - GaussianBlurEffect.blur_frag, { - screenWidth : SceneManager.stage.stageWidth, - screenHeight : SceneManager.stage.stageHeight - }) || - this; + return ( + _super.call( + this, + PostProcessor.default_vert, + GaussianBlurEffect.blur_frag, + { + screenWidth: SceneManager.stage.stageWidth, + screenHeight: SceneManager.stage.stageHeight, + } + ) || this + ); } GaussianBlurEffect.blur_frag = - "precision mediump float;\n" + - "uniform sampler2D uSampler;\n" + - "uniform float screenWidth;\n" + - "uniform float screenHeight;\n" + - "float normpdf(in float x, in float sigma)\n" + - "{\n" + - "return 0.39894*exp(-0.5*x*x/(sigma*sigma))/sigma;\n" + - "}\n" + - "void main()\n" + - "{\n" + - "vec3 c = texture2D(uSampler, gl_FragCoord.xy / vec2(screenWidth, screenHeight).xy).rgb;\n" + - "const int mSize = 11;\n" + - "const int kSize = (mSize - 1)/2;\n" + - "float kernel[mSize];\n" + - "vec3 final_colour = vec3(0.0);\n" + - "float sigma = 7.0;\n" + - "float z = 0.0;\n" + - "for (int j = 0; j <= kSize; ++j)\n" + - "{\n" + - "kernel[kSize+j] = kernel[kSize-j] = normpdf(float(j),sigma);\n" + - "}\n" + - "for (int j = 0; j < mSize; ++j)\n" + - "{\n" + - "z += kernel[j];\n" + - "}\n" + - "for (int i = -kSize; i <= kSize; ++i)\n" + - "{\n" + - "for (int j = -kSize; j <= kSize; ++j)\n" + - "{\n" + - "final_colour += kernel[kSize+j]*kernel[kSize+i]*texture2D(uSampler, (gl_FragCoord.xy+vec2(float(i),float(j))) / vec2(screenWidth, screenHeight).xy).rgb;\n" + - "}\n}\n" + - "gl_FragColor = vec4(final_colour/(z*z), 1.0);\n" + - "}"; + "precision mediump float;\n" + + "uniform sampler2D uSampler;\n" + + "uniform float screenWidth;\n" + + "uniform float screenHeight;\n" + + "float normpdf(in float x, in float sigma)\n" + + "{\n" + + "return 0.39894*exp(-0.5*x*x/(sigma*sigma))/sigma;\n" + + "}\n" + + "void main()\n" + + "{\n" + + "vec3 c = texture2D(uSampler, gl_FragCoord.xy / vec2(screenWidth, screenHeight).xy).rgb;\n" + + "const int mSize = 11;\n" + + "const int kSize = (mSize - 1)/2;\n" + + "float kernel[mSize];\n" + + "vec3 final_colour = vec3(0.0);\n" + + "float sigma = 7.0;\n" + + "float z = 0.0;\n" + + "for (int j = 0; j <= kSize; ++j)\n" + + "{\n" + + "kernel[kSize+j] = kernel[kSize-j] = normpdf(float(j),sigma);\n" + + "}\n" + + "for (int j = 0; j < mSize; ++j)\n" + + "{\n" + + "z += kernel[j];\n" + + "}\n" + + "for (int i = -kSize; i <= kSize; ++i)\n" + + "{\n" + + "for (int j = -kSize; j <= kSize; ++j)\n" + + "{\n" + + "final_colour += kernel[kSize+j]*kernel[kSize+i]*texture2D(uSampler, (gl_FragCoord.xy+vec2(float(i),float(j))) / vec2(screenWidth, screenHeight).xy).rgb;\n" + + "}\n}\n" + + "gl_FragColor = vec4(final_colour/(z*z), 1.0);\n" + + "}"; return GaussianBlurEffect; -}(egret.CustomFilter)); -var PolygonLightEffect = (function(_super) { +})(egret.CustomFilter); +var PolygonLightEffect = (function (_super) { __extends(PolygonLightEffect, _super); function PolygonLightEffect() { - return _super.call(this, PolygonLightEffect.vertSrc, - PolygonLightEffect.fragmentSrc) || - this; + return ( + _super.call( + this, + PolygonLightEffect.vertSrc, + PolygonLightEffect.fragmentSrc + ) || this + ); } PolygonLightEffect.vertSrc = - "attribute vec2 aVertexPosition;\n" + - "attribute vec2 aTextureCoord;\n" + - "uniform vec2 projectionVector;\n" + - "varying vec2 vTextureCoord;\n" + - "const vec2 center = vec2(-1.0, 1.0);\n" + - "void main(void) {\n" + - " gl_Position = vec4( (aVertexPosition / projectionVector) + center , 0.0, 1.0);\n" + - " vTextureCoord = aTextureCoord;\n" + - "}"; + "attribute vec2 aVertexPosition;\n" + + "attribute vec2 aTextureCoord;\n" + + "uniform vec2 projectionVector;\n" + + "varying vec2 vTextureCoord;\n" + + "const vec2 center = vec2(-1.0, 1.0);\n" + + "void main(void) {\n" + + " gl_Position = vec4( (aVertexPosition / projectionVector) + center , 0.0, 1.0);\n" + + " vTextureCoord = aTextureCoord;\n" + + "}"; PolygonLightEffect.fragmentSrc = - "precision lowp float;\n" + - "varying vec2 vTextureCoord;\n" + - "uniform sampler2D uSampler;\n" + - "#define SAMPLE_COUNT 15\n" + - "uniform vec2 _sampleOffsets[SAMPLE_COUNT];\n" + - "uniform float _sampleWeights[SAMPLE_COUNT];\n" + - "void main(void) {\n" + - "vec4 c = vec4(0, 0, 0, 0);\n" + - "for( int i = 0; i < SAMPLE_COUNT; i++ )\n" + - " c += texture2D( uSampler, vTextureCoord + _sampleOffsets[i] ) * _sampleWeights[i];\n" + - "gl_FragColor = c;\n" + - "}"; + "precision lowp float;\n" + + "varying vec2 vTextureCoord;\n" + + "uniform sampler2D uSampler;\n" + + "#define SAMPLE_COUNT 15\n" + + "uniform vec2 _sampleOffsets[SAMPLE_COUNT];\n" + + "uniform float _sampleWeights[SAMPLE_COUNT];\n" + + "void main(void) {\n" + + "vec4 c = vec4(0, 0, 0, 0);\n" + + "for( int i = 0; i < SAMPLE_COUNT; i++ )\n" + + " c += texture2D( uSampler, vTextureCoord + _sampleOffsets[i] ) * _sampleWeights[i];\n" + + "gl_FragColor = c;\n" + + "}"; return PolygonLightEffect; -}(egret.CustomFilter)); -var PostProcessor = (function() { +})(egret.CustomFilter); +var PostProcessor = (function () { function PostProcessor(effect) { if (effect === void 0) { effect = null; @@ -2976,21 +3292,30 @@ var PostProcessor = (function() { this.enable = true; this.effect = effect; } - PostProcessor.prototype.onAddedToScene = function(scene) { + PostProcessor.prototype.onAddedToScene = function (scene) { this.scene = scene; this.shape = new egret.Shape(); - this.shape.graphics.beginFill(0xFFFFFF, 1); - this.shape.graphics.drawRect(0, 0, SceneManager.stage.stageWidth, - SceneManager.stage.stageHeight); + this.shape.graphics.beginFill(0xffffff, 1); + this.shape.graphics.drawRect( + 0, + 0, + SceneManager.stage.stageWidth, + SceneManager.stage.stageHeight + ); this.shape.graphics.endFill(); scene.addChild(this.shape); }; - PostProcessor.prototype.process = function() { this.drawFullscreenQuad(); }; - PostProcessor.prototype.onSceneBackBufferSizeChanged = function(newWidth, - newHeight) {}; - PostProcessor.prototype.drawFullscreenQuad = - function() { this.scene.filters = [ this.effect ]; }; - PostProcessor.prototype.unload = function() { + PostProcessor.prototype.process = function () { + this.drawFullscreenQuad(); + }; + PostProcessor.prototype.onSceneBackBufferSizeChanged = function ( + newWidth, + newHeight + ) {}; + PostProcessor.prototype.drawFullscreenQuad = function () { + this.scene.filters = [this.effect]; + }; + PostProcessor.prototype.unload = function () { if (this.effect) { this.effect = null; } @@ -2998,23 +3323,29 @@ var PostProcessor = (function() { this.scene = null; }; PostProcessor.default_vert = - "attribute vec2 aVertexPosition;\n" + - "attribute vec2 aTextureCoord;\n" + - "attribute vec2 aColor;\n" + - "uniform vec2 projectionVector;\n" + - "varying vec2 vTextureCoord;\n" + - "varying vec4 vColor;\n" + - "const vec2 center = vec2(-1.0, 1.0);\n" + - "void main(void) {\n" + - "gl_Position = vec4( (aVertexPosition / projectionVector) + center , 0.0, 1.0);\n" + - "vTextureCoord = aTextureCoord;\n" + - "vColor = vec4(aColor.x, aColor.x, aColor.x, aColor.x);\n" + - "}"; + "attribute vec2 aVertexPosition;\n" + + "attribute vec2 aTextureCoord;\n" + + "attribute vec2 aColor;\n" + + "uniform vec2 projectionVector;\n" + + "varying vec2 vTextureCoord;\n" + + "varying vec4 vColor;\n" + + "const vec2 center = vec2(-1.0, 1.0);\n" + + "void main(void) {\n" + + "gl_Position = vec4( (aVertexPosition / projectionVector) + center , 0.0, 1.0);\n" + + "vTextureCoord = aTextureCoord;\n" + + "vColor = vec4(aColor.x, aColor.x, aColor.x, aColor.x);\n" + + "}"; return PostProcessor; -}()); -var BloomSettings = (function() { - function BloomSettings(bloomThreshold, blurAmount, bloomIntensity, - baseIntensity, bloomSaturation, baseSaturation) { +})(); +var BloomSettings = (function () { + function BloomSettings( + bloomThreshold, + blurAmount, + bloomIntensity, + baseIntensity, + bloomSaturation, + baseSaturation + ) { this.threshold = bloomThreshold; this.blurAmount = blurAmount; this.intensity = bloomIntensity; @@ -3024,38 +3355,41 @@ var BloomSettings = (function() { } BloomSettings.presetSettings = [ new BloomSettings(0.1, 0.6, 2, 1, 1, 0), - new BloomSettings(0, 3, 1, 1, 1, 1), new BloomSettings(0.5, 8, 2, 1, 0, 1), + new BloomSettings(0, 3, 1, 1, 1, 1), + new BloomSettings(0.5, 8, 2, 1, 0, 1), new BloomSettings(0.25, 8, 1.3, 1, 1, 0), - new BloomSettings(0, 2, 1, 0.1, 1, 1), new BloomSettings(0.5, 2, 1, 1, 1, 1) + new BloomSettings(0, 2, 1, 0.1, 1, 1), + new BloomSettings(0.5, 2, 1, 1, 1, 1), ]; return BloomSettings; -}()); -var GaussianBlurPostProcessor = (function(_super) { +})(); +var GaussianBlurPostProcessor = (function (_super) { __extends(GaussianBlurPostProcessor, _super); function GaussianBlurPostProcessor() { - return _super !== null && _super.apply(this, arguments) || this; + return (_super !== null && _super.apply(this, arguments)) || this; } - GaussianBlurPostProcessor.prototype.onAddedToScene = function(scene) { + GaussianBlurPostProcessor.prototype.onAddedToScene = function (scene) { _super.prototype.onAddedToScene.call(this, scene); this.effect = new GaussianBlurEffect(); }; return GaussianBlurPostProcessor; -}(PostProcessor)); -var Renderer = (function() { +})(PostProcessor); +var Renderer = (function () { function Renderer() {} - Renderer.prototype.onAddedToScene = function(scene) {}; - Renderer.prototype.beginRender = function(cam) {}; - Renderer.prototype.unload = function() {}; - Renderer.prototype.renderAfterStateCheck = function( - renderable, cam) { renderable.render(cam); }; + Renderer.prototype.onAddedToScene = function (scene) {}; + Renderer.prototype.beginRender = function (cam) {}; + Renderer.prototype.unload = function () {}; + Renderer.prototype.renderAfterStateCheck = function (renderable, cam) { + renderable.render(cam); + }; return Renderer; -}()); -var DefaultRenderer = (function(_super) { +})(); +var DefaultRenderer = (function (_super) { __extends(DefaultRenderer, _super); function DefaultRenderer() { - return _super !== null && _super.apply(this, arguments) || this; + return (_super !== null && _super.apply(this, arguments)) || this; } - DefaultRenderer.prototype.render = function(scene) { + DefaultRenderer.prototype.render = function (scene) { var cam = this.camera ? this.camera : scene.camera; this.beginRender(cam); for (var i = 0; i < scene.renderableComponents.count; i++) { @@ -3065,16 +3399,16 @@ var DefaultRenderer = (function(_super) { } }; return DefaultRenderer; -}(Renderer)); -var ScreenSpaceRenderer = (function(_super) { +})(Renderer); +var ScreenSpaceRenderer = (function (_super) { __extends(ScreenSpaceRenderer, _super); function ScreenSpaceRenderer() { - return _super !== null && _super.apply(this, arguments) || this; + return (_super !== null && _super.apply(this, arguments)) || this; } - ScreenSpaceRenderer.prototype.render = function(scene) {}; + ScreenSpaceRenderer.prototype.render = function (scene) {}; return ScreenSpaceRenderer; -}(Renderer)); -var PolyLight = (function(_super) { +})(Renderer); +var PolyLight = (function (_super) { __extends(PolyLight, _super); function PolyLight(radius, color, power) { var _this = _super.call(this) || this; @@ -3086,12 +3420,16 @@ var PolyLight = (function(_super) { return _this; } Object.defineProperty(PolyLight.prototype, "radius", { - get : function() { return this._radius; }, - set : function(value) { this.setRadius(value); }, - enumerable : true, - configurable : true + get: function () { + return this._radius; + }, + set: function (value) { + this.setRadius(value); + }, + enumerable: true, + configurable: true, }); - PolyLight.prototype.computeTriangleIndices = function(totalTris) { + PolyLight.prototype.computeTriangleIndices = function (totalTris) { if (totalTris === void 0) { totalTris = 20; } @@ -3102,92 +3440,97 @@ var PolyLight = (function(_super) { this._indices.push(i + 1); } }; - PolyLight.prototype.setRadius = function(radius) { + PolyLight.prototype.setRadius = function (radius) { if (radius != this._radius) { this._radius = radius; this._areBoundsDirty = true; } }; - PolyLight.prototype.render = function(camera) {}; - PolyLight.prototype.reset = function() {}; + PolyLight.prototype.render = function (camera) {}; + PolyLight.prototype.reset = function () {}; return PolyLight; -}(RenderableComponent)); -var SceneTransition = (function() { +})(RenderableComponent); +var SceneTransition = (function () { function SceneTransition(sceneLoadAction) { this.sceneLoadAction = sceneLoadAction; this.loadsNewScene = sceneLoadAction != null; } Object.defineProperty(SceneTransition.prototype, "hasPreviousSceneRender", { - get : function() { + get: function () { if (!this._hasPreviousSceneRender) { this._hasPreviousSceneRender = true; return false; } return true; }, - enumerable : true, - configurable : true + enumerable: true, + configurable: true, }); - SceneTransition.prototype.preRender = function() {}; - SceneTransition.prototype.render = function() {}; - SceneTransition.prototype.onBeginTransition = function() { - return __awaiter(this, void 0, void 0, function() { - return __generator(this, function(_a) { + SceneTransition.prototype.preRender = function () {}; + SceneTransition.prototype.render = function () {}; + SceneTransition.prototype.onBeginTransition = function () { + return __awaiter(this, void 0, void 0, function () { + return __generator(this, function (_a) { switch (_a.label) { - case 0: - return [ 4, this.loadNextScene() ]; - case 1: - _a.sent(); - this.transitionComplete(); - return [ 2 ]; + case 0: + return [4, this.loadNextScene()]; + case 1: + _a.sent(); + this.transitionComplete(); + return [2]; } }); }); }; - SceneTransition.prototype.transitionComplete = function() { + SceneTransition.prototype.transitionComplete = function () { SceneManager.sceneTransition = null; if (this.onTransitionCompleted) { this.onTransitionCompleted(); } }; - SceneTransition.prototype.loadNextScene = function() { - return __awaiter(this, void 0, void 0, function() { + SceneTransition.prototype.loadNextScene = function () { + return __awaiter(this, void 0, void 0, function () { var _a; - return __generator(this, function(_b) { + return __generator(this, function (_b) { switch (_b.label) { - case 0: - if (this.onScreenObscured) - this.onScreenObscured(); - if (!this.loadsNewScene) { + case 0: + if (this.onScreenObscured) this.onScreenObscured(); + if (!this.loadsNewScene) { + this.isNewSceneLoaded = true; + } + _a = SceneManager; + return [4, this.sceneLoadAction()]; + case 1: + _a.scene = _b.sent(); this.isNewSceneLoaded = true; - } - _a = SceneManager; - return [ 4, this.sceneLoadAction() ]; - case 1: - _a.scene = _b.sent(); - this.isNewSceneLoaded = true; - return [ 2 ]; + return [2]; } }); }); }; - SceneTransition.prototype.tickEffectProgressProperty = function( - filter, duration, easeType, reverseDirection) { + SceneTransition.prototype.tickEffectProgressProperty = function ( + filter, + duration, + easeType, + reverseDirection + ) { if (reverseDirection === void 0) { reverseDirection = false; } - return new Promise(function(resolve) { + return new Promise(function (resolve) { var start = reverseDirection ? 1 : 0; var end = reverseDirection ? 0 : 1; egret.Tween.get(filter.uniforms) - .set({_progress : start}) - .to({_progress : end}, duration * 1000, easeType) - .call(function() { resolve(); }); + .set({ _progress: start }) + .to({ _progress: end }, duration * 1000, easeType) + .call(function () { + resolve(); + }); }); }; return SceneTransition; -}()); -var FadeTransition = (function(_super) { +})(); +var FadeTransition = (function (_super) { __extends(FadeTransition, _super); function FadeTransition(sceneLoadAction) { var _this = _super.call(this, sceneLoadAction) || this; @@ -3199,138 +3542,165 @@ var FadeTransition = (function(_super) { _this._mask = new egret.Shape(); return _this; } - FadeTransition.prototype.onBeginTransition = function() { - return __awaiter(this, void 0, void 0, function() { + FadeTransition.prototype.onBeginTransition = function () { + return __awaiter(this, void 0, void 0, function () { var _this = this; - return __generator(this, function(_a) { + return __generator(this, function (_a) { this._mask.graphics.beginFill(this.fadeToColor, 1); - this._mask.graphics.drawRect(0, 0, SceneManager.stage.stageWidth, - SceneManager.stage.stageHeight); + 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}, this.fadeOutDuration * 1000, this.fadeEaseType) - .call(function() { - return __awaiter(_this, void 0, void 0, function() { - return __generator(this, function(_a) { - switch (_a.label) { + .to({ _alpha: 1 }, this.fadeOutDuration * 1000, this.fadeEaseType) + .call(function () { + return __awaiter(_this, void 0, void 0, function () { + return __generator(this, function (_a) { + switch (_a.label) { case 0: - return [ 4, this.loadNextScene() ]; + return [4, this.loadNextScene()]; case 1: _a.sent(); - return [ 2 ]; - } - }); + return [2]; + } }); - }) - .wait(this.delayBeforeFadeInDuration) - .call(function() { - egret.Tween.get(_this) - .to({_alpha : 0}, _this.fadeOutDuration * 1000, - _this.fadeEaseType) - .call(function() { - _this.transitionComplete(); - SceneManager.stage.removeChild(_this._mask); - }); }); - return [ 2 ]; + }) + .wait(this.delayBeforeFadeInDuration) + .call(function () { + egret.Tween.get(_this) + .to( + { _alpha: 0 }, + _this.fadeOutDuration * 1000, + _this.fadeEaseType + ) + .call(function () { + _this.transitionComplete(); + SceneManager.stage.removeChild(_this._mask); + }); + }); + return [2]; }); }); }; - FadeTransition.prototype.render = function() { + FadeTransition.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.drawRect( + 0, + 0, + SceneManager.stage.stageWidth, + SceneManager.stage.stageHeight + ); this._mask.graphics.endFill(); }; return FadeTransition; -}(SceneTransition)); -var WindTransition = (function(_super) { +})(SceneTransition); +var WindTransition = (function (_super) { __extends(WindTransition, _super); function WindTransition(sceneLoadAction) { var _this = _super.call(this, sceneLoadAction) || this; _this.duration = 1; _this.easeType = egret.Ease.quadOut; var vertexSrc = - "attribute vec2 aVertexPosition;\n" + - "attribute vec2 aTextureCoord;\n" + - "uniform vec2 projectionVector;\n" + - "varying vec2 vTextureCoord;\n" + - "const vec2 center = vec2(-1.0, 1.0);\n" + - "void main(void) {\n" + - " gl_Position = vec4( (aVertexPosition / projectionVector) + center , 0.0, 1.0);\n" + - " vTextureCoord = aTextureCoord;\n" + - "}"; + "attribute vec2 aVertexPosition;\n" + + "attribute vec2 aTextureCoord;\n" + + "uniform vec2 projectionVector;\n" + + "varying vec2 vTextureCoord;\n" + + "const vec2 center = vec2(-1.0, 1.0);\n" + + "void main(void) {\n" + + " gl_Position = vec4( (aVertexPosition / projectionVector) + center , 0.0, 1.0);\n" + + " vTextureCoord = aTextureCoord;\n" + + "}"; var fragmentSrc = - "precision lowp float;\n" + - "varying vec2 vTextureCoord;\n" + - "uniform sampler2D uSampler;\n" + - "uniform float _progress;\n" + - "uniform float _size;\n" + - "uniform float _windSegments;\n" + - "void main(void) {\n" + - "vec2 co = floor(vec2(0.0, vTextureCoord.y * _windSegments));\n" + - "float x = sin(dot(co.xy, vec2(12.9898, 78.233))) * 43758.5453;\n" + - "float r = x - floor(x);\n" + - "float m = smoothstep(0.0, -_size, vTextureCoord.x * (1.0 - _size) + _size * r - (_progress * (1.0 + _size)));\n" + - "vec4 fg = texture2D(uSampler, vTextureCoord);\n" + - "gl_FragColor = mix(fg, vec4(0, 0, 0, 0), m);\n" + - "}"; - _this._windEffect = new egret.CustomFilter( - vertexSrc, fragmentSrc, - {_progress : 0, _size : 0.3, _windSegments : 100}); + "precision lowp float;\n" + + "varying vec2 vTextureCoord;\n" + + "uniform sampler2D uSampler;\n" + + "uniform float _progress;\n" + + "uniform float _size;\n" + + "uniform float _windSegments;\n" + + "void main(void) {\n" + + "vec2 co = floor(vec2(0.0, vTextureCoord.y * _windSegments));\n" + + "float x = sin(dot(co.xy, vec2(12.9898, 78.233))) * 43758.5453;\n" + + "float r = x - floor(x);\n" + + "float m = smoothstep(0.0, -_size, vTextureCoord.x * (1.0 - _size) + _size * r - (_progress * (1.0 + _size)));\n" + + "vec4 fg = texture2D(uSampler, vTextureCoord);\n" + + "gl_FragColor = mix(fg, vec4(0, 0, 0, 0), m);\n" + + "}"; + _this._windEffect = new egret.CustomFilter(vertexSrc, fragmentSrc, { + _progress: 0, + _size: 0.3, + _windSegments: 100, + }); _this._mask = new egret.Shape(); - _this._mask.graphics.beginFill(0xFFFFFF, 1); - _this._mask.graphics.drawRect(0, 0, SceneManager.stage.stageWidth, - SceneManager.stage.stageHeight); + _this._mask.graphics.beginFill(0xffffff, 1); + _this._mask.graphics.drawRect( + 0, + 0, + SceneManager.stage.stageWidth, + SceneManager.stage.stageHeight + ); _this._mask.graphics.endFill(); - _this._mask.filters = [ _this._windEffect ]; + _this._mask.filters = [_this._windEffect]; SceneManager.stage.addChild(_this._mask); return _this; } Object.defineProperty(WindTransition.prototype, "windSegments", { - set : function(value) { this._windEffect.uniforms._windSegments = value; }, - enumerable : true, - configurable : true + set: function (value) { + this._windEffect.uniforms._windSegments = value; + }, + enumerable: true, + configurable: true, }); Object.defineProperty(WindTransition.prototype, "size", { - set : function(value) { this._windEffect.uniforms._size = value; }, - enumerable : true, - configurable : true + set: function (value) { + this._windEffect.uniforms._size = value; + }, + enumerable: true, + configurable: true, }); - WindTransition.prototype.onBeginTransition = function() { - return __awaiter(this, void 0, void 0, function() { - return __generator(this, function(_a) { + WindTransition.prototype.onBeginTransition = function () { + return __awaiter(this, void 0, void 0, function () { + return __generator(this, function (_a) { switch (_a.label) { - case 0: - this.loadNextScene(); - return [ - 4, this.tickEffectProgressProperty(this._windEffect, this.duration, - this.easeType) - ]; - case 1: - _a.sent(); - this.transitionComplete(); - SceneManager.stage.removeChild(this._mask); - return [ 2 ]; + case 0: + this.loadNextScene(); + return [ + 4, + this.tickEffectProgressProperty( + this._windEffect, + this.duration, + this.easeType + ), + ]; + case 1: + _a.sent(); + this.transitionComplete(); + SceneManager.stage.removeChild(this._mask); + return [2]; } }); }); }; return WindTransition; -}(SceneTransition)); -var BaseView = (function(_super) { +})(SceneTransition); +var BaseView = (function (_super) { __extends(BaseView, _super); function BaseView() { - return _super !== null && _super.apply(this, arguments) || this; + return (_super !== null && _super.apply(this, arguments)) || this; } - BaseView.prototype.init = function() {}; - BaseView.prototype.show = function(data) {}; - BaseView.prototype.refreshData = function(data) { this._data = data; }; - BaseView.prototype.refreshView = function() {}; - BaseView.prototype.close = function() {}; - BaseView.prototype.destroy = function() { + BaseView.prototype.init = function () {}; + BaseView.prototype.show = function (data) {}; + BaseView.prototype.refreshData = function (data) { + this._data = data; + }; + BaseView.prototype.refreshView = function () {}; + BaseView.prototype.close = function () {}; + BaseView.prototype.destroy = function () { if (this.parent) { this.parent.removeChild(this); } @@ -3339,8 +3709,8 @@ var BaseView = (function(_super) { } }; return BaseView; -}(egret.DisplayObjectContainer)); -var BaseFuiView = (function(_super) { +})(egret.DisplayObjectContainer); +var BaseFuiView = (function (_super) { __extends(BaseFuiView, _super); function BaseFuiView(name) { var _this = _super.call(this) || this; @@ -3348,16 +3718,16 @@ var BaseFuiView = (function(_super) { return _this; } return BaseFuiView; -}(BaseView)); -var BaseSingle = (function() { +})(BaseView); +var BaseSingle = (function () { function BaseSingle() {} - BaseSingle.getInstance = function() { + BaseSingle.getInstance = function () { if (this._instance == null) { this._instance = new this(); } return this._instance; }; - BaseSingle.prototype.clearFuiObj = function(obj) { + BaseSingle.prototype.clearFuiObj = function (obj) { if (obj) { egret.Tween.removeTweens(obj.displayObject); if (obj.displayObject && obj.displayObject.parent) { @@ -3370,22 +3740,22 @@ var BaseSingle = (function() { return false; }; return BaseSingle; -}()); -var ViewManager = (function(_super) { +})(); +var ViewManager = (function (_super) { __extends(ViewManager, _super); function ViewManager() { - var _this = _super !== null && _super.apply(this, arguments) || this; + var _this = (_super !== null && _super.apply(this, arguments)) || this; _this._openDic = []; return _this; } - ViewManager.prototype.refreshView = function(viewClass, data) { + ViewManager.prototype.refreshView = function (viewClass, data) { var view = this.getView(viewClass); if (view) { view.refreshData(data); view.refreshView(); } }; - ViewManager.prototype.openView = function(viewClass, data, complete) { + ViewManager.prototype.openView = function (viewClass, data, complete) { var newView = this.getView(viewClass); if (!newView) { newView = new viewClass(); @@ -3397,64 +3767,83 @@ var ViewManager = (function(_super) { } this._openDic.push(newView); }; - ViewManager.prototype.getView = function(viewClass) { - var result = this._openDic.firstOrDefault(function( - a) { return a instanceof viewClass; }); + ViewManager.prototype.getView = function (viewClass) { + var result = this._openDic.firstOrDefault(function (a) { + return a instanceof viewClass; + }); return result; }; - ViewManager.prototype.existView = function(viewClass) { - return this._openDic.findIndex(function( - a) { return a instanceof viewClass; }) != -1; + ViewManager.prototype.existView = function (viewClass) { + return ( + this._openDic.findIndex(function (a) { + return a instanceof viewClass; + }) != -1 + ); }; return ViewManager; -}(BaseSingle)); -var Flags = (function() { +})(BaseSingle); +var Flags = (function () { function Flags() {} - Flags.isFlagSet = function(self, flag) { return (self & flag) != 0; }; - Flags.isUnshiftedFlagSet = function(self, flag) { + Flags.isFlagSet = function (self, flag) { + return (self & flag) != 0; + }; + Flags.isUnshiftedFlagSet = function (self, flag) { flag = 1 << flag; return (self & flag) != 0; }; - Flags.setFlagExclusive = function(self, flag) { return 1 << flag; }; - Flags.setFlag = function(self, flag) { return (self | 1 << flag); }; - Flags.unsetFlag = function(self, flag) { + Flags.setFlagExclusive = function (self, flag) { + return 1 << flag; + }; + Flags.setFlag = function (self, flag) { + return self | (1 << flag); + }; + Flags.unsetFlag = function (self, flag) { flag = 1 << flag; - return (self & (~flag)); + return self & ~flag; + }; + Flags.invertFlags = function (self) { + return ~self; }; - Flags.invertFlags = function(self) { return ~self; }; return Flags; -}()); -var MathHelper = (function() { +})(); +var MathHelper = (function () { function MathHelper() {} - MathHelper.toDegrees = function( - radians) { return radians * 57.295779513082320876798154814105; }; - MathHelper.toRadians = function( - degrees) { return degrees * 0.017453292519943295769236907684886; }; - MathHelper.map = function(value, leftMin, leftMax, rightMin, rightMax) { - return rightMin + - (value - leftMin) * (rightMax - rightMin) / (leftMax - leftMin); + MathHelper.toDegrees = function (radians) { + return radians * 57.295779513082320876798154814105; }; - MathHelper.lerp = function( - value1, value2, amount) { return value1 + (value2 - value1) * amount; }; - MathHelper.clamp = function(value, min, max) { - if (value < min) - return min; - if (value > max) - return max; + MathHelper.toRadians = function (degrees) { + return degrees * 0.017453292519943295769236907684886; + }; + MathHelper.map = function (value, leftMin, leftMax, rightMin, rightMax) { + return ( + rightMin + + ((value - leftMin) * (rightMax - rightMin)) / (leftMax - leftMin) + ); + }; + MathHelper.lerp = function (value1, value2, amount) { + return value1 + (value2 - value1) * amount; + }; + MathHelper.clamp = function (value, min, max) { + if (value < min) return min; + if (value > max) return max; return value; }; - MathHelper.pointOnCirlce = function(circleCenter, radius, angleInDegrees) { + MathHelper.pointOnCirlce = function (circleCenter, radius, angleInDegrees) { var radians = MathHelper.toRadians(angleInDegrees); - return new Vector2(Math.cos(radians) * radians + circleCenter.x, - Math.sin(radians) * radians + circleCenter.y); + return new Vector2( + Math.cos(radians) * radians + circleCenter.x, + Math.sin(radians) * radians + circleCenter.y + ); + }; + MathHelper.isEven = function (value) { + return value % 2 == 0; }; - MathHelper.isEven = function(value) { return value % 2 == 0; }; MathHelper.Epsilon = 0.00001; MathHelper.Rad2Deg = 57.29578; MathHelper.Deg2Rad = 0.0174532924; return MathHelper; -}()); -var Matrix2D = (function() { +})(); +var Matrix2D = (function () { function Matrix2D(m11, m12, m21, m22, m31, m32) { this.m11 = 0; this.m12 = 0; @@ -3470,22 +3859,28 @@ var Matrix2D = (function() { this.m32 = m32 ? m32 : 0; } Object.defineProperty(Matrix2D, "identity", { - get : function() { return Matrix2D._identity; }, - enumerable : true, - configurable : true + get: function () { + return Matrix2D._identity; + }, + enumerable: true, + configurable: true, }); Object.defineProperty(Matrix2D.prototype, "translation", { - get : function() { return new Vector2(this.m31, this.m32); }, - set : function(value) { + get: function () { + return new Vector2(this.m31, this.m32); + }, + set: function (value) { this.m31 = value.x; this.m32 = value.y; }, - enumerable : true, - configurable : true + enumerable: true, + configurable: true, }); Object.defineProperty(Matrix2D.prototype, "rotation", { - get : function() { return Math.atan2(this.m21, this.m11); }, - set : function(value) { + get: function () { + return Math.atan2(this.m21, this.m11); + }, + set: function (value) { var val1 = Math.cos(value); var val2 = Math.sin(value); this.m11 = val1; @@ -3493,25 +3888,31 @@ var Matrix2D = (function() { this.m21 = -val2; this.m22 = val1; }, - enumerable : true, - configurable : true + enumerable: true, + configurable: true, }); Object.defineProperty(Matrix2D.prototype, "rotationDegrees", { - get : function() { return MathHelper.toDegrees(this.rotation); }, - set : function(value) { this.rotation = MathHelper.toRadians(value); }, - enumerable : true, - configurable : true + get: function () { + return MathHelper.toDegrees(this.rotation); + }, + set: function (value) { + this.rotation = MathHelper.toRadians(value); + }, + enumerable: true, + configurable: true, }); Object.defineProperty(Matrix2D.prototype, "scale", { - get : function() { return new Vector2(this.m11, this.m22); }, - set : function(value) { + get: function () { + return new Vector2(this.m11, this.m22); + }, + set: function (value) { this.m11 = value.x; this.m12 = value.y; }, - enumerable : true, - configurable : true + enumerable: true, + configurable: true, }); - Matrix2D.add = function(matrix1, matrix2) { + Matrix2D.add = function (matrix1, matrix2) { matrix1.m11 += matrix2.m11; matrix1.m12 += matrix2.m12; matrix1.m21 += matrix2.m21; @@ -3520,7 +3921,7 @@ var Matrix2D = (function() { matrix1.m32 += matrix2.m32; return matrix1; }; - Matrix2D.divide = function(matrix1, matrix2) { + Matrix2D.divide = function (matrix1, matrix2) { matrix1.m11 /= matrix2.m11; matrix1.m12 /= matrix2.m12; matrix1.m21 /= matrix2.m21; @@ -3529,16 +3930,16 @@ var Matrix2D = (function() { matrix1.m32 /= matrix2.m32; return matrix1; }; - Matrix2D.multiply = function(matrix1, matrix2) { + Matrix2D.multiply = function (matrix1, matrix2) { var result = new Matrix2D(); - var m11 = (matrix1.m11 * matrix2.m11) + (matrix1.m12 * matrix2.m21); - var m12 = (matrix1.m11 * matrix2.m12) + (matrix1.m12 * matrix2.m22); - var m21 = (matrix1.m21 * matrix2.m11) + (matrix1.m22 * matrix2.m21); - var m22 = (matrix1.m21 * matrix2.m12) + (matrix1.m22 * matrix2.m22); + var m11 = matrix1.m11 * matrix2.m11 + matrix1.m12 * matrix2.m21; + var m12 = matrix1.m11 * matrix2.m12 + matrix1.m12 * matrix2.m22; + var m21 = matrix1.m21 * matrix2.m11 + matrix1.m22 * matrix2.m21; + var m22 = matrix1.m21 * matrix2.m12 + matrix1.m22 * matrix2.m22; var m31 = - (matrix1.m31 * matrix2.m11) + (matrix1.m32 * matrix2.m21) + matrix2.m31; + matrix1.m31 * matrix2.m11 + matrix1.m32 * matrix2.m21 + matrix2.m31; var m32 = - (matrix1.m31 * matrix2.m12) + (matrix1.m32 * matrix2.m22) + matrix2.m32; + matrix1.m31 * matrix2.m12 + matrix1.m32 * matrix2.m22 + matrix2.m32; result.m11 = m11; result.m12 = m12; result.m21 = m21; @@ -3547,13 +3948,14 @@ var Matrix2D = (function() { result.m32 = m32; return result; }; - Matrix2D.multiplyTranslation = function(matrix, x, y) { + Matrix2D.multiplyTranslation = function (matrix, x, y) { var trans = Matrix2D.createTranslation(x, y); return Matrix2D.multiply(matrix, trans); }; - Matrix2D.prototype.determinant = - function() { return this.m11 * this.m22 - this.m12 * this.m21; }; - Matrix2D.invert = function(matrix, result) { + Matrix2D.prototype.determinant = function () { + return this.m11 * this.m22 - this.m12 * this.m21; + }; + Matrix2D.invert = function (matrix, result) { if (result === void 0) { result = new Matrix2D(); } @@ -3566,7 +3968,7 @@ var Matrix2D = (function() { result.m32 = -(matrix.m32 * matrix.m11 - matrix.m31 * matrix.m12) * det; return result; }; - Matrix2D.createTranslation = function(xPosition, yPosition, result) { + Matrix2D.createTranslation = function (xPosition, yPosition, result) { result = result ? result : new Matrix2D(); result.m11 = 1; result.m12 = 0; @@ -3576,7 +3978,7 @@ var Matrix2D = (function() { result.m32 = yPosition; return result; }; - Matrix2D.createRotation = function(radians, result) { + Matrix2D.createRotation = function (radians, result) { result = new Matrix2D(); var val1 = Math.cos(radians); var val2 = Math.sin(radians); @@ -3586,7 +3988,7 @@ var Matrix2D = (function() { result.m22 = val1; return result; }; - Matrix2D.createScale = function(xScale, yScale, result) { + Matrix2D.createScale = function (xScale, yScale, result) { if (result === void 0) { result = new Matrix2D(); } @@ -3598,15 +4000,21 @@ var Matrix2D = (function() { result.m32 = 0; return result; }; - Matrix2D.prototype.toEgretMatrix = function() { - var matrix = new egret.Matrix(this.m11, this.m12, this.m21, this.m22, - this.m31, this.m32); + Matrix2D.prototype.toEgretMatrix = function () { + var matrix = new egret.Matrix( + this.m11, + this.m12, + this.m21, + this.m22, + this.m31, + this.m32 + ); return matrix; }; Matrix2D._identity = new Matrix2D(1, 0, 0, 1, 0, 0); return Matrix2D; -}()); -var Rectangle = (function() { +})(); +var Rectangle = (function () { function Rectangle(x, y, width, height) { this.x = x ? x : 0; this.y = y ? y : 0; @@ -3614,71 +4022,95 @@ var Rectangle = (function() { this.height = height ? height : 0; } Object.defineProperty(Rectangle.prototype, "left", { - get : function() { return this.x; }, - enumerable : true, - configurable : true + get: function () { + return this.x; + }, + enumerable: true, + configurable: true, }); Object.defineProperty(Rectangle.prototype, "right", { - get : function() { return this.x + this.width; }, - enumerable : true, - configurable : true + get: function () { + return this.x + this.width; + }, + enumerable: true, + configurable: true, }); Object.defineProperty(Rectangle.prototype, "top", { - get : function() { return this.y; }, - enumerable : true, - configurable : true + get: function () { + return this.y; + }, + enumerable: true, + configurable: true, }); Object.defineProperty(Rectangle.prototype, "bottom", { - get : function() { return this.y + this.height; }, - enumerable : true, - configurable : true + get: function () { + return this.y + this.height; + }, + enumerable: true, + configurable: true, }); Object.defineProperty(Rectangle.prototype, "center", { - get : function() { - return new Vector2(this.x + (this.width / 2), this.y + (this.height / 2)); + get: function () { + return new Vector2(this.x + this.width / 2, this.y + this.height / 2); }, - enumerable : true, - configurable : true + enumerable: true, + configurable: true, }); Object.defineProperty(Rectangle.prototype, "location", { - get : function() { return new Vector2(this.x, this.y); }, - set : function(value) { + get: function () { + return new Vector2(this.x, this.y); + }, + set: function (value) { this.x = value.x; this.y = value.y; }, - enumerable : true, - configurable : true + enumerable: true, + configurable: true, }); Object.defineProperty(Rectangle.prototype, "size", { - get : function() { return new Vector2(this.width, this.height); }, - set : function(value) { + get: function () { + return new Vector2(this.width, this.height); + }, + set: function (value) { this.width = value.x; this.height = value.y; }, - enumerable : true, - configurable : true + enumerable: true, + configurable: true, }); - Rectangle.prototype.intersects = function(value) { - return value.left < this.right && this.left < value.right && - value.top < this.bottom && this.top < value.bottom; + Rectangle.prototype.intersects = function (value) { + return ( + value.left < this.right && + this.left < value.right && + value.top < this.bottom && + this.top < value.bottom + ); }; - Rectangle.prototype.contains = function(value) { - return ((((this.x <= value.x) && (value.x < (this.x + this.width))) && - (this.y <= value.y)) && - (value.y < (this.y + this.height))); + Rectangle.prototype.contains = function (value) { + return ( + this.x <= value.x && + value.x < this.x + this.width && + this.y <= value.y && + value.y < this.y + this.height + ); }; - Rectangle.prototype.containsRect = function(value) { - return ((((this.x <= value.x) && (value.x < (this.x + this.width))) && - (this.y <= value.y)) && - (value.y < (this.y + this.height))); + Rectangle.prototype.containsRect = function (value) { + return ( + this.x <= value.x && + value.x < this.x + this.width && + this.y <= value.y && + value.y < this.y + this.height + ); }; - Rectangle.prototype.getHalfSize = - function() { return new Vector2(this.width * 0.5, this.height * 0.5); }; - Rectangle.fromMinMax = function( - minX, minY, maxX, - maxY) { return new Rectangle(minX, minY, maxX - minX, maxY - minY); }; - Rectangle.prototype.getClosestPointOnRectangleBorderToPoint = function( - point) { + Rectangle.prototype.getHalfSize = function () { + return new Vector2(this.width * 0.5, this.height * 0.5); + }; + Rectangle.fromMinMax = function (minX, minY, maxX, maxY) { + return new Rectangle(minX, minY, maxX - minX, maxY - minY); + }; + Rectangle.prototype.getClosestPointOnRectangleBorderToPoint = function ( + point + ) { var edgeNormal = new Vector2(0, 0); var res = new Vector2(0, 0); res.x = MathHelper.clamp(point.x, this.left, this.right); @@ -3716,10 +4148,17 @@ var Rectangle = (function() { edgeNormal.y = 1; } } - return {res : res, edgeNormal : edgeNormal}; + return { res: res, edgeNormal: edgeNormal }; }; - Rectangle.prototype.calculateBounds = function( - parentPosition, position, origin, scale, rotation, width, height) { + Rectangle.prototype.calculateBounds = function ( + parentPosition, + position, + origin, + scale, + rotation, + width, + height + ) { if (rotation == 0) { this.x = parentPosition.x + position.x - origin.x * scale.x; this.y = parentPosition.y + position.y - origin.y * scale.y; @@ -3728,8 +4167,10 @@ var Rectangle = (function() { } else { var worldPosX = parentPosition.x + position.x; var worldPosY = parentPosition.y + position.y; - this._transformMat = Matrix2D.createTranslation(-worldPosX - origin.x, - -worldPosY - origin.y); + this._transformMat = Matrix2D.createTranslation( + -worldPosX - origin.x, + -worldPosY - origin.y + ); this._tempMat = Matrix2D.createScale(scale.x, scale.y); this._transformMat = Matrix2D.multiply(this._transformMat, this._tempMat); this._tempMat = Matrix2D.createRotation(rotation); @@ -3753,7 +4194,7 @@ var Rectangle = (function() { this.height = maxY - minY; } }; - Rectangle.rectEncompassingPoints = function(points) { + Rectangle.rectEncompassingPoints = function (points) { var minX = Number.POSITIVE_INFINITY; var minY = Number.POSITIVE_INFINITY; var maxX = Number.NEGATIVE_INFINITY; @@ -3776,8 +4217,8 @@ var Rectangle = (function() { return this.fromMinMax(minX, minY, maxX, maxY); }; return Rectangle; -}()); -var Vector2 = (function() { +})(); +var Vector2 = (function () { function Vector2(x, y) { this.x = 0; this.y = 0; @@ -3785,88 +4226,106 @@ var Vector2 = (function() { this.y = y ? y : this.x; } Object.defineProperty(Vector2, "zero", { - get : function() { return Vector2.zeroVector2; }, - enumerable : true, - configurable : true + get: function () { + return Vector2.zeroVector2; + }, + enumerable: true, + configurable: true, }); Object.defineProperty(Vector2, "one", { - get : function() { return Vector2.unitVector2; }, - enumerable : true, - configurable : true + get: function () { + return Vector2.unitVector2; + }, + enumerable: true, + configurable: true, }); Object.defineProperty(Vector2, "unitX", { - get : function() { return Vector2.unitXVector; }, - enumerable : true, - configurable : true + get: function () { + return Vector2.unitXVector; + }, + enumerable: true, + configurable: true, }); Object.defineProperty(Vector2, "unitY", { - get : function() { return Vector2.unitYVector; }, - enumerable : true, - configurable : true + get: function () { + return Vector2.unitYVector; + }, + enumerable: true, + configurable: true, }); - Vector2.add = function(value1, value2) { + Vector2.add = function (value1, value2) { var result = new Vector2(0, 0); result.x = value1.x + value2.x; result.y = value1.y + value2.y; return result; }; - Vector2.divide = function(value1, value2) { + Vector2.divide = function (value1, value2) { var result = new Vector2(0, 0); result.x = value1.x / value2.x; result.y = value1.y / value2.y; return result; }; - Vector2.multiply = function(value1, value2) { + Vector2.multiply = function (value1, value2) { var result = new Vector2(0, 0); result.x = value1.x * value2.x; result.y = value1.y * value2.y; return result; }; - Vector2.subtract = function(value1, value2) { + Vector2.subtract = function (value1, value2) { var result = new Vector2(0, 0); result.x = value1.x - value2.x; result.y = value1.y - value2.y; return result; }; - Vector2.prototype.normalize = function() { - var val = 1 / Math.sqrt((this.x * this.x) + (this.y * this.y)); + Vector2.prototype.normalize = function () { + var val = 1 / Math.sqrt(this.x * this.x + this.y * this.y); this.x *= val; this.y *= val; }; - Vector2.prototype.length = - function() { return Math.sqrt((this.x * this.x) + (this.y * this.y)); }; - Vector2.prototype.round = function() { + Vector2.prototype.length = function () { + return Math.sqrt(this.x * this.x + this.y * this.y); + }; + Vector2.prototype.round = function () { return new Vector2(Math.round(this.x), Math.round(this.y)); }; - Vector2.normalize = function(value) { - var val = 1 / Math.sqrt((value.x * value.x) + (value.y * value.y)); + Vector2.normalize = function (value) { + var val = 1 / Math.sqrt(value.x * value.x + value.y * value.y); value.x *= val; value.y *= val; return value; }; - Vector2.dot = function( - value1, value2) { return (value1.x * value2.x) + (value1.y * value2.y); }; - Vector2.distanceSquared = function(value1, value2) { - var v1 = value1.x - value2.x, v2 = value1.y - value2.y; - return (v1 * v1) + (v2 * v2); + Vector2.dot = function (value1, value2) { + return value1.x * value2.x + value1.y * value2.y; }; - Vector2.clamp = function(value1, min, max) { - return new Vector2(MathHelper.clamp(value1.x, min.x, max.x), - MathHelper.clamp(value1.y, min.y, max.y)); + Vector2.distanceSquared = function (value1, value2) { + var v1 = value1.x - value2.x, + v2 = value1.y - value2.y; + return v1 * v1 + v2 * v2; }; - Vector2.lerp = function(value1, value2, amount) { - return new Vector2(MathHelper.lerp(value1.x, value2.x, amount), - MathHelper.lerp(value1.y, value2.y, amount)); + Vector2.clamp = function (value1, min, max) { + return new Vector2( + MathHelper.clamp(value1.x, min.x, max.x), + MathHelper.clamp(value1.y, min.y, max.y) + ); }; - Vector2.transform = function(position, matrix) { - return new Vector2((position.x * matrix.m11) + (position.y * matrix.m21), - (position.x * matrix.m12) + (position.y * matrix.m22)); + Vector2.lerp = function (value1, value2, amount) { + return new Vector2( + MathHelper.lerp(value1.x, value2.x, amount), + MathHelper.lerp(value1.y, value2.y, amount) + ); }; - Vector2.distance = function(value1, value2) { - var v1 = value1.x - value2.x, v2 = value1.y - value2.y; - return Math.sqrt((v1 * v1) + (v2 * v2)); + Vector2.transform = function (position, matrix) { + return new Vector2( + position.x * matrix.m11 + position.y * matrix.m21, + position.x * matrix.m12 + position.y * matrix.m22 + ); }; - Vector2.negate = function(value) { + Vector2.distance = function (value1, value2) { + var v1 = value1.x - value2.x, + v2 = value1.y - value2.y; + return Math.sqrt(v1 * v1 + v2 * v2); + }; + Vector2.negate = function (value) { var result = new Vector2(); result.x = -value.x; result.y = -value.y; @@ -3877,43 +4336,46 @@ var Vector2 = (function() { Vector2.unitVector2 = new Vector2(1, 1); Vector2.zeroVector2 = new Vector2(0, 0); return Vector2; -}()); -var Vector3 = (function() { +})(); +var Vector3 = (function () { function Vector3(x, y, z) { this.x = x; this.y = y; this.z = z; } return Vector3; -}()); -var ColliderTriggerHelper = (function() { +})(); +var ColliderTriggerHelper = (function () { function ColliderTriggerHelper(entity) { this._activeTriggerIntersections = []; this._previousTriggerIntersections = []; this._tempTriggerList = []; this._entity = entity; } - ColliderTriggerHelper.prototype.update = function() { + ColliderTriggerHelper.prototype.update = function () { var colliders = this._entity.getComponents(Collider); for (var i = 0; i < colliders.length; i++) { var collider = colliders[i]; - var neighbors = Physics.boxcastBroadphase(collider.bounds, - collider.collidesWithLayers); - var _loop_5 = function(j) { + var neighbors = Physics.boxcastBroadphase( + collider.bounds, + collider.collidesWithLayers + ); + var _loop_5 = function (j) { var neighbor = neighbors[j]; - if (!collider.isTrigger && !neighbor.isTrigger) - return "continue"; + if (!collider.isTrigger && !neighbor.isTrigger) return "continue"; if (collider.overlaps(neighbor)) { var pair_1 = new Pair(collider, neighbor); var shouldReportTriggerEvent = - this_1._activeTriggerIntersections.findIndex(function(value) { - return value.first == pair_1.first && - value.second == pair_1.second; - }) == -1 && - this_1._previousTriggerIntersections.findIndex(function(value) { - return value.first == pair_1.first && - value.second == pair_1.second; - }) == -1; + this_1._activeTriggerIntersections.findIndex(function (value) { + return ( + value.first == pair_1.first && value.second == pair_1.second + ); + }) == -1 && + this_1._previousTriggerIntersections.findIndex(function (value) { + return ( + value.first == pair_1.first && value.second == pair_1.second + ); + }) == -1; if (shouldReportTriggerEvent) this_1.notifyTriggerListeners(pair_1, true); if (!this_1._activeTriggerIntersections.contains(pair_1)) @@ -3928,18 +4390,20 @@ var ColliderTriggerHelper = (function() { ListPool.free(colliders); this.checkForExitedColliders(); }; - ColliderTriggerHelper.prototype.checkForExitedColliders = function() { + ColliderTriggerHelper.prototype.checkForExitedColliders = function () { var _this = this; - var _loop_6 = function(i) { - var index = - this_2._previousTriggerIntersections.findIndex(function(value) { - if (value.first == _this._activeTriggerIntersections[i].first && - value.second == _this._activeTriggerIntersections[i].second) - return true; - return false; - }); - if (index != -1) - this_2._previousTriggerIntersections.removeAt(index); + var _loop_6 = function (i) { + var index = this_2._previousTriggerIntersections.findIndex(function ( + value + ) { + if ( + value.first == _this._activeTriggerIntersections[i].first && + value.second == _this._activeTriggerIntersections[i].second + ) + return true; + return false; + }); + if (index != -1) this_2._previousTriggerIntersections.removeAt(index); }; var this_2 = this; for (var i = 0; i < this._activeTriggerIntersections.length; i++) { @@ -3950,37 +4414,55 @@ var ColliderTriggerHelper = (function() { } this._previousTriggerIntersections.length = 0; for (var i = 0; i < this._activeTriggerIntersections.length; i++) { - if (!this._previousTriggerIntersections.contains( - this._activeTriggerIntersections[i])) { + if ( + !this._previousTriggerIntersections.contains( + this._activeTriggerIntersections[i] + ) + ) { this._previousTriggerIntersections.push( - this._activeTriggerIntersections[i]); + this._activeTriggerIntersections[i] + ); } } this._activeTriggerIntersections.length = 0; }; - ColliderTriggerHelper.prototype.notifyTriggerListeners = function( - collisionPair, isEntering) { - collisionPair.first.entity.getComponents("ITriggerListener", - this._tempTriggerList); + ColliderTriggerHelper.prototype.notifyTriggerListeners = function ( + collisionPair, + isEntering + ) { + collisionPair.first.entity.getComponents( + "ITriggerListener", + this._tempTriggerList + ); for (var i = 0; i < this._tempTriggerList.length; i++) { if (isEntering) { - this._tempTriggerList[i].onTriggerEnter(collisionPair.second, - collisionPair.first); + this._tempTriggerList[i].onTriggerEnter( + collisionPair.second, + collisionPair.first + ); } else { - this._tempTriggerList[i].onTriggerExit(collisionPair.second, - collisionPair.first); + this._tempTriggerList[i].onTriggerExit( + collisionPair.second, + collisionPair.first + ); } this._tempTriggerList.length = 0; if (collisionPair.second.entity) { - collisionPair.second.entity.getComponents("ITriggerListener", - this._tempTriggerList); + collisionPair.second.entity.getComponents( + "ITriggerListener", + this._tempTriggerList + ); for (var i_2 = 0; i_2 < this._tempTriggerList.length; i_2++) { if (isEntering) { - this._tempTriggerList[i_2].onTriggerEnter(collisionPair.first, - collisionPair.second); + this._tempTriggerList[i_2].onTriggerEnter( + collisionPair.first, + collisionPair.second + ); } else { - this._tempTriggerList[i_2].onTriggerExit(collisionPair.first, - collisionPair.second); + this._tempTriggerList[i_2].onTriggerExit( + collisionPair.first, + collisionPair.second + ); } } this._tempTriggerList.length = 0; @@ -3988,86 +4470,104 @@ var ColliderTriggerHelper = (function() { } }; return ColliderTriggerHelper; -}()); +})(); var PointSectors; -(function(PointSectors) { -PointSectors[PointSectors["center"] = 0] = "center"; -PointSectors[PointSectors["top"] = 1] = "top"; -PointSectors[PointSectors["bottom"] = 2] = "bottom"; -PointSectors[PointSectors["topLeft"] = 9] = "topLeft"; -PointSectors[PointSectors["topRight"] = 5] = "topRight"; -PointSectors[PointSectors["left"] = 8] = "left"; -PointSectors[PointSectors["right"] = 4] = "right"; -PointSectors[PointSectors["bottomLeft"] = 10] = "bottomLeft"; -PointSectors[PointSectors["bottomRight"] = 6] = "bottomRight"; +(function (PointSectors) { + PointSectors[(PointSectors["center"] = 0)] = "center"; + PointSectors[(PointSectors["top"] = 1)] = "top"; + PointSectors[(PointSectors["bottom"] = 2)] = "bottom"; + PointSectors[(PointSectors["topLeft"] = 9)] = "topLeft"; + PointSectors[(PointSectors["topRight"] = 5)] = "topRight"; + PointSectors[(PointSectors["left"] = 8)] = "left"; + PointSectors[(PointSectors["right"] = 4)] = "right"; + PointSectors[(PointSectors["bottomLeft"] = 10)] = "bottomLeft"; + PointSectors[(PointSectors["bottomRight"] = 6)] = "bottomRight"; })(PointSectors || (PointSectors = {})); -var Collisions = (function() { +var Collisions = (function () { function Collisions() {} - Collisions.isLineToLine = function(a1, a2, b1, b2) { + Collisions.isLineToLine = function (a1, a2, b1, b2) { var b = Vector2.subtract(a2, a1); var d = Vector2.subtract(b2, b1); var bDotDPerp = b.x * d.y - b.y * d.x; - if (bDotDPerp == 0) - return false; + if (bDotDPerp == 0) return false; var c = Vector2.subtract(b1, a1); var t = (c.x * d.y - c.y * d.x) / bDotDPerp; - if (t < 0 || t > 1) - return false; + if (t < 0 || t > 1) return false; var u = (c.x * b.y - c.y * b.x) / bDotDPerp; - if (u < 0 || u > 1) - return false; + if (u < 0 || u > 1) return false; return true; }; - Collisions.lineToLineIntersection = function(a1, a2, b1, b2) { + Collisions.lineToLineIntersection = function (a1, a2, b1, b2) { var intersection = new Vector2(0, 0); var b = Vector2.subtract(a2, a1); var d = Vector2.subtract(b2, b1); var bDotDPerp = b.x * d.y - b.y * d.x; - if (bDotDPerp == 0) - return intersection; + if (bDotDPerp == 0) return intersection; var c = Vector2.subtract(b1, a1); var t = (c.x * d.y - c.y * d.x) / bDotDPerp; - if (t < 0 || t > 1) - return intersection; + if (t < 0 || t > 1) return intersection; var u = (c.x * b.y - c.y * b.x) / bDotDPerp; - if (u < 0 || u > 1) - return intersection; + if (u < 0 || u > 1) return intersection; intersection = Vector2.add(a1, new Vector2(t * b.x, t * b.y)); return intersection; }; - Collisions.closestPointOnLine = function(lineA, lineB, closestTo) { + Collisions.closestPointOnLine = function (lineA, lineB, closestTo) { var v = Vector2.subtract(lineB, lineA); var w = Vector2.subtract(closestTo, lineA); var t = Vector2.dot(w, v) / Vector2.dot(v, v); t = MathHelper.clamp(t, 0, 1); return Vector2.add(lineA, new Vector2(v.x * t, v.y * t)); }; - Collisions.isCircleToCircle = function(circleCenter1, circleRadius1, - circleCenter2, circleRadius2) { - return Vector2.distanceSquared(circleCenter1, circleCenter2) < - (circleRadius1 + circleRadius2) * (circleRadius1 + circleRadius2); + Collisions.isCircleToCircle = function ( + circleCenter1, + circleRadius1, + circleCenter2, + circleRadius2 + ) { + return ( + Vector2.distanceSquared(circleCenter1, circleCenter2) < + (circleRadius1 + circleRadius2) * (circleRadius1 + circleRadius2) + ); }; - Collisions.isCircleToLine = function(circleCenter, radius, lineFrom, lineTo) { - return Vector2.distanceSquared( - circleCenter, - this.closestPointOnLine(lineFrom, lineTo, circleCenter)) < - radius * radius; + Collisions.isCircleToLine = function ( + circleCenter, + radius, + lineFrom, + lineTo + ) { + return ( + Vector2.distanceSquared( + circleCenter, + this.closestPointOnLine(lineFrom, lineTo, circleCenter) + ) < + radius * radius + ); }; - Collisions.isCircleToPoint = function(circleCenter, radius, point) { + Collisions.isCircleToPoint = function (circleCenter, radius, point) { return Vector2.distanceSquared(circleCenter, point) < radius * radius; }; - Collisions.isRectToCircle = function(rect, cPosition, cRadius) { + Collisions.isRectToCircle = function (rect, cPosition, cRadius) { var ew = rect.width * 0.5; var eh = rect.height * 0.5; var vx = Math.max(0, Math.max(cPosition.x - rect.x) - ew); var vy = Math.max(0, Math.max(cPosition.y - rect.y) - eh); return vx * vx + vy * vy < cRadius * cRadius; }; - Collisions.isRectToLine = function(rect, lineFrom, lineTo) { - var fromSector = - this.getSector(rect.x, rect.y, rect.width, rect.height, lineFrom); - var toSector = - this.getSector(rect.x, rect.y, rect.width, rect.height, lineTo); + Collisions.isRectToLine = function (rect, lineFrom, lineTo) { + var fromSector = this.getSector( + rect.x, + rect.y, + rect.width, + rect.height, + lineFrom + ); + var toSector = this.getSector( + rect.x, + rect.y, + rect.width, + rect.height, + lineTo + ); if (fromSector == PointSectors.center || toSector == PointSectors.center) { return true; } else if ((fromSector & toSector) != 0) { @@ -4079,89 +4579,90 @@ var Collisions = (function() { if ((both & PointSectors.top) != 0) { edgeFrom = new Vector2(rect.x, rect.y); edgeTo = new Vector2(rect.x + rect.width, rect.y); - if (this.isLineToLine(edgeFrom, edgeTo, lineFrom, lineTo)) - return true; + if (this.isLineToLine(edgeFrom, edgeTo, lineFrom, lineTo)) return true; } if ((both & PointSectors.bottom) != 0) { edgeFrom = new Vector2(rect.x, rect.y + rect.height); edgeTo = new Vector2(rect.x + rect.width, rect.y + rect.height); - if (this.isLineToLine(edgeFrom, edgeTo, lineFrom, lineTo)) - return true; + if (this.isLineToLine(edgeFrom, edgeTo, lineFrom, lineTo)) return true; } if ((both & PointSectors.left) != 0) { edgeFrom = new Vector2(rect.x, rect.y); edgeTo = new Vector2(rect.x, rect.y + rect.height); - if (this.isLineToLine(edgeFrom, edgeTo, lineFrom, lineTo)) - return true; + if (this.isLineToLine(edgeFrom, edgeTo, lineFrom, lineTo)) return true; } if ((both & PointSectors.right) != 0) { edgeFrom = new Vector2(rect.x + rect.width, rect.y); edgeTo = new Vector2(rect.x + rect.width, rect.y + rect.height); - if (this.isLineToLine(edgeFrom, edgeTo, lineFrom, lineTo)) - return true; + if (this.isLineToLine(edgeFrom, edgeTo, lineFrom, lineTo)) return true; } } return false; }; - Collisions.isRectToPoint = function(rX, rY, rW, rH, point) { - return point.x >= rX && point.y >= rY && point.x < rX + rW && - point.y < rY + rH; + Collisions.isRectToPoint = function (rX, rY, rW, rH, point) { + return ( + point.x >= rX && point.y >= rY && point.x < rX + rW && point.y < rY + rH + ); }; - Collisions.getSector = function(rX, rY, rW, rH, point) { + Collisions.getSector = function (rX, rY, rW, rH, point) { var sector = PointSectors.center; - if (point.x < rX) - sector |= PointSectors.left; - else if (point.x >= rX + rW) - sector |= PointSectors.right; - if (point.y < rY) - sector |= PointSectors.top; - else if (point.y >= rY + rH) - sector |= PointSectors.bottom; + if (point.x < rX) sector |= PointSectors.left; + else if (point.x >= rX + rW) sector |= PointSectors.right; + if (point.y < rY) sector |= PointSectors.top; + else if (point.y >= rY + rH) sector |= PointSectors.bottom; return sector; }; return Collisions; -}()); -var Physics = (function() { +})(); +var Physics = (function () { function Physics() {} - Physics.reset = function() { + Physics.reset = function () { this._spatialHash = new SpatialHash(this.spatialHashCellSize); }; - Physics.clear = function() { this._spatialHash.clear(); }; - Physics.overlapCircleAll = function(center, randius, results, layerMask) { + Physics.clear = function () { + this._spatialHash.clear(); + }; + Physics.overlapCircleAll = function (center, randius, results, layerMask) { if (layerMask === void 0) { layerMask = -1; } return this._spatialHash.overlapCircle(center, randius, results, layerMask); }; - Physics.boxcastBroadphase = function(rect, layerMask) { + Physics.boxcastBroadphase = function (rect, layerMask) { if (layerMask === void 0) { layerMask = this.allLayers; } return this._spatialHash.aabbBroadphase(rect, null, layerMask); }; - Physics.boxcastBroadphaseExcludingSelf = function(collider, rect, layerMask) { + Physics.boxcastBroadphaseExcludingSelf = function ( + collider, + rect, + layerMask + ) { if (layerMask === void 0) { layerMask = this.allLayers; } return this._spatialHash.aabbBroadphase(rect, collider, layerMask); }; - Physics.addCollider = function( - collider) { Physics._spatialHash.register(collider); }; - Physics.removeCollider = function( - collider) { Physics._spatialHash.remove(collider); }; - Physics.updateCollider = function(collider) { + Physics.addCollider = function (collider) { + Physics._spatialHash.register(collider); + }; + Physics.removeCollider = function (collider) { + Physics._spatialHash.remove(collider); + }; + Physics.updateCollider = function (collider) { this._spatialHash.remove(collider); this._spatialHash.register(collider); }; Physics.spatialHashCellSize = 100; Physics.allLayers = -1; return Physics; -}()); -var Shape = (function() { +})(); +var Shape = (function () { function Shape() {} return Shape; -}()); -var Polygon = (function(_super) { +})(); +var Polygon = (function (_super) { __extends(Polygon, _super); function Polygon(points, isBox) { var _this = _super.call(this) || this; @@ -4172,31 +4673,28 @@ var Polygon = (function(_super) { return _this; } Object.defineProperty(Polygon.prototype, "edgeNormals", { - get : function() { - if (this._areEdgeNormalsDirty) - this.buildEdgeNormals(); + get: function () { + if (this._areEdgeNormalsDirty) this.buildEdgeNormals(); return this._edgeNormals; }, - enumerable : true, - configurable : true + enumerable: true, + configurable: true, }); - Polygon.prototype.buildEdgeNormals = function() { + Polygon.prototype.buildEdgeNormals = function () { var totalEdges = this.isBox ? 2 : this.points.length; if (this._edgeNormals == null || this._edgeNormals.length != totalEdges) this._edgeNormals = new Array(totalEdges); var p2; for (var i = 0; i < totalEdges; i++) { var p1 = this.points[i]; - if (i + 1 >= this.points.length) - p2 = this.points[0]; - else - p2 = this.points[i + 1]; + if (i + 1 >= this.points.length) p2 = this.points[0]; + else p2 = this.points[i + 1]; var perp = Vector2Ext.perpendicular(p1, p2); perp = Vector2.normalize(perp); this._edgeNormals[i] = perp; } }; - Polygon.prototype.setPoints = function(points) { + Polygon.prototype.setPoints = function (points) { this.points = points; this.recalculateCenterAndEdgeNormals(); this._originalPoints = []; @@ -4204,7 +4702,7 @@ var Polygon = (function(_super) { this._originalPoints.push(this.points[i]); } }; - Polygon.prototype.collidesWithShape = function(other) { + Polygon.prototype.collidesWithShape = function (other) { var result = new CollisionResult(); if (other instanceof Polygon) { return ShapeCollisions.polygonToPolygon(this, other); @@ -4219,11 +4717,11 @@ var Polygon = (function(_super) { } throw new Error("overlaps of Polygon to " + other + " are not supported"); }; - Polygon.prototype.recalculateCenterAndEdgeNormals = function() { + Polygon.prototype.recalculateCenterAndEdgeNormals = function () { this._polygonCenter = Polygon.findPolygonCenter(this.points); this._areEdgeNormalsDirty = true; }; - Polygon.prototype.overlaps = function(other) { + Polygon.prototype.overlaps = function (other) { var result; if (other instanceof Polygon) return ShapeCollisions.polygonToPolygon(this, other); @@ -4237,25 +4735,28 @@ var Polygon = (function(_super) { } throw new Error("overlaps of Pologon to " + other + " are not supported"); }; - Polygon.findPolygonCenter = function(points) { - var x = 0, y = 0; + Polygon.findPolygonCenter = function (points) { + var x = 0, + y = 0; for (var i = 0; i < points.length; i++) { x += points[i].x; y += points[i].y; } return new Vector2(x / points.length, y / points.length); }; - Polygon.getClosestPointOnPolygonToPoint = function(points, point) { + Polygon.getClosestPointOnPolygonToPoint = function (points, point) { var distanceSquared = Number.MAX_VALUE; var edgeNormal = new Vector2(0, 0); var closestPoint = new Vector2(0, 0); var tempDistanceSquared; for (var i = 0; i < points.length; i++) { var j = i + 1; - if (j == points.length) - j = 0; - var closest = - ShapeCollisions.closestPointOnLine(points[i], points[j], point); + if (j == points.length) j = 0; + var closest = ShapeCollisions.closestPointOnLine( + points[i], + points[j], + point + ); tempDistanceSquared = Vector2.distanceSquared(point, closest); if (tempDistanceSquared < distanceSquared) { distanceSquared = tempDistanceSquared; @@ -4267,29 +4768,36 @@ var Polygon = (function(_super) { } edgeNormal = Vector2.normalize(edgeNormal); return { - closestPoint : closestPoint, - distanceSquared : distanceSquared, - edgeNormal : edgeNormal + closestPoint: closestPoint, + distanceSquared: distanceSquared, + edgeNormal: edgeNormal, }; }; - Polygon.prototype.pointCollidesWithShape = function( - point) { return ShapeCollisions.pointToPoly(point, this); }; - Polygon.prototype.containsPoint = function(point) { + Polygon.prototype.pointCollidesWithShape = function (point) { + return ShapeCollisions.pointToPoly(point, this); + }; + Polygon.prototype.containsPoint = function (point) { point = Vector2.subtract(point, this.position); var isInside = false; - for (var i = 0, j = this.points.length - 1; i < this.points.length; - j = i++) { - if (((this.points[i].y > point.y) != (this.points[j].y > point.y)) && - (point.x < (this.points[j].x - this.points[i].x) * - (point.y - this.points[i].y) / - (this.points[j].y - this.points[i].y) + - this.points[i].x)) { + for ( + var i = 0, j = this.points.length - 1; + i < this.points.length; + j = i++ + ) { + if ( + this.points[i].y > point.y != this.points[j].y > point.y && + point.x < + ((this.points[j].x - this.points[i].x) * + (point.y - this.points[i].y)) / + (this.points[j].y - this.points[i].y) + + this.points[i].x + ) { isInside = !isInside; } } return isInside; }; - Polygon.buildSymmertricalPolygon = function(vertCount, radius) { + Polygon.buildSymmertricalPolygon = function (vertCount, radius) { var verts = new Array(vertCount); for (var i = 0; i < vertCount; i++) { var a = 2 * Math.PI * (i / vertCount); @@ -4297,52 +4805,62 @@ var Polygon = (function(_super) { } return verts; }; - Polygon.prototype.recalculateBounds = function(collider) { + Polygon.prototype.recalculateBounds = function (collider) { this.center = collider.localOffset; if (collider.shouldColliderScaleAndRotationWithTransform) { var hasUnitScale = true; var tempMat = void 0; - var combinedMatrix = Matrix2D.createTranslation(-this._polygonCenter.x, - -this._polygonCenter.y); + var combinedMatrix = Matrix2D.createTranslation( + -this._polygonCenter.x, + -this._polygonCenter.y + ); if (collider.entity.scale != Vector2.one) { - tempMat = Matrix2D.createScale(collider.entity.scale.x, - collider.entity.scale.y); + tempMat = Matrix2D.createScale( + collider.entity.scale.x, + collider.entity.scale.y + ); combinedMatrix = Matrix2D.multiply(combinedMatrix, tempMat); hasUnitScale = false; - var scaledOffset = - Vector2.multiply(collider.localOffset, collider.entity.scale); + var scaledOffset = Vector2.multiply( + collider.localOffset, + collider.entity.scale + ); this.center = scaledOffset; } if (collider.entity.rotation != 0) { tempMat = Matrix2D.createRotation(collider.entity.rotation); combinedMatrix = Matrix2D.multiply(combinedMatrix, tempMat); var offsetAngle = - Math.atan2(collider.localOffset.y, collider.localOffset.x) * - MathHelper.Rad2Deg; + Math.atan2(collider.localOffset.y, collider.localOffset.x) * + MathHelper.Rad2Deg; var offsetLength = hasUnitScale - ? collider._localOffsetLength - : (Vector2.multiply(collider.localOffset, - collider.entity.scale)) - .length(); + ? collider._localOffsetLength + : Vector2.multiply( + collider.localOffset, + collider.entity.scale + ).length(); this.center = MathHelper.pointOnCirlce( - Vector2.zero, offsetLength, - MathHelper.toDegrees(collider.entity.rotation) + offsetAngle); + Vector2.zero, + offsetLength, + MathHelper.toDegrees(collider.entity.rotation) + offsetAngle + ); } - tempMat = Matrix2D.createTranslation(this._polygonCenter.x, - this._polygonCenter.y); + tempMat = Matrix2D.createTranslation( + this._polygonCenter.x, + this._polygonCenter.y + ); combinedMatrix = Matrix2D.multiply(combinedMatrix, tempMat); Vector2Ext.transform(this._originalPoints, combinedMatrix, this.points); this.isUnrotated = collider.entity.rotation == 0; - if (collider._isRotationDirty) - this._areEdgeNormalsDirty = true; + if (collider._isRotationDirty) this._areEdgeNormalsDirty = true; } this.position = Vector2.add(collider.entity.position, this.center); this.bounds = Rectangle.rectEncompassingPoints(this.points); this.bounds.location = Vector2.add(this.bounds.location, this.position); }; return Polygon; -}(Shape)); -var Box = (function(_super) { +})(Shape); +var Box = (function (_super) { __extends(Box, _super); function Box(width, height) { var _this = _super.call(this, Box.buildBox(width, height), true) || this; @@ -4350,7 +4868,7 @@ var Box = (function(_super) { _this.height = height; return _this; } - Box.buildBox = function(width, height) { + Box.buildBox = function (width, height) { var halfWidth = width / 2; var halfHeight = height / 2; var verts = new Array(4); @@ -4360,7 +4878,7 @@ var Box = (function(_super) { verts[3] = new Vector2(-halfWidth, halfHeight); return verts; }; - Box.prototype.updateBox = function(width, height) { + Box.prototype.updateBox = function (width, height) { this.width = width; this.height = height; var halfWidth = width / 2; @@ -4372,14 +4890,13 @@ var Box = (function(_super) { for (var i = 0; i < this.points.length; i++) this._originalPoints[i] = this.points[i]; }; - Box.prototype.containsPoint = function(point) { - if (this.isUnrotated) - return this.bounds.contains(point); + Box.prototype.containsPoint = function (point) { + if (this.isUnrotated) return this.bounds.contains(point); return _super.prototype.containsPoint.call(this, point); }; return Box; -}(Polygon)); -var Circle = (function(_super) { +})(Polygon); +var Circle = (function (_super) { __extends(Circle, _super); function Circle(radius) { var _this = _super.call(this) || this; @@ -4387,9 +4904,10 @@ var Circle = (function(_super) { _this._originalRadius = radius; return _this; } - Circle.prototype.pointCollidesWithShape = function( - point) { return ShapeCollisions.pointToCircle(point, this); }; - Circle.prototype.collidesWithShape = function(other) { + Circle.prototype.pointCollidesWithShape = function (point) { + return ShapeCollisions.pointToCircle(point, this); + }; + Circle.prototype.collidesWithShape = function (other) { if (other instanceof Box && other.isUnrotated) { return ShapeCollisions.circleToBox(this, other); } @@ -4401,7 +4919,7 @@ var Circle = (function(_super) { } throw new Error("Collisions of Circle to " + other + " are not supported"); }; - Circle.prototype.recalculateBounds = function(collider) { + Circle.prototype.recalculateBounds = function (collider) { this.center = collider.localOffset; if (collider.shouldColliderScaleAndRotationWithTransform) { var scale = collider.entity.scale; @@ -4410,48 +4928,62 @@ var Circle = (function(_super) { this.radius = this._originalRadius * maxScale; if (collider.entity.rotation != 0) { var offsetAngle = - Math.atan2(collider.localOffset.y, collider.localOffset.x) * - MathHelper.Rad2Deg; + Math.atan2(collider.localOffset.y, collider.localOffset.x) * + MathHelper.Rad2Deg; var offsetLength = hasUnitScale - ? collider._localOffsetLength - : (Vector2.multiply(collider.localOffset, - collider.entity.scale)) - .length(); + ? collider._localOffsetLength + : Vector2.multiply( + collider.localOffset, + collider.entity.scale + ).length(); this.center = MathHelper.pointOnCirlce( - Vector2.zero, offsetLength, - MathHelper.toDegrees(collider.entity.rotation) + offsetAngle); + Vector2.zero, + offsetLength, + MathHelper.toDegrees(collider.entity.rotation) + offsetAngle + ); } } this.position = Vector2.add(collider.entity.position, this.center); - this.bounds = new Rectangle(this.position.x - this.radius, - this.position.y - this.radius, this.radius * 2, - this.radius * 2); + this.bounds = new Rectangle( + this.position.x - this.radius, + this.position.y - this.radius, + this.radius * 2, + this.radius * 2 + ); }; - Circle.prototype.overlaps = function(other) { + Circle.prototype.overlaps = function (other) { if (other instanceof Box && other.isUnrotated) - return Collisions.isRectToCircle(other.bounds, this.position, - this.radius); + return Collisions.isRectToCircle( + other.bounds, + this.position, + this.radius + ); if (other instanceof Circle) - return Collisions.isCircleToCircle(this.position, this.radius, - other.position, other.radius); + return Collisions.isCircleToCircle( + this.position, + this.radius, + other.position, + other.radius + ); if (other instanceof Polygon) return ShapeCollisions.circleToPolygon(this, other); throw new Error("overlaps of circle to " + other + " are not supported"); }; return Circle; -}(Shape)); -var CollisionResult = (function() { +})(Shape); +var CollisionResult = (function () { function CollisionResult() {} - CollisionResult.prototype.invertResult = function() { - this.minimumTranslationVector = - Vector2.negate(this.minimumTranslationVector); + CollisionResult.prototype.invertResult = function () { + this.minimumTranslationVector = Vector2.negate( + this.minimumTranslationVector + ); this.normal = Vector2.negate(this.normal); }; return CollisionResult; -}()); -var ShapeCollisions = (function() { +})(); +var ShapeCollisions = (function () { function ShapeCollisions() {} - ShapeCollisions.polygonToPolygon = function(first, second) { + ShapeCollisions.polygonToPolygon = function (first, second) { var result = new CollisionResult(); var isIntersecting = true; var firstEdges = first.edgeNormals; @@ -4460,8 +4992,11 @@ var ShapeCollisions = (function() { var translationAxis = new Vector2(); var polygonOffset = Vector2.subtract(first.position, second.position); var axis; - for (var edgeIndex = 0; edgeIndex < firstEdges.length + secondEdges.length; - edgeIndex++) { + for ( + var edgeIndex = 0; + edgeIndex < firstEdges.length + secondEdges.length; + edgeIndex++ + ) { if (edgeIndex < firstEdges.length) { axis = firstEdges[edgeIndex]; } else { @@ -4482,10 +5017,8 @@ var ShapeCollisions = (function() { minA += relativeIntervalOffset; maxA += relativeIntervalOffset; intervalDist = this.intervalDistance(minA, maxA, minB, maxB); - if (intervalDist > 0) - isIntersecting = false; - if (!isIntersecting) - return null; + if (intervalDist > 0) isIntersecting = false; + if (!isIntersecting) return null; intervalDist = Math.abs(intervalDist); if (intervalDist < minIntervalDistance) { minIntervalDistance = intervalDist; @@ -4496,15 +5029,16 @@ var ShapeCollisions = (function() { } result.normal = translationAxis; result.minimumTranslationVector = Vector2.multiply( - new Vector2(-translationAxis), new Vector2(minIntervalDistance)); + new Vector2(-translationAxis), + new Vector2(minIntervalDistance) + ); return result; }; - ShapeCollisions.intervalDistance = function(minA, maxA, minB, maxB) { - if (minA < minB) - return minB - maxA; + ShapeCollisions.intervalDistance = function (minA, maxA, minB, maxB) { + if (minA < minB) return minB - maxA; return minA - minB; }; - ShapeCollisions.getInterval = function(axis, polygon, min, max) { + ShapeCollisions.getInterval = function (axis, polygon, min, max) { var dot = Vector2.dot(polygon.points[0], axis); min = max = dot; for (var i = 1; i < polygon.points.length; i++) { @@ -4515,132 +5049,163 @@ var ShapeCollisions = (function() { max = dot; } } - return {min : min, max : max}; + return { min: min, max: max }; }; - ShapeCollisions.circleToPolygon = function(circle, polygon) { + ShapeCollisions.circleToPolygon = function (circle, polygon) { var result = new CollisionResult(); var poly2Circle = Vector2.subtract(circle.position, polygon.position); - var gpp = - Polygon.getClosestPointOnPolygonToPoint(polygon.points, poly2Circle); + var gpp = Polygon.getClosestPointOnPolygonToPoint( + polygon.points, + poly2Circle + ); var closestPoint = gpp.closestPoint; var distanceSquared = gpp.distanceSquared; result.normal = gpp.edgeNormal; var circleCenterInsidePoly = polygon.containsPoint(circle.position); - if (distanceSquared > circle.radius * circle.radius && - !circleCenterInsidePoly) + if ( + distanceSquared > circle.radius * circle.radius && + !circleCenterInsidePoly + ) return null; var mtv; if (circleCenterInsidePoly) { mtv = Vector2.multiply( - result.normal, - new Vector2(Math.sqrt(distanceSquared) - circle.radius)); + result.normal, + new Vector2(Math.sqrt(distanceSquared) - circle.radius) + ); } else { if (distanceSquared == 0) { mtv = Vector2.multiply(result.normal, new Vector2(circle.radius)); } else { var distance = Math.sqrt(distanceSquared); mtv = Vector2.multiply( - new Vector2(-Vector2.subtract(poly2Circle, closestPoint)), - new Vector2((circle.radius - distanceSquared) / distance)); + new Vector2(-Vector2.subtract(poly2Circle, closestPoint)), + new Vector2((circle.radius - distanceSquared) / distance) + ); } } result.minimumTranslationVector = mtv; result.point = Vector2.add(closestPoint, polygon.position); return result; }; - ShapeCollisions.circleToBox = function(circle, box) { + ShapeCollisions.circleToBox = function (circle, box) { var result = new CollisionResult(); - var closestPointOnBounds = - box.bounds.getClosestPointOnRectangleBorderToPoint(circle.position).res; + var closestPointOnBounds = box.bounds.getClosestPointOnRectangleBorderToPoint( + circle.position + ).res; if (box.containsPoint(circle.position)) { result.point = closestPointOnBounds; var safePlace = Vector2.add( - closestPointOnBounds, - Vector2.subtract(result.normal, new Vector2(circle.radius))); - result.minimumTranslationVector = - Vector2.subtract(circle.position, safePlace); + closestPointOnBounds, + Vector2.subtract(result.normal, new Vector2(circle.radius)) + ); + result.minimumTranslationVector = Vector2.subtract( + circle.position, + safePlace + ); return result; } - var sqrDistance = - Vector2.distanceSquared(closestPointOnBounds, circle.position); + var sqrDistance = Vector2.distanceSquared( + closestPointOnBounds, + circle.position + ); if (sqrDistance == 0) { - result.minimumTranslationVector = - Vector2.multiply(result.normal, new Vector2(circle.radius)); + result.minimumTranslationVector = Vector2.multiply( + result.normal, + new Vector2(circle.radius) + ); } else if (sqrDistance <= circle.radius * circle.radius) { result.normal = Vector2.subtract(circle.position, closestPointOnBounds); var depth = result.normal.length() - circle.radius; result.normal = Vector2Ext.normalize(result.normal); - result.minimumTranslationVector = - Vector2.multiply(new Vector2(depth), result.normal); + result.minimumTranslationVector = Vector2.multiply( + new Vector2(depth), + result.normal + ); return result; } return null; }; - ShapeCollisions.pointToCircle = function(point, circle) { + ShapeCollisions.pointToCircle = function (point, circle) { var result = new CollisionResult(); var distanceSquared = Vector2.distanceSquared(point, circle.position); var sumOfRadii = 1 + circle.radius; var collided = distanceSquared < sumOfRadii * sumOfRadii; if (collided) { - result.normal = - Vector2.normalize(Vector2.subtract(point, circle.position)); + result.normal = Vector2.normalize( + Vector2.subtract(point, circle.position) + ); var depth = sumOfRadii - Math.sqrt(distanceSquared); - result.minimumTranslationVector = - Vector2.multiply(new Vector2(-depth, -depth), result.normal); + result.minimumTranslationVector = Vector2.multiply( + new Vector2(-depth, -depth), + result.normal + ); result.point = Vector2.add( - circle.position, - Vector2.multiply(result.normal, - new Vector2(circle.radius, circle.radius))); + circle.position, + Vector2.multiply( + result.normal, + new Vector2(circle.radius, circle.radius) + ) + ); return result; } return null; }; - ShapeCollisions.closestPointOnLine = function(lineA, lineB, closestTo) { + ShapeCollisions.closestPointOnLine = function (lineA, lineB, closestTo) { var v = Vector2.subtract(lineB, lineA); var w = Vector2.subtract(closestTo, lineA); var t = Vector2.dot(w, v) / Vector2.dot(v, v); t = MathHelper.clamp(t, 0, 1); return Vector2.add(lineA, Vector2.multiply(v, new Vector2(t, t))); }; - ShapeCollisions.pointToPoly = function(point, poly) { + ShapeCollisions.pointToPoly = function (point, poly) { var result = new CollisionResult(); if (poly.containsPoint(point)) { var distanceSquared = void 0; var gpp = Polygon.getClosestPointOnPolygonToPoint( - poly.points, Vector2.subtract(point, poly.position)); + poly.points, + Vector2.subtract(point, poly.position) + ); var closestPoint = gpp.closestPoint; distanceSquared = gpp.distanceSquared; result.normal = gpp.edgeNormal; result.minimumTranslationVector = Vector2.multiply( - result.normal, - new Vector2(Math.sqrt(distanceSquared), Math.sqrt(distanceSquared))); + result.normal, + new Vector2(Math.sqrt(distanceSquared), Math.sqrt(distanceSquared)) + ); result.point = Vector2.add(closestPoint, poly.position); return result; } return null; }; - ShapeCollisions.circleToCircle = function(first, second) { + ShapeCollisions.circleToCircle = function (first, second) { var result = new CollisionResult(); - var distanceSquared = - Vector2.distanceSquared(first.position, second.position); + var distanceSquared = Vector2.distanceSquared( + first.position, + second.position + ); var sumOfRadii = first.radius + second.radius; var collided = distanceSquared < sumOfRadii * sumOfRadii; if (collided) { - result.normal = - Vector2.normalize(Vector2.subtract(first.position, second.position)); + result.normal = Vector2.normalize( + Vector2.subtract(first.position, second.position) + ); var depth = sumOfRadii - Math.sqrt(distanceSquared); - result.minimumTranslationVector = - Vector2.multiply(new Vector2(-depth), result.normal); + result.minimumTranslationVector = Vector2.multiply( + new Vector2(-depth), + result.normal + ); result.point = Vector2.add( - second.position, - Vector2.multiply(result.normal, new Vector2(second.radius))); + second.position, + Vector2.multiply(result.normal, new Vector2(second.radius)) + ); return result; } return null; }; return ShapeCollisions; -}()); -var SpatialHash = (function() { +})(); +var SpatialHash = (function () { function SpatialHash(cellSize) { if (cellSize === void 0) { cellSize = 100; @@ -4652,7 +5217,7 @@ var SpatialHash = (function() { this._inverseCellSize = 1 / this._cellSize; this._raycastParser = new RaycastResultParser(); } - SpatialHash.prototype.remove = function(collider) { + SpatialHash.prototype.remove = function (collider) { var bounds = collider.registeredPhysicsBounds; var p1 = this.cellCoords(bounds.x, bounds.y); var p2 = this.cellCoords(bounds.right, bounds.bottom); @@ -4660,14 +5225,16 @@ var SpatialHash = (function() { for (var y = p1.y; y <= p2.y; y++) { var cell = this.cellAtPosition(x, y); if (!cell) - console.error("removing Collider [" + collider + - "] from a cell that it is not present in"); - else - cell.remove(collider); + console.error( + "removing Collider [" + + collider + + "] from a cell that it is not present in" + ); + else cell.remove(collider); } } }; - SpatialHash.prototype.register = function(collider) { + SpatialHash.prototype.register = function (collider) { var bounds = collider.bounds; collider.registeredPhysicsBounds = bounds; var p1 = this.cellCoords(bounds.x, bounds.y); @@ -4685,11 +5252,21 @@ var SpatialHash = (function() { } } }; - SpatialHash.prototype.clear = function() { this._cellDict.clear(); }; - SpatialHash.prototype.overlapCircle = function(circleCenter, radius, results, - layerMask) { - var bounds = new Rectangle(circleCenter.x - radius, circleCenter.y - radius, - radius * 2, radius * 2); + SpatialHash.prototype.clear = function () { + this._cellDict.clear(); + }; + SpatialHash.prototype.overlapCircle = function ( + circleCenter, + radius, + results, + layerMask + ) { + var bounds = new Rectangle( + circleCenter.x - radius, + circleCenter.y - radius, + radius * 2, + radius * 2 + ); this._overlapTestCircle.radius = radius; this._overlapTestCircle.position = circleCenter; var resultCounter = 0; @@ -4701,27 +5278,31 @@ var SpatialHash = (function() { resultCounter++; } else { throw new Error( - "overlapCircle against this collider type is not implemented!"); + "overlapCircle against this collider type is not implemented!" + ); } - if (resultCounter == results.length) - return resultCounter; + if (resultCounter == results.length) return resultCounter; } return resultCounter; }; - SpatialHash.prototype.aabbBroadphase = function(bounds, excludeCollider, - layerMask) { + SpatialHash.prototype.aabbBroadphase = function ( + bounds, + excludeCollider, + layerMask + ) { this._tempHashSet.length = 0; var p1 = this.cellCoords(bounds.x, bounds.y); var p2 = this.cellCoords(bounds.right, bounds.bottom); for (var x = p1.x; x <= p2.x; x++) { for (var y = p1.y; y <= p2.y; y++) { var cell = this.cellAtPosition(x, y); - if (!cell) - continue; + if (!cell) continue; for (var i = 0; i < cell.length; i++) { var collider = cell[i]; - if (collider == excludeCollider || - !Flags.isFlagSet(layerMask, collider.physicsLayer)) + if ( + collider == excludeCollider || + !Flags.isFlagSet(layerMask, collider.physicsLayer) + ) continue; if (bounds.intersects(collider.bounds)) { if (this._tempHashSet.indexOf(collider) == -1) @@ -4732,7 +5313,7 @@ var SpatialHash = (function() { } return this._tempHashSet; }; - SpatialHash.prototype.cellAtPosition = function(x, y, createCellIfEmpty) { + SpatialHash.prototype.cellAtPosition = function (x, y, createCellIfEmpty) { if (createCellIfEmpty === void 0) { createCellIfEmpty = false; } @@ -4745,48 +5326,55 @@ var SpatialHash = (function() { } return cell; }; - SpatialHash.prototype.cellCoords = function(x, y) { - return new Point(Math.floor(x * this._inverseCellSize), - Math.floor(y * this._inverseCellSize)); + SpatialHash.prototype.cellCoords = function (x, y) { + return new Point( + Math.floor(x * this._inverseCellSize), + Math.floor(y * this._inverseCellSize) + ); }; return SpatialHash; -}()); -var RaycastResultParser = (function() { +})(); +var RaycastResultParser = (function () { function RaycastResultParser() {} return RaycastResultParser; -}()); -var NumberDictionary = (function() { - function NumberDictionary() { this._store = new Map(); } - NumberDictionary.prototype.getKey = function(x, y) { +})(); +var NumberDictionary = (function () { + function NumberDictionary() { + this._store = new Map(); + } + NumberDictionary.prototype.getKey = function (x, y) { return Long.fromNumber(x).shiftLeft(32).or(this.intToUint(y)).toString(); }; - NumberDictionary.prototype.intToUint = function(i) { - if (i >= 0) - return i; - else - return 4294967296 + i; + NumberDictionary.prototype.intToUint = function (i) { + if (i >= 0) return i; + else return 4294967296 + i; }; - NumberDictionary.prototype.add = function( - x, y, list) { this._store.set(this.getKey(x, y), list); }; - NumberDictionary.prototype.remove = function(obj) { - this._store.forEach(function(list) { - if (list.contains(obj)) - list.remove(obj); + NumberDictionary.prototype.add = function (x, y, list) { + this._store.set(this.getKey(x, y), list); + }; + NumberDictionary.prototype.remove = function (obj) { + this._store.forEach(function (list) { + if (list.contains(obj)) list.remove(obj); }); }; - NumberDictionary.prototype.tryGetValue = function( - x, y) { return this._store.get(this.getKey(x, y)); }; - NumberDictionary.prototype.clear = function() { this._store.clear(); }; + NumberDictionary.prototype.tryGetValue = function (x, y) { + return this._store.get(this.getKey(x, y)); + }; + NumberDictionary.prototype.clear = function () { + this._store.clear(); + }; return NumberDictionary; -}()); -var ContentManager = (function() { - function ContentManager() { this.loadedAssets = new Map(); } - ContentManager.prototype.loadRes = function(name, local) { +})(); +var ContentManager = (function () { + function ContentManager() { + this.loadedAssets = new Map(); + } + ContentManager.prototype.loadRes = function (name, local) { var _this = this; if (local === void 0) { local = true; } - return new Promise(function(resolve, reject) { + return new Promise(function (resolve, reject) { var res = _this.loadedAssets.get(name); if (res) { resolve(res); @@ -4794,69 +5382,73 @@ var ContentManager = (function() { } if (local) { RES.getResAsync(name) - .then(function(data) { - _this.loadedAssets.set(name, data); - resolve(data); - }) - .catch(function(err) { - console.error("资源加载错误:", name, err); - reject(err); - }); + .then(function (data) { + _this.loadedAssets.set(name, data); + resolve(data); + }) + .catch(function (err) { + console.error("资源加载错误:", name, err); + reject(err); + }); } else { RES.getResByUrl(name) - .then(function(data) { - _this.loadedAssets.set(name, data); - resolve(data); - }) - .catch(function(err) { - console.error("资源加载错误:", name, err); - reject(err); - }); + .then(function (data) { + _this.loadedAssets.set(name, data); + resolve(data); + }) + .catch(function (err) { + console.error("资源加载错误:", name, err); + reject(err); + }); } }); }; - ContentManager.prototype.dispose = function() { - this.loadedAssets.forEach(function(value) { + ContentManager.prototype.dispose = function () { + this.loadedAssets.forEach(function (value) { var assetsToRemove = value; assetsToRemove.dispose(); }); this.loadedAssets.clear(); }; return ContentManager; -}()); -var Emitter = (function() { - function Emitter() { this._messageTable = new Map(); } - Emitter.prototype.addObserver = function(eventType, handler) { +})(); +var Emitter = (function () { + function Emitter() { + this._messageTable = new Map(); + } + Emitter.prototype.addObserver = function (eventType, handler) { var list = this._messageTable.get(eventType); if (!list) { list = []; this._messageTable.set(eventType, list); } - if (list.contains(handler)) - console.warn("您试图添加相同的观察者两次"); + if (list.contains(handler)) console.warn("您试图添加相同的观察者两次"); list.push(handler); }; - Emitter.prototype.removeObserver = function( - eventType, - handler) { this._messageTable.get(eventType).remove(handler); }; - Emitter.prototype.emit = function(eventType, data) { + Emitter.prototype.removeObserver = function (eventType, handler) { + this._messageTable.get(eventType).remove(handler); + }; + Emitter.prototype.emit = function (eventType, data) { var list = this._messageTable.get(eventType); if (list) { - for (var i = list.length - 1; i >= 0; i--) - list[i](data); + for (var i = list.length - 1; i >= 0; i--) list[i](data); } }; return Emitter; -}()); -var GlobalManager = (function() { +})(); +var GlobalManager = (function () { function GlobalManager() {} Object.defineProperty(GlobalManager.prototype, "enabled", { - get : function() { return this._enabled; }, - set : function(value) { this.setEnabled(value); }, - enumerable : true, - configurable : true + get: function () { + return this._enabled; + }, + set: function (value) { + this.setEnabled(value); + }, + enumerable: true, + configurable: true, }); - GlobalManager.prototype.setEnabled = function(isEnabled) { + GlobalManager.prototype.setEnabled = function (isEnabled) { if (this._enabled != isEnabled) { this._enabled = isEnabled; if (this._enabled) { @@ -4866,28 +5458,27 @@ var GlobalManager = (function() { } } }; - GlobalManager.prototype.onEnabled = function() {}; - GlobalManager.prototype.onDisabled = function() {}; - GlobalManager.prototype.update = function() {}; - GlobalManager.registerGlobalManager = function(manager) { + GlobalManager.prototype.onEnabled = function () {}; + GlobalManager.prototype.onDisabled = function () {}; + GlobalManager.prototype.update = function () {}; + GlobalManager.registerGlobalManager = function (manager) { this.globalManagers.push(manager); manager.enabled = true; }; - GlobalManager.unregisterGlobalManager = function(manager) { + GlobalManager.unregisterGlobalManager = function (manager) { this.globalManagers.remove(manager); manager.enabled = false; }; - GlobalManager.getGlobalManager = function(type) { + GlobalManager.getGlobalManager = function (type) { for (var i = 0; i < this.globalManagers.length; i++) { - if (this.globalManagers[i] instanceof type) - return this.globalManagers[i]; + if (this.globalManagers[i] instanceof type) return this.globalManagers[i]; } return null; }; GlobalManager.globalManagers = []; return GlobalManager; -}()); -var TouchState = (function() { +})(); +var TouchState = (function () { function TouchState() { this.x = 0; this.y = 0; @@ -4895,83 +5486,108 @@ var TouchState = (function() { this.touchDown = false; } Object.defineProperty(TouchState.prototype, "position", { - get : function() { return new Vector2(this.x, this.y); }, - enumerable : true, - configurable : true + get: function () { + return new Vector2(this.x, this.y); + }, + enumerable: true, + configurable: true, }); - TouchState.prototype.reset = function() { + TouchState.prototype.reset = function () { this.x = 0; this.y = 0; this.touchDown = false; this.touchPoint = -1; }; return TouchState; -}()); -var Input = (function() { +})(); +var Input = (function () { function Input() {} Object.defineProperty(Input, "touchPosition", { - get : function() { - if (!this._gameTouchs[0]) - return Vector2.zero; + get: function () { + if (!this._gameTouchs[0]) return Vector2.zero; return this._gameTouchs[0].position; }, - enumerable : true, - configurable : true + enumerable: true, + configurable: true, }); Object.defineProperty(Input, "maxSupportedTouch", { - get : function() { return this._stage.maxTouches; }, - set : function(value) { + get: function () { + return this._stage.maxTouches; + }, + set: function (value) { this._stage.maxTouches = value; this.initTouchCache(); }, - enumerable : true, - configurable : true + enumerable: true, + configurable: true, }); Object.defineProperty(Input, "resolutionScale", { - get : function() { return this._resolutionScale; }, - enumerable : true, - configurable : true + get: function () { + return this._resolutionScale; + }, + enumerable: true, + configurable: true, }); Object.defineProperty(Input, "totalTouchCount", { - get : function() { return this._totalTouchCount; }, - enumerable : true, - configurable : true + get: function () { + return this._totalTouchCount; + }, + enumerable: true, + configurable: true, }); Object.defineProperty(Input, "gameTouchs", { - get : function() { return this._gameTouchs; }, - enumerable : true, - configurable : true + get: function () { + return this._gameTouchs; + }, + enumerable: true, + configurable: true, }); Object.defineProperty(Input, "touchPositionDelta", { - get : function() { - var delta = Vector2.subtract(this.touchPosition, - this._previousTouchState.position); + get: function () { + var delta = Vector2.subtract( + this.touchPosition, + this._previousTouchState.position + ); if (delta.length() > 0) { this.setpreviousTouchState(this._gameTouchs[0]); } return delta; }, - enumerable : true, - configurable : true + enumerable: true, + configurable: true, }); - Input.initialize = function(stage) { - if (this._init) - return; + Input.initialize = function (stage) { + if (this._init) return; this._init = true; this._stage = stage; - 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._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(); }; - Input.initTouchCache = function() { + Input.initTouchCache = function () { this._totalTouchCount = 0; this._touchIndex = 0; this._gameTouchs.length = 0; @@ -4979,7 +5595,7 @@ var Input = (function() { this._gameTouchs.push(new TouchState()); } }; - Input.touchBegin = function(evt) { + Input.touchBegin = function (evt) { if (this._touchIndex < this.maxSupportedTouch) { this._gameTouchs[this._touchIndex].touchPoint = evt.touchPointID; this._gameTouchs[this._touchIndex].touchDown = evt.touchDown; @@ -4992,42 +5608,45 @@ var Input = (function() { this._totalTouchCount++; } }; - Input.touchMove = function(evt) { + Input.touchMove = function (evt) { if (evt.touchPointID == this._gameTouchs[0].touchPoint) { this.setpreviousTouchState(this._gameTouchs[0]); } - var touchIndex = this._gameTouchs.findIndex(function( - touch) { return touch.touchPoint == evt.touchPointID; }); + var touchIndex = this._gameTouchs.findIndex(function (touch) { + return touch.touchPoint == evt.touchPointID; + }); if (touchIndex != -1) { var touchData = this._gameTouchs[touchIndex]; touchData.x = evt.stageX; touchData.y = evt.stageY; } }; - Input.touchEnd = function(evt) { - var touchIndex = this._gameTouchs.findIndex(function( - touch) { return touch.touchPoint == evt.touchPointID; }); + Input.touchEnd = function (evt) { + var touchIndex = this._gameTouchs.findIndex(function (touch) { + return touch.touchPoint == evt.touchPointID; + }); if (touchIndex != -1) { var touchData = this._gameTouchs[touchIndex]; touchData.reset(); - if (touchIndex == 0) - this._previousTouchState.reset(); + if (touchIndex == 0) this._previousTouchState.reset(); this._totalTouchCount--; if (this.totalTouchCount == 0) { this._touchIndex = 0; } } }; - Input.setpreviousTouchState = function(touchState) { + Input.setpreviousTouchState = function (touchState) { this._previousTouchState = new TouchState(); this._previousTouchState.x = touchState.position.x; this._previousTouchState.y = touchState.position.y; this._previousTouchState.touchPoint = touchState.touchPoint; this._previousTouchState.touchDown = touchState.touchDown; }; - Input.scaledPosition = function(position) { - var scaledPos = new Vector2(position.x - this._resolutionOffset.x, - position.y - this._resolutionOffset.y); + Input.scaledPosition = function (position) { + var scaledPos = new Vector2( + position.x - this._resolutionOffset.x, + position.y - this._resolutionOffset.y + ); return Vector2.multiply(scaledPos, this.resolutionScale); }; Input._init = false; @@ -5038,10 +5657,10 @@ var Input = (function() { Input._touchIndex = 0; Input._totalTouchCount = 0; return Input; -}()); -var ListPool = (function() { +})(); +var ListPool = (function () { function ListPool() {} - ListPool.warmCache = function(cacheCount) { + ListPool.warmCache = function (cacheCount) { cacheCount -= this._objectQueue.length; if (cacheCount > 0) { for (var i = 0; i < cacheCount; i++) { @@ -5049,41 +5668,43 @@ var ListPool = (function() { } } }; - ListPool.trimCache = function(cacheCount) { - while (cacheCount > this._objectQueue.length) - this._objectQueue.shift(); + ListPool.trimCache = function (cacheCount) { + while (cacheCount > this._objectQueue.length) this._objectQueue.shift(); }; - ListPool.clearCache = function() { this._objectQueue.length = 0; }; - ListPool.obtain = function() { - if (this._objectQueue.length > 0) - return this._objectQueue.shift(); + ListPool.clearCache = function () { + this._objectQueue.length = 0; + }; + ListPool.obtain = function () { + if (this._objectQueue.length > 0) return this._objectQueue.shift(); return []; }; - ListPool.free = function(obj) { + ListPool.free = function (obj) { this._objectQueue.unshift(obj); obj.length = 0; }; ListPool._objectQueue = []; return ListPool; -}()); -var Pair = (function() { +})(); +var Pair = (function () { function Pair(first, second) { this.first = first; this.second = second; } - Pair.prototype.clear = function() { this.first = this.second = null; }; - Pair.prototype.equals = function(other) { + Pair.prototype.clear = function () { + this.first = this.second = null; + }; + Pair.prototype.equals = function (other) { return this.first == other.first && this.second == other.second; }; return Pair; -}()); -var RectangleExt = (function() { +})(); +var RectangleExt = (function () { function RectangleExt() {} - RectangleExt.union = function(first, point) { + RectangleExt.union = function (first, point) { var rect = new Rectangle(point.x, point.y, 0, 0); return this.unionR(first, rect); }; - RectangleExt.unionR = function(value1, value2) { + RectangleExt.unionR = function (value1, value2) { var result = new Rectangle(); result.x = Math.min(value1.x, value2.x); result.y = Math.min(value1.y, value2.y); @@ -5092,14 +5713,14 @@ var RectangleExt = (function() { return result; }; return RectangleExt; -}()); -var Triangulator = (function() { +})(); +var Triangulator = (function () { function Triangulator() { this.triangleIndices = []; this._triPrev = new Array(12); this._triNext = new Array(12); } - Triangulator.prototype.triangulate = function(points, arePointsCCW) { + Triangulator.prototype.triangulate = function (points, arePointsCCW) { if (arePointsCCW === void 0) { arePointsCCW = true; } @@ -5140,10 +5761,9 @@ var Triangulator = (function() { this.triangleIndices.push(this._triPrev[index]); this.triangleIndices.push(index); this.triangleIndices.push(this._triNext[index]); - if (!arePointsCCW) - this.triangleIndices.reverse(); + if (!arePointsCCW) this.triangleIndices.reverse(); }; - Triangulator.prototype.initialize = function(count) { + Triangulator.prototype.initialize = function (count) { this.triangleIndices.length = 0; if (this._triNext.length < count) { this._triNext.reverse(); @@ -5160,32 +5780,38 @@ var Triangulator = (function() { this._triPrev[0] = count - 1; this._triNext[count - 1] = 0; }; - Triangulator.testPointTriangle = function(point, a, b, c) { - if (Vector2Ext.cross(Vector2.subtract(point, a), Vector2.subtract(b, a)) < - 0) + Triangulator.testPointTriangle = function (point, a, b, c) { + if ( + Vector2Ext.cross(Vector2.subtract(point, a), Vector2.subtract(b, a)) < 0 + ) return false; - if (Vector2Ext.cross(Vector2.subtract(point, b), Vector2.subtract(c, b)) < - 0) + if ( + Vector2Ext.cross(Vector2.subtract(point, b), Vector2.subtract(c, b)) < 0 + ) return false; - if (Vector2Ext.cross(Vector2.subtract(point, c), Vector2.subtract(a, c)) < - 0) + if ( + Vector2Ext.cross(Vector2.subtract(point, c), Vector2.subtract(a, c)) < 0 + ) return false; return true; }; return Triangulator; -}()); -var Vector2Ext = (function() { +})(); +var Vector2Ext = (function () { function Vector2Ext() {} - Vector2Ext.isTriangleCCW = function(a, center, c) { - return this.cross(Vector2.subtract(center, a), - Vector2.subtract(c, center)) < 0; + Vector2Ext.isTriangleCCW = function (a, center, c) { + return ( + this.cross(Vector2.subtract(center, a), Vector2.subtract(c, center)) < 0 + ); }; - Vector2Ext.cross = function(u, v) { return u.y * v.x - u.x * v.y; }; - Vector2Ext.perpendicular = function(first, second) { + Vector2Ext.cross = function (u, v) { + return u.y * v.x - u.x * v.y; + }; + Vector2Ext.perpendicular = function (first, second) { return new Vector2(-1 * (second.y - first.y), second.x - first.x); }; - Vector2Ext.normalize = function(vec) { - var magnitude = Math.sqrt((vec.x * vec.x) + (vec.y * vec.y)); + Vector2Ext.normalize = function (vec) { + var magnitude = Math.sqrt(vec.x * vec.x + vec.y * vec.y); if (magnitude > MathHelper.Epsilon) { vec = Vector2.divide(vec, new Vector2(magnitude)); } else { @@ -5193,28 +5819,41 @@ var Vector2Ext = (function() { } return vec; }; - Vector2Ext.transformA = function(sourceArray, sourceIndex, matrix, - destinationArray, destinationIndex, length) { + Vector2Ext.transformA = function ( + sourceArray, + sourceIndex, + matrix, + destinationArray, + destinationIndex, + length + ) { for (var i = 0; i < length; i++) { var position = sourceArray[sourceIndex + i]; var destination = destinationArray[destinationIndex + i]; destination.x = - (position.x * matrix.m11) + (position.y * matrix.m21) + matrix.m31; + position.x * matrix.m11 + position.y * matrix.m21 + matrix.m31; destination.y = - (position.x * matrix.m12) + (position.y * matrix.m22) + matrix.m32; + position.x * matrix.m12 + position.y * matrix.m22 + matrix.m32; destinationArray[destinationIndex + i] = destination; } }; - Vector2Ext.transformR = function(position, matrix) { - var x = (position.x * matrix.m11) + (position.y * matrix.m21) + matrix.m31; - var y = (position.x * matrix.m12) + (position.y * matrix.m22) + matrix.m32; + Vector2Ext.transformR = function (position, matrix) { + var x = position.x * matrix.m11 + position.y * matrix.m21 + matrix.m31; + var y = position.x * matrix.m12 + position.y * matrix.m22 + matrix.m32; return new Vector2(x, y); }; - Vector2Ext.transform = function(sourceArray, matrix, destinationArray) { - this.transformA(sourceArray, 0, matrix, destinationArray, 0, - sourceArray.length); + Vector2Ext.transform = function (sourceArray, matrix, destinationArray) { + this.transformA( + sourceArray, + 0, + matrix, + destinationArray, + 0, + sourceArray.length + ); + }; + Vector2Ext.round = function (vec) { + return new Vector2(Math.round(vec.x), Math.round(vec.y)); }; - Vector2Ext.round = function( - vec) { return new Vector2(Math.round(vec.x), Math.round(vec.y)); }; return Vector2Ext; -}()); +})(); diff --git a/source/bin/framework.min.js b/source/bin/framework.min.js index d6233172..48790482 100644 --- a/source/bin/framework.min.js +++ b/source/bin/framework.min.js @@ -1,3477 +1,5250 @@ -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]) +(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())); }; - 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;) + })()); +var __awaiter = + (this && this.__awaiter) || + function (t, e, n, i) { + return new (n || (n = Promise))(function (o, r) { + function s(t) { 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) + h(i.next(t)); } catch (t) { - r = [ 6, t ], i = 0 - } finally { - n = o = 0 + r(t); } - 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 - }, []) + function a(t) { + try { + h(i.throw(t)); + } catch (t) { + r(t); + } } - 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) + 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]); + }; + } }; -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 +(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); }), - 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 + (Array.prototype.firstOrDefault = function (t) { + return (function (t, e) { + var n = t.findIndex(e); + return -1 == n ? null : t[n]; + })(this, t); }), - 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 + (Array.prototype.find = function (t) { + return (function (t, e) { + return t.firstOrDefault(e); + })(this, t); }), - 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) + (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); } - 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 = .3, e._maximumZoom = 3, - e.followLerp = .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 + return n; + })(this, t); }), - 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(.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(.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 + (Array.prototype.count = function (t) { + return (function (t, e) { + return t.where(e).length; + })(this, t); }), - 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(.5 * e.width, .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 + (Array.prototype.findAll = function (t) { + return (function (t, e) { + return t.where(e); + })(this, t); }), - 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 + (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); }), - 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]; + (Array.prototype.removeAll = function (t) { + !(function (t, e) { + var n; 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 + (n = t.findIndex(e)) >= 0 && t.splice(n, 1); + } while (n >= 0); + })(this, t); }), - 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) + (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 + ); + }, []); } - 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 + 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); }), - 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(.1, .6, 2, 1, 1, 0), new t(0, 3, 1, 1, 1, 1), - new t(.5, 8, 2, 1, 0, 1), new t(.25, 8, 1.3, 1, 1, 0), - new t(0, 2, 1, .1, 1, 1), new t(.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 = .4, - n.fadeEaseType = egret.Ease.quadInOut, - n.delayBeforeFadeInDuration = .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 : .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 .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 = .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(.5 * this.width, .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.xi && (i = s.x), - s.yo && (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 = .5 * t.width, o = .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) + (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; - (y = Math.abs(y)) < a && - (a = y, h = n, Vector2.dot(h, c) < 0 && (h = new Vector2(-h))) + }), + (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 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))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 __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 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 + 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); } - 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 ( + (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 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 ( + (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 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 ( + (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 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 ( + (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 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)) || + 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)) + 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); } - } - 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 + }), + (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); + } } - 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] + 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(); } - 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 -}(); \ No newline at end of file + 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 + ); + })();