Merge pull request #1035 from thecodingmachine/improveDirtyScene

FIX: trackDirtyAnims now listen to more generic events
This commit is contained in:
David Négrier
2021-05-11 17:08:29 +02:00
committed by GitHub
+3 -3
View File
@@ -2,6 +2,7 @@ import {ResizableScene} from "../Login/ResizableScene";
import GameObject = Phaser.GameObjects.GameObject; import GameObject = Phaser.GameObjects.GameObject;
import Events = Phaser.Scenes.Events; import Events = Phaser.Scenes.Events;
import AnimationEvents = Phaser.Animations.Events; import AnimationEvents = Phaser.Animations.Events;
import StructEvents = Phaser.Structs.Events;
/** /**
* A scene that can track its dirty/pristine state. * A scene that can track its dirty/pristine state.
@@ -23,12 +24,11 @@ export abstract class DirtyScene extends ResizableScene {
} }
this.isAlreadyTracking = true; this.isAlreadyTracking = true;
const trackAnimationFunction = this.trackAnimation.bind(this); const trackAnimationFunction = this.trackAnimation.bind(this);
this.events.on(Events.ADDED_TO_SCENE, (gameObject: GameObject) => { this.sys.updateList.on(StructEvents.PROCESS_QUEUE_ADD, (gameObject: GameObject) => {
this.objectListChanged = true; this.objectListChanged = true;
gameObject.on(AnimationEvents.ANIMATION_UPDATE, trackAnimationFunction); gameObject.on(AnimationEvents.ANIMATION_UPDATE, trackAnimationFunction);
}); });
this.sys.updateList.on(StructEvents.PROCESS_QUEUE_REMOVE, (gameObject: GameObject) => {
this.events.on(Events.REMOVED_FROM_SCENE, (gameObject: GameObject) => {
this.objectListChanged = true; this.objectListChanged = true;
gameObject.removeListener(AnimationEvents.ANIMATION_UPDATE, trackAnimationFunction); gameObject.removeListener(AnimationEvents.ANIMATION_UPDATE, trackAnimationFunction);
}); });