@hi-ashleyj/llama 0.1.0 → 0.2.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/main.js DELETED
@@ -1,543 +0,0 @@
1
- class $edb0ad70e86925e1$export$bd0bf19f25da8474 {
2
- static events = [];
3
- static lasts = {};
4
- static pressed = {};
5
- static mouseLocation = {};
6
- static on(action, target, callback) {
7
- $edb0ad70e86925e1$export$bd0bf19f25da8474.events.push({
8
- action: action,
9
- target: target,
10
- callback: callback
11
- });
12
- }
13
- static fire(action, target, data) {
14
- $edb0ad70e86925e1$export$bd0bf19f25da8474.events.forEach((event)=>{
15
- if (event.action && event.action !== action) return;
16
- if (event.target && event.target !== target) return;
17
- event.callback(action, target, data ? data : null);
18
- });
19
- }
20
- static isPressed(code) {
21
- return $edb0ad70e86925e1$export$bd0bf19f25da8474.pressed[code];
22
- }
23
- static handleKeyboard(e) {
24
- let target = "key_" + e.key.toLowerCase();
25
- switch(e.type){
26
- case "keydown":
27
- if ($edb0ad70e86925e1$export$bd0bf19f25da8474.pressed[target]) return;
28
- $edb0ad70e86925e1$export$bd0bf19f25da8474.pressed[target] = true;
29
- $edb0ad70e86925e1$export$bd0bf19f25da8474.lasts[target] = e.timeStamp;
30
- return $edb0ad70e86925e1$export$bd0bf19f25da8474.fire("press", target);
31
- case "keyup":
32
- {
33
- if (!$edb0ad70e86925e1$export$bd0bf19f25da8474.pressed[target]) return;
34
- $edb0ad70e86925e1$export$bd0bf19f25da8474.pressed[target] = false;
35
- $edb0ad70e86925e1$export$bd0bf19f25da8474.lasts[target] = e.timeStamp;
36
- $edb0ad70e86925e1$export$bd0bf19f25da8474.fire("release", target);
37
- let diff = e.timeStamp - $edb0ad70e86925e1$export$bd0bf19f25da8474.lasts[target];
38
- $edb0ad70e86925e1$export$bd0bf19f25da8474.fire("hold", target, {
39
- diff: diff
40
- });
41
- if (diff <= 150) return $edb0ad70e86925e1$export$bd0bf19f25da8474.fire("click", target);
42
- }
43
- }
44
- }
45
- static handleMouse(e) {
46
- let target = "mouse_" + (e.button ? [
47
- "left",
48
- "middle",
49
- "right",
50
- "back",
51
- "forward"
52
- ][e.button] : "moose");
53
- if (e.clientX && e.clientY) {
54
- if ($edb0ad70e86925e1$export$bd0bf19f25da8474.mouseLocation.x && $edb0ad70e86925e1$export$bd0bf19f25da8474.mouseLocation.y) {
55
- let deltaX = e.clientX - $edb0ad70e86925e1$export$bd0bf19f25da8474.mouseLocation.x;
56
- let deltaY = e.clientY - $edb0ad70e86925e1$export$bd0bf19f25da8474.mouseLocation.y;
57
- $edb0ad70e86925e1$export$bd0bf19f25da8474.fire("move", "mouse_location", {
58
- x: e.clientX,
59
- y: e.clientY,
60
- deltaX: deltaX,
61
- deltaY: deltaY
62
- });
63
- }
64
- $edb0ad70e86925e1$export$bd0bf19f25da8474.mouseLocation.x = e.clientX;
65
- $edb0ad70e86925e1$export$bd0bf19f25da8474.mouseLocation.y = e.clientY;
66
- }
67
- switch(e.type){
68
- case "wheel":
69
- {
70
- let direction = "";
71
- if (e.deltaY < 0) direction += "N";
72
- else if (e.deltaY > 0) direction += "S";
73
- if (e.deltaX < 0) direction += "W";
74
- else if (e.deltaX > 0) direction += "E";
75
- return $edb0ad70e86925e1$export$bd0bf19f25da8474.fire("move", "mouse_wheel", {
76
- direction: direction,
77
- deltaX: e.deltaX,
78
- deltaY: e.deltaY
79
- });
80
- }
81
- case "mousedown":
82
- if ($edb0ad70e86925e1$export$bd0bf19f25da8474.pressed[target]) return;
83
- $edb0ad70e86925e1$export$bd0bf19f25da8474.pressed[target] = true;
84
- $edb0ad70e86925e1$export$bd0bf19f25da8474.lasts[target] = e.timeStamp;
85
- return $edb0ad70e86925e1$export$bd0bf19f25da8474.fire("press", target);
86
- case "mouseup":
87
- {
88
- if (!$edb0ad70e86925e1$export$bd0bf19f25da8474.pressed[target]) return;
89
- $edb0ad70e86925e1$export$bd0bf19f25da8474.pressed[target] = false;
90
- $edb0ad70e86925e1$export$bd0bf19f25da8474.lasts[target] = e.timeStamp;
91
- $edb0ad70e86925e1$export$bd0bf19f25da8474.fire("release", target);
92
- let diff = e.timeStamp - $edb0ad70e86925e1$export$bd0bf19f25da8474.lasts[target];
93
- $edb0ad70e86925e1$export$bd0bf19f25da8474.fire("hold", target, {
94
- diff: diff
95
- });
96
- if (diff <= 150) return $edb0ad70e86925e1$export$bd0bf19f25da8474.fire("click", target);
97
- }
98
- }
99
- }
100
- static setup() {
101
- document.addEventListener("mousedown", $edb0ad70e86925e1$export$bd0bf19f25da8474.handleMouse, false);
102
- document.addEventListener("mouseup", $edb0ad70e86925e1$export$bd0bf19f25da8474.handleMouse, false);
103
- document.addEventListener("mousemove", $edb0ad70e86925e1$export$bd0bf19f25da8474.handleMouse, false);
104
- document.addEventListener("wheel", $edb0ad70e86925e1$export$bd0bf19f25da8474.handleMouse, false);
105
- document.addEventListener("keydown", $edb0ad70e86925e1$export$bd0bf19f25da8474.handleKeyboard, false);
106
- document.addEventListener("keyup", $edb0ad70e86925e1$export$bd0bf19f25da8474.handleKeyboard, false);
107
- }
108
- }
109
-
110
-
111
- class $971351ec61e49235$export$7fc05a3731226b90 {
112
- static stamp = -1;
113
- static targets = new Set();
114
- static tick(stamp) {
115
- $971351ec61e49235$export$7fc05a3731226b90.stamp = stamp;
116
- }
117
- offset = -1;
118
- constructor(time, steps, count){
119
- this.time = time;
120
- this.steps = steps;
121
- this.count = count ? count : Infinity;
122
- this.points = Object.keys(steps).map((key)=>parseFloat(key)).sort((a, b)=>a - b);
123
- $971351ec61e49235$export$7fc05a3731226b90.targets.add(this);
124
- }
125
- value() {
126
- if (this.points.length < 2) return null;
127
- if (this.offset < 0) this.offset = $971351ec61e49235$export$7fc05a3731226b90.stamp;
128
- let duration = $971351ec61e49235$export$7fc05a3731226b90.stamp - this.offset;
129
- if (Math.floor(duration / this.time) >= this.count) return null;
130
- let factor = duration % this.time / this.time;
131
- for(let i = 1; i < this.points.length; i++)if (this.points[i] >= factor) {
132
- let to = this.points[i];
133
- let from = this.points[i - 1];
134
- let percent = (factor - from) / (to - from);
135
- return this.steps[from] + (this.steps[to] - this.steps[from]) * percent;
136
- }
137
- }
138
- }
139
- class $971351ec61e49235$export$44710f68374d3da8 {
140
- drawables = [];
141
- constructor(drawables, duration){
142
- this.drawables = drawables;
143
- this.duration = duration;
144
- this.reset();
145
- }
146
- reset() {
147
- this.timing = new $971351ec61e49235$export$7fc05a3731226b90(this.duration, {
148
- 0: 0,
149
- 1: this.drawables.length
150
- });
151
- }
152
- draw(layer, x, y, w, h) {
153
- this.drawables[this.timing.value()].draw(layer, x, y, w, h);
154
- }
155
- }
156
- class $971351ec61e49235$export$e90425c1fce4da58 {
157
- constructor(drawables, defaultDrawable){
158
- this.drawables = drawables;
159
- this.default = defaultDrawable;
160
- this.use = defaultDrawable;
161
- }
162
- draw(layer, x, y, w, h) {
163
- this.drawables[this.use].draw(layer, x, y, w, h);
164
- }
165
- switch(key) {
166
- if (this.use === key) return;
167
- this.use = key;
168
- this.drawables[this.use].reset();
169
- }
170
- reset(useDefault = false) {
171
- if (useDefault) this.use = this.default;
172
- this.drawables[this.use].reset();
173
- }
174
- }
175
- const $971351ec61e49235$export$83a1293bbde53b95 = {
176
- AnimationSequence: $971351ec61e49235$export$44710f68374d3da8,
177
- AnimationSwitches: $971351ec61e49235$export$e90425c1fce4da58,
178
- Curves: $971351ec61e49235$export$7fc05a3731226b90
179
- };
180
- var $971351ec61e49235$export$2e2bcd8739ae039 = $971351ec61e49235$export$83a1293bbde53b95;
181
-
182
-
183
-
184
-
185
- class $df9966d71ee61f6e$export$936d0764594b6eb3 {
186
- static list = new Map();
187
- targets = new Set();
188
- constructor(id, options){
189
- if (!id) throw new Error("Layer id is required");
190
- if ($df9966d71ee61f6e$export$936d0764594b6eb3.list.has(id)) return $df9966d71ee61f6e$export$936d0764594b6eb3.list.get(id);
191
- this.id = id;
192
- this.options = options;
193
- if (!(0, $8aaa40018df40525$export$985739bfa5723e08).width || !(0, $8aaa40018df40525$export$985739bfa5723e08).height) throw new Error("Game not created yet");
194
- this.width = (0, $8aaa40018df40525$export$985739bfa5723e08).width;
195
- this.height = (0, $8aaa40018df40525$export$985739bfa5723e08).height;
196
- this.canvas = document.createElement("canvas");
197
- this.canvas.width = (0, $8aaa40018df40525$export$985739bfa5723e08).width;
198
- this.canvas.height = (0, $8aaa40018df40525$export$985739bfa5723e08).height;
199
- this.canvas.style.zIndex = options.level.toString();
200
- this.canvas.className = "llama-game-engine game-canvas";
201
- this.ctx = this.canvas.getContext("2d");
202
- this.ctx.imageSmoothingEnabled = false;
203
- (0, $8aaa40018df40525$export$985739bfa5723e08).pushCanvas(this.canvas);
204
- $df9966d71ee61f6e$export$936d0764594b6eb3.list.set(id, this);
205
- }
206
- assign(...targets) {
207
- for (const target of targets)this.targets.add(target);
208
- return this;
209
- }
210
- remove(...targets) {
211
- for (const target of targets)this.targets.delete(target);
212
- return this;
213
- }
214
- purge() {
215
- this.targets.clear();
216
- }
217
- draw() {
218
- this.ctx.clearRect(0, 0, this.width, this.height);
219
- for (const target of this.targets)target.draw(this);
220
- }
221
- static draw() {
222
- $df9966d71ee61f6e$export$936d0764594b6eb3.list.forEach((layer)=>{
223
- layer.draw();
224
- });
225
- }
226
- static purge() {
227
- $df9966d71ee61f6e$export$936d0764594b6eb3.list.forEach((layer)=>{
228
- layer.purge();
229
- });
230
- }
231
- }
232
-
233
-
234
- class $8aaa40018df40525$export$985739bfa5723e08 {
235
- static timeouts = new Set();
236
- static last = -1;
237
- static events = [];
238
- static makeElements() {
239
- $8aaa40018df40525$export$985739bfa5723e08.root = document.createElement("div");
240
- $8aaa40018df40525$export$985739bfa5723e08.root.className = "llama-game-engine game-root";
241
- $8aaa40018df40525$export$985739bfa5723e08.audioDumpspace = document.createElement("div");
242
- $8aaa40018df40525$export$985739bfa5723e08.audioDumpspace.className = "llama-game-engine game-audio-dumpspace";
243
- $8aaa40018df40525$export$985739bfa5723e08.audioDumpspace.hidden = true;
244
- $8aaa40018df40525$export$985739bfa5723e08.imagesDumpspace = document.createElement("div");
245
- $8aaa40018df40525$export$985739bfa5723e08.imagesDumpspace.className = "llama-game-engine game-images-dumpspace";
246
- $8aaa40018df40525$export$985739bfa5723e08.imagesDumpspace.hidden = true;
247
- document.body.appendChild($8aaa40018df40525$export$985739bfa5723e08.root);
248
- document.body.appendChild($8aaa40018df40525$export$985739bfa5723e08.audioDumpspace);
249
- document.body.appendChild($8aaa40018df40525$export$985739bfa5723e08.imagesDumpspace);
250
- let style = document.createElement("style");
251
- style.innerHTML = `
252
- html, body {
253
- background: black;
254
- padding: 0;
255
- margin: 0;
256
- position: relative;
257
- overflow: hidden;
258
- }
259
-
260
- div.llama-game-engine.game-root {
261
- position: absolute;
262
- top: 0;
263
- left: 0;
264
- width: 100vw;
265
- height: 100vh;
266
- }
267
-
268
- canvas.llama-game-engine.game-canvas {
269
- position: fixed;
270
- top: 0;
271
- left: 0;
272
- width: 100%;
273
- height: 100%;
274
- object-fit: contain;
275
- }
276
- `;
277
- document.head.appendChild(style);
278
- }
279
- static create(options) {
280
- $8aaa40018df40525$export$985739bfa5723e08.width = options.width;
281
- $8aaa40018df40525$export$985739bfa5723e08.height = options.height;
282
- $8aaa40018df40525$export$985739bfa5723e08.makeElements();
283
- (0, $edb0ad70e86925e1$export$bd0bf19f25da8474).setup();
284
- }
285
- static start() {
286
- window.requestAnimationFrame($8aaa40018df40525$export$985739bfa5723e08.loop);
287
- }
288
- static wait(callback, delay) {
289
- $8aaa40018df40525$export$985739bfa5723e08.timeouts.add({
290
- callback: callback,
291
- delay: delay
292
- });
293
- }
294
- static on(type, call) {
295
- $8aaa40018df40525$export$985739bfa5723e08.events.push({
296
- type: type,
297
- call: call
298
- });
299
- }
300
- static fire(type, data) {
301
- for (let e of $8aaa40018df40525$export$985739bfa5723e08.events)if (e.type == type) e.call(data ? data : null);
302
- }
303
- static loop(time) {
304
- if ($8aaa40018df40525$export$985739bfa5723e08.last < 0) $8aaa40018df40525$export$985739bfa5723e08.last = time;
305
- let delta = time - $8aaa40018df40525$export$985739bfa5723e08.last;
306
- if (delta > 1000) {
307
- window.requestAnimationFrame($8aaa40018df40525$export$985739bfa5723e08.loop);
308
- return $8aaa40018df40525$export$985739bfa5723e08.last = time;
309
- }
310
- (0, $971351ec61e49235$export$2e2bcd8739ae039).Curves.tick(time);
311
- for (let timeout of $8aaa40018df40525$export$985739bfa5723e08.timeouts){
312
- if (timeout.start === undefined) {
313
- timeout.start = time;
314
- continue;
315
- }
316
- if (time >= timeout.start + timeout.delay) {
317
- timeout.callback(time - (timeout.start + timeout.delay));
318
- $8aaa40018df40525$export$985739bfa5723e08.timeouts.delete(timeout);
319
- }
320
- }
321
- $8aaa40018df40525$export$985739bfa5723e08.fire("loop", {
322
- stamp: time,
323
- delta: delta
324
- });
325
- (0, $df9966d71ee61f6e$export$936d0764594b6eb3).draw();
326
- $8aaa40018df40525$export$985739bfa5723e08.fire("postdraw", {
327
- stamp: time,
328
- delta: delta
329
- });
330
- window.requestAnimationFrame($8aaa40018df40525$export$985739bfa5723e08.loop);
331
- $8aaa40018df40525$export$985739bfa5723e08.last = time;
332
- }
333
- static pushCanvas(canvas) {
334
- $8aaa40018df40525$export$985739bfa5723e08.root.append(canvas);
335
- }
336
- }
337
-
338
-
339
- class $6e2679f058a662f2$export$434da80b31429dcb {
340
- constructor(options){
341
- this.asset = options.asset;
342
- this.x = options.x ? options.x : 0;
343
- this.y = options.y ? options.y : 0;
344
- this.w = options.w ? options.w : 100;
345
- this.h = options.h ? options.h : 100;
346
- }
347
- draw(layer) {
348
- this.asset.draw(layer, this.x, this.y, this.w, this.h);
349
- }
350
- move({ x: x , y: y }) {
351
- if (typeof x === "number") this.x += x;
352
- if (typeof y === "number") this.y += y;
353
- return this;
354
- }
355
- scale({ w: w , h: h }) {
356
- if (typeof w === "number") this.w += w;
357
- if (typeof h === "number") this.h += h;
358
- return this;
359
- }
360
- position({ x: x , y: y , w: w , h: h }) {
361
- if (typeof x === "number") this.x = x;
362
- if (typeof y === "number") this.y = y;
363
- if (typeof w === "number") this.w = w;
364
- if (typeof h === "number") this.h = h;
365
- }
366
- }
367
-
368
-
369
-
370
-
371
- class $19600059415940a9$export$3e431a229df88919 {
372
- static locations = new Map();
373
- static loading = new Set();
374
- crop = [];
375
- static getImage(uri) {
376
- if ($19600059415940a9$export$3e431a229df88919.locations.has(uri)) return $19600059415940a9$export$3e431a229df88919.locations.get(uri);
377
- let element = document.createElement("img");
378
- $19600059415940a9$export$3e431a229df88919.locations.set(uri, element);
379
- $19600059415940a9$export$3e431a229df88919.loading.add(uri);
380
- element.addEventListener("load", ()=>{
381
- $19600059415940a9$export$3e431a229df88919.loading.delete(uri);
382
- });
383
- element.src = uri;
384
- $19600059415940a9$export$3e431a229df88919.dumpspace.append(element);
385
- }
386
- static setDumpSpace(element) {
387
- $19600059415940a9$export$3e431a229df88919.dumpspace = element;
388
- }
389
- constructor({ image: image , crop: crop }){
390
- this.location = image;
391
- this.resource = $19600059415940a9$export$3e431a229df88919.getImage(image);
392
- if (crop) this.crop = [
393
- crop.x,
394
- crop.y,
395
- crop.width,
396
- crop.height
397
- ];
398
- }
399
- draw(layer, x, y, w, h) {
400
- if (this.crop.length === 4) return layer.ctx.drawImage(this.resource, ...this.crop, x, y, w, h);
401
- layer.ctx.drawImage(this.resource, x, y, w, h);
402
- }
403
- }
404
- class $19600059415940a9$export$16ec26812de3ce7a {
405
- constructor(image, { tiles: tiles , sizeX: sizeX , sizeY: sizeY }){
406
- this.map = new Array(tiles).map((_ignored, i)=>new $19600059415940a9$export$3e431a229df88919({
407
- image: image,
408
- crop: {
409
- x: i * sizeX,
410
- y: 0,
411
- width: sizeX,
412
- height: sizeY
413
- }
414
- }));
415
- }
416
- }
417
- class $19600059415940a9$export$89abf52a030e56ee {
418
- static locations = new Map();
419
- static loading = new Set();
420
- constructor(name, uri, features){
421
- this.name = name;
422
- this.uri = uri;
423
- this.features = features;
424
- if ($19600059415940a9$export$89abf52a030e56ee.locations.has(uri)) return;
425
- if (features) {
426
- this.features = features;
427
- this.fontFace = new FontFace(name, "url(" + uri + ")", this.features);
428
- } else this.fontFace = new FontFace(name, "url(" + uri + ")");
429
- $19600059415940a9$export$89abf52a030e56ee.loading.add(uri);
430
- this.fontFace.load().then(()=>{
431
- $19600059415940a9$export$89abf52a030e56ee.loading.delete(uri);
432
- document.fonts.add(this.fontFace);
433
- });
434
- }
435
- }
436
- class $19600059415940a9$export$250ffa63cdc0d034 {
437
- constructor({ fill: fill , stroke: stroke }){
438
- this.fill = fill;
439
- this.stroke = stroke;
440
- }
441
- draw(layer, x, y, w, h) {
442
- if (this.fill) {
443
- layer.ctx.fillStyle = this.fill;
444
- layer.ctx.fill();
445
- }
446
- if (this.stroke) {
447
- layer.ctx.strokeStyle = this.stroke;
448
- layer.ctx.stroke();
449
- }
450
- }
451
- static center(x, y, w, h) {
452
- return [
453
- x - w / 2,
454
- y - h / 2,
455
- w,
456
- h
457
- ];
458
- }
459
- }
460
- class $19600059415940a9$export$4617fb02663045ef extends $19600059415940a9$export$250ffa63cdc0d034 {
461
- constructor({ fill: fill , stroke: stroke }){
462
- super({
463
- fill: fill,
464
- stroke: stroke
465
- });
466
- }
467
- draw(layer, x, y, w, h) {
468
- layer.ctx.beginPath();
469
- layer.ctx.rect(x, y, w, h);
470
- super.draw(layer, x, y, w, h);
471
- }
472
- }
473
- class $19600059415940a9$export$c89a927ffc67e6fa extends $19600059415940a9$export$250ffa63cdc0d034 {
474
- constructor({ fill: fill , stroke: stroke }){
475
- super({
476
- fill: fill,
477
- stroke: stroke
478
- });
479
- }
480
- draw(layer, x, y, w, h) {
481
- layer.ctx.beginPath();
482
- layer.ctx.arc(x + w / 2, y + h / 2, (w + h) / 4, 0, 2 * Math.PI);
483
- super.draw(layer, x, y, w, h);
484
- }
485
- }
486
- class $19600059415940a9$export$6ef80ffb606dd232 extends $19600059415940a9$export$250ffa63cdc0d034 {
487
- constructor({ fill: fill , stroke: stroke , angleFrom: angleFrom , angleTo: angleTo }){
488
- super({
489
- fill: fill,
490
- stroke: stroke
491
- });
492
- this.angleFrom = (angleFrom - 90) * Math.PI / 180;
493
- this.angleTo = (angleTo - 90) * Math.PI / 180;
494
- }
495
- draw(layer, x, y, w, h) {
496
- layer.ctx.beginPath();
497
- layer.ctx.arc(x + w / 2, y + h / 2, (w + h) / 4, this.angleFrom, this.angleTo);
498
- layer.ctx.lineTo(x + w / 2, y + h / 2);
499
- super.draw(layer, x, y, w, h);
500
- }
501
- }
502
- class $19600059415940a9$export$5f1af8db9871e1d6 {
503
- constructor(options){
504
- this.text = options.text;
505
- this.size = options.size;
506
- this.font = options.font;
507
- this.fill = options.fill ? options.fill : null;
508
- this.stroke = options.stroke ? options.stroke : null;
509
- this.style = options.style ? options.style : "";
510
- this.alignH = options.alignH ? options.alignH : "left";
511
- this.alignV = options.alignV ? options.alignV : "top";
512
- }
513
- draw(layer, x, y, w, h) {
514
- layer.ctx.textAlign = this.alignH;
515
- layer.ctx.textBaseline = this.alignV;
516
- layer.ctx.font = `${this.style ? this.style + " " : ""}${this.size}px ${this.font}`;
517
- if (this.fill) {
518
- layer.ctx.fillStyle = this.fill;
519
- layer.ctx.fillText(this.text, x, y);
520
- }
521
- if (this.stroke) {
522
- layer.ctx.strokeStyle = this.stroke;
523
- layer.ctx.strokeText(this.text, x, y);
524
- }
525
- }
526
- }
527
- let $19600059415940a9$export$c413dd039085b182 = {
528
- Image: $19600059415940a9$export$3e431a229df88919,
529
- Text: $19600059415940a9$export$5f1af8db9871e1d6,
530
- Arc: $19600059415940a9$export$6ef80ffb606dd232,
531
- Circle: $19600059415940a9$export$c89a927ffc67e6fa,
532
- Rectangle: $19600059415940a9$export$4617fb02663045ef,
533
- Primitive: $19600059415940a9$export$250ffa63cdc0d034,
534
- TileMap: $19600059415940a9$export$16ec26812de3ce7a,
535
- Font: $19600059415940a9$export$89abf52a030e56ee
536
- };
537
- var $19600059415940a9$export$2e2bcd8739ae039 = $19600059415940a9$export$c413dd039085b182;
538
-
539
-
540
-
541
-
542
- export {$edb0ad70e86925e1$export$bd0bf19f25da8474 as Controller, $8aaa40018df40525$export$985739bfa5723e08 as Game, $6e2679f058a662f2$export$434da80b31429dcb as GameObject, $df9966d71ee61f6e$export$936d0764594b6eb3 as Layer, $971351ec61e49235$export$83a1293bbde53b95 as Animate, $19600059415940a9$export$c413dd039085b182 as Asset};
543
- //# sourceMappingURL=main.js.map
package/dist/main.js.map DELETED
@@ -1 +0,0 @@
1
- {"mappings":"ACEO,MAAM,yCAAU;IACnB,OAAO,MAAM,GAAsB,EAAE,CAAC;IACtC,OAAO,KAAK,GAA8B,EAAE,CAAC;IAC7C,OAAO,OAAO,GAA+B,EAAE,CAAC;IAChD,OAAO,aAAa,GAA+B,EAAE,CAAC;IAEtD,OAAO,EAAE,CAAC,MAAwB,EAAE,MAAc,EAAE,QAA4B,EAAQ;QACpF,yCAAU,CAAC,MAAM,CAAC,IAAI,CAAC;oBAAE,MAAM;oBAAE,MAAM;sBAAE,QAAQ;SAAE,CAAC,CAAC;KACxD;IAED,OAAe,IAAI,CAAC,MAAwB,EAAE,MAAc,EAAE,IAAa,EAAQ;QAC/E,yCAAU,CAAC,MAAM,CAAC,OAAO,CAAC,CAAA,KAAK,GAAI;YAC/B,IAAI,KAAK,CAAC,MAAM,IAAI,KAAK,CAAC,MAAM,KAAK,MAAM,EAAE,OAAO;YACpD,IAAI,KAAK,CAAC,MAAM,IAAI,KAAK,CAAC,MAAM,KAAK,MAAM,EAAE,OAAO;YACpD,KAAK,CAAC,QAAQ,CAAC,MAAM,EAAE,MAAM,EAAE,AAAC,IAAI,GAAI,IAAI,GAAG,IAAI,CAAC,CAAC;SACxD,CAAC,CAAC;KACN;IAED,OAAO,SAAS,CAAC,IAAY,EAAW;QACpC,OAAO,yCAAU,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;KACnC;IAED,OAAe,cAAc,CAAC,CAAC,EAAE;QAC7B,IAAI,MAAM,GAAG,MAAM,GAAG,CAAC,CAAC,GAAG,CAAC,WAAW,EAAE,AAAC;QAC1C,OAAQ,CAAC,CAAC,IAAI;YACV,KAAM,SAAS;gBACX,IAAI,yCAAU,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,OAAO;gBAEvC,yCAAU,CAAC,OAAO,CAAC,MAAM,CAAC,GAAG,IAAI,CAAC;gBAClC,yCAAU,CAAC,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,SAAS,CAAC;gBACvC,OAAO,yCAAU,CAAC,IAAI,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;YAE5C,KAAM,OAAO;gBAAG;oBACZ,IAAI,CAAC,yCAAU,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,OAAO;oBAExC,yCAAU,CAAC,OAAO,CAAC,MAAM,CAAC,GAAG,KAAK,CAAC;oBACnC,yCAAU,CAAC,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,SAAS,CAAC;oBACvC,yCAAU,CAAC,IAAI,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC;oBAEnC,IAAI,IAAI,GAAG,CAAC,CAAC,SAAS,GAAG,yCAAU,CAAC,KAAK,CAAC,MAAM,CAAC,AAAC;oBAElD,yCAAU,CAAC,IAAI,CAAC,MAAM,EAAE,MAAM,EAAE;8BAAE,IAAI;qBAAE,CAAC,CAAC;oBAE1C,IAAI,IAAI,IAAI,GAAG,EACX,OAAO,yCAAU,CAAC,IAAI,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;iBAE/C;SACJ;KAEJ;IAED,OAAe,WAAW,CAAC,CAAC,EAAE;QAC1B,IAAI,MAAM,GAAG,QAAQ,GAAI,CAAA,AAAC,CAAC,CAAC,MAAM,GAAI;YAAC,MAAM;YAAE,QAAQ;YAAE,OAAO;YAAE,MAAM;YAAE,SAAS;SAAC,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,OAAO,CAAA,AAAC,AAAC;QAC1G,IAAI,CAAC,CAAC,OAAO,IAAI,CAAC,CAAC,OAAO,EAAE;YACxB,IAAI,yCAAU,CAAC,aAAa,CAAC,CAAC,IAAI,yCAAU,CAAC,aAAa,CAAC,CAAC,EAAE;gBAC1D,IAAI,MAAM,GAAG,CAAC,CAAC,OAAO,GAAG,yCAAU,CAAC,aAAa,CAAC,CAAC,AAAC;gBACpD,IAAI,MAAM,GAAG,CAAC,CAAC,OAAO,GAAG,yCAAU,CAAC,aAAa,CAAC,CAAC,AAAC;gBAEpD,yCAAU,CAAC,IAAI,CAAC,MAAM,EAAE,gBAAgB,EAAE;oBAAE,CAAC,EAAE,CAAC,CAAC,OAAO;oBAAE,CAAC,EAAE,CAAC,CAAC,OAAO;4BAAE,MAAM;4BAAE,MAAM;iBAAE,CAAC,CAAC;aAC7F;YACD,yCAAU,CAAC,aAAa,CAAC,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC;YACvC,yCAAU,CAAC,aAAa,CAAC,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC;SAC1C;QACD,OAAQ,CAAC,CAAC,IAAI;YACV,KAAM,OAAO;gBAAG;oBACZ,IAAI,SAAS,GAAG,EAAE,AAAC;oBACnB,IAAI,CAAC,CAAC,MAAM,GAAG,CAAC,EACZ,SAAS,IAAI,GAAG,CAAC;yBACd,IAAI,CAAC,CAAC,MAAM,GAAG,CAAC,EACnB,SAAS,IAAI,GAAG,CAAC;oBAGrB,IAAI,CAAC,CAAC,MAAM,GAAG,CAAC,EACZ,SAAS,IAAI,GAAG,CAAC;yBACd,IAAI,CAAC,CAAC,MAAM,GAAG,CAAC,EACnB,SAAS,IAAI,GAAG,CAAC;oBAGrB,OAAO,yCAAU,CAAC,IAAI,CAAC,MAAM,EAAE,aAAa,EAAE;mCAAE,SAAS;wBAAE,MAAM,EAAE,CAAC,CAAC,MAAM;wBAAE,MAAM,EAAE,CAAC,CAAC,MAAM;qBAAE,CAAC,CAAC;iBACpG;YACD,KAAM,WAAW;gBACb,IAAI,yCAAU,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,OAAO;gBAEvC,yCAAU,CAAC,OAAO,CAAC,MAAM,CAAC,GAAG,IAAI,CAAC;gBAClC,yCAAU,CAAC,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,SAAS,CAAC;gBACvC,OAAO,yCAAU,CAAC,IAAI,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;YAE5C,KAAM,SAAS;gBAAG;oBACd,IAAI,CAAC,yCAAU,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,OAAO;oBAExC,yCAAU,CAAC,OAAO,CAAC,MAAM,CAAC,GAAG,KAAK,CAAC;oBACnC,yCAAU,CAAC,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,SAAS,CAAC;oBACvC,yCAAU,CAAC,IAAI,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC;oBAEnC,IAAI,IAAI,GAAG,CAAC,CAAC,SAAS,GAAG,yCAAU,CAAC,KAAK,CAAC,MAAM,CAAC,AAAC;oBAElD,yCAAU,CAAC,IAAI,CAAC,MAAM,EAAE,MAAM,EAAE;8BAAE,IAAI;qBAAE,CAAC,CAAC;oBAE1C,IAAI,IAAI,IAAI,GAAG,EACX,OAAO,yCAAU,CAAC,IAAI,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;iBAE/C;SACJ;KACJ;IAED,OAAO,KAAK,GAAS;QACjB,QAAQ,CAAC,gBAAgB,CAAC,WAAW,EAAE,yCAAU,CAAC,WAAW,EAAE,KAAK,CAAC,CAAC;QACtE,QAAQ,CAAC,gBAAgB,CAAC,SAAS,EAAE,yCAAU,CAAC,WAAW,EAAE,KAAK,CAAC,CAAC;QACpE,QAAQ,CAAC,gBAAgB,CAAC,WAAW,EAAE,yCAAU,CAAC,WAAW,EAAE,KAAK,CAAC,CAAC;QACtE,QAAQ,CAAC,gBAAgB,CAAC,OAAO,EAAE,yCAAU,CAAC,WAAW,EAAE,KAAK,CAAC,CAAC;QAElE,QAAQ,CAAC,gBAAgB,CAAC,SAAS,EAAE,yCAAU,CAAC,cAAc,EAAE,KAAK,CAAC,CAAC;QACvE,QAAQ,CAAC,gBAAgB,CAAC,OAAO,EAAE,yCAAU,CAAC,cAAc,EAAE,KAAK,CAAC,CAAC;KACxE;CACJ;;ADpHD;AGIO,MAAM,yCAAM;IACf,OAAO,KAAK,GAAW,EAAE,CAAC;IAC1B,OAAO,OAAO,GAAgB,IAAI,GAAG,EAAE,CAAC;IAExC,OAAO,IAAI,CAAC,KAAa,EAAE;QACvB,yCAAM,CAAC,KAAK,GAAG,KAAK,CAAC;KACxB;IAKD,MAAM,GAAW,EAAE,CAAC;IAGpB,YAAY,IAAY,EAAE,KAAoC,EAAE,KAAc,CAAE;QAC5E,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;QACnB,IAAI,CAAC,KAAK,GAAG,AAAC,KAAK,GAAI,KAAK,GAAG,QAAQ,CAAC;QACxC,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,CAAA,GAAG,GAAI,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,GAAK,CAAC,GAAG,CAAC,CAAC,CAAC;QAEnF,yCAAM,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;KAC5B;IAED,KAAK,GAAkB;QACnB,IAAI,IAAI,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,OAAO,IAAI,CAAC;QACxC,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE,IAAI,CAAC,MAAM,GAAG,yCAAM,CAAC,KAAK,CAAC;QAChD,IAAI,QAAQ,GAAG,yCAAM,CAAC,KAAK,GAAG,IAAI,CAAC,MAAM,AAAC;QAC1C,IAAI,IAAI,CAAC,KAAK,CAAC,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,KAAK,EAAE,OAAO,IAAI,CAAC;QAEhE,IAAI,MAAM,GAAG,QAAQ,GAAG,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,AAAC;QAG9C,IAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,EAAE,CACvC,IAAI,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,MAAM,EAAE;YAC1B,IAAI,EAAE,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,AAAC;YACxB,IAAI,IAAI,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,AAAC;YAC9B,IAAI,OAAO,GAAG,AAAC,CAAA,MAAM,GAAG,IAAI,CAAA,GAAK,CAAA,EAAE,GAAG,IAAI,CAAA,AAAC,AAAC;YAC5C,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,AAAC,CAAA,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAA,GAAI,OAAO,CAAC;SAC3E;KAER;CAEJ;AAEM,MAAM,yCAAiB;IAC1B,AAAiB,SAAS,GAAe,EAAE,CAAC;IAI5C,YAAY,SAAqB,EAAE,QAAgB,CAAE;QACjD,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;QAC3B,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;QACzB,IAAI,CAAC,KAAK,EAAE,CAAC;KAChB;IAED,KAAK,GAAG;QACJ,IAAI,CAAC,MAAM,GAAG,IAAI,yCAAM,CAAC,IAAI,CAAC,QAAQ,EAAE;AACpC,YAAA,CAAC,EAAE,CAAC;AACJ,YAAA,CAAC,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM;SAC3B,CAAC,CAAC;KACN;IAED,IAAI,CAAE,KAAY,EAAE,CAAS,EAAE,CAAS,EAAE,CAAS,EAAE,CAAS,EAAG;QAC7D,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;KAC/D;CAEJ;AAEM,MAAM,yCAAiB;IAK1B,YAAY,SAA8C,EAAE,eAAuB,CAAE;QACjF,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;QAC3B,IAAI,CAAC,OAAO,GAAG,eAAe,CAAC;QAC/B,IAAI,CAAC,GAAG,GAAG,eAAe,CAAC;KAC9B;IAED,IAAI,CAAE,KAAY,EAAE,CAAS,EAAE,CAAS,EAAE,CAAS,EAAE,CAAS,EAAG;QAC7D,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;KACpD;IAED,MAAM,CAAC,GAAW,EAAE;QAChB,IAAI,IAAI,CAAC,GAAG,KAAK,GAAG,EAAE,OAAO;QAC7B,IAAI,CAAC,GAAG,GAAG,GAAG,CAAC;QACf,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,CAAC;KACpC;IAED,KAAK,CAAC,UAAmB,GAAG,KAAK,EAAE;QAC/B,IAAI,UAAU,EAAE,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC;QACxC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,CAAC;KACpC;CACJ;AAEM,MAAM,yCAAO,GAAG;uBACnB,yCAAiB;uBACjB,yCAAiB;YACjB,yCAAM;CACT,AAAC;IAEF,wCAAuB,GAAR,yCAAO;;ADzGtB;;AEAA;AAGO,MAAM,yCAAK;IACd,OAAO,IAAI,GAAuB,IAAI,GAAG,EAAE,CAAC;IAO5C,AAAQ,OAAO,GAAoB,IAAI,GAAG,EAAE,CAAC;IAI7C,YAAa,EAAU,EAAE,OAA0B,CAAG;QAClD,IAAK,CAAC,EAAE,EACJ,MAAM,IAAI,KAAK,CAAE,sBAAsB,CAAE,CAAC;QAE9C,IAAI,yCAAK,CAAC,IAAI,CAAC,GAAG,CAAE,EAAE,CAAE,EACpB,OAAO,yCAAK,CAAC,IAAI,CAAC,GAAG,CAAE,EAAE,CAAE,CAAC;QAGhC,IAAI,CAAC,EAAE,GAAG,EAAE,CAAC;QACb,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QAEvB,IAAI,CAAC,CAAA,GAAA,yCAAI,CAAA,CAAC,KAAK,IAAI,CAAC,CAAA,GAAA,yCAAI,CAAA,CAAC,MAAM,EAC3B,MAAM,IAAI,KAAK,CAAE,sBAAsB,CAAE,CAAC;QAG9C,IAAI,CAAC,KAAK,GAAG,CAAA,GAAA,yCAAI,CAAA,CAAC,KAAK,CAAC;QACxB,IAAI,CAAC,MAAM,GAAG,CAAA,GAAA,yCAAI,CAAA,CAAC,MAAM,CAAC;QAE1B,IAAI,CAAC,MAAM,GAAG,QAAQ,CAAC,aAAa,CAAE,QAAQ,CAAE,CAAC;QACjD,IAAI,CAAC,MAAM,CAAC,KAAK,GAAG,CAAA,GAAA,yCAAI,CAAA,CAAC,KAAK,CAAC;QAC/B,IAAI,CAAC,MAAM,CAAC,MAAM,GAAG,CAAA,GAAA,yCAAI,CAAA,CAAC,MAAM,CAAC;QACjC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,GAAG,OAAO,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC;QACpD,IAAI,CAAC,MAAM,CAAC,SAAS,GAAG,+BAA+B,CAAC;QAExD,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,MAAM,CAAC,UAAU,CAAE,IAAI,CAAE,CAAC;QAC1C,IAAI,CAAC,GAAG,CAAC,qBAAqB,GAAG,KAAK,CAAC;QAEvC,CAAA,GAAA,yCAAI,CAAA,CAAC,UAAU,CAAE,IAAI,CAAC,MAAM,CAAE,CAAC;QAE/B,yCAAK,CAAC,IAAI,CAAC,GAAG,CAAE,EAAE,EAAE,IAAI,CAAE,CAAC;KAC9B;IAED,MAAM,CAAE,GAAG,OAAO,AAAc,EAAG;QAC/B,KAAM,MAAM,MAAM,IAAI,OAAO,CACzB,IAAI,CAAC,OAAO,CAAC,GAAG,CAAE,MAAM,CAAE,CAAC;QAE/B,OAAO,IAAI,CAAC;KACf;IAED,MAAM,CAAE,GAAG,OAAO,AAAc,EAAG;QAC/B,KAAM,MAAM,MAAM,IAAI,OAAO,CACzB,IAAI,CAAC,OAAO,CAAC,MAAM,CAAE,MAAM,CAAE,CAAC;QAElC,OAAO,IAAI,CAAC;KACf;IAED,KAAK,GAAG;QACJ,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC;KACxB;IAED,IAAI,GAAG;QACH,IAAI,CAAC,GAAG,CAAC,SAAS,CAAE,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,MAAM,CAAE,CAAC;QACpD,KAAM,MAAM,MAAM,IAAI,IAAI,CAAC,OAAO,CAC9B,MAAM,CAAC,IAAI,CAAE,IAAI,CAAE,CAAC;KAE3B;IAGD,OAAO,IAAI,GAAG;QACV,yCAAK,CAAC,IAAI,CAAC,OAAO,CAAE,CAAA,KAAK,GAAI;YACzB,KAAK,CAAC,IAAI,EAAE,CAAC;SAChB,CAAE,CAAC;KACP;IAED,OAAO,KAAK,GAAG;QACX,yCAAK,CAAC,IAAI,CAAC,OAAO,CAAE,CAAA,KAAK,GAAI;YACzB,KAAK,CAAC,KAAK,EAAE,CAAC;SACjB,CAAE,CAAC;KACP;CACJ;;;AFhFM,MAAM,yCAAI;IAIb,OAAO,QAAQ,GAA8E,IAAI,GAAG,EAAE,CAAC;IACvG,OAAO,IAAI,GAAW,EAAE,CAAC;IACzB,OAAO,MAAM,GAAuC,EAAE,CAAC;IAMvD,OAAe,YAAY,GAAG;QAC1B,yCAAI,CAAC,IAAI,GAAG,QAAQ,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;QAC1C,yCAAI,CAAC,IAAI,CAAC,SAAS,GAAG,6BAA6B,CAAC;QAEpD,yCAAI,CAAC,cAAc,GAAG,QAAQ,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;QACpD,yCAAI,CAAC,cAAc,CAAC,SAAS,GAAG,wCAAwC,CAAC;QACzE,yCAAI,CAAC,cAAc,CAAC,MAAM,GAAG,IAAI,CAAC;QAElC,yCAAI,CAAC,eAAe,GAAG,QAAQ,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;QACrD,yCAAI,CAAC,eAAe,CAAC,SAAS,GAAG,yCAAyC,CAAC;QAC3E,yCAAI,CAAC,eAAe,CAAC,MAAM,GAAG,IAAI,CAAC;QAEnC,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,yCAAI,CAAC,IAAI,CAAC,CAAC;QACrC,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,yCAAI,CAAC,cAAc,CAAC,CAAC;QAC/C,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,yCAAI,CAAC,eAAe,CAAC,CAAC;QAEhD,IAAI,KAAK,GAAG,QAAQ,CAAC,aAAa,CAAC,OAAO,CAAC,AAAC;QAC5C,KAAK,CAAC,SAAS,GAAG,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;QAyBnB,CAAC,CAAC;QACF,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;KACpC;IAED,OAAO,MAAM,CAAC,OAA0C,EAAE;QACtD,yCAAI,CAAC,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC;QAC3B,yCAAI,CAAC,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;QAC7B,yCAAI,CAAC,YAAY,EAAE,CAAC;QACpB,CAAA,GAAA,yCAAU,CAAA,CAAC,KAAK,EAAE,CAAC;KACtB;IAED,OAAO,KAAK,GAAG;QACX,MAAM,CAAC,qBAAqB,CAAC,yCAAI,CAAC,IAAI,CAAC,CAAC;KAC3C;IAED,OAAO,IAAI,CAAE,QAAiC,EAAE,KAAa,EAAE;QAC3D,yCAAI,CAAC,QAAQ,CAAC,GAAG,CAAC;sBAAE,QAAQ;mBAAE,KAAK;SAAE,CAAC,CAAC;KAC1C;IAED,OAAO,EAAE,CAAC,IAAY,EAAE,IAAc,EAAE;QACpC,yCAAI,CAAC,MAAM,CAAC,IAAI,CAAC;kBAAE,IAAI;kBAAE,IAAI;SAAE,CAAC,CAAC;KACpC;IAED,OAAO,IAAI,CAAC,IAAI,EAAE,IAAI,EAAE;QACpB,KAAK,IAAI,CAAC,IAAI,yCAAI,CAAC,MAAM,CACrB,IAAI,CAAC,CAAC,IAAI,IAAI,IAAI,EACd,CAAC,CAAC,IAAI,CAAC,AAAC,IAAI,GAAI,IAAI,GAAG,IAAI,CAAC,CAAC;KAGxC;IAED,OAAO,IAAI,CAAE,IAAyB,EAAE;QACpC,IAAI,yCAAI,CAAC,IAAI,GAAG,CAAC,EAAE,yCAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QAEpC,IAAI,KAAK,GAAI,IAAI,GAAG,yCAAI,CAAC,IAAI,AAAC,AAAC;QAC/B,IAAI,KAAK,GAAG,IAAI,EAAE;YACd,MAAM,CAAC,qBAAqB,CAAC,yCAAI,CAAC,IAAI,CAAC,CAAC;YACxC,OAAO,yCAAI,CAAC,IAAI,GAAG,IAAI,CAAC;SAC3B;QAED,CAAA,GAAA,wCAAO,CAAA,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAE1B,KAAK,IAAI,OAAO,IAAI,yCAAI,CAAC,QAAQ,CAAE;YAC/B,IAAI,OAAO,CAAC,KAAK,KAAK,SAAS,EAAE;gBAC7B,OAAO,CAAC,KAAK,GAAG,IAAI,CAAC;gBACrB,SAAS;aACZ;YACD,IAAI,IAAI,IAAI,OAAO,CAAC,KAAK,GAAG,OAAO,CAAC,KAAK,EAAE;gBACvC,OAAO,CAAC,QAAQ,CAAC,IAAI,GAAI,CAAA,OAAO,CAAC,KAAK,GAAG,OAAO,CAAC,KAAK,CAAA,AAAC,CAAC,CAAC;gBACzD,yCAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;aACjC;SACJ;QAED,yCAAI,CAAC,IAAI,CAAC,MAAM,EAAE;YAAE,KAAK,EAAE,IAAI;YAAE,KAAK,EAAE,KAAK;SAAE,CAAC,CAAC;QAEjD,CAAA,GAAA,yCAAK,CAAA,CAAC,IAAI,EAAE,CAAC;QAEb,yCAAI,CAAC,IAAI,CAAC,UAAU,EAAE;YAAE,KAAK,EAAE,IAAI;YAAE,KAAK,EAAE,KAAK;SAAE,CAAC,CAAC;QAErD,MAAM,CAAC,qBAAqB,CAAC,yCAAI,CAAC,IAAI,CAAC,CAAC;QACxC,yCAAI,CAAC,IAAI,GAAG,IAAI,CAAC;KACpB;IAED,OAAO,UAAU,CAAC,MAAyB,EAAE;QACzC,yCAAI,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;KAC5B;CACJ;;;AGzHM,MAAM,yCAAU;IAOnB,YAAa,OAAwE,CAAG;QACpF,IAAI,CAAC,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC;QAC3B,IAAI,CAAC,CAAC,GAAG,AAAC,OAAO,CAAC,CAAC,GAAI,OAAO,CAAC,CAAC,GAAG,CAAC,CAAC;QACrC,IAAI,CAAC,CAAC,GAAG,AAAC,OAAO,CAAC,CAAC,GAAI,OAAO,CAAC,CAAC,GAAG,CAAC,CAAC;QACrC,IAAI,CAAC,CAAC,GAAG,AAAC,OAAO,CAAC,CAAC,GAAI,OAAO,CAAC,CAAC,GAAG,GAAG,CAAC;QACvC,IAAI,CAAC,CAAC,GAAG,AAAC,OAAO,CAAC,CAAC,GAAI,OAAO,CAAC,CAAC,GAAG,GAAG,CAAC;KAC1C;IAED,IAAI,CAAE,KAAY,EAAG;QACjB,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC;KAC1D;IAED,IAAI,CAAE,KAAE,CAAC,CAAA,KAAE,CAAC,CAAA,EAA4B,EAAS;QAC7C,IAAI,OAAO,CAAC,KAAK,QAAQ,EAAE,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC;QACvC,IAAI,OAAO,CAAC,KAAK,QAAQ,EAAE,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC;QACvC,OAAO,IAAI,CAAC;KACf;IAED,KAAK,CAAE,KAAE,CAAC,CAAA,KAAE,CAAC,CAAA,EAA4B,EAAS;QAC9C,IAAI,OAAO,CAAC,KAAK,QAAQ,EAAE,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC;QACvC,IAAI,OAAO,CAAC,KAAK,QAAQ,EAAE,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC;QACvC,OAAO,IAAI,CAAC;KACf;IAED,QAAQ,CAAE,KAAE,CAAC,CAAA,KAAE,CAAC,CAAA,KAAE,CAAC,CAAA,KAAE,CAAC,CAAA,EAAkD,EAAG;QACvE,IAAI,OAAO,CAAC,KAAK,QAAQ,EAAE,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC;QACtC,IAAI,OAAO,CAAC,KAAK,QAAQ,EAAE,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC;QACtC,IAAI,OAAO,CAAC,KAAK,QAAQ,EAAE,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC;QACtC,IAAI,OAAO,CAAC,KAAK,QAAQ,EAAE,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC;KACzC;CACJ;;;;;ACpCM,MAAM,yCAAK;IAEd,OAAO,SAAS,GAAkC,IAAI,GAAG,EAAE,CAAC;IAC5D,OAAO,OAAO,GAAgB,IAAI,GAAG,EAAE,CAAC;IAIxC,AAAiB,IAAI,GAA0C,EAAE,CAAC;IAElE,OAAe,QAAQ,CAAE,GAAW,EAAqB;QACrD,IAAI,yCAAK,CAAC,SAAS,CAAC,GAAG,CAAC,GAAG,CAAC,EACxB,OAAO,yCAAK,CAAC,SAAS,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QAGpC,IAAI,OAAO,GAAG,QAAQ,CAAC,aAAa,CAAC,KAAK,CAAC,AAAC;QAC5C,yCAAK,CAAC,SAAS,CAAC,GAAG,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC;QAClC,yCAAK,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QAEvB,OAAO,CAAC,gBAAgB,CAAC,MAAM,EAAE,IAAM;YACnC,yCAAK,CAAC,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;SAC7B,CAAC,CAAC;QAEH,OAAO,CAAC,GAAG,GAAG,GAAG,CAAC;QAClB,yCAAK,CAAC,SAAS,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;KACnC;IAED,OAAO,YAAY,CAAE,OAAuB,EAAG;QAC3C,yCAAK,CAAC,SAAS,GAAG,OAAO,CAAC;KAC7B;IAED,YAAa,SAAE,KAAK,CAAA,QAAE,IAAI,CAAA,EAAqF,CAAG;QAC9G,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC;QACtB,IAAI,CAAC,QAAQ,GAAG,yCAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;QAEtC,IAAI,IAAI,EACJ,IAAI,CAAC,IAAI,GAAG;YAAE,IAAI,CAAC,CAAC;YAAE,IAAI,CAAC,CAAC;YAAE,IAAI,CAAC,KAAK;YAAE,IAAI,CAAC,MAAM;SAAE,CAAC;KAE/D;IAED,IAAI,CAAE,KAAY,EAAE,CAAS,EAAE,CAAS,EAAE,CAAS,EAAE,CAAS,EAAG;QAC7D,IAAI,IAAI,CAAC,IAAI,CAAC,MAAM,KAAK,CAAC,EACtB,OAAO,KAAK,CAAC,GAAG,CAAC,SAAS,CAAC,IAAI,CAAC,QAAQ,KAAK,IAAI,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;QAExE,KAAK,CAAC,GAAG,CAAC,SAAS,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;KAClD;CACJ;AAEM,MAAM,yCAAO;IAGhB,YAAY,KAAa,EAAE,SAAE,KAAK,CAAA,SAAE,KAAK,CAAA,SAAE,KAAK,CAAA,EAAmD,CAAE;QACjG,IAAI,CAAC,GAAG,GAAG,IAAI,KAAK,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,CAAC,GAAK,IAAI,yCAAK,CAAC;gBAAE,KAAK,EAAE,KAAK;gBAAE,IAAI,EAAE;oBAAE,CAAC,EAAE,CAAC,GAAG,KAAK;oBAAE,CAAC,EAAE,CAAC;oBAAE,KAAK,EAAE,KAAK;oBAAE,MAAM,EAAE,KAAK;iBAAE;aAAE,CAAC,CAAC,CAAC;KAC5I;CACJ;AAEM,MAAM,yCAAI;IACb,OAAO,SAAS,GAAyB,IAAI,GAAG,EAAE,CAAC;IACnD,OAAO,OAAO,GAAgB,IAAI,GAAG,EAAU,CAAC;IAOhD,YAAY,IAAI,EAAE,GAAG,EAAE,QAAQ,CAAE;QAC7B,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,IAAI,CAAC,GAAG,GAAG,GAAG,CAAC;QACf,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;QAEzB,IAAI,yCAAI,CAAC,SAAS,CAAC,GAAG,CAAC,GAAG,CAAC,EACvB,OAAO;QAGX,IAAI,QAAQ,EAAE;YACV,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;YACzB,IAAI,CAAC,QAAQ,GAAG,IAAI,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,GAAG,GAAG,GAAG,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC;SACzE,MACG,IAAI,CAAC,QAAQ,GAAG,IAAI,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,GAAG,GAAG,GAAG,CAAC,CAAC;QAG3D,yCAAI,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QACtB,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC,IAAI,CAAC,IAAM;YAC5B,yCAAI,CAAC,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;YACzB,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;SACrC,CAAC,CAAC;KACN;CACJ;AAEM,MAAM,yCAAS;IAIlB,YAAY,QAAE,IAAI,CAAA,UAAE,MAAM,CAAA,EAAuC,CAAG;QAChE,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;KACxB;IAED,IAAI,CAAE,KAAY,EAAE,CAAS,EAAE,CAAS,EAAE,CAAS,EAAE,CAAS,EAAG;QAC7D,IAAI,IAAI,CAAC,IAAI,EAAE;YACX,KAAK,CAAC,GAAG,CAAC,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC;YAChC,KAAK,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC;SACpB;QACD,IAAI,IAAI,CAAC,MAAM,EAAE;YACb,KAAK,CAAC,GAAG,CAAC,WAAW,GAAG,IAAI,CAAC,MAAM,CAAC;YACpC,KAAK,CAAC,GAAG,CAAC,MAAM,EAAE,CAAC;SACtB;KACJ;IAED,OAAO,MAAM,CAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAG;QACxB,OAAO;YAAE,CAAC,GAAI,CAAC,GAAG,CAAC,AAAC;YAAE,CAAC,GAAI,CAAC,GAAG,CAAC,AAAC;YAAE,CAAC;YAAE,CAAC;SAAE,CAAC;KAC7C;CACJ;AAEM,MAAM,yCAAS,SAAS,yCAAS;IACpC,YAAY,QAAE,IAAI,CAAA,UAAE,MAAM,CAAA,EAAuC,CAAG;QAChE,KAAK,CAAC;kBAAE,IAAI;oBAAE,MAAM;SAAE,CAAC,CAAC;KAC3B;IAED,IAAI,CAAE,KAAY,EAAE,CAAS,EAAE,CAAS,EAAE,CAAS,EAAE,CAAS,EAAG;QAC7D,KAAK,CAAC,GAAG,CAAC,SAAS,EAAE,CAAC;QACtB,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;QAC3B,KAAK,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;KACjC;CACJ;AAEM,MAAM,yCAAM,SAAS,yCAAS;IACjC,YAAY,QAAE,IAAI,CAAA,UAAE,MAAM,CAAA,EAAuC,CAAG;QAChE,KAAK,CAAC;kBAAE,IAAI;oBAAE,MAAM;SAAE,CAAC,CAAC;KAC3B;IAED,IAAI,CAAE,KAAY,EAAE,CAAS,EAAE,CAAS,EAAE,CAAS,EAAE,CAAS,EAAG;QAC7D,KAAK,CAAC,GAAG,CAAC,SAAS,EAAE,CAAC;QACtB,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,AAAC,CAAA,CAAC,GAAG,CAAC,CAAA,GAAI,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,EAAE,CAAC,CAAC;QACjE,KAAK,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;KACjC;CACJ;AAEM,MAAM,yCAAG,SAAS,yCAAS;IAI9B,YAAY,QAAE,IAAI,CAAA,UAAE,MAAM,CAAA,aAAE,SAAS,CAAA,WAAE,OAAO,CAAA,EAA2E,CAAG;QACxH,KAAK,CAAC;kBAAE,IAAI;oBAAE,MAAM;SAAE,CAAC,CAAC;QACxB,IAAI,CAAC,SAAS,GAAI,AAAC,CAAA,SAAS,GAAG,EAAE,CAAA,GAAI,IAAI,CAAC,EAAE,GAAG,GAAG,AAAC,CAAC;QACpD,IAAI,CAAC,OAAO,GAAI,AAAC,CAAA,OAAO,GAAG,EAAE,CAAA,GAAI,IAAI,CAAC,EAAE,GAAG,GAAG,AAAC,CAAC;KACnD;IAED,IAAI,CAAE,KAAY,EAAE,CAAS,EAAE,CAAS,EAAE,CAAS,EAAE,CAAS,EAAG;QAC7D,KAAK,CAAC,GAAG,CAAC,SAAS,EAAE,CAAC;QACtB,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,AAAC,CAAA,CAAC,GAAG,CAAC,CAAA,GAAI,CAAC,EAAE,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;QAC/E,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;QACvC,KAAK,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;KACjC;CACJ;AAGM,MAAM,yCAAI;IAUb,YAAY,OAAoB,CAAE;QAC9B,IAAI,CAAC,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;QACzB,IAAI,CAAC,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;QACzB,IAAI,CAAC,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;QACzB,IAAI,CAAC,IAAI,GAAG,AAAC,OAAO,CAAC,IAAI,GAAI,OAAO,CAAC,IAAI,GAAG,IAAI,CAAC;QACjD,IAAI,CAAC,MAAM,GAAG,AAAC,OAAO,CAAC,MAAM,GAAI,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC;QACvD,IAAI,CAAC,KAAK,GAAG,AAAC,OAAO,CAAC,KAAK,GAAI,OAAO,CAAC,KAAK,GAAG,EAAE,CAAC;QAClD,IAAI,CAAC,MAAM,GAAG,AAAC,OAAO,CAAC,MAAM,GAAI,OAAO,CAAC,MAAM,GAAG,MAAM,CAAC;QACzD,IAAI,CAAC,MAAM,GAAG,AAAC,OAAO,CAAC,MAAM,GAAI,OAAO,CAAC,MAAM,GAAG,KAAK,CAAC;KAC3D;IAED,IAAI,CAAE,KAAY,EAAE,CAAS,EAAE,CAAS,EAAE,CAAS,EAAE,CAAS,EAAG;QAC7D,KAAK,CAAC,GAAG,CAAC,SAAS,GAAG,IAAI,CAAC,MAAM,CAAC;QAClC,KAAK,CAAC,GAAG,CAAC,YAAY,GAAG,IAAI,CAAC,MAAM,CAAC;QACrC,KAAK,CAAC,GAAG,CAAC,IAAI,GAAG,CAAC,EAAE,AAAC,IAAI,CAAC,KAAK,GAAI,IAAI,CAAC,KAAK,GAAG,GAAG,GAAE,EAAE,CAAC,EAAE,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;QACrF,IAAI,IAAI,CAAC,IAAI,EAAE;YACX,KAAK,CAAC,GAAG,CAAC,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC;YAChC,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;SACvC;QACD,IAAI,IAAI,CAAC,MAAM,EAAE;YACb,KAAK,CAAC,GAAG,CAAC,WAAW,GAAG,IAAI,CAAC,MAAM,CAAC;YACpC,KAAK,CAAC,GAAG,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;SACzC;KACJ;CACJ;AAEM,IAAI,yCAAK,GAAG;WACf,yCAAK;UAAE,yCAAI;SAAE,yCAAG;YAAE,yCAAM;eAAE,yCAAS;eAAE,yCAAS;aAAE,yCAAO;UAAE,yCAAI;CAChE,AAAC;IAEF,wCAAqB,GAAN,yCAAK;;","sources":["src/main.ts","src/controller.ts","src/game.ts","src/animate.ts","src/layer.ts","src/game-object.ts","src/asset.ts"],"sourcesContent":["export { Controller } from \"./controller\";\nexport { Game } from \"./game\";\nexport { GameObject } from \"./game-object\";\nexport { Layer } from \"./layer\";\n\nexport { Animate } from \"./animate\";\nexport { Asset } from \"./asset\";","import { ControllerEvent, ControllerAction, ControllerCallback } from \"./types/controller\";\n\nexport class Controller {\n static events: ControllerEvent[] = [];\n static lasts: { [key: string]: number } = {};\n static pressed: { [key: string]: boolean } = {};\n static mouseLocation: { x?: number, y?: number } = {};\n\n static on(action: ControllerAction, target: string, callback: ControllerCallback): void {\n Controller.events.push({ action, target, callback });\n }\n\n private static fire(action: ControllerAction, target: string, data?: object): void {\n Controller.events.forEach(event => {\n if (event.action && event.action !== action) return;\n if (event.target && event.target !== target) return;\n event.callback(action, target, (data) ? data : null);\n });\n }\n\n static isPressed(code: string): boolean {\n return Controller.pressed[code];\n }\n\n private static handleKeyboard(e) {\n let target = \"key_\" + e.key.toLowerCase();\n switch (e.type) {\n case (\"keydown\"): {\n if (Controller.pressed[target]) return;\n\n Controller.pressed[target] = true;\n Controller.lasts[target] = e.timeStamp;\n return Controller.fire(\"press\", target);\n }\n case (\"keyup\"): {\n if (!Controller.pressed[target]) return;\n\n Controller.pressed[target] = false;\n Controller.lasts[target] = e.timeStamp;\n Controller.fire(\"release\", target);\n\n let diff = e.timeStamp - Controller.lasts[target];\n\n Controller.fire(\"hold\", target, { diff });\n\n if (diff <= 150) {\n return Controller.fire(\"click\", target);\n }\n }\n }\n\n }\n\n private static handleMouse(e) {\n let target = \"mouse_\" + ((e.button) ? [\"left\", \"middle\", \"right\", \"back\", \"forward\"][e.button] : \"moose\");\n if (e.clientX && e.clientY) {\n if (Controller.mouseLocation.x && Controller.mouseLocation.y) {\n let deltaX = e.clientX - Controller.mouseLocation.x;\n let deltaY = e.clientY - Controller.mouseLocation.y;\n\n Controller.fire(\"move\", \"mouse_location\", { x: e.clientX, y: e.clientY, deltaX, deltaY });\n }\n Controller.mouseLocation.x = e.clientX;\n Controller.mouseLocation.y = e.clientY;\n }\n switch (e.type) {\n case (\"wheel\"): {\n let direction = \"\";\n if (e.deltaY < 0) {\n direction += \"N\";\n } else if (e.deltaY > 0) {\n direction += \"S\";\n }\n\n if (e.deltaX < 0) {\n direction += \"W\";\n } else if (e.deltaX > 0) {\n direction += \"E\";\n }\n\n return Controller.fire(\"move\", \"mouse_wheel\", { direction, deltaX: e.deltaX, deltaY: e.deltaY });\n }\n case (\"mousedown\"): {\n if (Controller.pressed[target]) return;\n\n Controller.pressed[target] = true;\n Controller.lasts[target] = e.timeStamp;\n return Controller.fire(\"press\", target);\n }\n case (\"mouseup\"): {\n if (!Controller.pressed[target]) return;\n\n Controller.pressed[target] = false;\n Controller.lasts[target] = e.timeStamp;\n Controller.fire(\"release\", target);\n\n let diff = e.timeStamp - Controller.lasts[target];\n\n Controller.fire(\"hold\", target, { diff });\n\n if (diff <= 150) {\n return Controller.fire(\"click\", target);\n }\n }\n }\n }\n\n static setup(): void {\n document.addEventListener(\"mousedown\", Controller.handleMouse, false);\n document.addEventListener(\"mouseup\", Controller.handleMouse, false);\n document.addEventListener(\"mousemove\", Controller.handleMouse, false);\n document.addEventListener(\"wheel\", Controller.handleMouse, false);\n\n document.addEventListener(\"keydown\", Controller.handleKeyboard, false);\n document.addEventListener(\"keyup\", Controller.handleKeyboard, false);\n }\n}\n","import Animate from \"./animate\";\nimport { Controller } from \"./controller\";\nimport { Layer } from \"./layer\";\n\nexport class Game {\n static width: number;\n static height: number;\n\n static timeouts: Set<{ callback: (after: number) => void, delay: number, start?: number }> = new Set();\n static last: number = -1;\n static events: { type: string, call: Function }[] = [];\n\n private static root: HTMLDivElement;\n private static audioDumpspace: HTMLDivElement;\n private static imagesDumpspace: HTMLDivElement;\n\n private static makeElements() {\n Game.root = document.createElement(\"div\");\n Game.root.className = \"llama-game-engine game-root\";\n\n Game.audioDumpspace = document.createElement(\"div\");\n Game.audioDumpspace.className = \"llama-game-engine game-audio-dumpspace\";\n Game.audioDumpspace.hidden = true;\n\n Game.imagesDumpspace = document.createElement(\"div\");\n Game.imagesDumpspace.className = \"llama-game-engine game-images-dumpspace\";\n Game.imagesDumpspace.hidden = true;\n\n document.body.appendChild(Game.root);\n document.body.appendChild(Game.audioDumpspace);\n document.body.appendChild(Game.imagesDumpspace);\n\n let style = document.createElement(\"style\");\n style.innerHTML = `\n html, body {\n background: black;\n padding: 0;\n margin: 0;\n position: relative;\n overflow: hidden;\n }\n \n div.llama-game-engine.game-root {\n position: absolute;\n top: 0;\n left: 0;\n width: 100vw;\n height: 100vh;\n }\n \n canvas.llama-game-engine.game-canvas {\n position: fixed;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n object-fit: contain;\n }\n `;\n document.head.appendChild(style);\n }\n\n static create(options: { width: number, height: number }) {\n Game.width = options.width;\n Game.height = options.height;\n Game.makeElements();\n Controller.setup();\n }\n\n static start() {\n window.requestAnimationFrame(Game.loop);\n }\n\n static wait (callback: (after: number) => void, delay: number) {\n Game.timeouts.add({ callback, delay });\n };\n\n static on(type: string, call: Function) {\n Game.events.push({ type, call });\n };\n\n static fire(type, data) {\n for (let e of Game.events) {\n if (e.type == type) {\n e.call((data) ? data : null);\n }\n }\n };\n\n static loop (time: DOMHighResTimeStamp) {\n if (Game.last < 0) Game.last = time;\n\n let delta = (time - Game.last);\n if (delta > 1000) {\n window.requestAnimationFrame(Game.loop);\n return Game.last = time;\n }\n\n Animate.Curves.tick(time);\n\n for (let timeout of Game.timeouts) {\n if (timeout.start === undefined) {\n timeout.start = time;\n continue;\n }\n if (time >= timeout.start + timeout.delay) {\n timeout.callback(time - (timeout.start + timeout.delay));\n Game.timeouts.delete(timeout);\n }\n }\n\n Game.fire(\"loop\", { stamp: time, delta: delta });\n\n Layer.draw();\n\n Game.fire(\"postdraw\", { stamp: time, delta: delta });\n\n window.requestAnimationFrame(Game.loop);\n Game.last = time;\n }\n\n static pushCanvas(canvas: HTMLCanvasElement) {\n Game.root.append(canvas);\n }\n}\n","import { Layer } from \"./layer\";\nimport { Drawable } from \"./types/drawing\";\nimport { AnimatedDrawable } from \"./types/animate\";\n\nexport class Curves {\n static stamp: number = -1;\n static targets: Set<Curves> = new Set();\n\n static tick(stamp: number) {\n Curves.stamp = stamp;\n }\n\n time: number;\n steps: { [percent: number] : number };\n count: number;\n offset: number = -1;\n points: number[];\n\n constructor(time: number, steps: { [percent: number]: number }, count?: number) {\n this.time = time;\n this.steps = steps;\n this.count = (count) ? count : Infinity;\n this.points = Object.keys(steps).map(key => parseFloat(key)).sort((a, b) => a - b);\n\n Curves.targets.add(this);\n }\n\n value(): number | null {\n if (this.points.length < 2) return null;\n if (this.offset < 0) this.offset = Curves.stamp;\n let duration = Curves.stamp - this.offset;\n if (Math.floor(duration / this.time) >= this.count) return null;\n\n let factor = duration % this.time / this.time;\n\n\n for (let i = 1; i < this.points.length; i++) {\n if (this.points[i] >= factor) {\n let to = this.points[i];\n let from = this.points[i - 1];\n let percent = (factor - from) / (to - from);\n return this.steps[from] + (this.steps[to] - this.steps[from]) * percent;\n }\n }\n }\n\n}\n\nexport class AnimationSequence implements AnimatedDrawable {\n private readonly drawables: Drawable[] = [];\n private timing: Curves;\n private readonly duration: number;\n\n constructor(drawables: Drawable[], duration: number) {\n this.drawables = drawables;\n this.duration = duration;\n this.reset();\n }\n\n reset() {\n this.timing = new Curves(this.duration, {\n 0: 0,\n 1: this.drawables.length\n });\n }\n\n draw( layer: Layer, x: number, y: number, w: number, h: number ) {\n this.drawables[this.timing.value()].draw(layer, x, y, w, h);\n }\n\n}\n\nexport class AnimationSwitches implements AnimatedDrawable {\n private readonly drawables: { [key: string]: AnimatedDrawable };\n private use: string;\n private readonly default: string;\n\n constructor(drawables: { [key: string]: AnimatedDrawable }, defaultDrawable: string) {\n this.drawables = drawables;\n this.default = defaultDrawable;\n this.use = defaultDrawable;\n }\n\n draw( layer: Layer, x: number, y: number, w: number, h: number ) {\n this.drawables[this.use].draw(layer, x, y, w, h);\n }\n\n switch(key: string) {\n if (this.use === key) return;\n this.use = key;\n this.drawables[this.use].reset();\n }\n\n reset(useDefault: boolean = false) {\n if (useDefault) this.use = this.default;\n this.drawables[this.use].reset();\n }\n}\n\nexport const Animate = {\n AnimationSequence,\n AnimationSwitches,\n Curves\n};\n\nexport default Animate;","import { GameObject } from \"./game-object\";\nimport { Game } from \"./game\";\n\nexport class Layer {\n static list: Map<string, Layer> = new Map();\n\n private id: string;\n private readonly canvas: HTMLCanvasElement;\n private readonly options: { level: number };\n readonly width: number;\n readonly height: number;\n private targets: Set<GameObject> = new Set();\n\n ctx: CanvasRenderingContext2D;\n\n constructor( id: string, options: { level: number } ) {\n if ( !id ) {\n throw new Error( 'Layer id is required' );\n }\n if (Layer.list.has( id )) {\n return Layer.list.get( id );\n }\n\n this.id = id;\n this.options = options;\n\n if (!Game.width || !Game.height) {\n throw new Error( 'Game not created yet' );\n }\n\n this.width = Game.width;\n this.height = Game.height;\n\n this.canvas = document.createElement( 'canvas' );\n this.canvas.width = Game.width;\n this.canvas.height = Game.height;\n this.canvas.style.zIndex = options.level.toString();\n this.canvas.className = \"llama-game-engine game-canvas\";\n\n this.ctx = this.canvas.getContext( '2d' );\n this.ctx.imageSmoothingEnabled = false;\n\n Game.pushCanvas( this.canvas );\n\n Layer.list.set( id, this );\n }\n\n assign( ...targets: GameObject[] ) {\n for ( const target of targets ) {\n this.targets.add( target );\n }\n return this;\n }\n\n remove( ...targets: GameObject[] ) {\n for ( const target of targets ) {\n this.targets.delete( target );\n }\n return this;\n }\n\n purge() {\n this.targets.clear();\n }\n\n draw() {\n this.ctx.clearRect( 0, 0, this.width, this.height );\n for ( const target of this.targets ) {\n target.draw( this );\n }\n }\n\n\n static draw() {\n Layer.list.forEach( layer => {\n layer.draw();\n } );\n }\n\n static purge() {\n Layer.list.forEach( layer => {\n layer.purge();\n } );\n }\n}\n","import { Layer } from \"./layer\";\nimport { Drawable } from \"./types/drawing\";\n\nexport class GameObject {\n private asset: Drawable;\n private x: number;\n private y: number;\n private w: number;\n private h: number;\n\n constructor( options: { asset: Drawable, x: number, y: number, w: number, h: number } ) {\n this.asset = options.asset;\n this.x = (options.x) ? options.x : 0;\n this.y = (options.y) ? options.y : 0;\n this.w = (options.w) ? options.w : 100;\n this.h = (options.h) ? options.h : 100;\n }\n\n draw( layer: Layer ) {\n this.asset.draw(layer, this.x, this.y, this.w, this.h);\n }\n\n move( { x, y }: { x: number, y: number } ): this {\n if (typeof x === \"number\") this.x += x;\n if (typeof y === \"number\") this.y += y;\n return this;\n }\n\n scale( { w, h }: { w: number, h: number } ): this {\n if (typeof w === \"number\") this.w += w;\n if (typeof h === \"number\") this.h += h;\n return this;\n }\n\n position( { x, y, w, h }: { x: number, y: number, w: number, h: number } ) {\n if (typeof x === \"number\") this.x = x;\n if (typeof y === \"number\") this.y = y;\n if (typeof w === \"number\") this.w = w;\n if (typeof h === \"number\") this.h = h;\n }\n}\n","import { Layer } from \"./layer\";\nimport { Drawable } from \"./types/drawing\";\nimport { TextOptions } from \"./types/asset\";\n\nexport class Image implements Drawable {\n static dumpspace: HTMLDivElement;\n static locations: Map<string, HTMLImageElement> = new Map();\n static loading: Set<string> = new Set();\n\n private location: string;\n private readonly resource: HTMLImageElement;\n private readonly crop: [] | [number, number, number, number] = [];\n\n private static getImage( uri: string ): HTMLImageElement {\n if (Image.locations.has(uri)) {\n return Image.locations.get(uri);\n }\n\n let element = document.createElement(\"img\");\n Image.locations.set(uri, element);\n Image.loading.add(uri);\n\n element.addEventListener(\"load\", () => {\n Image.loading.delete(uri);\n });\n\n element.src = uri;\n Image.dumpspace.append(element);\n }\n\n static setDumpSpace( element: HTMLDivElement ) {\n Image.dumpspace = element;\n }\n\n constructor( { image, crop }: { image: string, crop?: { x: number, y: number, width: number, height: number } } ) {\n this.location = image;\n this.resource = Image.getImage(image);\n\n if (crop) {\n this.crop = [ crop.x, crop.y, crop.width, crop.height ];\n }\n }\n\n draw( layer: Layer, x: number, y: number, w: number, h: number ) {\n if (this.crop.length === 4) {\n return layer.ctx.drawImage(this.resource, ...this.crop, x, y, w, h);\n }\n layer.ctx.drawImage(this.resource, x, y, w, h);\n }\n}\n\nexport class TileMap {\n map: Array<Image>;\n\n constructor(image: string, { tiles, sizeX, sizeY }: { tiles: number, sizeX: number, sizeY: number }) {\n this.map = new Array(tiles).map((_ignored, i) => new Image({ image: image, crop: { x: i * sizeX, y: 0, width: sizeX, height: sizeY } }));\n }\n}\n\nexport class Font {\n static locations: Map<string, boolean> = new Map();\n static loading: Set<string> = new Set<string>();\n\n name: string;\n uri: string;\n features: null;\n fontFace: FontFace;\n\n constructor(name, uri, features) {\n this.name = name;\n this.uri = uri;\n this.features = features;\n\n if (Font.locations.has(uri)) {\n return;\n }\n\n if (features) {\n this.features = features;\n this.fontFace = new FontFace(name, \"url(\" + uri + \")\", this.features);\n } else {\n this.fontFace = new FontFace(name, \"url(\" + uri + \")\");\n }\n\n Font.loading.add(uri);\n this.fontFace.load().then(() => {\n Font.loading.delete(uri);\n document.fonts.add(this.fontFace);\n });\n }\n}\n\nexport class Primitive implements Drawable {\n fill: string;\n stroke: string;\n\n constructor({ fill, stroke } : { fill?: string, stroke?: string } ) {\n this.fill = fill;\n this.stroke = stroke;\n }\n\n draw( layer: Layer, x: number, y: number, w: number, h: number ) {\n if (this.fill) {\n layer.ctx.fillStyle = this.fill;\n layer.ctx.fill();\n }\n if (this.stroke) {\n layer.ctx.strokeStyle = this.stroke;\n layer.ctx.stroke();\n }\n }\n\n static center( x, y, w, h ) {\n return [ x - (w / 2), y - (h / 2), w, h ];\n }\n}\n\nexport class Rectangle extends Primitive {\n constructor({ fill, stroke } : { fill?: string, stroke?: string } ) {\n super({ fill, stroke });\n }\n\n draw( layer: Layer, x: number, y: number, w: number, h: number ) {\n layer.ctx.beginPath();\n layer.ctx.rect(x, y, w, h);\n super.draw(layer, x, y, w, h);\n }\n}\n\nexport class Circle extends Primitive {\n constructor({ fill, stroke } : { fill?: string, stroke?: string } ) {\n super({ fill, stroke });\n }\n\n draw( layer: Layer, x: number, y: number, w: number, h: number ) {\n layer.ctx.beginPath();\n layer.ctx.arc(x + w / 2, y + h / 2, (w + h) / 4, 0, 2 * Math.PI);\n super.draw(layer, x, y, w, h);\n }\n}\n\nexport class Arc extends Primitive {\n angleFrom: number;\n angleTo: number;\n\n constructor({ fill, stroke, angleFrom, angleTo } : { fill?: string, stroke?: string, angleFrom: number, angleTo: number } ) {\n super({ fill, stroke });\n this.angleFrom = ((angleFrom - 90) * Math.PI / 180);\n this.angleTo = ((angleTo - 90) * Math.PI / 180);\n }\n\n draw( layer: Layer, x: number, y: number, w: number, h: number ) {\n layer.ctx.beginPath();\n layer.ctx.arc(x + w / 2, y + h / 2, (w + h) / 4, this.angleFrom, this.angleTo);\n layer.ctx.lineTo(x + w / 2, y + h / 2);\n super.draw(layer, x, y, w, h);\n }\n}\n\n\nexport class Text implements Drawable {\n text: string;\n size: number;\n private readonly font: string;\n fill: string;\n stroke: string;\n style: string;\n private readonly alignH: TextOptions[\"alignH\"];\n private readonly alignV: TextOptions[\"alignV\"];\n\n constructor(options: TextOptions) {\n this.text = options.text;\n this.size = options.size;\n this.font = options.font;\n this.fill = (options.fill) ? options.fill : null;\n this.stroke = (options.stroke) ? options.stroke : null;\n this.style = (options.style) ? options.style : \"\";\n this.alignH = (options.alignH) ? options.alignH : \"left\";\n this.alignV = (options.alignV) ? options.alignV : \"top\";\n }\n\n draw( layer: Layer, x: number, y: number, w: number, h: number ) {\n layer.ctx.textAlign = this.alignH;\n layer.ctx.textBaseline = this.alignV;\n layer.ctx.font = `${(this.style) ? this.style + \" \": \"\"}${this.size}px ${this.font}`;\n if (this.fill) {\n layer.ctx.fillStyle = this.fill;\n layer.ctx.fillText(this.text, x, y);\n }\n if (this.stroke) {\n layer.ctx.strokeStyle = this.stroke;\n layer.ctx.strokeText(this.text, x, y);\n }\n }\n}\n\nexport let Asset = {\n Image, Text, Arc, Circle, Rectangle, Primitive, TileMap, Font\n};\n\nexport default Asset;"],"names":[],"version":3,"file":"main.js.map"}