diff options
| author | Matheus <matheus.guedes.mg.m@gmail.com> | 2025-08-28 00:38:48 -0300 |
|---|---|---|
| committer | Matheus <matheus.guedes.mg.m@gmail.com> | 2025-08-28 00:38:48 -0300 |
| commit | 2fb787a744d4f7a37d81233d2913a5ef39122f73 (patch) | |
| tree | f9595d6757203146aa8201a86275c2c842bae03b /scripts/map/Map.cs | |
| parent | 6c7e2ac133986efa57b43df52a5498c6f7efcf75 (diff) | |
Comentarios
Diffstat (limited to 'scripts/map/Map.cs')
| -rw-r--r-- | scripts/map/Map.cs | 32 |
1 files changed, 28 insertions, 4 deletions
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; +/// <summary> +/// A parte visual do mapa. +/// </summary> public partial class Map : Node2D { + /// <summary> + /// Dados do mapa. + /// </summary> public MapData Map_Data { get; private set; } + /// <summary> + /// raio de alcance da visão do jogador. + /// </summary> [Export] private int fovRadius = 12; + /// <summary> + /// Gerador de mapas. + /// </summary> 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<DungeonGenerator>("Generator"); fieldOfView = GetNode<FieldOfView>("FieldOfView"); tilesNode = GetNode<Node2D>("Tiles"); actorsNode = GetNode<Node2D>("Actors"); } + /// <summary> + /// Coloca todos os tiles do mapa no mundo do jogo. + /// </summary> private void PlaceTiles() { foreach (Tile tile in Map_Data.Tiles) { tilesNode.AddChild(tile); } } + /// <summary> + /// Coloca todos os tiles do mapa no mundo do jogo. + /// </summary> private void PlaceActors() { foreach (Actor actor in Map_Data.Actors) { actorsNode.AddChild(actor); } } + /// <summary> + /// Cria um andar da masmorra utilizando o gerador de mapa. + /// </summary> + /// <param name="player">O gerador de mapas precisa do jogador.</param> public void Generate(Player player) { Map_Data = generator.GenerateDungeon(player); - player.Map_Data = Map_Data; - PlaceTiles(); PlaceActors(); } + /// <summary> + /// Atualiza o campo de visão do mapa com base em uma coordenada. + /// </summary> + /// <param name="pos">Centro de visão, normalmente é a posição do jogador.</param> 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; } |
