From 6d56024c7e6d55bcdcca86756b397b949f1aec7e Mon Sep 17 00:00:00 2001 From: NotEvil Date: Thu, 16 Apr 2026 02:32:50 +0200 Subject: [PATCH] =?UTF-8?q?fix(UC-02):=20LOW=20review=20items=20=E2=80=94?= =?UTF-8?q?=20anchored=20path=20strip=20+=20corner=20offset=20doc?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - Use substring instead of replace for path cleanup (anchored, no double-strip risk) - Document that corner_decorations ignores x/z offsets (by design) --- .../java/com/tiedup/remake/worldgen/HangingCagePiece.java | 2 ++ .../tiedup/remake/worldgen/RoomThemeReloadListener.java | 8 +++++--- 2 files changed, 7 insertions(+), 3 deletions(-) diff --git a/src/main/java/com/tiedup/remake/worldgen/HangingCagePiece.java b/src/main/java/com/tiedup/remake/worldgen/HangingCagePiece.java index 80635db..dfea7b0 100644 --- a/src/main/java/com/tiedup/remake/worldgen/HangingCagePiece.java +++ b/src/main/java/com/tiedup/remake/worldgen/HangingCagePiece.java @@ -637,6 +637,8 @@ public class HangingCagePiece extends StructurePiece { int[][] corners = layout.innerCorners(); // Corner decorations (e.g. cobwebs low+high, soul fire, snow layers) + // Note: only y_offset is used here — x/z offsets are ignored because corners + // are placed at all 4 inner corners and direction logic would differ per corner. for (DecorationConfig.PositionedBlock pb : deco.cornerDecorations()) { for (int[] c : corners) { if (layout.isInShape(c[0], c[1]) && !layout.isWall(c[0], c[1])) { diff --git a/src/main/java/com/tiedup/remake/worldgen/RoomThemeReloadListener.java b/src/main/java/com/tiedup/remake/worldgen/RoomThemeReloadListener.java index 6a39ea4..9beb894 100644 --- a/src/main/java/com/tiedup/remake/worldgen/RoomThemeReloadListener.java +++ b/src/main/java/com/tiedup/remake/worldgen/RoomThemeReloadListener.java @@ -60,9 +60,11 @@ public class RoomThemeReloadListener Resource resource = entry.getValue(); // Derive clean ID from file path: "tiedup:tiedup_room_themes/oubliette.json" -> "tiedup:oubliette" - String cleanPath = fileId.getPath() - .replace(DIRECTORY + "/", "") - .replace(".json", ""); + String rawPath = fileId.getPath(); + String cleanPath = rawPath.substring(rawPath.indexOf(DIRECTORY + "/") + DIRECTORY.length() + 1); + if (cleanPath.endsWith(".json")) { + cleanPath = cleanPath.substring(0, cleanPath.length() - 5); + } ResourceLocation cleanId = new ResourceLocation(fileId.getNamespace(), cleanPath); try (InputStream input = resource.open()) {