Update of /cvsroot/arianne/stendhal/src/games/stendhal/client/gui/j2d/entity In directory vz-cvs-4.sog:/tmp/cvs-serv20152/src/games/stendhal/client/gui/j2d/entity Modified Files: ActiveEntity2DView.java Blood2DView.java Box2DView.java CarrotGrower2DView.java Chest2DView.java Corpse2DView.java Creature2DView.java DomesticAnimal2DView.java Door2DView.java Entity2DView.java EntityView.java EntityViewFactory.java Food2DView.java Gate2DView.java GrainField2DView.java HousePortal2DView.java InvisibleEntity2DView.java Item2DView.java NPC2DView.java Pet2DView.java Player2DView.java Portal2DView.java RPEntity2DView.java Ring2DView.java Sheep2DView.java ShopSign2DView.java Sign2DView.java Spell2DView.java StackableItem2DView.java StateEntity2DView.java TradeCenterSign2DView.java UseableEntity2DView.java UseableItem2DView.java User2DView.java Log Message: Parametrized EntityViews to reduce the need for casts Index: GrainField2DView.java =================================================================== RCS file: /cvsroot/arianne/stendhal/src/games/stendhal/client/gui/j2d/entity/GrainField2DView.java,v retrieving revision 1.35 retrieving revision 1.36 diff -C2 -d -r1.35 -r1.36 *** GrainField2DView.java 2 Oct 2011 15:12:48 -0000 1.35 --- GrainField2DView.java 6 Apr 2012 14:41:18 -0000 1.36 *************** *** 31,36 **** /** * The 2D view of a grain field. */ ! class GrainField2DView extends StateEntity2DView { /** --- 31,38 ---- /** * The 2D view of a grain field. + * + * @param <T> grower type */ ! class GrainField2DView<T extends GrainField> extends StateEntity2DView<T> { /** *************** *** 64,68 **** */ @Override ! protected void buildSprites(IEntity entity, final Map<Object, Sprite> map) { int width = getWidth(); String clazz = entity.getEntityClass(); --- 66,70 ---- */ @Override ! protected void buildSprites(T entity, final Map<Object, Sprite> map) { int width = getWidth(); String clazz = entity.getEntityClass(); *************** *** 78,82 **** info.getZoneColor(), info.getColorMethod()); ! states = ((GrainField) entity).getMaximumRipeness() + 1; final int tileSetHeight = tiles.getHeight(); --- 80,84 ---- info.getZoneColor(), info.getColorMethod()); ! states = entity.getMaximumRipeness() + 1; final int tileSetHeight = tiles.getHeight(); *************** *** 113,118 **** */ @Override ! protected Object getState(IEntity entity) { ! return Integer.valueOf(((GrainField) entity).getRipeness()); } --- 115,120 ---- */ @Override ! protected Object getState(T entity) { ! return Integer.valueOf(entity.getRipeness()); } *************** *** 199,203 **** */ @Override ! public void entityChanged(final IEntity entity, final Object property) { super.entityChanged(entity, property); --- 201,205 ---- */ @Override ! public void entityChanged(final T entity, final Object property) { super.entityChanged(entity, property); Index: InvisibleEntity2DView.java =================================================================== RCS file: /cvsroot/arianne/stendhal/src/games/stendhal/client/gui/j2d/entity/InvisibleEntity2DView.java,v retrieving revision 1.15 retrieving revision 1.16 diff -C2 -d -r1.15 -r1.16 *** InvisibleEntity2DView.java 30 Oct 2010 15:00:38 -0000 1.15 --- InvisibleEntity2DView.java 6 Apr 2012 14:41:18 -0000 1.16 *************** *** 21,26 **** /** * The 2D view of an invisible entity. */ ! class InvisibleEntity2DView extends Entity2DView { // --- 21,28 ---- /** * The 2D view of an invisible entity. + * + * @param <T> entity type */ ! class InvisibleEntity2DView<T extends IEntity> extends Entity2DView<T> { // *************** *** 29,33 **** @Override ! protected void buildRepresentation(IEntity entity) { } --- 31,35 ---- @Override ! protected void buildRepresentation(T entity) { } Index: User2DView.java =================================================================== RCS file: /cvsroot/arianne/stendhal/src/games/stendhal/client/gui/j2d/entity/User2DView.java,v retrieving revision 1.33 retrieving revision 1.34 diff -C2 -d -r1.33 -r1.34 *** User2DView.java 9 Oct 2011 21:47:49 -0000 1.33 --- User2DView.java 6 Apr 2012 14:41:18 -0000 1.34 *************** *** 22,29 **** /** * The 2D view of a user. */ ! class User2DView extends Player2DView { @Override ! public void initialize(final IEntity entity) { super.initialize(entity); j2DClient.get().setPosition(entity.getX(), entity.getY()); --- 22,31 ---- /** * The 2D view of a user. + * + * @param <T> user */ ! class User2DView<T extends User> extends Player2DView<T> { @Override ! public void initialize(final T entity) { super.initialize(entity); j2DClient.get().setPosition(entity.getX(), entity.getY()); *************** *** 70,74 **** list.add(ActionType.WHERE.getRepresentation()); ! User user = (User) entity; if (user != null) { if (user.hasSheep()) { --- 72,76 ---- list.add(ActionType.WHERE.getRepresentation()); ! User user = entity; if (user != null) { if (user.hasSheep()) { *************** *** 95,99 **** */ @Override ! public void entityChanged(final IEntity entity, final Object property) { super.entityChanged(entity, property); --- 97,101 ---- */ @Override ! public void entityChanged(final T entity, final Object property) { super.entityChanged(entity, property); Index: Food2DView.java =================================================================== RCS file: /cvsroot/arianne/stendhal/src/games/stendhal/client/gui/j2d/entity/Food2DView.java,v retrieving revision 1.24 retrieving revision 1.25 diff -C2 -d -r1.24 -r1.25 *** Food2DView.java 2 Oct 2011 14:46:47 -0000 1.24 --- Food2DView.java 6 Apr 2012 14:41:18 -0000 1.25 *************** *** 17,21 **** import games.stendhal.client.ZoneInfo; import games.stendhal.client.entity.Food; - import games.stendhal.client.entity.IEntity; import games.stendhal.client.gui.styled.cursor.StendhalCursor; import games.stendhal.client.sprite.Sprite; --- 17,20 ---- *************** *** 27,31 **** * The 2D view of food. */ ! class Food2DView extends StateEntity2DView { /** --- 26,30 ---- * The 2D view of food. */ ! class Food2DView extends StateEntity2DView<Food> { /** *************** *** 46,50 **** */ @Override ! protected void buildSprites(IEntity entity, final Map<Object, Sprite> map) { final SpriteStore store = SpriteStore.get(); ZoneInfo info = ZoneInfo.get(); --- 45,49 ---- */ @Override ! protected void buildSprites(Food entity, final Map<Object, Sprite> map) { final SpriteStore store = SpriteStore.get(); ZoneInfo info = ZoneInfo.get(); *************** *** 69,74 **** */ @Override ! protected Object getState(IEntity entity) { ! return Integer.valueOf(((Food) entity).getAmount()); } --- 68,73 ---- */ @Override ! protected Object getState(Food entity) { ! return Integer.valueOf(entity.getAmount()); } *************** *** 104,108 **** */ @Override ! public void entityChanged(final IEntity entity, final Object property) { super.entityChanged(entity, property); --- 103,107 ---- */ @Override ! public void entityChanged(final Food entity, final Object property) { super.entityChanged(entity, property); Index: Gate2DView.java =================================================================== RCS file: /cvsroot/arianne/stendhal/src/games/stendhal/client/gui/j2d/entity/Gate2DView.java,v retrieving revision 1.21 retrieving revision 1.22 diff -C2 -d -r1.21 -r1.22 *** Gate2DView.java 30 Oct 2011 13:57:19 -0000 1.21 --- Gate2DView.java 6 Apr 2012 14:41:18 -0000 1.22 *************** *** 28,32 **** import org.apache.log4j.Logger; ! public class Gate2DView extends Entity2DView { static final HashMap<String, Sprite[]> sprites = new HashMap<String, Sprite[]>(); --- 28,32 ---- import org.apache.log4j.Logger; ! public class Gate2DView extends Entity2DView<IEntity> { static final HashMap<String, Sprite[]> sprites = new HashMap<String, Sprite[]>(); Index: Sign2DView.java =================================================================== RCS file: /cvsroot/arianne/stendhal/src/games/stendhal/client/gui/j2d/entity/Sign2DView.java,v retrieving revision 1.32 retrieving revision 1.33 diff -C2 -d -r1.32 -r1.33 *** Sign2DView.java 2 Oct 2011 15:12:48 -0000 1.32 --- Sign2DView.java 6 Apr 2012 14:41:18 -0000 1.33 *************** *** 27,32 **** /** * The 2D view of a sign. */ ! class Sign2DView extends Entity2DView { private static Logger logger = Logger.getLogger(Sign2DView.class); --- 27,34 ---- /** * The 2D view of a sign. + * + * @param <T> sign type */ ! class Sign2DView<T extends Sign> extends Entity2DView<T> { private static Logger logger = Logger.getLogger(Sign2DView.class); *************** *** 52,56 **** @Override ! protected void buildRepresentation(IEntity entity) { String name = getClassResourcePath(); --- 54,58 ---- @Override ! protected void buildRepresentation(T entity) { String name = getClassResourcePath(); *************** *** 104,108 **** */ @Override ! public void entityChanged(final IEntity entity, final Object property) { super.entityChanged(entity, property); --- 106,110 ---- */ @Override ! public void entityChanged(final T entity, final Object property) { super.entityChanged(entity, property); *************** *** 153,157 **** */ private ActionType getActionType() { ! Sign sign = (Sign) entity; if (sign == null) { // The user switched maps, but we still need a reasonable return --- 155,159 ---- */ private ActionType getActionType() { ! Sign sign = entity; if (sign == null) { // The user switched maps, but we still need a reasonable return Index: StateEntity2DView.java =================================================================== RCS file: /cvsroot/arianne/stendhal/src/games/stendhal/client/gui/j2d/entity/StateEntity2DView.java,v retrieving revision 1.20 retrieving revision 1.21 diff -C2 -d -r1.20 -r1.21 *** StateEntity2DView.java 28 Dec 2010 16:14:04 -0000 1.20 --- StateEntity2DView.java 6 Apr 2012 14:41:18 -0000 1.21 *************** *** 27,32 **** /** * The 2D view of an animated entity. */ ! abstract class StateEntity2DView extends Entity2DView { /** * Log4J. --- 27,34 ---- /** * The 2D view of an animated entity. + * + * @param <T> entity type */ ! abstract class StateEntity2DView<T extends IEntity> extends Entity2DView<T> { /** * Log4J. *************** *** 49,53 **** * @param entity the entity to build animations for */ ! protected void buildAnimations(IEntity entity) { buildSprites(entity, sprites); } --- 51,55 ---- * @param entity the entity to build animations for */ ! protected void buildAnimations(T entity) { buildSprites(entity, sprites); } *************** *** 60,64 **** * The map to populate. */ ! protected abstract void buildSprites(IEntity entity, final Map<Object, Sprite> map); /** --- 62,66 ---- * The map to populate. */ ! protected abstract void buildSprites(T entity, final Map<Object, Sprite> map); /** *************** *** 80,84 **** * @return The model state. */ ! protected abstract Object getState(IEntity entity); /** --- 82,86 ---- * @return The model state. */ ! protected abstract Object getState(T entity); /** *************** *** 88,92 **** * @return The appropriate sprite for the current state. */ ! protected Sprite getStateSprite(IEntity entity) { final Object state = getState(entity); final Sprite sprite = getSprite(state); --- 90,94 ---- * @return The appropriate sprite for the current state. */ ! protected Sprite getStateSprite(T entity) { final Object state = getState(entity); final Sprite sprite = getSprite(state); *************** *** 109,113 **** */ @Override ! protected void buildRepresentation(IEntity entity) { buildAnimations(entity); --- 111,115 ---- */ @Override ! protected void buildRepresentation(T entity) { buildAnimations(entity); *************** *** 120,124 **** * @param entity */ ! protected void proceedChangedState(IEntity entity) { setSprite(getStateSprite(entity)); } --- 122,126 ---- * @param entity */ ! protected void proceedChangedState(T entity) { setSprite(getStateSprite(entity)); } Index: Box2DView.java =================================================================== RCS file: /cvsroot/arianne/stendhal/src/games/stendhal/client/gui/j2d/entity/Box2DView.java,v retrieving revision 1.13 retrieving revision 1.14 diff -C2 -d -r1.13 -r1.14 *** Box2DView.java 5 Jan 2011 18:17:27 -0000 1.13 --- Box2DView.java 6 Apr 2012 14:41:18 -0000 1.14 *************** *** 15,18 **** --- 15,19 ---- import games.stendhal.client.entity.ActionType; + import games.stendhal.client.entity.Item; import games.stendhal.client.gui.styled.cursor.StendhalCursor; *************** *** 22,26 **** * The 2D view of a box. */ ! class Box2DView extends Item2DView { // --- 23,27 ---- * The 2D view of a box. */ ! class Box2DView extends Item2DView<Item> { // Index: ActiveEntity2DView.java =================================================================== RCS file: /cvsroot/arianne/stendhal/src/games/stendhal/client/gui/j2d/entity/ActiveEntity2DView.java,v retrieving revision 1.15 retrieving revision 1.16 diff -C2 -d -r1.15 -r1.16 *** ActiveEntity2DView.java 28 Dec 2010 16:14:04 -0000 1.15 --- ActiveEntity2DView.java 6 Apr 2012 14:41:18 -0000 1.16 *************** *** 20,25 **** /** * The 2D view of an animated entity. */ ! abstract class ActiveEntity2DView extends StateEntity2DView { --- 20,27 ---- /** * The 2D view of an animated entity. + * + * @param <T> entity type */ ! abstract class ActiveEntity2DView<T extends IEntity> extends StateEntity2DView<T> { *************** *** 85,89 **** */ @Override ! public void entityChanged(final IEntity entity, final Object property) { super.entityChanged(entity, property); --- 87,91 ---- */ @Override ! public void entityChanged(final T entity, final Object property) { super.entityChanged(entity, property); Index: Player2DView.java =================================================================== RCS file: /cvsroot/arianne/stendhal/src/games/stendhal/client/gui/j2d/entity/Player2DView.java,v retrieving revision 1.48 retrieving revision 1.49 diff -C2 -d -r1.48 -r1.49 *** Player2DView.java 2 Oct 2011 16:17:49 -0000 1.48 --- Player2DView.java 6 Apr 2012 14:41:18 -0000 1.49 *************** *** 35,40 **** /** * The 2D view of a player. */ ! class Player2DView extends RPEntity2DView { /** * The logger. --- 35,42 ---- /** * The 2D view of a player. + * + * @param <T> player type */ ! class Player2DView<T extends Player> extends RPEntity2DView<T> { /** * The logger. *************** *** 162,175 **** @Override protected void buildActions(final List<String> list) { ! RPEntity player = (RPEntity) entity; ! if (!player.isGhostMode()) { super.buildActions(list); ! boolean hasBuddy = User.hasBuddy(player.getName()); if (!hasBuddy) { list.add(ActionType.ADD_BUDDY.getRepresentation()); } ! if (User.isIgnoring(player.getName())) { list.add(ActionType.UNIGNORE.getRepresentation()); } else if (!hasBuddy) { --- 164,176 ---- @Override protected void buildActions(final List<String> list) { ! if (!entity.isGhostMode()) { super.buildActions(list); ! boolean hasBuddy = User.hasBuddy(entity.getName()); if (!hasBuddy) { list.add(ActionType.ADD_BUDDY.getRepresentation()); } ! if (User.isIgnoring(entity.getName())) { list.add(ActionType.UNIGNORE.getRepresentation()); } else if (!hasBuddy) { *************** *** 194,200 **** @Override protected void draw(final Graphics2D g2d, final int x, final int y, final int width, final int height) { ! Player player = (Player) entity; ! ! boolean newIgnoreStatus = User.isIgnoring(player.getName()); if (newIgnoreStatus != ignored) { visibilityChanged = true; --- 195,199 ---- @Override protected void draw(final Graphics2D g2d, final int x, final int y, final int width, final int height) { ! boolean newIgnoreStatus = User.isIgnoring(entity.getName()); if (newIgnoreStatus != ignored) { visibilityChanged = true; *************** *** 205,215 **** super.draw(g2d, x, y, width, height); ! if (player.isAway()) { awaySprite.draw(g2d, x + (width * 3 / 4), y - 10); } ! if (player.isGrumpy()) { grumpySprite.draw(g2d, x - (width * 1 / 6), y - 6); } ! if (player.isBadBoy()) { skullSprite.draw(g2d, x , y); } --- 204,214 ---- super.draw(g2d, x, y, width, height); ! if (entity.isAway()) { awaySprite.draw(g2d, x + (width * 3 / 4), y - 10); } ! if (entity.isGrumpy()) { grumpySprite.draw(g2d, x - (width * 1 / 6), y - 6); } ! if (entity.isBadBoy()) { skullSprite.draw(g2d, x , y); } Index: Spell2DView.java =================================================================== RCS file: /cvsroot/arianne/stendhal/src/games/stendhal/client/gui/j2d/entity/Spell2DView.java,v retrieving revision 1.25 retrieving revision 1.26 diff -C2 -d -r1.25 -r1.26 *** Spell2DView.java 1 Apr 2012 18:36:22 -0000 1.25 --- Spell2DView.java 6 Apr 2012 14:41:18 -0000 1.26 *************** *** 35,39 **** * The 2D view of a spell. */ ! public class Spell2DView extends Entity2DView { private static final Logger logger = Logger.getLogger(Spell2DView.class); --- 35,39 ---- * The 2D view of a spell. */ ! public class Spell2DView extends Entity2DView<IEntity> { private static final Logger logger = Logger.getLogger(Spell2DView.class); Index: DomesticAnimal2DView.java =================================================================== RCS file: /cvsroot/arianne/stendhal/src/games/stendhal/client/gui/j2d/entity/DomesticAnimal2DView.java,v retrieving revision 1.29 retrieving revision 1.30 diff -C2 -d -r1.29 -r1.30 *** DomesticAnimal2DView.java 2 Oct 2011 14:46:47 -0000 1.29 --- DomesticAnimal2DView.java 6 Apr 2012 14:41:18 -0000 1.30 *************** *** 20,24 **** import games.stendhal.client.entity.ActiveEntity; import games.stendhal.client.entity.DomesticAnimal; - import games.stendhal.client.entity.IEntity; import games.stendhal.client.gui.styled.cursor.StendhalCursor; import games.stendhal.client.sprite.Sprite; --- 20,23 ---- *************** *** 32,37 **** /** * The 2D view of a domestic animal. */ ! abstract class DomesticAnimal2DView extends RPEntity2DView { /** * The down facing big state. --- 31,38 ---- /** * The 2D view of a domestic animal. + * + * @param <T> type of domestic animal */ ! abstract class DomesticAnimal2DView<T extends DomesticAnimal> extends RPEntity2DView<T> { /** * The down facing big state. *************** *** 81,85 **** @Override protected Sprite getSprite(final Object state) { ! if (((DomesticAnimal) entity).getWeight() < getBigWeight()) { return super.getSprite(state); } --- 82,86 ---- @Override protected Sprite getSprite(final Object state) { ! if (entity.getWeight() < getBigWeight()) { return super.getSprite(state); } *************** *** 119,123 **** */ protected Sprite getIdeaSprite() { ! final String idea = ((DomesticAnimal) entity).getIdea(); if (idea == null) { --- 120,124 ---- */ protected Sprite getIdeaSprite() { ! final String idea = entity.getIdea(); if (idea == null) { *************** *** 245,249 **** */ @Override ! public void entityChanged(final IEntity entity, final Object property) { super.entityChanged(entity, property); --- 246,250 ---- */ @Override ! public void entityChanged(final T entity, final Object property) { super.entityChanged(entity, property); Index: Entity2DView.java =================================================================== RCS file: /cvsroot/arianne/stendhal/src/games/stendhal/client/gui/j2d/entity/Entity2DView.java,v retrieving revision 1.55 retrieving revision 1.56 diff -C2 -d -r1.55 -r1.56 *** Entity2DView.java 5 Jan 2011 18:17:27 -0000 1.55 --- Entity2DView.java 6 Apr 2012 14:41:18 -0000 1.56 *************** *** 42,51 **** /** * The 2D view of an entity. */ ! public abstract class Entity2DView implements EntityView, EntityChangeListener { /** * The entity this view is for. */ ! protected IEntity entity; /** --- 42,54 ---- /** * The 2D view of an entity. + * + * @param <T> type of entity */ ! public abstract class Entity2DView<T extends IEntity> implements EntityView<T>, ! EntityChangeListener<T> { /** * The entity this view is for. */ ! protected T entity; /** *************** *** 115,119 **** private volatile boolean released = false; ! public void initialize(final IEntity entity) { if (entity == null) { throw new IllegalArgumentException("entity must not be null"); --- 118,122 ---- private volatile boolean released = false; ! public void initialize(final T entity) { if (entity == null) { throw new IllegalArgumentException("entity must not be null"); *************** *** 167,171 **** * @param entity the eEntity to build the representation for */ ! protected void buildRepresentation(IEntity entity) { setSprite(SpriteStore.get().getSprite(translate(entity.getType()))); } --- 170,174 ---- * @param entity the eEntity to build the representation for */ ! protected void buildRepresentation(T entity) { setSprite(SpriteStore.get().getSprite(translate(entity.getType()))); } *************** *** 180,184 **** * The sprite height (in pixels). */ ! protected void calculateOffset(IEntity entity, final int swidth, final int sheight) { final Rectangle2D area = entity.getArea(); --- 183,187 ---- * The sprite height (in pixels). */ ! protected void calculateOffset(T entity, final int swidth, final int sheight) { final Rectangle2D area = entity.getArea(); *************** *** 606,610 **** */ protected void update() { ! IEntity entity = this.entity; if (entity == null) { return; --- 609,613 ---- */ protected void update() { ! T entity = this.entity; if (entity == null) { return; *************** *** 645,649 **** * The property identifier. */ ! public void entityChanged(final IEntity entity, final Object property) { changed = true; --- 648,652 ---- * The property identifier. */ ! public void entityChanged(final T entity, final Object property) { changed = true; *************** *** 692,696 **** * @return The view's entity. */ ! public IEntity getEntity() { return entity; } --- 695,699 ---- * @return The view's entity. */ ! public T getEntity() { return entity; } Index: UseableEntity2DView.java =================================================================== RCS file: /cvsroot/arianne/stendhal/src/games/stendhal/client/gui/j2d/entity/UseableEntity2DView.java,v retrieving revision 1.16 retrieving revision 1.17 diff -C2 -d -r1.16 -r1.17 *** UseableEntity2DView.java 2 Oct 2011 15:12:48 -0000 1.16 --- UseableEntity2DView.java 6 Apr 2012 14:41:18 -0000 1.17 *************** *** 25,30 **** /** * The 2D view of a useable entity */ ! class UseableEntity2DView extends Entity2DView { private ActionType action; --- 25,32 ---- /** * The 2D view of a useable entity + * + * @param <T> type of useable entity */ ! class UseableEntity2DView<T extends UseableEntity> extends Entity2DView<T> { private ActionType action; *************** *** 52,56 **** @Override ! protected void buildRepresentation(IEntity entity) { final SpriteStore store = SpriteStore.get(); Sprite sprite; --- 54,58 ---- @Override ! protected void buildRepresentation(T entity) { final SpriteStore store = SpriteStore.get(); Sprite sprite; *************** *** 79,83 **** // Just use the normal sprite if there are no animation frames ! int state = ((UseableEntity) entity).getState(); if (frames > 1) { sprite = store.getAnimatedSprite(sprite, --- 81,85 ---- // Just use the normal sprite if there are no animation frames ! int state = entity.getState(); if (frames > 1) { sprite = store.getAnimatedSprite(sprite, *************** *** 106,110 **** */ @Override ! public void entityChanged(final IEntity entity, final Object property) { super.entityChanged(entity, property); --- 108,112 ---- */ @Override ! public void entityChanged(final T entity, final Object property) { super.entityChanged(entity, property); Index: ShopSign2DView.java =================================================================== RCS file: /cvsroot/arianne/stendhal/src/games/stendhal/client/gui/j2d/entity/ShopSign2DView.java,v retrieving revision 1.5 retrieving revision 1.6 diff -C2 -d -r1.5 -r1.6 *** ShopSign2DView.java 5 Jan 2011 18:17:27 -0000 1.5 --- ShopSign2DView.java 6 Apr 2012 14:41:18 -0000 1.6 *************** *** 14,17 **** --- 14,18 ---- import games.stendhal.client.entity.ActionType; + import games.stendhal.client.entity.Sign; import games.stendhal.client.gui.styled.cursor.StendhalCursor; *************** *** 21,27 **** * The 2D view of a shop-sign. */ ! class ShopSign2DView extends Sign2DView { ! ! // // Entity2DView --- 22,26 ---- * The 2D view of a shop-sign. */ ! class ShopSign2DView extends Sign2DView<Sign> { // // Entity2DView Index: TradeCenterSign2DView.java =================================================================== RCS file: /cvsroot/arianne/stendhal/src/games/stendhal/client/gui/j2d/entity/TradeCenterSign2DView.java,v retrieving revision 1.5 retrieving revision 1.6 diff -C2 -d -r1.5 -r1.6 *** TradeCenterSign2DView.java 5 Jan 2011 18:17:27 -0000 1.5 --- TradeCenterSign2DView.java 6 Apr 2012 14:41:18 -0000 1.6 *************** *** 14,22 **** import games.stendhal.client.entity.ActionType; import games.stendhal.client.gui.styled.cursor.StendhalCursor; import java.util.List; ! public class TradeCenterSign2DView extends Sign2DView { /* (non-Javadoc) --- 14,23 ---- import games.stendhal.client.entity.ActionType; + import games.stendhal.client.entity.Sign; import games.stendhal.client.gui.styled.cursor.StendhalCursor; import java.util.List; ! public class TradeCenterSign2DView extends Sign2DView<Sign> { /* (non-Javadoc) Index: Pet2DView.java =================================================================== RCS file: /cvsroot/arianne/stendhal/src/games/stendhal/client/gui/j2d/entity/Pet2DView.java,v retrieving revision 1.21 retrieving revision 1.22 diff -C2 -d -r1.21 -r1.22 *** Pet2DView.java 5 Jan 2011 18:17:27 -0000 1.21 --- Pet2DView.java 6 Apr 2012 14:41:18 -0000 1.22 *************** *** 23,27 **** * The 2D view of a pet. */ ! class Pet2DView extends DomesticAnimal2DView { /** * The weight that a pet becomes fat (big). --- 23,27 ---- * The 2D view of a pet. */ ! class Pet2DView extends DomesticAnimal2DView<Pet> { /** * The weight that a pet becomes fat (big). *************** *** 58,62 **** super.buildActions(list); User user = User.get(); ! Pet pet = (Pet) entity; if (user != null) { if (!user.hasPet()) { --- 58,62 ---- super.buildActions(list); User user = User.get(); ! Pet pet = entity; if (user != null) { if (!user.hasPet()) { Index: Blood2DView.java =================================================================== RCS file: /cvsroot/arianne/stendhal/src/games/stendhal/client/gui/j2d/entity/Blood2DView.java,v retrieving revision 1.27 retrieving revision 1.28 diff -C2 -d -r1.27 -r1.28 *** Blood2DView.java 2 Oct 2011 14:36:40 -0000 1.27 --- Blood2DView.java 6 Apr 2012 14:41:18 -0000 1.28 *************** *** 26,30 **** * The 2D view of blood. */ ! class Blood2DView extends StateEntity2DView { // --- 26,30 ---- * The 2D view of blood. */ ! class Blood2DView extends StateEntity2DView<IEntity> { // Index: NPC2DView.java =================================================================== RCS file: /cvsroot/arianne/stendhal/src/games/stendhal/client/gui/j2d/entity/NPC2DView.java,v retrieving revision 1.30 retrieving revision 1.31 diff -C2 -d -r1.30 -r1.31 *** NPC2DView.java 2 Oct 2011 16:17:49 -0000 1.30 --- NPC2DView.java 6 Apr 2012 14:41:18 -0000 1.31 *************** *** 35,40 **** /** * The 2D view of an NPC. */ ! class NPC2DView extends RPEntity2DView { /** * Log4J. --- 35,42 ---- /** * The 2D view of an NPC. + * + * @param <T> type of NPC */ ! class NPC2DView<T extends NPC> extends RPEntity2DView<T> { /** * Log4J. *************** *** 89,93 **** */ @Override ! public void entityChanged(final IEntity entity, final Object property) { super.entityChanged(entity, property); --- 91,95 ---- */ @Override ! public void entityChanged(final T entity, final Object property) { super.entityChanged(entity, property); *************** *** 115,123 **** @Override protected void drawTop(final Graphics2D g2d, final int x, final int y, final int width, final int height) { - NPC npc = (NPC) entity; super.drawTop(g2d, x, y, width, height); ! if (npc.getIdea() != null) { ! Sprite sprite = SpriteStore.get().getSprite("data/sprites/ideas/" + npc.getIdea() + ".png"); sprite.draw(g2d, x + (width * 3 / 4), y - 10); } --- 117,124 ---- @Override protected void drawTop(final Graphics2D g2d, final int x, final int y, final int width, final int height) { super.drawTop(g2d, x, y, width, height); ! if (entity.getIdea() != null) { ! Sprite sprite = SpriteStore.get().getSprite("data/sprites/ideas/" + entity.getIdea() + ".png"); sprite.draw(g2d, x + (width * 3 / 4), y - 10); } Index: Chest2DView.java =================================================================== RCS file: /cvsroot/arianne/stendhal/src/games/stendhal/client/gui/j2d/entity/Chest2DView.java,v retrieving revision 1.35 retrieving revision 1.36 diff -C2 -d -r1.35 -r1.36 *** Chest2DView.java 2 Oct 2011 14:36:40 -0000 1.35 --- Chest2DView.java 6 Apr 2012 14:41:18 -0000 1.36 *************** *** 18,22 **** import games.stendhal.client.entity.ActionType; import games.stendhal.client.entity.Chest; - import games.stendhal.client.entity.IEntity; import games.stendhal.client.entity.Inspector; import games.stendhal.client.gui.InternalWindow; --- 18,21 ---- *************** *** 35,39 **** * The 2D view of a chest. */ ! class Chest2DView extends StateEntity2DView { /* * The closed state. --- 34,38 ---- * The 2D view of a chest. */ ! class Chest2DView extends StateEntity2DView<Chest> { /* * The closed state. *************** *** 86,90 **** */ @Override ! protected void buildSprites(IEntity entity, final Map<Object, Sprite> map) { final SpriteStore store = SpriteStore.get(); ZoneInfo info = ZoneInfo.get(); --- 85,89 ---- */ @Override ! protected void buildSprites(Chest entity, final Map<Object, Sprite> map) { final SpriteStore store = SpriteStore.get(); ZoneInfo info = ZoneInfo.get(); *************** *** 106,111 **** */ @Override ! protected Object getState(IEntity entity) { ! if (((Chest) entity).isOpen()) { return STATE_OPEN; } else { --- 105,110 ---- */ @Override ! protected Object getState(Chest entity) { ! if (entity.isOpen()) { return STATE_OPEN; } else { *************** *** 129,133 **** super.buildActions(list); ! Chest chest = (Chest) entity; if (chest != null && chest.isOpen()) { list.add(ActionType.INSPECT.getRepresentation()); --- 128,132 ---- super.buildActions(list); ! Chest chest = entity; if (chest != null && chest.isOpen()) { list.add(ActionType.INSPECT.getRepresentation()); *************** *** 171,176 **** if (openChanged) { ! Chest chest = (Chest) entity; ! if (chest.isOpen()) { // we're wanted to open this? if (requestOpen) { --- 170,174 ---- if (openChanged) { ! if (entity.isOpen()) { // we're wanted to open this? if (requestOpen) { *************** *** 201,205 **** */ @Override ! public void entityChanged(final IEntity entity, final Object property) { super.entityChanged(entity, property); --- 199,203 ---- */ @Override ! public void entityChanged(final Chest entity, final Object property) { super.entityChanged(entity, property); *************** *** 231,235 **** case OPEN: ! if (!((Chest) entity).isOpen()) { // If it was closed, open it and inspect it... requestOpen = true; --- 229,233 ---- case OPEN: ! if (!entity.isOpen()) { // If it was closed, open it and inspect it... requestOpen = true; *************** *** 281,285 **** private void showWindow() { boolean addListener = slotWindow == null; ! slotWindow = inspector.inspectMe(entity, ((Chest) entity).getContent(), slotWindow, 5, 6); /* --- 279,283 ---- private void showWindow() { boolean addListener = slotWindow == null; ! slotWindow = inspector.inspectMe(entity, entity.getContent(), slotWindow, 5, 6); /* Index: Creature2DView.java =================================================================== RCS file: /cvsroot/arianne/stendhal/src/games/stendhal/client/gui/j2d/entity/Creature2DView.java,v retrieving revision 1.28 retrieving revision 1.29 diff -C2 -d -r1.28 -r1.29 *** Creature2DView.java 26 Mar 2012 20:12:21 -0000 1.28 --- Creature2DView.java 6 Apr 2012 14:41:18 -0000 1.29 *************** *** 32,36 **** * The 2D view of a creature. */ ! class Creature2DView extends RPEntity2DView { /** the patrolpath. */ --- 32,36 ---- * The 2D view of a creature. */ ! class Creature2DView extends RPEntity2DView<Creature> { /** the patrolpath. */ *************** *** 124,128 **** @Override protected Sprite getAnimationSprite() { ! String resource = ((Creature) entity).getMetamorphosis(); if (resource == null) { --- 124,128 ---- @Override protected Sprite getAnimationSprite() { ! String resource = entity.getMetamorphosis(); if (resource == null) { *************** *** 180,184 **** */ @Override ! public void entityChanged(final IEntity entity, final Object property) { super.entityChanged(entity, property); --- 180,184 ---- */ @Override ! public void entityChanged(final Creature entity, final Object property) { super.entityChanged(entity, property); Index: CarrotGrower2DView.java =================================================================== RCS file: /cvsroot/arianne/stendhal/src/games/stendhal/client/gui/j2d/entity/CarrotGrower2DView.java,v retrieving revision 1.13 retrieving revision 1.14 diff -C2 -d -r1.13 -r1.14 *** CarrotGrower2DView.java 5 Jan 2011 18:17:27 -0000 1.13 --- CarrotGrower2DView.java 6 Apr 2012 14:41:18 -0000 1.14 *************** *** 14,17 **** --- 14,18 ---- import games.stendhal.client.entity.ActionType; + import games.stendhal.client.entity.GrainField; import java.util.List; *************** *** 20,24 **** * The 2D view of a grower. */ ! class CarrotGrower2DView extends GrainField2DView { // --- 21,25 ---- * The 2D view of a grower. */ ! class CarrotGrower2DView extends GrainField2DView<GrainField> { // Index: StackableItem2DView.java =================================================================== RCS file: /cvsroot/arianne/stendhal/src/games/stendhal/client/gui/j2d/entity/StackableItem2DView.java,v retrieving revision 1.21 retrieving revision 1.22 diff -C2 -d -r1.21 -r1.22 *** StackableItem2DView.java 1 Apr 2012 18:36:22 -0000 1.21 --- StackableItem2DView.java 6 Apr 2012 14:41:18 -0000 1.22 *************** *** 14,18 **** - import games.stendhal.client.entity.IEntity; import games.stendhal.client.entity.StackableItem; import games.stendhal.client.gui.j2d.entity.helpers.DrawingHelper; --- 14,17 ---- *************** *** 27,32 **** /** * The 2D view of a stackable item. */ ! public class StackableItem2DView extends Item2DView { /** --- 26,33 ---- /** * The 2D view of a stackable item. + * + * @param <T> stackable item type */ ! public class StackableItem2DView<T extends StackableItem> extends Item2DView<T> { /** *************** *** 46,50 **** @Override ! public void initialize(final IEntity entity) { super.initialize(entity); quantitySprite = getQuantitySprite(entity); --- 47,51 ---- @Override ! public void initialize(final T entity) { super.initialize(entity); quantitySprite = getQuantitySprite(entity); *************** *** 64,72 **** * none. */ ! protected Sprite getQuantitySprite(IEntity entity) { int quantity; String label; ! quantity = ((StackableItem) entity).getQuantity(); if (quantity <= 1) { --- 65,73 ---- * none. */ ! protected Sprite getQuantitySprite(T entity) { int quantity; String label; ! quantity = entity.getQuantity(); if (quantity <= 1) { *************** *** 146,150 **** super.update(); ! IEntity entity = this.entity; if (quantityChanged && (entity != null)) { quantitySprite = getQuantitySprite(entity); --- 147,151 ---- super.update(); ! T entity = this.entity; if (quantityChanged && (entity != null)) { quantitySprite = getQuantitySprite(entity); *************** *** 166,170 **** */ @Override ! public void entityChanged(final IEntity entity, final Object property) { super.entityChanged(entity, property); --- 167,171 ---- */ @Override ! public void entityChanged(final T entity, final Object property) { super.entityChanged(entity, property); Index: Item2DView.java =================================================================== RCS file: /cvsroot/arianne/stendhal/src/games/stendhal/client/gui/j2d/entity/Item2DView.java,v retrieving revision 1.33 retrieving revision 1.34 diff -C2 -d -r1.33 -r1.34 *** Item2DView.java 2 Oct 2011 14:19:59 -0000 1.33 --- Item2DView.java 6 Apr 2012 14:41:18 -0000 1.34 *************** *** 37,42 **** /** * The 2D view of an item. */ ! class Item2DView extends Entity2DView { /** * Log4J. --- 37,44 ---- /** * The 2D view of an item. + * + * @param <T> item type */ ! class Item2DView<T extends Item> extends Entity2DView<T> { /** * Log4J. *************** *** 61,65 **** */ @Override ! protected void buildRepresentation(IEntity entity) { final SpriteStore store = SpriteStore.get(); Sprite sprite; --- 63,67 ---- */ @Override ! protected void buildRepresentation(T entity) { final SpriteStore store = SpriteStore.get(); Sprite sprite; *************** *** 148,152 **** */ @Override ! public void entityChanged(final IEntity entity, final Object property) { super.entityChanged(entity, property); --- 150,154 ---- */ @Override ! public void entityChanged(final T entity, final Object property) { super.entityChanged(entity, property); *************** *** 275,279 **** */ private RPSlot getContent() { ! return ((Item) entity).getContent(); } --- 277,281 ---- */ private RPSlot getContent() { ! return entity.getContent(); } Index: UseableItem2DView.java =================================================================== RCS file: /cvsroot/arianne/stendhal/src/games/stendhal/client/gui/j2d/entity/UseableItem2DView.java,v retrieving revision 1.7 retrieving revision 1.8 diff -C2 -d -r1.7 -r1.8 *** UseableItem2DView.java 19 Sep 2010 02:18:32 -0000 1.7 --- UseableItem2DView.java 6 Apr 2012 14:41:18 -0000 1.8 *************** *** 17,20 **** --- 17,21 ---- import games.stendhal.client.entity.ActionType; + import games.stendhal.client.entity.StackableItem; import games.stendhal.client.gui.styled.cursor.StendhalCursor; import games.stendhal.client.gui.wt.core.WtWindowManager; *************** *** 25,29 **** * The 2D view of a useable item. */ ! class UseableItem2DView extends StackableItem2DView { // --- 26,30 ---- * The 2D view of a useable item. */ ! class UseableItem2DView extends StackableItem2DView<StackableItem> { // Index: Ring2DView.java =================================================================== RCS file: /cvsroot/arianne/stendhal/src/games/stendhal/client/gui/j2d/entity/Ring2DView.java,v retrieving revision 1.22 retrieving revision 1.23 diff -C2 -d -r1.22 -r1.23 *** Ring2DView.java 2 Oct 2011 15:12:48 -0000 1.22 --- Ring2DView.java 6 Apr 2012 14:41:18 -0000 1.23 *************** *** 17,21 **** import games.stendhal.client.ZoneInfo; import games.stendhal.client.entity.ActionType; - import games.stendhal.client.entity.IEntity; import games.stendhal.client.entity.Ring; import games.stendhal.client.sprite.Sprite; --- 17,20 ---- *************** *** 25,29 **** * The 2D view of a ring. */ ! class Ring2DView extends Item2DView { /** --- 24,28 ---- * The 2D view of a ring. */ ! class Ring2DView extends Item2DView<Ring> { /** *************** *** 52,56 **** @Override ! public void initialize(final IEntity entity) { super.initialize(entity); setSprite(getStateSprite()); --- 51,55 ---- @Override ! public void initialize(final Ring entity) { super.initialize(entity); setSprite(getStateSprite()); *************** *** 66,70 **** */ @Override ! protected void buildRepresentation(IEntity entity) { final SpriteStore store = SpriteStore.get(); Sprite tiles; --- 65,69 ---- */ @Override ! protected void buildRepresentation(Ring entity) { final SpriteStore store = SpriteStore.get(); Sprite tiles; *************** *** 92,96 **** */ protected Sprite getStateSprite() { ! if (((Ring) entity).isWorking()) { return working; } else { --- 91,95 ---- */ protected Sprite getStateSprite() { ! if (entity.isWorking()) { return working; } else { *************** *** 145,149 **** */ @Override ! public void entityChanged(final IEntity entity, final Object property) { super.entityChanged(entity, property); --- 144,148 ---- */ @Override ! public void entityChanged(final Ring entity, final Object property) { super.entityChanged(entity, property); Index: Portal2DView.java =================================================================== RCS file: /cvsroot/arianne/stendhal/src/games/stendhal/client/gui/j2d/entity/Portal2DView.java,v retrieving revision 1.20 retrieving revision 1.21 diff -C2 -d -r1.20 -r1.21 *** Portal2DView.java 5 Jan 2011 18:17:27 -0000 1.20 --- Portal2DView.java 6 Apr 2012 14:41:18 -0000 1.21 *************** *** 22,27 **** /** * The 2D view of a portal. */ ! class Portal2DView extends InvisibleEntity2DView { // --- 22,29 ---- /** * The 2D view of a portal. + * + * @param <T> type of Portal */ ! class Portal2DView<T extends Portal> extends InvisibleEntity2DView<T> { // *************** *** 38,42 **** @Override protected void buildActions(final List<String> list) { ! Portal portal = (Portal) entity; if ((portal != null) && !portal.isHidden()) { list.add(ActionType.USE.getRepresentation()); --- 40,44 ---- @Override protected void buildActions(final List<String> list) { ! Portal portal = entity; if ((portal != null) && !portal.isHidden()) { list.add(ActionType.USE.getRepresentation()); *************** *** 56,60 **** @Override public void onAction() { ! if (!((Portal) entity).isHidden()) { onAction(ActionType.USE); } --- 58,62 ---- @Override public void onAction() { ! if (!entity.isHidden()) { onAction(ActionType.USE); } *************** *** 86,90 **** @Override public boolean isInteractive() { ! return ((Portal) entity).isUseable(); } --- 88,92 ---- @Override public boolean isInteractive() { ! return entity.isUseable(); } Index: EntityViewFactory.java =================================================================== RCS file: /cvsroot/arianne/stendhal/src/games/stendhal/client/gui/j2d/entity/EntityViewFactory.java,v retrieving revision 1.34 retrieving revision 1.35 diff -C2 -d -r1.34 -r1.35 *** EntityViewFactory.java 27 Mar 2011 11:48:23 -0000 1.34 --- EntityViewFactory.java 6 Apr 2012 14:41:18 -0000 1.35 *************** *** 16,19 **** --- 16,20 ---- import games.stendhal.client.Triple; import games.stendhal.client.entity.IEntity; + import games.stendhal.client.entity.User; import games.stendhal.client.gui.wt.core.WtWindowManager; *************** *** 81,85 **** * @return The corresponding view, or <code>null</code>. */ ! public static EntityView create(final IEntity entity) { try { --- 82,87 ---- * @return The corresponding view, or <code>null</code>. */ ! @SuppressWarnings("unchecked") ! public static EntityView<IEntity> create(final IEntity entity) { try { *************** *** 91,95 **** if (StendhalClient.get().getCharacter().equalsIgnoreCase(entity.getName())) { User2DView user2DView = new User2DView(); ! user2DView.initialize(entity); return user2DView; } --- 93,97 ---- if (StendhalClient.get().getCharacter().equalsIgnoreCase(entity.getName())) { User2DView user2DView = new User2DView(); ! user2DView.initialize((User) entity); return user2DView; } *************** *** 114,118 **** } ! final EntityView en = entityClass.newInstance(); en.initialize(entity); --- 116,120 ---- } ! final EntityView<IEntity> en = entityClass.newInstance(); en.initialize(entity); Index: Door2DView.java =================================================================== RCS file: /cvsroot/arianne/stendhal/src/games/stendhal/client/gui/j2d/entity/Door2DView.java,v retrieving revision 1.34 retrieving revision 1.35 diff -C2 -d -r1.34 -r1.35 *** Door2DView.java 2 Oct 2011 14:46:47 -0000 1.34 --- Door2DView.java 6 Apr 2012 14:41:18 -0000 1.35 *************** *** 28,32 **** * The 2D view of a door. */ ! class Door2DView extends StateEntity2DView { /* * The closed state. --- 28,32 ---- * The 2D view of a door. */ ! class Door2DView extends StateEntity2DView<Door> { /* * The closed state. *************** *** 70,74 **** */ @Override ! protected void buildSprites(IEntity entity, final Map<Object, Sprite> map) { final String name = entity.getEntityClass(); --- 70,74 ---- */ @Override ! protected void buildSprites(Door entity, final Map<Object, Sprite> map) { final String name = entity.getEntityClass(); *************** *** 106,111 **** */ @Override ! protected Object getState(IEntity entity) { ! if (((Door) entity).isOpen()) { return STATE_OPEN; } else { --- 106,111 ---- */ @Override ! protected Object getState(Door entity) { ! if (entity.isOpen()) { return STATE_OPEN; } else { *************** *** 192,196 **** */ @Override ! public void entityChanged(final IEntity entity, final Object property) { super.entityChanged(entity, property); --- 192,196 ---- */ @Override ! public void entityChanged(final Door entity, final Object property) { super.entityChanged(entity, property); *************** *** 231,235 **** @Override public boolean isInteractive() { ! return ((Door) entity).isUseable(); } --- 231,235 ---- @Override public boolean isInteractive() { ! return entity.isUseable(); } Index: EntityView.java =================================================================== RCS file: /cvsroot/arianne/stendhal/src/games/stendhal/client/gui/j2d/entity/EntityView.java,v retrieving revision 1.12 retrieving revision 1.13 diff -C2 -d -r1.12 -r1.13 *** EntityView.java 14 Jan 2011 16:59:57 -0000 1.12 --- EntityView.java 6 Apr 2012 14:41:18 -0000 1.13 *************** *** 26,31 **** /** * The view of an entity. */ ! public interface EntityView { /** * Get the list of actions. --- 26,33 ---- /** * The view of an entity. + * + * @param <T> type of the entity */ ! public interface EntityView<T extends IEntity> { /** * Get the list of actions. *************** *** 40,44 **** * @return The view's entity. */ ! public IEntity getEntity(); /** --- 42,46 ---- * @return The view's entity. */ ! public T getEntity(); /** *************** *** 85,89 **** public void setContained(boolean b); ! public void initialize(IEntity entity); /** --- 87,91 ---- public void setContained(boolean b); ! public void initialize(T entity); /** Index: Sheep2DView.java =================================================================== RCS file: /cvsroot/arianne/stendhal/src/games/stendhal/client/gui/j2d/entity/Sheep2DView.java,v retrieving revision 1.18 retrieving revision 1.19 diff -C2 -d -r1.18 -r1.19 *** Sheep2DView.java 5 Jan 2011 18:17:27 -0000 1.18 --- Sheep2DView.java 6 Apr 2012 14:41:18 -0000 1.19 *************** *** 23,27 **** * The 2D view of a sheep. */ ! class Sheep2DView extends DomesticAnimal2DView { /** * The weight that a sheep becomes fat (big). --- 23,27 ---- * The 2D view of a sheep. */ ! class Sheep2DView extends DomesticAnimal2DView<Sheep> { /** * The weight that a sheep becomes fat (big). *************** *** 58,62 **** super.buildActions(list); User user = User.get(); ! Sheep sheep = (Sheep) entity; if (user != null) { --- 58,62 ---- super.buildActions(list); User user = User.get(); ! Sheep sheep = entity; if (user != null) { Index: Corpse2DView.java =================================================================== RCS file: /cvsroot/arianne/stendhal/src/games/stendhal/client/gui/j2d/entity/Corpse2DView.java,v retrieving revision 1.52 retrieving revision 1.53 diff -C2 -d -r1.52 -r1.53 *** Corpse2DView.java 2 Oct 2011 14:36:40 -0000 1.52 --- Corpse2DView.java 6 Apr 2012 14:41:18 -0000 1.53 *************** *** 39,44 **** /** * The 2D view of a corpse. */ ! class Corpse2DView extends Entity2DView { /** --- 39,46 ---- /** * The 2D view of a corpse. + * + * @param <T> corpse type */ ! class Corpse2DView<T extends Corpse> extends Entity2DView<T> { /** *************** *** 99,103 **** */ @Override ! protected void buildRepresentation(IEntity entity) { final String imageName = entity.getRPObject().get("image"); Sprite sprite = null; --- 101,105 ---- */ @Override ! protected void buildRepresentation(T entity) { final String imageName = entity.getRPObject().get("image"); Sprite sprite = null; *************** *** 178,182 **** */ @Override ! public void entityChanged(final IEntity entity, final Object property) { super.entityChanged(entity, property); --- 180,184 ---- */ @Override ! public void entityChanged(final T entity, final Object property) { super.entityChanged(entity, property); *************** *** 222,226 **** case INSPECT: boolean addListener = slotWindow == null; ! RPSlot content = ((Corpse) entity).getContent(); slotWindow = inspector.inspectMe(entity, content, slotWindow, 2, 2); SlotWindow window = slotWindow; --- 224,228 ---- case INSPECT: boolean addListener = slotWindow == null; ! RPSlot content = entity.getContent(); slotWindow = inspector.inspectMe(entity, content, slotWindow, 2, 2); SlotWindow window = slotWindow; *************** *** 308,312 **** public StendhalCursor getCursor() { StendhalCursor cursor = super.getCursor(); ! Corpse corpse = (Corpse) entity; // server override? --- 310,314 ---- public StendhalCursor getCursor() { StendhalCursor cursor = super.getCursor(); ! Corpse corpse = entity; // server override? *************** *** 350,355 **** boolean autoRaiseCorpse = Boolean.parseBoolean(WtWindowManager.getInstance().getProperty("gamescreen.autoinspectcorpses", "true")); if (autoRaiseCorpse) { ! Corpse corpse = (Corpse) entity; ! if ((corpse.getCorpseOwner() != null) && corpse.getCorpseOwner().equals(User.getCharacterName()) && !corpse.isEmpty()) { onAction(ActionType.INSPECT); } --- 352,356 ---- boolean autoRaiseCorpse = Boolean.parseBoolean(WtWindowManager.getInstance().getProperty("gamescreen.autoinspectcorpses", "true")); if (autoRaiseCorpse) { ! if ((entity.getCorpseOwner() != null) && entity.getCorpseOwner().equals(User.getCharacterName()) && !entity.isEmpty()) { onAction(ActionType.INSPECT); } Index: RPEntity2DView.java =================================================================== RCS file: /cvsroot/arianne/stendhal/src/games/stendhal/client/gui/j2d/entity/RPEntity2DView.java,v retrieving revision 1.63 retrieving revision 1.64 diff -C2 -d -r1.63 -r1.64 *** RPEntity2DView.java 5 Sep 2011 22:41:01 -0000 1.63 --- RPEntity2DView.java 6 Apr 2012 14:41:18 -0000 1.64 *************** *** 44,49 **** /** * The 2D view of an RP entity. */ ! abstract class RPEntity2DView extends ActiveEntity2DView { private static final int ICON_OFFSET = 8; --- 44,51 ---- /** * The 2D view of an RP entity. + * + * @param <T> type of RPEntity */ ! abstract class RPEntity2DView<T extends RPEntity> extends ActiveEntity2DView<T> { private static final int ICON_OFFSET = 8; *************** *** 152,156 **** @Override ! public void initialize(final IEntity entity) { super.initialize(entity); titleSprite = createTitleSprite(); --- 154,158 ---- @Override ! public void initialize(final T entity) { super.initialize(entity); titleSprite = createTitleSprite(); *************** *** 218,223 **** */ protected Sprite createTitleSprite() { ! final String titleType = ((RPEntity) entity).getTitleType(); ! final int adminlevel = ((RPEntity) entity).getAdminLevel(); Color nameColor = null; --- 220,225 ---- */ protected Sprite createTitleSprite() { ! final String titleType = entity.getTitleType(); ! final int adminlevel = entity.getAdminLevel(); Color nameColor = null; *************** *** 323,330 **** final int bx = x + ((width - barWidth) / 2); final int by = y - 3; - - RPEntity rpentity = (RPEntity) entity; ! final float hpRatio = rpentity.getHpRatio(); final float r = Math.min((1.0f - hpRatio) * 2.0f, 1.0f); --- 325,330 ---- final int bx = x + ((width - barWidth) / 2); final int by = y - 3; ! final float hpRatio = entity.getHpRatio(); final float r = Math.min((1.0f - hpRatio) * 2.0f, 1.0f); *************** *** 395,402 **** protected void drawIdeas(final Graphics2D g2d, final int x, final int y, final int height) { ! RPEntity rpentity = (RPEntity) entity; ! ! if (rpentity.isEating()) { ! if (rpentity.isChoking()) { chokingSprite.draw(g2d, x, y + height - 2 * ICON_OFFSET); } else { --- 395,400 ---- protected void drawIdeas(final Graphics2D g2d, final int x, final int y, final int height) { ! if (entity.isEating()) { ! if (entity.isChoking()) { chokingSprite.draw(g2d, x, y + height - 2 * ICON_OFFSET); } else { *************** *** 405,409 **** } ! if (rpentity.isPoisoned()) { poisonedSprite.draw(g2d, x - ICON_OFFSET, y + height - 2 * ICON_OFFSET); } --- 403,407 ---- } ! if (entity.isPoisoned()) { poisonedSprite.draw(g2d, x - ICON_OFFSET, y + height - 2 * ICON_OFFSET); } *************** *** 426,432 **** protected void drawCombat(final Graphics2D g2d, final int x, final int y, final int width, final int height) { ! RPEntity rpentity = (RPEntity) entity; ! ! Rectangle2D wrect = rpentity.getArea(); final Rectangle srect = new Rectangle((int) (wrect.getX() * IGameScreen.SIZE_UNIT_PIXELS), (int) (wrect.getY() * IGameScreen.SIZE_UNIT_PIXELS), --- 424,428 ---- protected void drawCombat(final Graphics2D g2d, final int x, final int y, final int width, final int height) { ! Rectangle2D wrect = entity.getArea(); final Rectangle srect = new Rectangle((int) (wrect.getX() * IGameScreen.SIZE_UNIT_PIXELS), (int) (wrect.getY() * IGameScreen.SIZE_UNIT_PIXELS), *************** *** 436,440 **** final double DIVISOR = 1.414213562; // sqrt(2) ! if (rpentity.isBeingAttacked()) { // Draw red box around //g2d.setColor(Color.white); --- 432,436 ---- final double DIVISOR = 1.414213562; // sqrt(2) ! if (entity.isBeingAttacked()) { // Draw red box around //g2d.setColor(Color.white); *************** *** 448,452 **** } ! if (rpentity.isAttacking(User.get())) { // Draw orange box around //g2d.setColor(Color.white); --- 444,448 ---- } ! if (entity.isAttacking(User.get())) { // Draw orange box around //g2d.setColor(Color.white); *************** *** 462,471 **** drawAttack(g2d, x, y, width, height); ! if (rpentity.isDefending()) { // Draw bottom right combat icon final int sx = srect.x + srect.width - ICON_OFFSET; final int sy = y + height - 2 * ICON_OFFSET; ! switch (rpentity.getResolution()) { case BLOCKED: blockedSprite.draw(g2d, sx, sy); --- 458,467 ---- drawAttack(g2d, x, y, width, height); ! if (entity.isDefending()) { // Draw bottom right combat icon final int sx = srect.x + srect.width - ICON_OFFSET; final int sy = y + height - 2 * ICON_OFFSET; ! switch (entity.getResolution()) { case BLOCKED: blockedSprite.draw(g2d, sx, sy); *************** *** 495,519 **** */ private void drawAttack(final Graphics2D g2d, final int x, final int y, final int width, final int height) { ! RPEntity rpentity = (RPEntity) entity; ! ! if (rpentity.isAttacking() && rpentity.getShownDamageType() != null) { if (frameBladeStrike < NUM_ATTACK_FRAMES) { ! RPEntity target = rpentity.getAttackTarget(); // A hack to check if it's a distance attack for proof // of concept arrow drawing. Should be specified in the // attack event itself ! final Rectangle2D area = rpentity.getArea(); ! area.setRect(rpentity.getX() - 0.25, rpentity.getY() - 0.25, rpentity.getWidth() ! + 2 * 0.25, rpentity.getHeight() + 2 * 0.25); if (area.intersects(target.getArea())) { ! drawStrike(g2d, rpentity, x, y, width, height); } else { ! drawDistanceAttack(g2d, rpentity, target, x, y, width, height); } frameBladeStrike++; } else { ! rpentity.doneStriking(); frameBladeStrike = 0; } --- 491,513 ---- */ private void drawAttack(final Graphics2D g2d, final int x, final int y, final int width, final int height) { ! if (entity.isAttacking() && entity.getShownDamageType() != null) { if (frameBladeStrike < NUM_ATTACK_FRAMES) { ! RPEntity target = entity.getAttackTarget(); // A hack to check if it's a distance attack for proof // of concept arrow drawing. Should be specified in the // attack event itself ! final Rectangle2D area = entity.getArea(); ! area.setRect(entity.getX() - 0.25, entity.getY() - 0.25, entity.getWidth() ! + 2 * 0.25, entity.getHeight() + 2 * 0.25); if (area.intersects(target.getArea())) { ! drawStrike(g2d, entity, x, y, width, height); } else { ! drawDistanceAttack(g2d, entity, target, x, y, width, height); } frameBladeStrike++; } else { ! entity.doneStriking(); frameBladeStrike = 0; } *************** *** 668,672 **** */ @Override ! protected void buildSprites(IEntity entity, final Map<Object, Sprite> map) { final Sprite tiles = getAnimationSprite(); --- 662,666 ---- */ @Override ! protected void buildSprites(T entity, final Map<Object, Sprite> map) { final Sprite tiles = getAnimationSprite(); *************** *** 840,844 **** ... [truncated message content] |