27 lines
1007 B
C#
27 lines
1007 B
C#
using Mine2d.core;
|
|
|
|
namespace Mine2d.frontend.renderer;
|
|
|
|
public class WorldCursorRenderer : IRenderer
|
|
{
|
|
public void Render()
|
|
{
|
|
var ctx = Context.Get();
|
|
var scale = ctx.FrontendGameState.Settings.GameScale;
|
|
var camera = ctx.FrontendGameState.Camera;
|
|
var absoluteMousePos = ctx.FrontendGameState.MousePosition / ctx.FrontendGameState.Settings.GameScale + camera.Position;
|
|
if (ctx.GameState.World.HasTileAt((int)absoluteMousePos.X, (int)absoluteMousePos.Y))
|
|
{
|
|
var ts = Constants.TileSize;
|
|
var tilePos = new Vector2(absoluteMousePos.X - absoluteMousePos.X % ts, absoluteMousePos.Y - absoluteMousePos.Y % ts);
|
|
ctx.Renderer.SetColor(255, 255, 255);
|
|
ctx.Renderer.DrawOutline(
|
|
(int)tilePos.X * scale - (int)camera.Position.X * scale,
|
|
(int)tilePos.Y * scale - (int)camera.Position.Y * scale,
|
|
16 * scale,
|
|
16 * scale
|
|
);
|
|
}
|
|
}
|
|
}
|