@rpgjs/common 3.0.0-beta.2 → 3.0.0-beta.5

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/lib/Player.js CHANGED
@@ -6,15 +6,21 @@ Object.defineProperty(exports, "__esModule", { value: true });
6
6
  exports.RpgCommonPlayer = exports.PlayerType = exports.Direction = void 0;
7
7
  const Utils_1 = require("./Utils");
8
8
  const Hit_1 = require("./Hit");
9
+ const Shape_1 = require("./Shape");
9
10
  const sat_1 = __importDefault(require("sat"));
10
11
  const Map_1 = __importDefault(require("./Map"));
12
+ const Plugin_1 = require("./Plugin");
11
13
  const ACTIONS = { IDLE: 0, RUN: 1, ACTION: 2 };
12
14
  var Direction;
13
15
  (function (Direction) {
14
- Direction["Up"] = "up";
15
- Direction["Down"] = "down";
16
- Direction["Left"] = "left";
17
- Direction["Right"] = "right";
16
+ Direction[Direction["Up"] = 1] = "Up";
17
+ Direction[Direction["Down"] = 3] = "Down";
18
+ Direction[Direction["Left"] = 4] = "Left";
19
+ Direction[Direction["Right"] = 2] = "Right";
20
+ Direction[Direction["UpRight"] = 1.5] = "UpRight";
21
+ Direction[Direction["DownRight"] = 2.5] = "DownRight";
22
+ Direction[Direction["DownLeft"] = 3.5] = "DownLeft";
23
+ Direction[Direction["UpLeft"] = 2.5] = "UpLeft";
18
24
  })(Direction = exports.Direction || (exports.Direction = {}));
19
25
  var PlayerType;
20
26
  (function (PlayerType) {
@@ -30,11 +36,13 @@ class RpgCommonPlayer {
30
36
  this.height = 0;
31
37
  this.width = 0;
32
38
  this.events = [];
33
- this.direction = 0;
39
+ this.direction = 3;
34
40
  this.collisionWith = [];
41
+ this._collisionWithTiles = [];
35
42
  this.data = {};
43
+ this.pendingMove = [];
36
44
  this.inShapes = {};
37
- this.inVision = {};
45
+ this.shapes = [];
38
46
  this._hitboxPos = new sat_1.default.Vector(0, 0);
39
47
  this.setHitbox(this.width, this.height);
40
48
  this.position = { x: 0, y: 0, z: 0 };
@@ -62,16 +70,15 @@ class RpgCommonPlayer {
62
70
  this._hitboxPos.x = x;
63
71
  this._hitboxPos.y = y;
64
72
  this._hitboxPos.z = z;
65
- if (this.steerable) {
66
- this.steerable.position.copy(this.getVector3D(x, z, y));
73
+ this._position = val;
74
+ const map = this.mapInstance;
75
+ if (map /*&& this.gameEngine.isWorker TODO */) {
76
+ map.grid.insertInCells(this.id, this.getSizeMaxShape());
67
77
  }
68
78
  this._position = new Proxy(val, {
69
79
  get: (target, prop) => target[prop],
70
80
  set: (target, prop, value) => {
71
81
  this._hitboxPos[prop] = value;
72
- if (this.steerable) {
73
- this.steerable[prop] = value;
74
- }
75
82
  target[prop] = value;
76
83
  return true;
77
84
  }
@@ -92,6 +99,34 @@ class RpgCommonPlayer {
92
99
  get mapInstance() {
93
100
  return Map_1.default.buffer.get(this.map);
94
101
  }
102
+ /**
103
+ *
104
+ * Recovers all the colliding tiles of the current player
105
+ *
106
+ * @title Get Collision of tiles
107
+ * @since 3.0.0-beta.4
108
+ * @readonly
109
+ * @prop { TileInfo[] } tiles
110
+ * @memberof Player
111
+ * @memberof RpgSpriteLogic
112
+ */
113
+ get tilesCollision() {
114
+ return this._collisionWithTiles;
115
+ }
116
+ /**
117
+ *
118
+ * Recovers all other players and events colliding with the current player's hitbox
119
+ *
120
+ * @title Get Collision of other players/events
121
+ * @since 3.0.0-beta.4
122
+ * @readonly
123
+ * @prop { (RpgPlayer | RpgEvent)[] } otherPlayersCollision
124
+ * @memberof Player
125
+ * @memberof RpgSpriteLogic
126
+ */
127
+ get otherPlayersCollision() {
128
+ return this.collisionWith;
129
+ }
95
130
  /**
96
131
  * Define the size of the player. You can set the hitbox for collisions
97
132
  *
@@ -133,10 +168,7 @@ class RpgCommonPlayer {
133
168
  * Define the hitbox of the player.
134
169
  *
135
170
  * ```ts
136
- * player.setHitbox({
137
- * width: 20,
138
- * height: 20
139
- * })
171
+ * player.setHitbox(20, 20)
140
172
  * ```
141
173
  *
142
174
  * @title Set Hitbox
@@ -168,42 +200,21 @@ class RpgCommonPlayer {
168
200
  get hHitbox() {
169
201
  return this.hitbox.h;
170
202
  }
171
- get visionHitbox() {
172
- if (!this.vision.type)
173
- return null;
174
- const x = this.position.x - (this.vision.width / 2 - this.wHitbox / 2);
175
- const y = this.position.y - (this.vision.height / 2 - this.hHitbox / 2);
176
- return Hit_1.Hit.getHitbox(Object.assign(Object.assign({}, this.vision), { x,
177
- y }));
203
+ directionToAngle(direction) {
204
+ const angle = (direction < 2 ? +direction + 2 : direction - 2) * 90;
205
+ return Utils_1.toRadians(angle);
178
206
  }
179
- defineNextPosition(direction) {
180
- switch (direction) {
181
- case Direction.Left:
182
- return {
183
- x: this.position.x - this.speed,
184
- y: this.position.y,
185
- z: this.position.z
186
- };
187
- case Direction.Right:
188
- return {
189
- x: this.position.x + this.speed,
190
- y: this.position.y,
191
- z: this.position.z
192
- };
193
- case Direction.Up:
194
- return {
195
- x: this.position.x,
196
- y: this.position.y - this.speed,
197
- z: this.position.z
198
- };
199
- case Direction.Down:
200
- return {
201
- x: this.position.x,
202
- y: this.position.y + this.speed,
203
- z: this.position.z
204
- };
205
- }
206
- return this.position;
207
+ defineNextPosition(direction, deltaTimeInt) {
208
+ const angle = this.directionToAngle(direction);
209
+ const computePosition = (prop) => {
210
+ return this.position[prop] + this.speed * deltaTimeInt
211
+ * (Math.round(Math[prop == 'x' ? 'cos' : 'sin'](angle) * 100) / 100);
212
+ };
213
+ return {
214
+ x: computePosition('x'),
215
+ y: computePosition('y'),
216
+ z: this.position.z
217
+ };
207
218
  }
208
219
  setPosition({ x, y, tileX, tileY }, move = true) {
209
220
  const { tileWidth, tileHeight } = this.mapInstance;
@@ -236,12 +247,59 @@ class RpgCommonPlayer {
236
247
  const otherZ = other.position.z;
237
248
  return Utils_1.intersection([z, z + this.height], [otherZ, otherZ + other.height]);
238
249
  }
239
- moveByDirection(direction) {
240
- const nextPosition = this.defineNextPosition(direction);
250
+ moveByDirection(direction, deltaTimeInt) {
251
+ const nextPosition = this.defineNextPosition(direction, deltaTimeInt);
241
252
  return this.move(nextPosition);
242
253
  }
254
+ /**
255
+ * Retrieves a tile and checks if the player has a collision
256
+ *
257
+ * ```ts
258
+ * const tileInfo = player.getTile(20, 30)
259
+ * console.log(tileInfo)
260
+ * ```
261
+ *
262
+ * Example of returns:
263
+ *
264
+ ```ts
265
+ {
266
+ tiles: [
267
+ {
268
+ id: 0,
269
+ terrain: [],
270
+ probability: null,
271
+ properties: [Object],
272
+ animations: [],
273
+ objectGroups: [],
274
+ image: null,
275
+ gid: 1
276
+ }
277
+ ],
278
+ hasCollision: false,
279
+ isOverlay: undefined,
280
+ objectGroups: [],
281
+ isClimbable: undefined,
282
+ tileIndex: 93
283
+ }
284
+ ```
285
+ *
286
+ * @title Get Tile
287
+ * @since 3.0.0-beta.4
288
+ * @method player.getTile(x,y,z?)
289
+ * @param {number} x
290
+ * @param {number} y
291
+ * @param {number} [z]
292
+ * @returns {object}
293
+ * @memberof Player
294
+ * @memberof RpgSpriteLogic
295
+ */
296
+ getTile(x, y, z = 0, hitbox) {
297
+ const map = this.mapInstance;
298
+ return map.getTile(hitbox || this.hitbox, x, y, [z, this.height]);
299
+ }
243
300
  isCollided(nextPosition) {
244
301
  this.collisionWith = [];
302
+ this._collisionWithTiles = [];
245
303
  const map = this.mapInstance;
246
304
  const hitbox = Hit_1.Hit.createObjectHitbox(nextPosition.x, nextPosition.y, 0, this.hitbox.w, this.hitbox.h);
247
305
  if (!map) {
@@ -263,28 +321,12 @@ class RpgCommonPlayer {
263
321
  this.posY = map.heightPx - this.hitbox.h;
264
322
  return true;
265
323
  }
266
- let isClimbable = false;
267
324
  const tileCollision = (x, y) => {
268
- const tile = map.getTileByPosition(x, y, [nextPosition.z, this.height]);
269
- const tilePos = map.getTileOriginPosition(x, y);
325
+ const tile = this.getTile(x, y, nextPosition.z, hitbox);
270
326
  if (tile.hasCollision) {
327
+ this._collisionWithTiles.push(tile);
271
328
  return true;
272
329
  }
273
- else if (tile.objectGroups) {
274
- for (let object of tile.objectGroups) {
275
- const hit = Hit_1.Hit.getHitbox(object, {
276
- x: tilePos.x,
277
- y: tilePos.y
278
- });
279
- const collided = Hit_1.Hit.testPolyCollision(hit.type, hit.hitbox, hitbox);
280
- if (collided) {
281
- return true;
282
- }
283
- }
284
- }
285
- if (!isClimbable && tile.isClimbable) {
286
- isClimbable = true;
287
- }
288
330
  return false;
289
331
  };
290
332
  if (tileCollision(nextPosition.x, nextPosition.y) ||
@@ -293,31 +335,24 @@ class RpgCommonPlayer {
293
335
  tileCollision(nextPosition.x + this.hitbox.w, nextPosition.y + this.hitbox.h)) {
294
336
  return true;
295
337
  }
296
- let events = this.gameEngine.world.getObjectsOfGroup(this.map, this);
297
- const inArea = (player1, player2) => {
298
- var _a;
299
- if (player1.vision && player1.vision.type) {
300
- const playerInVision = Hit_1.Hit.testPolyCollision('box', player2.hitbox, (_a = player1.visionHitbox) === null || _a === void 0 ? void 0 : _a.hitbox);
301
- if (playerInVision && !player1.inVision[player2.id]) {
302
- player1.inVision[player2.id] = true;
303
- if (player1.execMethod)
304
- player1.execMethod('onInVision', [player2]);
305
- }
306
- if (!playerInVision && player1.inVision[player2.id]) {
307
- delete player1.inVision[player2.id];
308
- if (player1.execMethod)
309
- player1.execMethod('onOutVision', [player2]);
310
- }
311
- }
312
- };
313
- for (let event of events) {
338
+ const events = this.gameEngine.world.getObjectsOfGroup(this.map, this);
339
+ const objects = map.grid.getObjectsByBox(this.getSizeMaxShape(nextPosition.x, nextPosition.y));
340
+ for (let objectId of objects) {
341
+ // client side: read "object" propertie
342
+ if (!events[objectId])
343
+ continue;
344
+ const event = events[objectId]['object'] || events[objectId];
314
345
  if (event.id == this.id)
315
346
  continue;
316
347
  if (!this.zCollision(event))
317
348
  continue;
318
349
  const collided = Hit_1.Hit.testPolyCollision('box', hitbox, event.hitbox);
319
- inArea(event, this);
320
- inArea(this, event);
350
+ for (let shape of this.shapes) {
351
+ this.collisionWithShape(shape, event);
352
+ }
353
+ for (let shape of event.shapes) {
354
+ event.collisionWithShape(shape, this);
355
+ }
321
356
  if (collided) {
322
357
  this.collisionWith.push(event);
323
358
  this.triggerCollisionWith();
@@ -336,29 +371,80 @@ class RpgCommonPlayer {
336
371
  }
337
372
  const shapes = map.getShapes();
338
373
  for (let shape of shapes) {
339
- const { collision, z } = shape.properties;
340
- if (shape.isShapePosition())
341
- continue;
342
- if (z !== undefined && !this.zCollision({
343
- position: { z },
344
- height: map.tileHeight
345
- })) {
346
- continue;
347
- }
348
- const hitbox = Hit_1.Hit.createObjectHitbox(nextPosition.x, nextPosition.y, nextPosition.z, this.hitbox.w, this.hitbox.h);
349
- let collided = Hit_1.Hit.testPolyCollision(shape.type, hitbox, shape.hitbox);
350
- if (collided) {
351
- this.collisionWith.push(shape);
352
- // TODO: in shape after map load
353
- if (!collision)
354
- shape.in(this);
355
- this.triggerCollisionWith();
356
- if (collision)
357
- return true;
358
- }
359
- else {
360
- shape.out(this);
361
- }
374
+ const bool = this.collisionWithShape(shape, this, nextPosition);
375
+ if (bool)
376
+ return true;
377
+ }
378
+ return false;
379
+ }
380
+ /**
381
+ * Attach a shape to the player (and allow interaction with it)
382
+ *
383
+ * ```ts
384
+ * import { ShapePositioning } from '@rpgjs/server'
385
+ *
386
+ * player.attachShape({
387
+ * width: 100,
388
+ * height: 100,
389
+ * positioning: ShapePositioning.Center
390
+ * })
391
+ * ```
392
+ *
393
+ * @title Attach Shape
394
+ * @method player.attachShape(parameters)
395
+ * @param { { width: number, height: number, positioning?, name?, properties?: object } } obj
396
+ * - positioning: Indicate where the shape is placed.
397
+ * - properties: An object in order to retrieve information when interacting with the shape
398
+ * - name: The name of the shape
399
+ * @since 3.0.0-beta.3
400
+ * @returns {RpgShape}
401
+ * @memberof Player
402
+ */
403
+ attachShape(obj) {
404
+ obj.name = (obj.name || Utils_1.generateUID());
405
+ const shape = new Shape_1.RpgShape(Object.assign(Object.assign({}, obj), { fixEvent: this }));
406
+ this.shapes.push(shape);
407
+ return shape;
408
+ }
409
+ /**
410
+ * Returns all shapes assigned to this player
411
+ *
412
+ * @title Get Shapes
413
+ * @method player.getShapes()
414
+ * @returns {RpgShape[]}
415
+ * @since 3.0.0-beta.3
416
+ * @memberof Player
417
+ * @memberof RpgSpriteLogic
418
+ */
419
+ getShapes() {
420
+ return this.shapes;
421
+ }
422
+ collisionWithShape(shape, player, nextPosition) {
423
+ const { collision, z } = shape.properties;
424
+ if (shape.isShapePosition())
425
+ return false;
426
+ if (z !== undefined && !this.zCollision({
427
+ position: { z },
428
+ height: this.mapInstance.tileHeight
429
+ })) {
430
+ return false;
431
+ }
432
+ let { position, hitbox } = player;
433
+ if (nextPosition)
434
+ position = nextPosition;
435
+ const hitboxObj = Hit_1.Hit.createObjectHitbox(position.x, position.y, position.z, hitbox.w, hitbox.h);
436
+ let collided = Hit_1.Hit.testPolyCollision(shape.type, hitboxObj, shape.hitbox);
437
+ if (collided) {
438
+ this.collisionWith.push(shape);
439
+ // TODO: in shape after map load
440
+ if (!collision)
441
+ shape.in(this);
442
+ this.triggerCollisionWith();
443
+ if (collision)
444
+ return true;
445
+ }
446
+ else {
447
+ shape.out(this);
362
448
  }
363
449
  return false;
364
450
  }
@@ -383,11 +469,22 @@ class RpgCommonPlayer {
383
469
  }
384
470
  }
385
471
  }
386
- if (testCollision && !this.isCollided(nextPosition)) {
472
+ const collided = testCollision && !this.isCollided(nextPosition);
473
+ if (collided) {
387
474
  this.position = nextPosition;
475
+ Plugin_1.RpgPlugin.emit(Plugin_1.HookServer.PlayerMove, this);
388
476
  }
389
477
  return true;
390
478
  }
479
+ /**
480
+ * Retrieves all shapes where the player is located
481
+ *
482
+ * @title Get In-Shapes
483
+ * @method player.getInShapes()
484
+ * @returns {RpgShape[]}
485
+ * @since 3.0.0-beta.3
486
+ * @memberof Player
487
+ */
391
488
  getInShapes() {
392
489
  return Object.values(this.inShapes);
393
490
  }
@@ -400,28 +497,17 @@ class RpgCommonPlayer {
400
497
  *
401
498
  * @title Get Direction
402
499
  * @method player.getDirection()
403
- * @returns {string} left, right, up or down
500
+ * @returns {Direction | number} direction
404
501
  * @memberof Player
405
502
  */
406
503
  getDirection(direction) {
407
- const currentDir = direction || this.direction;
408
- if (!Utils_1.isString(currentDir)) {
409
- return [Direction.Down, Direction.Left, Direction.Right, Direction.Up][currentDir];
410
- }
411
- const dir = {
412
- [Direction.Down]: 0,
413
- [Direction.Left]: 1,
414
- [Direction.Right]: 2,
415
- [Direction.Up]: 3
416
- };
417
- return dir[currentDir];
504
+ return direction || this.direction;
418
505
  }
419
506
  /**
420
507
  * Changes the player's direction
421
508
  *
422
509
  * ```ts
423
510
  * import { Direction } from '@rpgjs/server'
424
- import { Shape } from './Shape';
425
511
  *
426
512
  * player.changeDirection(Direction.Left)
427
513
  * ```
@@ -462,6 +548,33 @@ import { Shape } from './Shape';
462
548
  return NaN;
463
549
  }
464
550
  }
551
+ getSizeMaxShape(x, y) {
552
+ const _x = x || this.position.x;
553
+ const _y = y || this.position.y;
554
+ let minX = _x;
555
+ let minY = _y;
556
+ let maxX = _x + this.wHitbox;
557
+ let maxY = _y + this.hHitbox;
558
+ const shapes = this.getShapes();
559
+ for (let shape of shapes) {
560
+ if (shape.x < minX)
561
+ minX = shape.x;
562
+ if (shape.y < minY)
563
+ minX = shape.y;
564
+ const shapeMaxX = shape.x + shape.width;
565
+ const shapeMaxY = shape.y + shape.height;
566
+ if (shapeMaxX > maxX)
567
+ maxX = shapeMaxX;
568
+ if (shapeMaxY > maxY)
569
+ maxY = shapeMaxY;
570
+ }
571
+ return {
572
+ minX,
573
+ minY,
574
+ maxX,
575
+ maxY
576
+ };
577
+ }
465
578
  execMethod(methodName, methodData, instance) { }
466
579
  }
467
580
  exports.RpgCommonPlayer = RpgCommonPlayer;
package/lib/Player.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"Player.js","sourceRoot":"","sources":["../src/Player.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Player.js","sourceRoot":"","sources":["../src/Player.ts"],"names":[],"mappings":"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"}
package/lib/Plugin.d.ts CHANGED
@@ -7,19 +7,19 @@ declare type PluginSides = {
7
7
  export declare type Plugin = PluginSides | [PluginSides, any];
8
8
  export declare enum HookServer {
9
9
  Start = "Server.Start",
10
+ Step = "Server.Step",
10
11
  PlayerConnected = "Server.onConnected",
11
12
  PlayerDisconnected = "Server.onDisconnected",
12
13
  AddMap = "Server.AddMap",
13
14
  AddDatabase = "Server.AddDatabase",
14
- PlayerInVision = "Server.onInVision",
15
- PlayerOutVision = "Server.onOutVision",
16
15
  PlayerInput = "Server.onInput",
17
16
  PlayerJoinMap = "Server.onJoinMap",
18
17
  PlayerLeaveMap = "Server.onLeaveMap",
19
18
  PlayerLevelUp = "Server.onLevelUp",
20
19
  PlayerDead = "Server.onDead",
21
20
  PlayerInShape = "Server.onInShape",
22
- PlayerOutShape = "Server.onOutShape"
21
+ PlayerOutShape = "Server.onOutShape",
22
+ PlayerMove = "Server.PlayerMove"
23
23
  }
24
24
  export declare enum HookClient {
25
25
  Start = "Client.Start",
@@ -42,7 +42,8 @@ export declare enum HookClient {
42
42
  RemoveSprite = "Client.RemoveSprite",
43
43
  UpdateSprite = "Client.UpdateSprite",
44
44
  ChangesSprite = "Client.ChangesSprite",
45
- WindowResize = "Client.WindowResize"
45
+ WindowResize = "Client.WindowResize",
46
+ SpriteMove = "Client.SpriteMove"
46
47
  }
47
48
  export declare class PluginSystem extends EventEmitter {
48
49
  private loadPlugins;
package/lib/Plugin.js CHANGED
@@ -6,12 +6,11 @@ const Utils_1 = require("./Utils");
6
6
  var HookServer;
7
7
  (function (HookServer) {
8
8
  HookServer["Start"] = "Server.Start";
9
+ HookServer["Step"] = "Server.Step";
9
10
  HookServer["PlayerConnected"] = "Server.onConnected";
10
11
  HookServer["PlayerDisconnected"] = "Server.onDisconnected";
11
12
  HookServer["AddMap"] = "Server.AddMap";
12
13
  HookServer["AddDatabase"] = "Server.AddDatabase";
13
- HookServer["PlayerInVision"] = "Server.onInVision";
14
- HookServer["PlayerOutVision"] = "Server.onOutVision";
15
14
  HookServer["PlayerInput"] = "Server.onInput";
16
15
  HookServer["PlayerJoinMap"] = "Server.onJoinMap";
17
16
  HookServer["PlayerLeaveMap"] = "Server.onLeaveMap";
@@ -19,6 +18,7 @@ var HookServer;
19
18
  HookServer["PlayerDead"] = "Server.onDead";
20
19
  HookServer["PlayerInShape"] = "Server.onInShape";
21
20
  HookServer["PlayerOutShape"] = "Server.onOutShape";
21
+ HookServer["PlayerMove"] = "Server.PlayerMove";
22
22
  })(HookServer = exports.HookServer || (exports.HookServer = {}));
23
23
  var HookClient;
24
24
  (function (HookClient) {
@@ -43,6 +43,7 @@ var HookClient;
43
43
  HookClient["UpdateSprite"] = "Client.UpdateSprite";
44
44
  HookClient["ChangesSprite"] = "Client.ChangesSprite";
45
45
  HookClient["WindowResize"] = "Client.WindowResize";
46
+ HookClient["SpriteMove"] = "Client.SpriteMove";
46
47
  })(HookClient = exports.HookClient || (exports.HookClient = {}));
47
48
  // deprecated
48
49
  class PluginSystem extends EventEmitter_1.EventEmitter {
package/lib/Plugin.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"Plugin.js","sourceRoot":"","sources":["../src/Plugin.ts"],"names":[],"mappings":";;;AAAA,iDAA6C;AAC7C,mCAAiC;AAMjC,IAAY,UAeX;AAfD,WAAY,UAAU;IAClB,oCAAsB,CAAA;IACtB,oDAAsC,CAAA;IACtC,0DAA4C,CAAA;IAC5C,sCAAwB,CAAA;IACxB,gDAAkC,CAAA;IAClC,kDAAoC,CAAA;IACpC,oDAAsC,CAAA;IACtC,4CAA8B,CAAA;IAC9B,gDAAkC,CAAA;IAClC,kDAAoC,CAAA;IACpC,gDAAkC,CAAA;IAClC,0CAA4B,CAAA;IAC5B,gDAAkC,CAAA;IAClC,kDAAoC,CAAA;AACxC,CAAC,EAfW,UAAU,GAAV,kBAAU,KAAV,kBAAU,QAerB;AAED,IAAY,UAyBX;AAzBD,WAAY,UAAU;IAClB,oCAAsB,CAAA;IACtB,kCAAoB,CAAA;IACpB,4CAA8B,CAAA;IAC9B,8CAAgC,CAAA;IAChC,sDAAwC,CAAA;IAExC,sDAAwC,CAAA;IACxC,sCAAwB,CAAA;IACxB,0CAA4B,CAAA;IAC5B,4CAA8B,CAAA;IAE9B,8DAAgD,CAAA;IAChD,4DAA8C,CAAA;IAC9C,wDAA0C,CAAA;IAC1C,sDAAwC,CAAA;IACxC,sDAAwC,CAAA;IACxC,4CAA8B,CAAA;IAC9B,4DAA8C,CAAA;IAE9C,4CAA8B,CAAA;IAC9B,kDAAoC,CAAA;IACpC,kDAAoC,CAAA;IACpC,oDAAsC,CAAA;IACtC,kDAAoC,CAAA;AACxC,CAAC,EAzBW,UAAU,GAAV,kBAAU,KAAV,kBAAU,QAyBrB;AAED,aAAa;AACb,MAAa,YAAa,SAAQ,2BAAY;IAClC,WAAW,CAAC,OAAiB,EAAE,MAAW,EAAE,IAAY;QAC5D,IAAI,CAAC,OAAO;YAAE,OAAM;QACpB,KAAK,IAAI,MAAM,IAAI,OAAO,EAAE;YACxB,IAAI,CAAC,MAAM;gBAAE,SAAQ;YACrB,IAAI,IAAI,GAAQ,EAAE,CAAA;YAClB,IAAI,CAAC,eAAO,CAAC,MAAM,CAAC,EAAE;gBAClB,IAAI,GAAG,CAAC,MAAM,CAAC,CAAA;aAClB;iBACI;gBACD,IAAI,GAAG,MAAM,CAAA;aAChB;YACD,MAAM,CAAC,IAAI,EAAE,OAAO,CAAC,GAAG,IAAI,CAAA;YAC5B,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC;gBAAE,SAAQ;YACzB,IAAI,CAAC,IAAI,CAAC,iBACN,SAAS,EAAT,iBAAS,IACN,MAAM,GACV,OAAO,CAAC,CAAA;SACd;IACL,CAAC;IAED,iBAAiB,CAAC,OAAO,EAAE,MAAM;QAC7B,IAAI,CAAC,WAAW,CAAC,OAAO,EAAE,MAAM,EAAE,QAAQ,CAAC,CAAA;IAC/C,CAAC;IAED,iBAAiB,CAAC,OAAO,EAAE,MAAM;QAC7B,IAAI,CAAC,WAAW,CAAC,OAAO,EAAE,MAAM,EAAE,QAAQ,CAAC,CAAA;IAC/C,CAAC;CACJ;AA5BD,oCA4BC;AAEY,QAAA,SAAS,GAAG,IAAI,YAAY,EAAE,CAAA"}
1
+ {"version":3,"file":"Plugin.js","sourceRoot":"","sources":["../src/Plugin.ts"],"names":[],"mappings":";;;AAAA,iDAA6C;AAC7C,mCAAiC;AAMjC,IAAY,UAeX;AAfD,WAAY,UAAU;IAClB,oCAAsB,CAAA;IACtB,kCAAoB,CAAA;IACpB,oDAAsC,CAAA;IACtC,0DAA4C,CAAA;IAC5C,sCAAwB,CAAA;IACxB,gDAAkC,CAAA;IAClC,4CAA8B,CAAA;IAC9B,gDAAkC,CAAA;IAClC,kDAAoC,CAAA;IACpC,gDAAkC,CAAA;IAClC,0CAA4B,CAAA;IAC5B,gDAAkC,CAAA;IAClC,kDAAoC,CAAA;IACpC,8CAAgC,CAAA;AACpC,CAAC,EAfW,UAAU,GAAV,kBAAU,KAAV,kBAAU,QAerB;AAED,IAAY,UA0BX;AA1BD,WAAY,UAAU;IAClB,oCAAsB,CAAA;IACtB,kCAAoB,CAAA;IACpB,4CAA8B,CAAA;IAC9B,8CAAgC,CAAA;IAChC,sDAAwC,CAAA;IAExC,sDAAwC,CAAA;IACxC,sCAAwB,CAAA;IACxB,0CAA4B,CAAA;IAC5B,4CAA8B,CAAA;IAE9B,8DAAgD,CAAA;IAChD,4DAA8C,CAAA;IAC9C,wDAA0C,CAAA;IAC1C,sDAAwC,CAAA;IACxC,sDAAwC,CAAA;IACxC,4CAA8B,CAAA;IAC9B,4DAA8C,CAAA;IAE9C,4CAA8B,CAAA;IAC9B,kDAAoC,CAAA;IACpC,kDAAoC,CAAA;IACpC,oDAAsC,CAAA;IACtC,kDAAoC,CAAA;IACpC,8CAAgC,CAAA;AACpC,CAAC,EA1BW,UAAU,GAAV,kBAAU,KAAV,kBAAU,QA0BrB;AAED,aAAa;AACb,MAAa,YAAa,SAAQ,2BAAY;IAClC,WAAW,CAAC,OAAiB,EAAE,MAAW,EAAE,IAAY;QAC5D,IAAI,CAAC,OAAO;YAAE,OAAM;QACpB,KAAK,IAAI,MAAM,IAAI,OAAO,EAAE;YACxB,IAAI,CAAC,MAAM;gBAAE,SAAQ;YACrB,IAAI,IAAI,GAAQ,EAAE,CAAA;YAClB,IAAI,CAAC,eAAO,CAAC,MAAM,CAAC,EAAE;gBAClB,IAAI,GAAG,CAAC,MAAM,CAAC,CAAA;aAClB;iBACI;gBACD,IAAI,GAAG,MAAM,CAAA;aAChB;YACD,MAAM,CAAC,IAAI,EAAE,OAAO,CAAC,GAAG,IAAI,CAAA;YAC5B,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC;gBAAE,SAAQ;YACzB,IAAI,CAAC,IAAI,CAAC,iBACN,SAAS,EAAT,iBAAS,IACN,MAAM,GACV,OAAO,CAAC,CAAA;SACd;IACL,CAAC;IAED,iBAAiB,CAAC,OAAO,EAAE,MAAM;QAC7B,IAAI,CAAC,WAAW,CAAC,OAAO,EAAE,MAAM,EAAE,QAAQ,CAAC,CAAA;IAC/C,CAAC;IAED,iBAAiB,CAAC,OAAO,EAAE,MAAM;QAC7B,IAAI,CAAC,WAAW,CAAC,OAAO,EAAE,MAAM,EAAE,QAAQ,CAAC,CAAA;IAC/C,CAAC;CACJ;AA5BD,oCA4BC;AAEY,QAAA,SAAS,GAAG,IAAI,YAAY,EAAE,CAAA"}
@@ -4,10 +4,15 @@ import { EventEmitter } from './EventEmitter';
4
4
  *
5
5
  */
6
6
  export declare class Scheduler extends EventEmitter {
7
- options: any;
7
+ private options;
8
8
  nextExecTime: any;
9
- requestedDelay: any;
10
- delayCounter: any;
9
+ requestedDelay: number;
10
+ delayCounter: number;
11
+ timestamp: number;
12
+ lastTimestamp: number;
13
+ deltaTime: number;
14
+ deltaTimeInt: number;
15
+ frame: number;
11
16
  /**
12
17
  * schedule a function to be called
13
18
  *
@@ -16,7 +21,12 @@ export declare class Scheduler extends EventEmitter {
16
21
  * @param {Number} options.period number of milliseconds between each invocation, not including the function's execution time
17
22
  * @param {Number} options.delay number of milliseconds to add when delaying or hurrying the execution
18
23
  */
19
- constructor(options: any);
24
+ constructor(options: {
25
+ tick: Function;
26
+ period: number;
27
+ delay: number;
28
+ stepPeriod?: number;
29
+ });
20
30
  nextTickChecker(): void;
21
31
  nextTick(): void;
22
32
  callTick(): void;