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