diff --git a/src/mightypork/rogue/world/tile/Tile.java b/src/mightypork/rogue/world/tile/Tile.java index ce7b8ae..b3886d3 100644 --- a/src/mightypork/rogue/world/tile/Tile.java +++ b/src/mightypork/rogue/world/tile/Tile.java @@ -27,17 +27,15 @@ public abstract class Tile implements IonBinaryHeadless { protected final TileRenderer renderer; - public final int id; - - protected final Stack items = new Stack<>(); + public final TileModel model; // temporary flag for map. protected boolean occupied; protected boolean explored; - public Tile(int id, TileRenderer renderer) { - this.id = id; + public Tile(TileModel model, TileRenderer renderer) { + this.model = model; this.renderer = renderer; } @@ -176,6 +174,12 @@ public abstract class Tile implements IonBinaryHeadless { } + public final TileModel getModel() + { + return model; + } + + /** * Drop item onto this tile * diff --git a/src/mightypork/rogue/world/tile/Tiles.java b/src/mightypork/rogue/world/tile/Tiles.java index 234856e..f563e87 100644 --- a/src/mightypork/rogue/world/tile/Tiles.java +++ b/src/mightypork/rogue/world/tile/Tiles.java @@ -61,9 +61,9 @@ public final class Tiles { public static void saveTile(IonOutput out, Tile tile) throws IOException { - out.writeIntByte(tile.id); + TileModel model = tile.getModel(); - TileModel model = get(tile.id); + out.writeIntByte(model.id); model.saveTile(out, tile); } diff --git a/src/mightypork/rogue/world/tile/tiles/DoorTile.java b/src/mightypork/rogue/world/tile/tiles/DoorTile.java index 5dea905..bfc7202 100644 --- a/src/mightypork/rogue/world/tile/tiles/DoorTile.java +++ b/src/mightypork/rogue/world/tile/tiles/DoorTile.java @@ -1,14 +1,16 @@ package mightypork.rogue.world.tile.tiles; +import mightypork.rogue.world.tile.TileModel; import mightypork.rogue.world.tile.TileRenderer; import mightypork.rogue.world.tile.TileType; public class DoorTile extends SolidTile { - public DoorTile(int id, TileRenderer renderer) { - super(id, renderer); + public DoorTile(TileModel model, TileRenderer renderer) + { + super(model, renderer); } @Override diff --git a/src/mightypork/rogue/world/tile/tiles/FloorTile.java b/src/mightypork/rogue/world/tile/tiles/FloorTile.java index 949623f..af8e57b 100644 --- a/src/mightypork/rogue/world/tile/tiles/FloorTile.java +++ b/src/mightypork/rogue/world/tile/tiles/FloorTile.java @@ -1,15 +1,16 @@ package mightypork.rogue.world.tile.tiles; +import mightypork.rogue.world.tile.TileModel; import mightypork.rogue.world.tile.TileRenderer; import mightypork.rogue.world.tile.TileType; public class FloorTile extends GroundTile { - public FloorTile(int id, TileRenderer renderer) + public FloorTile(TileModel model, TileRenderer renderer) { - super(id, renderer); + super(model, renderer); } diff --git a/src/mightypork/rogue/world/tile/tiles/GroundTile.java b/src/mightypork/rogue/world/tile/tiles/GroundTile.java index f58ac24..54966f4 100644 --- a/src/mightypork/rogue/world/tile/tiles/GroundTile.java +++ b/src/mightypork/rogue/world/tile/tiles/GroundTile.java @@ -2,12 +2,14 @@ package mightypork.rogue.world.tile.tiles; import java.io.IOException; +import java.util.Stack; import mightypork.rogue.world.item.Item; import mightypork.rogue.world.level.Level; import mightypork.rogue.world.level.render.TileRenderContext; import mightypork.rogue.world.tile.DroppedItemRenderer; import mightypork.rogue.world.tile.Tile; +import mightypork.rogue.world.tile.TileModel; import mightypork.rogue.world.tile.TileRenderer; import mightypork.util.files.ion.IonInput; import mightypork.util.files.ion.IonOutput; @@ -17,10 +19,11 @@ public abstract class GroundTile extends Tile { private DroppedItemRenderer itemRenderer = new DroppedItemRenderer(); + protected final Stack items = new Stack<>(); - public GroundTile(int id, TileRenderer renderer) + public GroundTile(TileModel model, TileRenderer renderer) { - super(id, renderer); + super(model, renderer); } diff --git a/src/mightypork/rogue/world/tile/tiles/LockedDoorTile.java b/src/mightypork/rogue/world/tile/tiles/LockedDoorTile.java index 7b1ea96..18c9474 100644 --- a/src/mightypork/rogue/world/tile/tiles/LockedDoorTile.java +++ b/src/mightypork/rogue/world/tile/tiles/LockedDoorTile.java @@ -3,6 +3,7 @@ package mightypork.rogue.world.tile.tiles; import java.io.IOException; +import mightypork.rogue.world.tile.TileModel; import mightypork.rogue.world.tile.TileRenderer; import mightypork.util.files.ion.IonInput; import mightypork.util.files.ion.IonOutput; @@ -13,9 +14,15 @@ public class LockedDoorTile extends DoorTile { public boolean locked = true; - public LockedDoorTile(int id, TileRenderer renderer) + public LockedDoorTile(TileModel model, TileRenderer renderer) { - super(id, renderer); + super(model, renderer); + } + + @Override + public boolean isWalkable() + { + return !locked; } diff --git a/src/mightypork/rogue/world/tile/tiles/NullTile.java b/src/mightypork/rogue/world/tile/tiles/NullTile.java index 5ad12e1..bbd9dcd 100644 --- a/src/mightypork/rogue/world/tile/tiles/NullTile.java +++ b/src/mightypork/rogue/world/tile/tiles/NullTile.java @@ -5,15 +5,16 @@ import mightypork.rogue.world.item.Item; import mightypork.rogue.world.level.Level; import mightypork.rogue.world.level.render.TileRenderContext; import mightypork.rogue.world.tile.Tile; +import mightypork.rogue.world.tile.TileModel; import mightypork.rogue.world.tile.TileRenderer; import mightypork.rogue.world.tile.TileType; public class NullTile extends Tile { - public NullTile(int id, TileRenderer renderer) + public NullTile(TileModel model, TileRenderer renderer) { - super(id, renderer); + super(model, renderer); } diff --git a/src/mightypork/rogue/world/tile/tiles/SolidTile.java b/src/mightypork/rogue/world/tile/tiles/SolidTile.java index 2173c51..3dd5772 100644 --- a/src/mightypork/rogue/world/tile/tiles/SolidTile.java +++ b/src/mightypork/rogue/world/tile/tiles/SolidTile.java @@ -2,13 +2,15 @@ package mightypork.rogue.world.tile.tiles; import mightypork.rogue.world.item.Item; import mightypork.rogue.world.tile.Tile; +import mightypork.rogue.world.tile.TileModel; import mightypork.rogue.world.tile.TileRenderer; public abstract class SolidTile extends Tile { - public SolidTile(int id, TileRenderer renderer) { - super(id, renderer); + public SolidTile(TileModel model, TileRenderer renderer) + { + super(model, renderer); } @Override diff --git a/src/mightypork/rogue/world/tile/tiles/WallTile.java b/src/mightypork/rogue/world/tile/tiles/WallTile.java index 7c3be10..daac8a2 100644 --- a/src/mightypork/rogue/world/tile/tiles/WallTile.java +++ b/src/mightypork/rogue/world/tile/tiles/WallTile.java @@ -1,14 +1,15 @@ package mightypork.rogue.world.tile.tiles; +import mightypork.rogue.world.tile.TileModel; import mightypork.rogue.world.tile.TileRenderer; import mightypork.rogue.world.tile.TileType; public class WallTile extends SolidTile { - public WallTile(int id, TileRenderer renderer) + public WallTile(TileModel model, TileRenderer renderer) { - super(id, renderer); + super(model, renderer); } @Override