From 2fb787a744d4f7a37d81233d2913a5ef39122f73 Mon Sep 17 00:00:00 2001 From: Matheus Date: Thu, 28 Aug 2025 00:38:48 -0300 Subject: Comentarios --- scripts/map/Map.cs | 32 ++++++++++++++++++++++++++++---- 1 file changed, 28 insertions(+), 4 deletions(-) (limited to 'scripts/map/Map.cs') diff --git a/scripts/map/Map.cs b/scripts/map/Map.cs index 29f5e62..e62aa21 100644 --- a/scripts/map/Map.cs +++ b/scripts/map/Map.cs @@ -1,13 +1,24 @@ using Godot; -using System; +/// +/// A parte visual do mapa. +/// public partial class Map : Node2D { + /// + /// Dados do mapa. + /// public MapData Map_Data { get; private set; } + /// + /// raio de alcance da visão do jogador. + /// [Export] private int fovRadius = 12; + /// + /// Gerador de mapas. + /// private DungeonGenerator generator; FieldOfView fieldOfView; @@ -18,37 +29,50 @@ public partial class Map : Node2D public override void _Ready() { base._Ready(); - + // Começamos obtendo nós relevantes para o mapa. generator = GetNode("Generator"); fieldOfView = GetNode("FieldOfView"); tilesNode = GetNode("Tiles"); actorsNode = GetNode("Actors"); } + /// + /// Coloca todos os tiles do mapa no mundo do jogo. + /// private void PlaceTiles() { foreach (Tile tile in Map_Data.Tiles) { tilesNode.AddChild(tile); } } + /// + /// Coloca todos os tiles do mapa no mundo do jogo. + /// private void PlaceActors() { foreach (Actor actor in Map_Data.Actors) { actorsNode.AddChild(actor); } } + /// + /// Cria um andar da masmorra utilizando o gerador de mapa. + /// + /// O gerador de mapas precisa do jogador. public void Generate(Player player) { Map_Data = generator.GenerateDungeon(player); - player.Map_Data = Map_Data; - PlaceTiles(); PlaceActors(); } + /// + /// Atualiza o campo de visão do mapa com base em uma coordenada. + /// + /// Centro de visão, normalmente é a posição do jogador. public void UpdateFOV(Vector2I pos) { fieldOfView.UpdateFOV(Map_Data, pos, fovRadius); + // Esconde ou revela atores com base no campo de visão. foreach (Actor actor in Map_Data.Actors) { actor.Visible = Map_Data.GetTile(actor.GridPosition).IsInView; } -- cgit v1.2.3