summaryrefslogtreecommitdiff
path: root/scripts/map/Map.cs
diff options
context:
space:
mode:
authorMatheus <matheus.guedes.mg.m@gmail.com>2025-09-09 19:09:34 -0300
committerMatheus <matheus.guedes.mg.m@gmail.com>2025-09-09 19:09:34 -0300
commitc6bbb834f7758027c0df338f1520f34fad3befea (patch)
tree1818cd23c24be16fbe19b16dd0a510874d440d83 /scripts/map/Map.cs
parentf1b51bed52ffbd90b5b7cc8dcfc6f0484bbbeb3c (diff)
Organização
Diffstat (limited to 'scripts/map/Map.cs')
-rw-r--r--scripts/map/Map.cs86
1 files changed, 0 insertions, 86 deletions
diff --git a/scripts/map/Map.cs b/scripts/map/Map.cs
deleted file mode 100644
index 148bda6..0000000
--- a/scripts/map/Map.cs
+++ /dev/null
@@ -1,86 +0,0 @@
-using Godot;
-
-/// <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;
-
- private Node2D tilesNode;
- private Node2D entitiesNode;
-
- 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");
- entitiesNode = GetNode<Node2D>("Entities");
- }
-
- /// <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 todas as entidades do mapa no mundo do jogo.
- /// </summary>
- private void PlaceEntities() {
- foreach (Entity entity in Map_Data.Entities) {
- entitiesNode.AddChild(entity);
- }
- }
-
- /// <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);
-
- Map_Data.EntityPlaced += OnEntityPlaced;
-
- PlaceTiles();
- PlaceEntities();
- }
-
- /// <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 entidades com base no campo de visão.
- foreach (Entity entity in Map_Data.Entities) {
- entity.Visible = Map_Data.GetTile(entity.GridPosition).IsInView;
- }
- }
-
- private void OnEntityPlaced(Entity entity) {
- entitiesNode.AddChild(entity);
- }
-}