From fd0f4ce77ae1946af0ebf392498acf8406714507 Mon Sep 17 00:00:00 2001 From: Evan Debenham Date: Thu, 3 Aug 2023 12:21:58 -0400 Subject: [PATCH] v2.2.0: added a new custom decoration tile type (replaces signs) --- .../levels/CavesBossLevel.java | 7 +++---- .../levels/CityBossLevel.java | 14 +++++++------- .../shatteredpixeldungeon/levels/Terrain.java | 15 +++++++++------ .../tiles/DungeonTileSheet.java | 4 ++-- 4 files changed, 21 insertions(+), 19 deletions(-) diff --git a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/levels/CavesBossLevel.java b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/levels/CavesBossLevel.java index a1086875c..dbc1cf4cd 100644 --- a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/levels/CavesBossLevel.java +++ b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/levels/CavesBossLevel.java @@ -79,7 +79,7 @@ public class CavesBossLevel extends Level { if (locked){ Music.INSTANCE.play(Assets.Music.CAVES_BOSS, true); //if wall isn't broken - } else if (map[14 + 13*width()] == Terrain.SIGN){ + } else if (map[14 + 13*width()] == Terrain.CUSTOM_DECO){ Music.INSTANCE.end(); } else { Music.INSTANCE.playTracks( @@ -114,8 +114,7 @@ public class CavesBossLevel extends Level { setSize(WIDTH, HEIGHT); - //These signs are visually overridden with custom tile visuals - Painter.fill(this, gate, Terrain.SIGN); + Painter.fill(this, gate, Terrain.CUSTOM_DECO); //set up main boss arena Painter.fillEllipse(this, mainArena, Terrain.EMPTY); @@ -365,7 +364,7 @@ public class CavesBossLevel extends Level { } for( int i = (mainArena.top-1)*width; i 7){ data[i-tileW] = 14*8 + 4; - } else if (map[i] == Terrain.SIGN){ + } else if (map[i] == Terrain.CUSTOM_DECO){ data[i-tileW] = 13*8 + 5; } diff --git a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/levels/Terrain.java b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/levels/Terrain.java index 5915e012d..df7356da4 100644 --- a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/levels/Terrain.java +++ b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/levels/Terrain.java @@ -50,13 +50,15 @@ public class Terrain { public static final int EMPTY_DECO = 20; public static final int LOCKED_EXIT = 21; public static final int UNLOCKED_EXIT = 22; - public static final int SIGN = 23; //currently used purely for custom tile visuals public static final int WELL = 24; - public static final int STATUE = 25; - public static final int STATUE_SP = 26; public static final int BOOKSHELF = 27; public static final int ALCHEMY = 28; + //solid environment decorations + public static final int CUSTOM_DECO = 23; //invisible decoration that will also be a custom visual, re-uses the old terrain ID for signs + public static final int STATUE = 25; + public static final int STATUE_SP = 26; + public static final int WATER = 29; public static final int PASSABLE = 0x01; @@ -98,13 +100,14 @@ public class Terrain { flags[EMPTY_DECO] = flags[EMPTY]; flags[LOCKED_EXIT] = SOLID; flags[UNLOCKED_EXIT]= PASSABLE; - flags[SIGN] = SOLID; //Currently these are unused except for visual tile overrides where we want terrain to be solid with no other properties flags[WELL] = AVOID; - flags[STATUE] = SOLID; - flags[STATUE_SP] = flags[STATUE]; flags[BOOKSHELF] = flags[BARRICADE]; flags[ALCHEMY] = SOLID; + flags[CUSTOM_DECO] = SOLID; + flags[STATUE] = SOLID; + flags[STATUE_SP] = flags[STATUE]; + } public static int discover( int terr ) { diff --git a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/tiles/DungeonTileSheet.java b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/tiles/DungeonTileSheet.java index 75cb54a65..ea9e936ae 100644 --- a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/tiles/DungeonTileSheet.java +++ b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/tiles/DungeonTileSheet.java @@ -86,7 +86,7 @@ public class DungeonTileSheet { chasmStitcheable.put( Terrain.HIGH_GRASS, CHASM_FLOOR ); chasmStitcheable.put( Terrain.FURROWED_GRASS,CHASM_FLOOR ); chasmStitcheable.put( Terrain.EMPTY_DECO, CHASM_FLOOR ); - chasmStitcheable.put( Terrain.SIGN, CHASM_FLOOR ); + chasmStitcheable.put( Terrain.CUSTOM_DECO, CHASM_FLOOR ); chasmStitcheable.put( Terrain.EMPTY_WELL, CHASM_FLOOR ); chasmStitcheable.put( Terrain.WELL, CHASM_FLOOR ); chasmStitcheable.put( Terrain.STATUE, CHASM_FLOOR ); @@ -131,7 +131,7 @@ public class DungeonTileSheet { Terrain.ENTRANCE, Terrain.EXIT, Terrain.EMBERS, Terrain.BARRICADE, Terrain.HIGH_GRASS, Terrain.FURROWED_GRASS, Terrain.SECRET_TRAP, Terrain.TRAP, Terrain.INACTIVE_TRAP, Terrain.EMPTY_DECO, - Terrain.SIGN, Terrain.WELL, Terrain.STATUE, Terrain.ALCHEMY, + Terrain.CUSTOM_DECO, Terrain.WELL, Terrain.STATUE, Terrain.ALCHEMY, Terrain.DOOR, Terrain.OPEN_DOOR, Terrain.LOCKED_DOOR, Terrain.CRYSTAL_DOOR ));