From 029efe2fe7aaa07f72734af1abd322be1b2469fe Mon Sep 17 00:00:00 2001 From: Hanan Date: Tue, 3 Mar 2026 14:50:54 +0700 Subject: [PATCH 1/2] implement persistence for child bodies during reset --- packages/melonjs/src/physics/world.js | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/packages/melonjs/src/physics/world.js b/packages/melonjs/src/physics/world.js index 289b0d56f..fb58d3e49 100644 --- a/packages/melonjs/src/physics/world.js +++ b/packages/melonjs/src/physics/world.js @@ -125,9 +125,24 @@ export default class World extends Container { // call the parent method super.reset(); + // save persistent child bodies + const persistentBodies = []; + this.bodies.forEach((value) => { + if (value.ancestor && value.ancestor.isPersistent) { + persistentBodies.push(value); + } + }); + // empty the list of active physic bodies // Note: this should be empty already when calling the parent method this.bodies.clear(); + + // insert persistent child bodies into the new state + if (persistentBodies.length > 0) { + persistentBodies.forEach((body) => { + return this.bodies.add(body); + }); + } } /** From 1332cebc0e26be594b40d6d2d77a59a8a16ba83c Mon Sep 17 00:00:00 2001 From: Muhammad Fadhilah Hanan <88243095+Vareniel@users.noreply.github.com> Date: Tue, 3 Mar 2026 15:04:50 +0700 Subject: [PATCH 2/2] unecessary return Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> --- packages/melonjs/src/physics/world.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/melonjs/src/physics/world.js b/packages/melonjs/src/physics/world.js index fb58d3e49..1b2d1a11d 100644 --- a/packages/melonjs/src/physics/world.js +++ b/packages/melonjs/src/physics/world.js @@ -140,7 +140,7 @@ export default class World extends Container { // insert persistent child bodies into the new state if (persistentBodies.length > 0) { persistentBodies.forEach((body) => { - return this.bodies.add(body); + this.bodies.add(body); }); } }