From 73bdfe28f16ac0431b051b1dfb1df101928fad28 Mon Sep 17 00:00:00 2001 From: yoyosource Date: Fri, 24 Feb 2023 20:54:29 +0100 Subject: [PATCH] Hotfix TNTSimulator.remove Signed-off-by: yoyosource --- .../features/simulator/TNTSimulator.java | 19 ++++++++----------- 1 file changed, 8 insertions(+), 11 deletions(-) diff --git a/BauSystem_Main/src/de/steamwar/bausystem/features/simulator/TNTSimulator.java b/BauSystem_Main/src/de/steamwar/bausystem/features/simulator/TNTSimulator.java index 39057f99..34efb4fb 100644 --- a/BauSystem_Main/src/de/steamwar/bausystem/features/simulator/TNTSimulator.java +++ b/BauSystem_Main/src/de/steamwar/bausystem/features/simulator/TNTSimulator.java @@ -110,21 +110,18 @@ public class TNTSimulator { } public void remove(SimulatorElement element) { - tntElementList.remove(element); - Set toRemove = new HashSet<>(); - for (SimulatorElement spawn : tntElementList) { - if (element instanceof TNTElement) { - spawn.remove((TNTElement) element); - } - if (spawn instanceof TNTGroup) { - if (((TNTGroup) spawn).getElements().isEmpty()) { - toRemove.add(spawn); - spawn.close(); + if (element instanceof TNTElement) { + TNTElement tntElement = (TNTElement) element; + element.remove(tntElement); + if (tntElement.hasParent()) { + tntElement.getParent().remove(tntElement); + if (tntElement.getParent().getElements().isEmpty()) { + remove(tntElement.getParent()); } } } - tntElementList.removeAll(toRemove); element.close(); + tntElementList.remove(element); } public void change() {