summaryrefslogtreecommitdiff
path: root/scripts/map/Map.cs
diff options
context:
space:
mode:
authorMatheus <matheus.guedes.mg.m@gmail.com>2025-08-28 00:38:48 -0300
committerMatheus <matheus.guedes.mg.m@gmail.com>2025-08-28 00:38:48 -0300
commit2fb787a744d4f7a37d81233d2913a5ef39122f73 (patch)
treef9595d6757203146aa8201a86275c2c842bae03b /scripts/map/Map.cs
parent6c7e2ac133986efa57b43df52a5498c6f7efcf75 (diff)
Comentarios
Diffstat (limited to 'scripts/map/Map.cs')
-rw-r--r--scripts/map/Map.cs32
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;
}