using Godot; /// /// Isto é uma abominação /// public partial class Inspector : Sprite2D { private static readonly Texture2D texture = GD.Load("res://assets/sprites/inspector.png"); private Vector2I gridPosition = Vector2I.Zero; /// /// Posição do inspetor no espaço. Diferentemente de Position, GridPosition tem como formato /// os tiles do mapa. /// public Vector2I GridPosition { set { gridPosition = value; // O sistema de coordenadas do Godot é em pixels, mas faz mais sentido para o jogo utilizar coordenadas em tiles. // Esta propriedade converte um sistema para o outro automaticamente. Position = Grid.GridToWorld(value); } get => gridPosition; } public Inspector(Vector2I initialPosition) { GridPosition = initialPosition; Centered = false; Texture = texture; } /// /// O Inspetor não faz parte do mapa. /// /// public void Walk(Vector2I offset) { GridPosition += offset; } }