diff --git a/packages/entity/trait/index.js b/packages/entity/trait/index.js index 37ed3d6..66c8649 100644 --- a/packages/entity/trait/index.js +++ b/packages/entity/trait/index.js @@ -108,6 +108,11 @@ export class Trait extends decorate(class {}) { return false; } + setDirty() { + this._fastDirtyCheck = true; + this.entity._fastDirtyCheck = true; + } + stateDifferences() { const differences = {}; for (const key in this.state) { @@ -154,8 +159,7 @@ export function StateProperty(key, meta = {}) { `); meta.set = meta.set || new Function('value', ` if (value !== this.${transformedProperty}) { - this._fastDirtyCheck = true; - this.entity._fastDirtyCheck = true; + this.setDirty(); } this.${transformedProperty} = value; this.state['${key}'] = value; diff --git a/packages/entity/traits/positioned.trait.js b/packages/entity/traits/positioned.trait.js index 973c236..14a5ac9 100644 --- a/packages/entity/traits/positioned.trait.js +++ b/packages/entity/traits/positioned.trait.js @@ -62,8 +62,7 @@ export class Positioned extends decorate(Trait) { if (AVOCADO_SERVER) { this.state.x = newPosition[0]; this.state.y = newPosition[1]; - this.entity._fastDirtyCheck = true; - this._fastDirtyCheck = true; + this.setDirty(); } this.entity.emit('positionChanged', oldPosition, newPosition); }