38 lines
897 B
C#
38 lines
897 B
C#
using Mine2d.engine;
|
|
using Mine2d.game.core.data;
|
|
using Mine2d.game.core.data.entities;
|
|
|
|
namespace Mine2d.game.frontend.renderer;
|
|
|
|
public class ItemRenderer : IRenderer
|
|
{
|
|
public void Render()
|
|
{
|
|
var gameState = Context.Get().GameState;
|
|
var world = gameState.World;
|
|
foreach (var chunk in world.Chunks)
|
|
{
|
|
RenderChunk(chunk.Value);
|
|
}
|
|
}
|
|
|
|
private static void RenderChunk(Chunk chunk)
|
|
{
|
|
var entities = chunk.Entities;
|
|
foreach (var entity in entities)
|
|
{
|
|
if (entity is ItemEntity itemEntity)
|
|
{
|
|
RenderItem(itemEntity);
|
|
}
|
|
}
|
|
}
|
|
|
|
private static void RenderItem(ItemEntity itemEntity)
|
|
{
|
|
var item = itemEntity.ItemId;
|
|
var position = itemEntity.Position;
|
|
Context.Get().ItemRegistry.GetItem(item).Render(position);
|
|
}
|
|
}
|