mine2d/Mine2d/game/frontend/renderer/ItemRenderer.cs

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);
}
}