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.
50 lines
923 B
50 lines
923 B
package mightypork.rogue.world.tile;
|
|
|
|
|
|
import mightypork.rogue.world.item.Item;
|
|
import mightypork.rogue.world.level.render.TileRenderContext;
|
|
import mightypork.rogue.world.tile.renderers.NullTileRenderer;
|
|
|
|
|
|
/**
|
|
* Renderer for a tile model, in client
|
|
*
|
|
* @author MightyPork
|
|
*/
|
|
public abstract class TileRenderer {
|
|
|
|
public static final TileRenderer NONE = new NullTileRenderer();
|
|
|
|
private DroppedItemRenderer itemRenderer;
|
|
|
|
|
|
/**
|
|
* Update tile renderer
|
|
*
|
|
* @param delta delta time
|
|
*/
|
|
public void update(double delta)
|
|
{
|
|
if (itemRenderer != null) {
|
|
itemRenderer.update(delta);
|
|
}
|
|
}
|
|
|
|
|
|
/**
|
|
* Render the tile.
|
|
*
|
|
* @param context
|
|
*/
|
|
public abstract void render(TileRenderContext context);
|
|
|
|
|
|
public void renderItemOnTile(Item item, TileRenderContext context)
|
|
{
|
|
if (itemRenderer == null) {
|
|
itemRenderer = new DroppedItemRenderer();
|
|
}
|
|
|
|
itemRenderer.render(item, context);
|
|
}
|
|
}
|
|
|