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; |
@ -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; |
@ -1,4 +1,4 @@ |
||||
package mightypork.rogue.world.tile.renderers; |
||||
package mightypork.rogue.world.tile.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; |
Loading…
Reference in new issue