parent
78035ced7a
commit
fb244dc2b9
@ -1,40 +0,0 @@ |
|||||||
package mightypork.gamecore.util.math.algo.pathfinding; |
|
||||||
|
|
||||||
|
|
||||||
import mightypork.gamecore.util.math.algo.Coord; |
|
||||||
import mightypork.gamecore.util.math.algo.Step; |
|
||||||
|
|
||||||
|
|
||||||
public interface PathFindingContext { |
|
||||||
|
|
||||||
/** |
|
||||||
* @param pos tile pos |
|
||||||
* @return true if the tile is walkable |
|
||||||
*/ |
|
||||||
boolean isAccessible(Coord pos); |
|
||||||
|
|
||||||
|
|
||||||
/** |
|
||||||
* Cost of walking onto a tile. It's useful to use ie. 10 for basic step. |
|
||||||
* |
|
||||||
* @param from last tile |
|
||||||
* @param to current tile |
|
||||||
* @return cost |
|
||||||
*/ |
|
||||||
int getCost(Coord from, Coord to); |
|
||||||
|
|
||||||
|
|
||||||
/** |
|
||||||
* @return lowest cost. Used to multiply heuristics. |
|
||||||
*/ |
|
||||||
int getMinCost(); |
|
||||||
|
|
||||||
|
|
||||||
/** |
|
||||||
* @return used heuristic |
|
||||||
*/ |
|
||||||
Heuristic getHeuristic(); |
|
||||||
|
|
||||||
|
|
||||||
Step[] getWalkSides(); |
|
||||||
} |
|
@ -1,29 +0,0 @@ |
|||||||
package mightypork.rogue.world.entity; |
|
||||||
|
|
||||||
|
|
||||||
import mightypork.gamecore.util.math.algo.Coord; |
|
||||||
|
|
||||||
|
|
||||||
public class SimpleEntityPathFindingContext extends EntityPathfindingContext { |
|
||||||
|
|
||||||
public SimpleEntityPathFindingContext(Entity entity) |
|
||||||
{ |
|
||||||
super(entity); |
|
||||||
} |
|
||||||
|
|
||||||
|
|
||||||
@Override |
|
||||||
public int getCost(Coord from, Coord to) |
|
||||||
{ |
|
||||||
return 10; |
|
||||||
} |
|
||||||
|
|
||||||
|
|
||||||
@Override |
|
||||||
public int getMinCost() |
|
||||||
{ |
|
||||||
return 10; |
|
||||||
} |
|
||||||
|
|
||||||
|
|
||||||
} |
|
@ -0,0 +1,59 @@ |
|||||||
|
package mightypork.rogue.world.entity.entities; |
||||||
|
|
||||||
|
|
||||||
|
import mightypork.rogue.world.entity.Entity; |
||||||
|
|
||||||
|
|
||||||
|
public class RatAi extends MonsterAi { |
||||||
|
|
||||||
|
public RatAi(Entity entity) |
||||||
|
{ |
||||||
|
super(entity); |
||||||
|
|
||||||
|
setAttackTime(1); |
||||||
|
setScanTime(2); |
||||||
|
setSleepTime(100); |
||||||
|
} |
||||||
|
|
||||||
|
|
||||||
|
@Override |
||||||
|
protected double getScanRadius() |
||||||
|
{ |
||||||
|
return isSleeping() ? 2 + rand.nextInt(3) : 4 + rand.nextInt(3); |
||||||
|
} |
||||||
|
|
||||||
|
|
||||||
|
@Override |
||||||
|
protected double getAttackDistance() |
||||||
|
{ |
||||||
|
return 1.42; |
||||||
|
} |
||||||
|
|
||||||
|
|
||||||
|
@Override |
||||||
|
protected int getAttackStrength() |
||||||
|
{ |
||||||
|
return 1 + rand.nextInt(2); |
||||||
|
} |
||||||
|
|
||||||
|
|
||||||
|
@Override |
||||||
|
protected int getPreyAbandonDistance() |
||||||
|
{ |
||||||
|
return 8 + rand.nextInt(4); |
||||||
|
} |
||||||
|
|
||||||
|
|
||||||
|
@Override |
||||||
|
protected boolean shouldSkipScan() |
||||||
|
{ |
||||||
|
return false;//rand.nextInt(3) == 0;
|
||||||
|
} |
||||||
|
|
||||||
|
|
||||||
|
@Override |
||||||
|
protected boolean shouldRandomlyAbandonPrey() |
||||||
|
{ |
||||||
|
return false;//rand.nextInt(8) == 0;
|
||||||
|
} |
||||||
|
} |
@ -0,0 +1,59 @@ |
|||||||
|
package mightypork.rogue.world.entity.entities; |
||||||
|
|
||||||
|
|
||||||
|
import mightypork.gamecore.util.math.algo.pathfinding.PathFinder; |
||||||
|
import mightypork.rogue.world.entity.*; |
||||||
|
import mightypork.rogue.world.entity.renderers.EntityRenderer; |
||||||
|
import mightypork.rogue.world.entity.renderers.EntityRendererMobLR; |
||||||
|
|
||||||
|
|
||||||
|
public class RatEntity extends Entity { |
||||||
|
|
||||||
|
/** Navigation PFC */ |
||||||
|
private PathFinder pathf; |
||||||
|
|
||||||
|
private final RatAi ai = new RatAi(this); |
||||||
|
|
||||||
|
private EntityRenderer renderer; |
||||||
|
|
||||||
|
|
||||||
|
public RatEntity(EntityModel model, int eid) |
||||||
|
{ |
||||||
|
super(model, eid); |
||||||
|
|
||||||
|
addModule("ai", ai); |
||||||
|
pos.addMoveListener(ai); |
||||||
|
|
||||||
|
pos.setStepTime(0.5); |
||||||
|
} |
||||||
|
|
||||||
|
|
||||||
|
@Override |
||||||
|
public PathFinder getPathFinder() |
||||||
|
{ |
||||||
|
if (pathf == null) { |
||||||
|
pathf = new EntityPathFinder(this); |
||||||
|
} |
||||||
|
|
||||||
|
return pathf; |
||||||
|
} |
||||||
|
|
||||||
|
|
||||||
|
@Override |
||||||
|
public EntityType getType() |
||||||
|
{ |
||||||
|
return EntityType.MONSTER; |
||||||
|
} |
||||||
|
|
||||||
|
|
||||||
|
@Override |
||||||
|
protected EntityRenderer getRenderer() |
||||||
|
{ |
||||||
|
if (renderer == null) { |
||||||
|
renderer = new EntityRendererMobLR(this, "sprite.player"); |
||||||
|
} |
||||||
|
|
||||||
|
return renderer; |
||||||
|
} |
||||||
|
|
||||||
|
} |
@ -1,41 +0,0 @@ |
|||||||
package mightypork.rogue.world.entity.entities; |
|
||||||
|
|
||||||
|
|
||||||
import mightypork.gamecore.util.math.algo.pathfinding.PathFindingContext; |
|
||||||
import mightypork.rogue.world.entity.*; |
|
||||||
|
|
||||||
|
|
||||||
public abstract class SimpleMonster extends Entity { |
|
||||||
|
|
||||||
/** Navigation PFC */ |
|
||||||
private EntityPathfindingContext pathfc; |
|
||||||
|
|
||||||
private final EntityModule ai = new MonsterAi(this); |
|
||||||
|
|
||||||
|
|
||||||
public SimpleMonster(EntityModel model, int eid) |
|
||||||
{ |
|
||||||
super(model, eid); |
|
||||||
|
|
||||||
addModule("ai", ai); |
|
||||||
} |
|
||||||
|
|
||||||
|
|
||||||
@Override |
|
||||||
public PathFindingContext getPathfindingContext() |
|
||||||
{ |
|
||||||
if (pathfc == null) { |
|
||||||
pathfc = new SimpleEntityPathFindingContext(this); |
|
||||||
} |
|
||||||
|
|
||||||
return pathfc; |
|
||||||
} |
|
||||||
|
|
||||||
|
|
||||||
@Override |
|
||||||
public EntityType getType() |
|
||||||
{ |
|
||||||
return EntityType.MONSTER; |
|
||||||
} |
|
||||||
|
|
||||||
} |
|
@ -1,14 +0,0 @@ |
|||||||
package mightypork.rogue.world.tile; |
|
||||||
|
|
||||||
|
|
||||||
/** |
|
||||||
* Data storage for tile renderer |
|
||||||
* |
|
||||||
* @author MightyPork |
|
||||||
*/ |
|
||||||
public class TileRenderData { |
|
||||||
|
|
||||||
public byte shadows; |
|
||||||
public boolean shadowsComputed; |
|
||||||
|
|
||||||
} |
|
@ -1,39 +0,0 @@ |
|||||||
package mightypork.rogue.world.tile.renderers; |
|
||||||
|
|
||||||
|
|
||||||
import mightypork.gamecore.render.Render; |
|
||||||
import mightypork.gamecore.resources.textures.TxSheet; |
|
||||||
import mightypork.gamecore.util.math.constraints.rect.Rect; |
|
||||||
import mightypork.rogue.Res; |
|
||||||
import mightypork.rogue.world.level.render.TileRenderContext; |
|
||||||
import mightypork.rogue.world.tile.Tile; |
|
||||||
import mightypork.rogue.world.tile.TileRenderer; |
|
||||||
|
|
||||||
|
|
||||||
public class DoorRenderer extends TileRenderer { |
|
||||||
|
|
||||||
private final TxSheet closed; |
|
||||||
private final TxSheet open; |
|
||||||
|
|
||||||
|
|
||||||
public DoorRenderer(String quadClosed, String quadOpen) |
|
||||||
{ |
|
||||||
this.closed = Res.getTxSheet(quadClosed); |
|
||||||
this.open = Res.getTxSheet(quadOpen); |
|
||||||
} |
|
||||||
|
|
||||||
|
|
||||||
@Override |
|
||||||
public void renderTile(TileRenderContext context) |
|
||||||
{ |
|
||||||
final Tile t = context.getTile(); |
|
||||||
final Rect rect = context.getRect(); |
|
||||||
|
|
||||||
if (t.isOccupied()) { |
|
||||||
Render.quadTextured(rect, open.getRandomQuad(context.getTileNoise())); |
|
||||||
} else { |
|
||||||
Render.quadTextured(rect, closed.getRandomQuad(context.getTileNoise())); |
|
||||||
} |
|
||||||
} |
|
||||||
|
|
||||||
} |
|
@ -0,0 +1,70 @@ |
|||||||
|
package mightypork.rogue.world.tile.renderers; |
||||||
|
|
||||||
|
|
||||||
|
import mightypork.gamecore.render.Render; |
||||||
|
import mightypork.gamecore.resources.textures.TxSheet; |
||||||
|
import mightypork.gamecore.util.math.constraints.rect.Rect; |
||||||
|
import mightypork.gamecore.util.math.timing.TimedTask; |
||||||
|
import mightypork.rogue.Res; |
||||||
|
import mightypork.rogue.world.level.render.TileRenderContext; |
||||||
|
import mightypork.rogue.world.tile.Tile; |
||||||
|
import mightypork.rogue.world.tile.TileRenderer; |
||||||
|
import mightypork.rogue.world.tile.tiles.TileBaseDoor; |
||||||
|
|
||||||
|
|
||||||
|
public class DoorTileRenderer extends TileRenderer { |
||||||
|
|
||||||
|
private final TxSheet locked; |
||||||
|
private final TxSheet closed; |
||||||
|
private final TxSheet open; |
||||||
|
|
||||||
|
private boolean visuallyOpen = false; |
||||||
|
|
||||||
|
private final TimedTask closeTask = new TimedTask() { |
||||||
|
|
||||||
|
@Override |
||||||
|
public void run() |
||||||
|
{ |
||||||
|
System.out.println("CLOSEDOOR + "+ ((TileBaseDoor) tile).isOpen()); |
||||||
|
visuallyOpen = ((TileBaseDoor) tile).isOpen(); |
||||||
|
} |
||||||
|
}; |
||||||
|
|
||||||
|
|
||||||
|
public DoorTileRenderer(TileBaseDoor doorTile, TxSheet locked, TxSheet closed, TxSheet open) |
||||||
|
{ |
||||||
|
super(doorTile); |
||||||
|
|
||||||
|
this.locked = locked; |
||||||
|
this.closed = closed; |
||||||
|
this.open = open; |
||||||
|
} |
||||||
|
|
||||||
|
|
||||||
|
@Override |
||||||
|
public void renderTile(TileRenderContext context) |
||||||
|
{ |
||||||
|
final Rect rect = context.getRect(); |
||||||
|
|
||||||
|
if (!visuallyOpen && ((TileBaseDoor) tile).isOpen()) visuallyOpen = true; |
||||||
|
|
||||||
|
if (visuallyOpen && !((TileBaseDoor) tile).isOpen()) { |
||||||
|
if(!closeTask.isRunning()) closeTask.start(0.4); |
||||||
|
} |
||||||
|
|
||||||
|
if (visuallyOpen) { |
||||||
|
Render.quadTextured(rect, open.getRandomQuad(context.getTileNoise())); |
||||||
|
} else { |
||||||
|
TxSheet sheet = (((TileBaseDoor) tile).isLocked() ? locked : closed); |
||||||
|
Render.quadTextured(rect, sheet.getRandomQuad(context.getTileNoise())); |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
|
||||||
|
@Override |
||||||
|
public void update(double delta) |
||||||
|
{ |
||||||
|
closeTask.update(delta); |
||||||
|
} |
||||||
|
|
||||||
|
} |
@ -1,38 +0,0 @@ |
|||||||
package mightypork.rogue.world.tile.renderers; |
|
||||||
|
|
||||||
|
|
||||||
import mightypork.gamecore.render.Render; |
|
||||||
import mightypork.gamecore.resources.textures.TxSheet; |
|
||||||
import mightypork.gamecore.util.math.constraints.rect.Rect; |
|
||||||
import mightypork.rogue.Res; |
|
||||||
import mightypork.rogue.world.level.render.TileRenderContext; |
|
||||||
import mightypork.rogue.world.tile.Tile; |
|
||||||
import mightypork.rogue.world.tile.TileRenderer; |
|
||||||
|
|
||||||
|
|
||||||
public class LockedDoorRenderer extends DoorRenderer { |
|
||||||
|
|
||||||
private final TxSheet locked; |
|
||||||
|
|
||||||
|
|
||||||
public LockedDoorRenderer(String sheetLocked, String sheetClosed, String sheetOpen) |
|
||||||
{ |
|
||||||
super(sheetClosed, sheetOpen); |
|
||||||
this.locked = Res.getTxSheet(sheetLocked); |
|
||||||
} |
|
||||||
|
|
||||||
|
|
||||||
@Override |
|
||||||
public void renderTile(TileRenderContext context) |
|
||||||
{ |
|
||||||
final Tile t = context.getTile(); |
|
||||||
|
|
||||||
if (!t.isWalkable()) { |
|
||||||
final Rect rect = context.getRect(); |
|
||||||
Render.quadTextured(rect, locked.getRandomQuad(context.getTileNoise())); |
|
||||||
} else { |
|
||||||
super.renderTile(context); |
|
||||||
} |
|
||||||
} |
|
||||||
|
|
||||||
} |
|
@ -1,29 +0,0 @@ |
|||||||
package mightypork.rogue.world.tile.tiles; |
|
||||||
|
|
||||||
|
|
||||||
import mightypork.rogue.world.tile.TileModel; |
|
||||||
import mightypork.rogue.world.tile.TileRenderer; |
|
||||||
import mightypork.rogue.world.tile.TileType; |
|
||||||
|
|
||||||
|
|
||||||
public class DoorTile extends SolidTile { |
|
||||||
|
|
||||||
public DoorTile(TileModel model, TileRenderer renderer) |
|
||||||
{ |
|
||||||
super(model, renderer); |
|
||||||
} |
|
||||||
|
|
||||||
|
|
||||||
@Override |
|
||||||
public boolean isWalkable() |
|
||||||
{ |
|
||||||
return true; |
|
||||||
} |
|
||||||
|
|
||||||
|
|
||||||
@Override |
|
||||||
public TileType getType() |
|
||||||
{ |
|
||||||
return TileType.DOOR; |
|
||||||
} |
|
||||||
} |
|
@ -1,22 +0,0 @@ |
|||||||
package mightypork.rogue.world.tile.tiles; |
|
||||||
|
|
||||||
|
|
||||||
import mightypork.rogue.world.tile.TileModel; |
|
||||||
import mightypork.rogue.world.tile.TileRenderer; |
|
||||||
import mightypork.rogue.world.tile.TileType; |
|
||||||
|
|
||||||
|
|
||||||
public class FloorTile extends GroundTile { |
|
||||||
|
|
||||||
public FloorTile(TileModel model, TileRenderer renderer) |
|
||||||
{ |
|
||||||
super(model, renderer); |
|
||||||
} |
|
||||||
|
|
||||||
|
|
||||||
@Override |
|
||||||
public TileType getType() |
|
||||||
{ |
|
||||||
return TileType.FLOOR; |
|
||||||
} |
|
||||||
} |
|
@ -1,44 +0,0 @@ |
|||||||
package mightypork.rogue.world.tile.tiles; |
|
||||||
|
|
||||||
|
|
||||||
import java.io.IOException; |
|
||||||
|
|
||||||
import mightypork.gamecore.util.ion.IonInput; |
|
||||||
import mightypork.gamecore.util.ion.IonOutput; |
|
||||||
import mightypork.rogue.world.tile.TileModel; |
|
||||||
import mightypork.rogue.world.tile.TileRenderer; |
|
||||||
|
|
||||||
|
|
||||||
public class LockedDoorTile extends DoorTile { |
|
||||||
|
|
||||||
public boolean locked = true; |
|
||||||
|
|
||||||
|
|
||||||
public LockedDoorTile(TileModel model, TileRenderer renderer) |
|
||||||
{ |
|
||||||
super(model, renderer); |
|
||||||
} |
|
||||||
|
|
||||||
|
|
||||||
@Override |
|
||||||
public boolean isWalkable() |
|
||||||
{ |
|
||||||
return !locked; |
|
||||||
} |
|
||||||
|
|
||||||
|
|
||||||
@Override |
|
||||||
public void load(IonInput in) throws IOException |
|
||||||
{ |
|
||||||
super.load(in); |
|
||||||
locked = in.readBoolean(); |
|
||||||
} |
|
||||||
|
|
||||||
|
|
||||||
@Override |
|
||||||
public void save(IonOutput out) throws IOException |
|
||||||
{ |
|
||||||
super.save(out); |
|
||||||
out.writeBoolean(locked); |
|
||||||
} |
|
||||||
} |
|
@ -0,0 +1,82 @@ |
|||||||
|
package mightypork.rogue.world.tile.tiles; |
||||||
|
|
||||||
|
|
||||||
|
import java.io.IOException; |
||||||
|
|
||||||
|
import mightypork.gamecore.resources.textures.TxSheet; |
||||||
|
import mightypork.gamecore.util.ion.IonInput; |
||||||
|
import mightypork.gamecore.util.ion.IonOutput; |
||||||
|
import mightypork.rogue.world.tile.TileModel; |
||||||
|
import mightypork.rogue.world.tile.TileRenderer; |
||||||
|
import mightypork.rogue.world.tile.TileType; |
||||||
|
import mightypork.rogue.world.tile.renderers.DoorTileRenderer; |
||||||
|
|
||||||
|
|
||||||
|
public abstract class TileBaseDoor extends TileSolid { |
||||||
|
|
||||||
|
private final DoorTileRenderer renderer; |
||||||
|
protected boolean locked = false; |
||||||
|
|
||||||
|
|
||||||
|
public TileBaseDoor(TileModel model, TxSheet locked, TxSheet closed, TxSheet open) |
||||||
|
{ |
||||||
|
super(model); |
||||||
|
|
||||||
|
this.renderer = new DoorTileRenderer(this, locked, closed, open); |
||||||
|
} |
||||||
|
|
||||||
|
|
||||||
|
@Override |
||||||
|
protected TileRenderer getRenderer() |
||||||
|
{ |
||||||
|
return renderer; |
||||||
|
} |
||||||
|
|
||||||
|
|
||||||
|
@Override |
||||||
|
public boolean isWalkable() |
||||||
|
{ |
||||||
|
return !locked; |
||||||
|
} |
||||||
|
|
||||||
|
|
||||||
|
@Override |
||||||
|
public TileType getType() |
||||||
|
{ |
||||||
|
return TileType.DOOR; |
||||||
|
} |
||||||
|
|
||||||
|
|
||||||
|
@Override |
||||||
|
public void load(IonInput in) throws IOException |
||||||
|
{ |
||||||
|
super.load(in); |
||||||
|
locked = in.readBoolean(); |
||||||
|
} |
||||||
|
|
||||||
|
|
||||||
|
@Override |
||||||
|
public void save(IonOutput out) throws IOException |
||||||
|
{ |
||||||
|
super.save(out); |
||||||
|
out.writeBoolean(locked); |
||||||
|
} |
||||||
|
|
||||||
|
|
||||||
|
/** |
||||||
|
* @return true if the door appears open |
||||||
|
*/ |
||||||
|
public boolean isOpen() |
||||||
|
{ |
||||||
|
return isOccupied(); |
||||||
|
} |
||||||
|
|
||||||
|
|
||||||
|
/** |
||||||
|
* @return true if the door is locked |
||||||
|
*/ |
||||||
|
public boolean isLocked() |
||||||
|
{ |
||||||
|
return locked; |
||||||
|
} |
||||||
|
} |
@ -0,0 +1,34 @@ |
|||||||
|
package mightypork.rogue.world.tile.tiles; |
||||||
|
|
||||||
|
|
||||||
|
import mightypork.gamecore.resources.textures.TxSheet; |
||||||
|
import mightypork.rogue.world.tile.TileModel; |
||||||
|
import mightypork.rogue.world.tile.TileRenderer; |
||||||
|
import mightypork.rogue.world.tile.TileType; |
||||||
|
import mightypork.rogue.world.tile.renderers.BasicTileRenderer; |
||||||
|
|
||||||
|
|
||||||
|
public abstract class TileBaseFloor extends TileWalkable { |
||||||
|
|
||||||
|
private BasicTileRenderer renderer; |
||||||
|
|
||||||
|
|
||||||
|
public TileBaseFloor(TileModel model, TxSheet sheet) |
||||||
|
{ |
||||||
|
super(model); |
||||||
|
this.renderer = new BasicTileRenderer(this, sheet); |
||||||
|
} |
||||||
|
|
||||||
|
@Override |
||||||
|
protected TileRenderer getRenderer() |
||||||
|
{ |
||||||
|
return renderer; |
||||||
|
} |
||||||
|
|
||||||
|
|
||||||
|
@Override |
||||||
|
public TileType getType() |
||||||
|
{ |
||||||
|
return TileType.FLOOR; |
||||||
|
} |
||||||
|
} |
@ -0,0 +1,49 @@ |
|||||||
|
package mightypork.rogue.world.tile.tiles; |
||||||
|
|
||||||
|
|
||||||
|
import mightypork.gamecore.resources.textures.TxSheet; |
||||||
|
import mightypork.rogue.world.tile.TileModel; |
||||||
|
import mightypork.rogue.world.tile.TileRenderer; |
||||||
|
import mightypork.rogue.world.tile.TileType; |
||||||
|
import mightypork.rogue.world.tile.renderers.BasicTileRenderer; |
||||||
|
|
||||||
|
|
||||||
|
/** |
||||||
|
* Collapsed wall that's walk-through |
||||||
|
* |
||||||
|
* @author MightyPork |
||||||
|
*/ |
||||||
|
public abstract class TileBasePassage extends TileSolid { |
||||||
|
|
||||||
|
private BasicTileRenderer renderer; |
||||||
|
|
||||||
|
|
||||||
|
public TileBasePassage(TileModel model, TxSheet sheet) |
||||||
|
{ |
||||||
|
super(model); |
||||||
|
|
||||||
|
this.renderer = new BasicTileRenderer(this, sheet); |
||||||
|
} |
||||||
|
|
||||||
|
|
||||||
|
@Override |
||||||
|
protected TileRenderer getRenderer() |
||||||
|
{ |
||||||
|
return renderer; |
||||||
|
} |
||||||
|
|
||||||
|
|
||||||
|
@Override |
||||||
|
public TileType getType() |
||||||
|
{ |
||||||
|
return TileType.PASSAGE; |
||||||
|
} |
||||||
|
|
||||||
|
|
||||||
|
@Override |
||||||
|
public boolean isWalkable() |
||||||
|
{ |
||||||
|
return true; |
||||||
|
} |
||||||
|
|
||||||
|
} |
@ -0,0 +1,35 @@ |
|||||||
|
package mightypork.rogue.world.tile.tiles; |
||||||
|
|
||||||
|
|
||||||
|
import mightypork.gamecore.resources.textures.TxSheet; |
||||||
|
import mightypork.rogue.world.level.render.TileRenderContext; |
||||||
|
import mightypork.rogue.world.tile.TileModel; |
||||||
|
import mightypork.rogue.world.tile.TileRenderer; |
||||||
|
import mightypork.rogue.world.tile.TileType; |
||||||
|
import mightypork.rogue.world.tile.renderers.BasicTileRenderer; |
||||||
|
|
||||||
|
|
||||||
|
public abstract class TileBaseWall extends TileSolid { |
||||||
|
|
||||||
|
private BasicTileRenderer renderer; |
||||||
|
|
||||||
|
|
||||||
|
public TileBaseWall(TileModel model, TxSheet sheet) |
||||||
|
{ |
||||||
|
super(model); |
||||||
|
this.renderer = new BasicTileRenderer(this, sheet); |
||||||
|
} |
||||||
|
|
||||||
|
|
||||||
|
public BasicTileRenderer getRenderer() |
||||||
|
{ |
||||||
|
return renderer; |
||||||
|
} |
||||||
|
|
||||||
|
|
||||||
|
@Override |
||||||
|
public TileType getType() |
||||||
|
{ |
||||||
|
return TileType.WALL; |
||||||
|
} |
||||||
|
} |
@ -1,35 +0,0 @@ |
|||||||
package mightypork.rogue.world.tile.tiles; |
|
||||||
|
|
||||||
|
|
||||||
import mightypork.rogue.world.tile.TileModel; |
|
||||||
import mightypork.rogue.world.tile.TileRenderer; |
|
||||||
import mightypork.rogue.world.tile.TileType; |
|
||||||
|
|
||||||
|
|
||||||
/** |
|
||||||
* Collapsed wall that's walk-through |
|
||||||
* |
|
||||||
* @author MightyPork |
|
||||||
*/ |
|
||||||
public class WallPassageTile extends SolidTile { |
|
||||||
|
|
||||||
public WallPassageTile(TileModel model, TileRenderer renderer) |
|
||||||
{ |
|
||||||
super(model, renderer); |
|
||||||
} |
|
||||||
|
|
||||||
|
|
||||||
@Override |
|
||||||
public TileType getType() |
|
||||||
{ |
|
||||||
return TileType.PASSAGE; |
|
||||||
} |
|
||||||
|
|
||||||
|
|
||||||
@Override |
|
||||||
public boolean isWalkable() |
|
||||||
{ |
|
||||||
return true; |
|
||||||
} |
|
||||||
|
|
||||||
} |
|
@ -1,22 +0,0 @@ |
|||||||
package mightypork.rogue.world.tile.tiles; |
|
||||||
|
|
||||||
|
|
||||||
import mightypork.rogue.world.tile.TileModel; |
|
||||||
import mightypork.rogue.world.tile.TileRenderer; |
|
||||||
import mightypork.rogue.world.tile.TileType; |
|
||||||
|
|
||||||
|
|
||||||
public class WallTile extends SolidTile { |
|
||||||
|
|
||||||
public WallTile(TileModel model, TileRenderer renderer) |
|
||||||
{ |
|
||||||
super(model, renderer); |
|
||||||
} |
|
||||||
|
|
||||||
|
|
||||||
@Override |
|
||||||
public TileType getType() |
|
||||||
{ |
|
||||||
return TileType.WALL; |
|
||||||
} |
|
||||||
} |
|
@ -0,0 +1,22 @@ |
|||||||
|
package mightypork.rogue.world.tile.tiles.brick; |
||||||
|
|
||||||
|
import mightypork.rogue.Res; |
||||||
|
import mightypork.rogue.world.tile.TileModel; |
||||||
|
import mightypork.rogue.world.tile.tiles.TileBaseDoor; |
||||||
|
|
||||||
|
|
||||||
|
public class TileBrickDoor extends TileBaseDoor { |
||||||
|
|
||||||
|
public TileBrickDoor(TileModel model) |
||||||
|
{ |
||||||
|
//@formatter:off
|
||||||
|
super( |
||||||
|
model, |
||||||
|
Res.sheet("tile.brick.door.locked"), |
||||||
|
Res.sheet("tile.brick.door.closed"), |
||||||
|
Res.sheet("tile.brick.door.open") |
||||||
|
); |
||||||
|
//@formatter:on
|
||||||
|
} |
||||||
|
|
||||||
|
} |
@ -0,0 +1,16 @@ |
|||||||
|
package mightypork.rogue.world.tile.tiles.brick; |
||||||
|
|
||||||
|
import mightypork.gamecore.resources.textures.TxSheet; |
||||||
|
import mightypork.rogue.Res; |
||||||
|
import mightypork.rogue.world.tile.TileModel; |
||||||
|
import mightypork.rogue.world.tile.tiles.TileBaseFloor; |
||||||
|
|
||||||
|
|
||||||
|
public class TileBrickFloor extends TileBaseFloor { |
||||||
|
|
||||||
|
public TileBrickFloor(TileModel model) |
||||||
|
{ |
||||||
|
super(model, Res.sheet("tile.brick.floor")); |
||||||
|
} |
||||||
|
|
||||||
|
} |
@ -0,0 +1,17 @@ |
|||||||
|
package mightypork.rogue.world.tile.tiles.brick; |
||||||
|
|
||||||
|
|
||||||
|
import mightypork.rogue.Res; |
||||||
|
import mightypork.rogue.world.tile.TileModel; |
||||||
|
import mightypork.rogue.world.tile.tiles.TileBaseDoor; |
||||||
|
import mightypork.rogue.world.tile.tiles.TileBasePassage; |
||||||
|
|
||||||
|
|
||||||
|
public class TileBrickPassage extends TileBasePassage { |
||||||
|
|
||||||
|
public TileBrickPassage(TileModel model) |
||||||
|
{ |
||||||
|
super(model, Res.sheet("tile.brick.passage")); |
||||||
|
} |
||||||
|
|
||||||
|
} |
@ -0,0 +1,26 @@ |
|||||||
|
package mightypork.rogue.world.tile.tiles.brick; |
||||||
|
|
||||||
|
import mightypork.gamecore.util.math.color.Color; |
||||||
|
import mightypork.gamecore.util.math.color.pal.RGB; |
||||||
|
import mightypork.rogue.Res; |
||||||
|
import mightypork.rogue.world.tile.TileModel; |
||||||
|
import mightypork.rogue.world.tile.tiles.TileBaseDoor; |
||||||
|
import mightypork.rogue.world.tile.tiles.TileBaseSecretDoor; |
||||||
|
|
||||||
|
|
||||||
|
public class TileBrickSecretDoor extends TileBaseSecretDoor { |
||||||
|
|
||||||
|
public TileBrickSecretDoor(TileModel model) |
||||||
|
{ |
||||||
|
//@formatter:off
|
||||||
|
super( |
||||||
|
model, |
||||||
|
Res.sheet("tile.brick.door.secret"), |
||||||
|
Res.sheet("tile.brick.door.closed"), |
||||||
|
Res.sheet("tile.brick.door.open") |
||||||
|
); |
||||||
|
//@formatter:on
|
||||||
|
|
||||||
|
locked = true; // hide it
|
||||||
|
} |
||||||
|
} |
@ -0,0 +1,16 @@ |
|||||||
|
package mightypork.rogue.world.tile.tiles.brick; |
||||||
|
|
||||||
|
import mightypork.gamecore.resources.textures.TxSheet; |
||||||
|
import mightypork.rogue.Res; |
||||||
|
import mightypork.rogue.world.tile.TileModel; |
||||||
|
import mightypork.rogue.world.tile.tiles.TileBaseWall; |
||||||
|
|
||||||
|
|
||||||
|
public class TileBrickWall extends TileBaseWall { |
||||||
|
|
||||||
|
public TileBrickWall(TileModel model) |
||||||
|
{ |
||||||
|
super(model, Res.sheet("tile.brick.wall")); |
||||||
|
} |
||||||
|
|
||||||
|
} |
Loading…
Reference in new issue