From d18ff99fa8ea7be052614c1ad60e8fb22fa2207c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ond=C5=99ej=20Hru=C5=A1ka?= Date: Sat, 19 Apr 2014 03:57:42 +0200 Subject: [PATCH] some minor edit in tiles --- src/mightypork/rogue/world/EntityModel.java | 3 +- src/mightypork/rogue/world/tile/Tile.java | 28 +++++++++++++++++++ src/mightypork/rogue/world/tile/TileData.java | 3 -- .../rogue/world/tile/TileModel.java | 6 ++++ src/mightypork/util/math/color/Color.java | 5 ++-- 5 files changed, 39 insertions(+), 6 deletions(-) diff --git a/src/mightypork/rogue/world/EntityModel.java b/src/mightypork/rogue/world/EntityModel.java index a4597c8..4e147a0 100644 --- a/src/mightypork/rogue/world/EntityModel.java +++ b/src/mightypork/rogue/world/EntityModel.java @@ -46,7 +46,8 @@ public abstract class EntityModel { /** - * Create a data object and populate it with default values. + * Create a data object and populate it with default values.
+ * It's allowed to return null for no data. * * @return data object */ diff --git a/src/mightypork/rogue/world/tile/Tile.java b/src/mightypork/rogue/world/tile/Tile.java index 477e45f..031ba63 100644 --- a/src/mightypork/rogue/world/tile/Tile.java +++ b/src/mightypork/rogue/world/tile/Tile.java @@ -14,6 +14,9 @@ public final class Tile extends Entity { public static final short ION_MARK = 700; + /** Whether the tile is occupied by an entity */ + private transient boolean occupied; + public Tile() { super(); @@ -87,4 +90,29 @@ public final class Tile extends Entity { { return model.isWalkable(data); } + + + public boolean hasItem() + { + return !data.items.isEmpty(); + } + + + public Item removeItem() + { + if(!hasItem()) return null; + return data.items.pop(); + } + + + public boolean isOccupied() + { + return occupied; + } + + + public void setOccupied(boolean occupied) + { + this.occupied = occupied; + } } diff --git a/src/mightypork/rogue/world/tile/TileData.java b/src/mightypork/rogue/world/tile/TileData.java index 0f57d03..27d7774 100644 --- a/src/mightypork/rogue/world/tile/TileData.java +++ b/src/mightypork/rogue/world/tile/TileData.java @@ -16,7 +16,4 @@ public abstract class TileData { /** Items dropped onto this tile */ public final Stack items = new Stack<>(); - /** Whether the tile is occupied by an entity */ - public boolean occupied; - } diff --git a/src/mightypork/rogue/world/tile/TileModel.java b/src/mightypork/rogue/world/tile/TileModel.java index e421c74..299319a 100644 --- a/src/mightypork/rogue/world/tile/TileModel.java +++ b/src/mightypork/rogue/world/tile/TileModel.java @@ -12,6 +12,12 @@ public abstract class TileModel extends EntityModel Tiles.register(id, this); } + @Override + public TileData createData() + { + return null; + } + /** * Test if this tile type is potentially walkable. Used during world diff --git a/src/mightypork/util/math/color/Color.java b/src/mightypork/util/math/color/Color.java index 864304c..2559194 100644 --- a/src/mightypork/util/math/color/Color.java +++ b/src/mightypork/util/math/color/Color.java @@ -1,6 +1,7 @@ package mightypork.util.math.color; +import java.util.EmptyStackException; import java.util.Stack; import mightypork.util.annotations.FactoryMethod; @@ -216,7 +217,7 @@ public abstract class Color { * Remove a pushed alpha multiplier from the stack. If there's no remaining * multiplier on the stack, an exception is raised. * - * @throws IllegalStateException if the stack is empty + * @throws EmptyStackException if the stack is empty */ public static void popAlpha() { @@ -225,7 +226,7 @@ public abstract class Color { } if (alphaStack.isEmpty()) { - throw new IllegalStateException("Global alpha stack underflow."); + throw new EmptyStackException(); } alphaStack.pop();