using Microsoft.Xna.Framework; using Microsoft.Xna.Framework.Graphics; using MonoGame.Extended; using MonoGame.Extended.BitmapFonts; using MonoGame.Extended.Entities.Systems; using MonoGame.Extended.TextureAtlases; namespace JamGame.Systems { public class HudSystem : DrawSystem { private readonly MainGame _game; private readonly BitmapFont _font; private readonly Tileset _tileset; private readonly SpriteBatch _spriteBatch; public HudSystem(MainGame game, GraphicsDevice graphicsDevice, BitmapFont font, Tileset tileset) { _game = game; _font = font; _tileset = tileset; _spriteBatch = new SpriteBatch(graphicsDevice); } public override void Draw(GameTime gameTime) { var tx = _game.MouseState.X / _tileset.TileWidth / 2; var ty = _game.MouseState.Y / _tileset.TileHeight / 2; var region = _tileset.GetTileAt(tx, ty); _spriteBatch.Begin(samplerState: SamplerState.PointClamp, transformMatrix: Matrix.CreateScale(2)); _spriteBatch.DrawString(_font, $"{tx}, {ty}", Vector2.Zero, Color.AliceBlue); _spriteBatch.DrawRectangle(tx * _tileset.TileWidth, ty * _tileset.TileHeight, _tileset.TileWidth, _tileset.TileHeight, Color.White); if(region != null) _spriteBatch.Draw(region, new Vector2(350, 0), Color.White); _spriteBatch.End(); } } }