Skip to content

Commit 7f34947

Browse files
authored
fix: fix unintentional children mutation (#586)
1 parent 3ad6bbe commit 7f34947

File tree

1 file changed

+7
-13
lines changed

1 file changed

+7
-13
lines changed

src/game/make.ts

Lines changed: 7 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -140,22 +140,16 @@ export function make<T>(comps: CompList<T> = []): GameObj<T> {
140140
},
141141

142142
remove(obj: GameObj): void {
143-
const idx = this.children.indexOf(obj);
144-
145-
if (idx !== -1) {
146-
obj.parent = null;
147-
this.children.splice(idx, 1);
143+
obj.parent = null;
148144

149-
const trigger = (o: GameObj) => {
150-
o.trigger("destroy");
151-
_k.game.events.trigger("destroy", o);
152-
o.children.forEach((child) => trigger(child));
153-
};
145+
const trigger = (o: GameObj) => {
146+
o.trigger("destroy");
147+
_k.game.events.trigger("destroy", o);
148+
o.children.forEach((child) => trigger(child));
149+
};
154150

155-
trigger(obj);
156-
}
151+
trigger(obj);
157152
},
158-
159153
// TODO: recursive
160154
removeAll(this: GameObj, tag?: Tag) {
161155
if (tag) {

0 commit comments

Comments
 (0)