Rogue: Savage Rats, a retro-themed dungeon crawler
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
rogue-savage-rats/src/mightypork/rogue/world/entity/entities/PlayerEntity.java

70 lines
1.5 KiB

package mightypork.rogue.world.entity.entities;
import mightypork.rogue.world.Coord;
import mightypork.rogue.world.entity.Entity;
import mightypork.rogue.world.entity.EntityModel;
import mightypork.rogue.world.entity.EntityPathfindingContext;
import mightypork.rogue.world.entity.SimpleEntityPathFindingContext;
import mightypork.rogue.world.entity.renderers.EntityRenderer;
import mightypork.rogue.world.entity.renderers.SimpleLeftRightMobRenderer;
import mightypork.rogue.world.level.Level;
import mightypork.rogue.world.level.render.MapRenderContext;
import mightypork.rogue.world.pathfinding.PathFindingContext;
public class PlayerEntity extends Entity {
private final EntityPathfindingContext pathfc = new SimpleEntityPathFindingContext(this) {
@Override
public int getCost(Coord from, Coord to)
{
if (!getLevel().getTile(pos.getCoord()).isExplored()) { return 1000; }
return super.getCost(from, to);
};
};
private final EntityRenderer renderer = new SimpleLeftRightMobRenderer(this, "sprite.player");
public PlayerEntity(EntityModel model, int eid)
{
super(model, eid);
// init default values
pos.setStepTime(0.25);
}
@Override
public PathFindingContext getPathfindingContext()
{
return pathfc;
}
@Override
public void setLevel(Level level)
{
super.setLevel(level);
onStepFinished(this);
}
@Override
public void render(MapRenderContext context)
{
renderer.render(context);
}
@Override
public void onStepFinished(Entity entity)
{
getLevel().explore(pos.getCoord());
}
}