preparations for entity system rewrite

This commit is contained in:
ondra
2014-04-28 16:22:50 +02:00
parent e8ed1ef94d
commit ab1c3b3a74
9 changed files with 42 additions and 21 deletions
+9 -5
View File
@@ -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
*
+2 -2
View File
@@ -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