parent
1796c2858c
commit
1121c31509
Binary file not shown.
Before Width: | Height: | Size: 9.7 KiB After Width: | Height: | Size: 8.7 KiB |
Binary file not shown.
@ -1,4 +1,4 @@ |
|||||||
package mightypork.rogue.world.entity.renderers; |
package mightypork.rogue.world.entity.render; |
||||||
|
|
||||||
|
|
||||||
import mightypork.rogue.world.level.render.MapRenderContext; |
import mightypork.rogue.world.level.render.MapRenderContext; |
@ -0,0 +1,14 @@ |
|||||||
|
package mightypork.rogue.world.events; |
||||||
|
|
||||||
|
|
||||||
|
import mightypork.gamecore.eventbus.BusEvent; |
||||||
|
|
||||||
|
|
||||||
|
public class PlayerKilledEvent extends BusEvent<PlayerKilledListener> { |
||||||
|
|
||||||
|
@Override |
||||||
|
protected void handleBy(PlayerKilledListener handler) |
||||||
|
{ |
||||||
|
handler.onPlayerKilled(); |
||||||
|
} |
||||||
|
} |
@ -0,0 +1,7 @@ |
|||||||
|
package mightypork.rogue.world.events; |
||||||
|
|
||||||
|
|
||||||
|
public interface PlayerKilledListener { |
||||||
|
|
||||||
|
void onPlayerKilled(); |
||||||
|
} |
@ -0,0 +1,109 @@ |
|||||||
|
package mightypork.rogue.world.level; |
||||||
|
|
||||||
|
|
||||||
|
import mightypork.gamecore.eventbus.events.Updateable; |
||||||
|
import mightypork.gamecore.util.math.algo.Coord; |
||||||
|
import mightypork.rogue.world.World; |
||||||
|
import mightypork.rogue.world.entity.Entity; |
||||||
|
import mightypork.rogue.world.tile.Tile; |
||||||
|
import mightypork.rogue.world.tile.TileModel; |
||||||
|
|
||||||
|
|
||||||
|
/** |
||||||
|
* Level full access |
||||||
|
* |
||||||
|
* @author MightyPork |
||||||
|
*/ |
||||||
|
public interface LevelAccess extends LevelReadAccess, Updateable { |
||||||
|
|
||||||
|
|
||||||
|
/** |
||||||
|
* Mark tile and surrounding area as explored |
||||||
|
* |
||||||
|
* @param center center the explored tile |
||||||
|
*/ |
||||||
|
public abstract void explore(Coord center); |
||||||
|
|
||||||
|
|
||||||
|
/** |
||||||
|
* Assign a world |
||||||
|
* |
||||||
|
* @param world new world |
||||||
|
*/ |
||||||
|
public abstract void setWorld(World world); |
||||||
|
|
||||||
|
|
||||||
|
/** |
||||||
|
* Set level entry point |
||||||
|
* |
||||||
|
* @param pos pos where the player enters |
||||||
|
*/ |
||||||
|
public abstract void setEnterPoint(Coord pos); |
||||||
|
|
||||||
|
|
||||||
|
/** |
||||||
|
* Mark tile as free (entity left) |
||||||
|
* |
||||||
|
* @param pos tile pos |
||||||
|
*/ |
||||||
|
public abstract void freeTile(Coord pos); |
||||||
|
|
||||||
|
|
||||||
|
/** |
||||||
|
* Mark tile as occupied (entity entered) |
||||||
|
* |
||||||
|
* @param pos tile pos |
||||||
|
*/ |
||||||
|
public abstract void occupyTile(Coord pos); |
||||||
|
|
||||||
|
|
||||||
|
/** |
||||||
|
* Remove an entity from the level, if present |
||||||
|
* |
||||||
|
* @param eid entity id |
||||||
|
*/ |
||||||
|
public abstract void removeEntity(int eid); |
||||||
|
|
||||||
|
|
||||||
|
/** |
||||||
|
* Remove an entity from the level, if present |
||||||
|
* |
||||||
|
* @param entity entity |
||||||
|
*/ |
||||||
|
public abstract void removeEntity(Entity entity); |
||||||
|
|
||||||
|
|
||||||
|
/** |
||||||
|
* Set level seed (used for visuals; the seed used for generation) |
||||||
|
* |
||||||
|
* @param seed seed |
||||||
|
*/ |
||||||
|
public abstract void setSeed(long seed); |
||||||
|
|
||||||
|
|
||||||
|
/** |
||||||
|
* Set tile at pos |
||||||
|
* |
||||||
|
* @param pos tile pos |
||||||
|
* @param tile the tile instance to set |
||||||
|
*/ |
||||||
|
public abstract void setTile(Coord pos, Tile tile); |
||||||
|
|
||||||
|
|
||||||
|
/** |
||||||
|
* Fill whole map with tile type |
||||||
|
* |
||||||
|
* @param model tile model |
||||||
|
*/ |
||||||
|
public abstract void fill(TileModel model); |
||||||
|
|
||||||
|
|
||||||
|
/** |
||||||
|
* Try to add entity at given pos |
||||||
|
* |
||||||
|
* @param entity the entity |
||||||
|
* @param pos pos |
||||||
|
* @return true if added (false if void, wall etc) |
||||||
|
*/ |
||||||
|
public abstract boolean addEntity(Entity entity, Coord pos); |
||||||
|
} |
@ -0,0 +1,127 @@ |
|||||||
|
package mightypork.rogue.world.level; |
||||||
|
|
||||||
|
|
||||||
|
import java.util.Collection; |
||||||
|
|
||||||
|
import mightypork.gamecore.util.math.algo.Coord; |
||||||
|
import mightypork.gamecore.util.math.noise.NoiseGen; |
||||||
|
import mightypork.rogue.world.World; |
||||||
|
import mightypork.rogue.world.entity.Entity; |
||||||
|
import mightypork.rogue.world.entity.EntityType; |
||||||
|
import mightypork.rogue.world.tile.Tile; |
||||||
|
|
||||||
|
|
||||||
|
public interface LevelReadAccess { |
||||||
|
|
||||||
|
/** |
||||||
|
* Ge tile at X,Y |
||||||
|
* |
||||||
|
* @param pos |
||||||
|
* @return tile |
||||||
|
*/ |
||||||
|
Tile getTile(Coord pos); |
||||||
|
|
||||||
|
|
||||||
|
/** |
||||||
|
* @return map width in tiles |
||||||
|
*/ |
||||||
|
int getWidth(); |
||||||
|
|
||||||
|
|
||||||
|
/** |
||||||
|
* @return map height in tiles |
||||||
|
*/ |
||||||
|
int getHeight(); |
||||||
|
|
||||||
|
|
||||||
|
/** |
||||||
|
* @return map seed |
||||||
|
*/ |
||||||
|
long getSeed(); |
||||||
|
|
||||||
|
|
||||||
|
/** |
||||||
|
* @return level-specific noise generator |
||||||
|
*/ |
||||||
|
NoiseGen getNoiseGen(); |
||||||
|
|
||||||
|
|
||||||
|
/** |
||||||
|
* Check if entity is in the level |
||||||
|
* |
||||||
|
* @param entity entity |
||||||
|
* @return is present |
||||||
|
*/ |
||||||
|
boolean isEntityPresent(Entity entity); |
||||||
|
|
||||||
|
|
||||||
|
/** |
||||||
|
* Check if entity is in the level |
||||||
|
* |
||||||
|
* @param eid entity ID |
||||||
|
* @return true if present |
||||||
|
*/ |
||||||
|
boolean isEntityPresent(int eid); |
||||||
|
|
||||||
|
|
||||||
|
/** |
||||||
|
* Get entity of type closest to coord |
||||||
|
* |
||||||
|
* @param self the querying entity - to provide position, and to be excluded |
||||||
|
* from the search. |
||||||
|
* @param type wanted entity type |
||||||
|
* @param radius search radius; -1 for unlimited. |
||||||
|
* @return |
||||||
|
*/ |
||||||
|
Entity getClosestEntity(Entity self, EntityType type, double radius); |
||||||
|
|
||||||
|
|
||||||
|
/** |
||||||
|
* Get the level's world |
||||||
|
* |
||||||
|
* @return world |
||||||
|
*/ |
||||||
|
World getWorld(); |
||||||
|
|
||||||
|
|
||||||
|
/** |
||||||
|
* Get location where the player enters the level |
||||||
|
* |
||||||
|
* @return pos |
||||||
|
*/ |
||||||
|
Coord getEnterPoint(); |
||||||
|
|
||||||
|
|
||||||
|
/** |
||||||
|
* Check entity on tile |
||||||
|
* |
||||||
|
* @param pos tile coord |
||||||
|
* @return true if some entity is standing there |
||||||
|
*/ |
||||||
|
boolean isOccupied(Coord pos); |
||||||
|
|
||||||
|
|
||||||
|
/** |
||||||
|
* Check tile walkability |
||||||
|
* |
||||||
|
* @param pos tile coord |
||||||
|
* @return true if the tile is walkable by entity |
||||||
|
*/ |
||||||
|
boolean isWalkable(Coord pos); |
||||||
|
|
||||||
|
|
||||||
|
/** |
||||||
|
* Get entity by ID |
||||||
|
* |
||||||
|
* @param eid entity ID |
||||||
|
* @return the entity, or null |
||||||
|
*/ |
||||||
|
Entity getEntity(int eid); |
||||||
|
|
||||||
|
|
||||||
|
/** |
||||||
|
* @return all entities |
||||||
|
*/ |
||||||
|
Collection<Entity> getEntities(); |
||||||
|
|
||||||
|
} |
@ -1,47 +0,0 @@ |
|||||||
package mightypork.rogue.world.level; |
|
||||||
|
|
||||||
|
|
||||||
import mightypork.gamecore.util.math.algo.Coord; |
|
||||||
import mightypork.gamecore.util.math.noise.NoiseGen; |
|
||||||
import mightypork.rogue.world.tile.Tile; |
|
||||||
|
|
||||||
|
|
||||||
/** |
|
||||||
* Access interface for a level map. |
|
||||||
* |
|
||||||
* @author MightyPork |
|
||||||
*/ |
|
||||||
public interface MapAccess { |
|
||||||
|
|
||||||
/** |
|
||||||
* Ge tile at X,Y |
|
||||||
* |
|
||||||
* @param pos |
|
||||||
* @return tile |
|
||||||
*/ |
|
||||||
Tile getTile(Coord pos); |
|
||||||
|
|
||||||
|
|
||||||
/** |
|
||||||
* @return map width in tiles |
|
||||||
*/ |
|
||||||
int getWidth(); |
|
||||||
|
|
||||||
|
|
||||||
/** |
|
||||||
* @return map height in tiles |
|
||||||
*/ |
|
||||||
int getHeight(); |
|
||||||
|
|
||||||
|
|
||||||
/** |
|
||||||
* @return map seed |
|
||||||
*/ |
|
||||||
long getSeed(); |
|
||||||
|
|
||||||
|
|
||||||
/** |
|
||||||
* @return level-specific noise generator |
|
||||||
*/ |
|
||||||
NoiseGen getNoiseGen(); |
|
||||||
} |
|
@ -1,4 +1,4 @@ |
|||||||
package mightypork.rogue.world.tile.renderers; |
package mightypork.rogue.world.tile.render; |
||||||
|
|
||||||
|
|
||||||
import mightypork.gamecore.render.Render; |
import mightypork.gamecore.render.Render; |
@ -1,4 +1,4 @@ |
|||||||
package mightypork.rogue.world.tile.renderers; |
package mightypork.rogue.world.tile.render; |
||||||
|
|
||||||
|
|
||||||
import mightypork.gamecore.render.Render; |
import mightypork.gamecore.render.Render; |
@ -1,4 +1,4 @@ |
|||||||
package mightypork.rogue.world.tile.renderers; |
package mightypork.rogue.world.tile.render; |
||||||
|
|
||||||
|
|
||||||
import mightypork.rogue.world.level.render.TileRenderContext; |
import mightypork.rogue.world.level.render.TileRenderContext; |
Loading…
Reference in new issue