package rabbitescape.engine; import java.util.Map; import rabbitescape.engine.ChangeDescription.State; public abstract class Thing implements ShownOnOverlay { public State state; public int x; public int y; public Thing( int x, int y, State state ) { this.state = state; this.x = x; this.y = y; } public abstract void calcNewState( World world ); public abstract void step( World world ); public abstract Map<String, String> saveState(); public abstract void restoreFromState( Map<String, String> state ); @Override public abstract String overlayText(); }