package projectzombie.tiles; import gl_engine.vec.Vec2i; import projectzombie.entity.Entity; import projectzombie.model.Model; import projectzombie.util.math.TileState; import projectzombie.world.chunk.Chunk; import projectzombie.world.layer.Layer; public abstract class Tile { public short id; public boolean tileSolid = false; public boolean tileWalkable = true; public double tileHitbox = 0; public double slowness = 0; public boolean unbreakable = false; protected double light_dissipation = 1/8.0; public boolean emitsLight = false; public boolean passNaturalLight = true; public void onWalkedOn(Chunk chunk, Layer layer, Vec2i pos, Entity entity, TileState state) { } public TileState getDefaultState() { return new TileState(this, 0); } public void onActivated(Layer layer, Vec2i tpos, Entity entity, TileState state) { } public double getLightDissipation(TileState state) { return light_dissipation; } public double getLightLevel(TileState state, Vec2i pos) { return 0; } public void tickRandomly(Layer layer, Chunk chunk, TileState state, Vec2i pos) { } public abstract Model getModel(byte meta); }