preparations for entity system rewrite
This commit is contained in:
@@ -27,17 +27,15 @@ public abstract class Tile implements IonBinaryHeadless {
|
||||
|
||||
protected final TileRenderer renderer;
|
||||
|
||||
public final int id;
|
||||
|
||||
protected final Stack<Item> 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
|
||||
*
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
|
||||
|
||||
|
||||
@@ -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<Item> items = new Stack<>();
|
||||
|
||||
public GroundTile(int id, TileRenderer renderer)
|
||||
public GroundTile(TileModel model, TileRenderer renderer)
|
||||
{
|
||||
super(id, renderer);
|
||||
super(model, renderer);
|
||||
}
|
||||
|
||||
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
|
||||
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
|
||||
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user