From 4575b558122e74306d1b7196c67f4d3beb150cb9 Mon Sep 17 00:00:00 2001 From: _Doc Date: Tue, 2 Apr 2024 20:12:32 -0400 Subject: [PATCH 1/4] Ensures All doors in blueprint are saved as closed --- .../littletiles/client/gui/SubGuiRecipe.java | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/src/main/java/com/creativemd/littletiles/client/gui/SubGuiRecipe.java b/src/main/java/com/creativemd/littletiles/client/gui/SubGuiRecipe.java index 42219b28d..efa0709bb 100644 --- a/src/main/java/com/creativemd/littletiles/client/gui/SubGuiRecipe.java +++ b/src/main/java/com/creativemd/littletiles/client/gui/SubGuiRecipe.java @@ -24,6 +24,8 @@ import com.creativemd.littletiles.common.structure.animation.AnimationGuiHandler; import com.creativemd.littletiles.common.structure.registry.LittleStructureGuiParser; import com.creativemd.littletiles.common.structure.registry.LittleStructureRegistry; +import com.creativemd.littletiles.common.structure.registry.LittleStructureType; +import com.creativemd.littletiles.common.structure.type.door.LittleDoorBase.LittleDoorBaseType; import com.creativemd.littletiles.common.tile.parent.StructureTileList; import com.creativemd.littletiles.common.tile.preview.LittlePreview; import com.creativemd.littletiles.common.tile.preview.LittlePreviews; @@ -181,6 +183,7 @@ public void onClicked(int x, int y, int button) { controls.add(new GuiButton("save", 150, 176, 40) { @Override public void onClicked(int x, int y, int button) { + clearOpenedDoors(); savePreview(); finializePreview(previews); @@ -199,6 +202,16 @@ public void onClicked(int x, int y, int button) { loadStack(hierarchy.get(0)); } + private void clearOpenedDoors() { + for (StructureHolder holder : hierarchy) { + NBTTagCompound nbt = holder.previews.structureNBT; + String id = nbt.getString("id"); + LittleStructureType type = LittleStructureRegistry.getStructureType(id); + if (type instanceof LittleDoorBaseType && nbt.hasKey("opened")) + nbt.setBoolean("opened", false); + } + } + public void loadStack(StructureHolder holder) { this.selected = holder; animationPreview = null; From e27782f783471a002fa980e0986275bf85273a6b Mon Sep 17 00:00:00 2001 From: _Doc Date: Wed, 3 Apr 2024 10:01:10 -0400 Subject: [PATCH 2/4] Added check to prevent the currently selected door from being edited. --- .../com/creativemd/littletiles/client/gui/SubGuiRecipe.java | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/main/java/com/creativemd/littletiles/client/gui/SubGuiRecipe.java b/src/main/java/com/creativemd/littletiles/client/gui/SubGuiRecipe.java index efa0709bb..f7042f634 100644 --- a/src/main/java/com/creativemd/littletiles/client/gui/SubGuiRecipe.java +++ b/src/main/java/com/creativemd/littletiles/client/gui/SubGuiRecipe.java @@ -204,6 +204,8 @@ public void onClicked(int x, int y, int button) { private void clearOpenedDoors() { for (StructureHolder holder : hierarchy) { + if (selected == holder) + continue; NBTTagCompound nbt = holder.previews.structureNBT; String id = nbt.getString("id"); LittleStructureType type = LittleStructureRegistry.getStructureType(id); From 7f2edd658c4b462b820aba77798b99210717a9fd Mon Sep 17 00:00:00 2001 From: _Doc Date: Wed, 3 Apr 2024 19:02:32 -0400 Subject: [PATCH 3/4] Added check for None structure in hierarchy --- .../com/creativemd/littletiles/client/gui/SubGuiRecipe.java | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/main/java/com/creativemd/littletiles/client/gui/SubGuiRecipe.java b/src/main/java/com/creativemd/littletiles/client/gui/SubGuiRecipe.java index f7042f634..4b318e3d1 100644 --- a/src/main/java/com/creativemd/littletiles/client/gui/SubGuiRecipe.java +++ b/src/main/java/com/creativemd/littletiles/client/gui/SubGuiRecipe.java @@ -207,6 +207,8 @@ private void clearOpenedDoors() { if (selected == holder) continue; NBTTagCompound nbt = holder.previews.structureNBT; + if (nbt.hasKey("id")) + continue; String id = nbt.getString("id"); LittleStructureType type = LittleStructureRegistry.getStructureType(id); if (type instanceof LittleDoorBaseType && nbt.hasKey("opened")) From 95ba43bbf8837b6a361456462eb5fc92f66ff552 Mon Sep 17 00:00:00 2001 From: _Doc Date: Wed, 3 Apr 2024 19:12:30 -0400 Subject: [PATCH 4/4] Fixed incorrect null check. --- .../com/creativemd/littletiles/client/gui/SubGuiRecipe.java | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/main/java/com/creativemd/littletiles/client/gui/SubGuiRecipe.java b/src/main/java/com/creativemd/littletiles/client/gui/SubGuiRecipe.java index 4b318e3d1..f6ff8ffef 100644 --- a/src/main/java/com/creativemd/littletiles/client/gui/SubGuiRecipe.java +++ b/src/main/java/com/creativemd/littletiles/client/gui/SubGuiRecipe.java @@ -207,7 +207,9 @@ private void clearOpenedDoors() { if (selected == holder) continue; NBTTagCompound nbt = holder.previews.structureNBT; - if (nbt.hasKey("id")) + if (nbt == null) + continue; + if (!nbt.hasKey("id")) continue; String id = nbt.getString("id"); LittleStructureType type = LittleStructureRegistry.getStructureType(id);