From 989e34e68ec45f7fdf6afbacf0091ca58466e857 Mon Sep 17 00:00:00 2001 From: cha0s Date: Fri, 17 Jan 2020 03:48:03 -0600 Subject: [PATCH] refactor: item repeats --- common/traits/controllable.trait.js | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) diff --git a/common/traits/controllable.trait.js b/common/traits/controllable.trait.js index 1b0918f..c1da762 100644 --- a/common/traits/controllable.trait.js +++ b/common/traits/controllable.trait.js @@ -11,6 +11,7 @@ export class Controllable extends Trait { constructor(entity, params, state) { super(entity, params, state); + this._isUsingItem = -1; this._itemPromise = undefined; this._movementVector = [0, 0]; } @@ -34,12 +35,7 @@ export class Controllable extends Trait { break; case 'UseItem': if (AVOCADO_SERVER) { - if (-1 !== value && !this._itemPromise) { - this._itemPromise = this.entity.useItemInSlot(value); - Promise.resolve(this._itemPromise).then(() => { - this._itemPromise = undefined; - }); - } + this._isUsingItem = value; } break; } @@ -53,6 +49,12 @@ export class Controllable extends Trait { } tick(elapsed) { + if (-1 !== this._isUsingItem && !this._itemPromise) { + this._itemPromise = this.entity.useItemInSlot(this._isUsingItem); + Promise.resolve(this._itemPromise).then(() => { + this._itemPromise = undefined; + }); + } if (this._itemPromise && this._itemPromise instanceof TickingPromise) { this._itemPromise.tick(elapsed); }