diff options
| author | Matheus <matheus.guedes.mg.m@gmail.com> | 2025-09-04 12:46:30 -0300 |
|---|---|---|
| committer | Matheus <matheus.guedes.mg.m@gmail.com> | 2025-09-04 12:46:30 -0300 |
| commit | fbc055308f093a6527781cb16ce896ac253219ab (patch) | |
| tree | d63357f7281784e03a12483fdd898a11293d8aa5 /scripts/map/MapData.cs | |
| parent | 6842ccfd372601db6b5d3f678ab5ebf03ad2b206 (diff) | |
Modificado inspetor
Diffstat (limited to 'scripts/map/MapData.cs')
| -rw-r--r-- | scripts/map/MapData.cs | 32 |
1 files changed, 32 insertions, 0 deletions
diff --git a/scripts/map/MapData.cs b/scripts/map/MapData.cs index 3b03de8..de0ddf0 100644 --- a/scripts/map/MapData.cs +++ b/scripts/map/MapData.cs @@ -198,6 +198,38 @@ public partial class MapData : RefCounted } /// <summary> + /// Obtém todos os atores na posição especificada. + /// É possível haver mais de um ator na mesma posição se um deles for morto. + /// </summary> + /// <param name="pos">Vetor posição</param> + /// <returns>Lista com todos os atores na posição especificada.</returns> + public Godot.Collections.Array<Actor> GetActorsAtPosition(Vector2I pos) { + Godot.Collections.Array<Actor> ZOfZero = []; + Godot.Collections.Array<Actor> ZOfOne = []; + Godot.Collections.Array<Actor> ZOfTwo = []; + + // Pego todos os atores + foreach (Actor actor in Actors) { + if (actor.GridPosition == pos) { + switch (actor.ZIndex) { + case 0: + ZOfZero.Add(actor); + break; + case 1: + ZOfOne.Add(actor); + break; + case 2: + ZOfTwo.Add(actor); + break; + } + } + } + + // Retorno os atores ordenados por ZIndex. + return ZOfZero + ZOfOne + ZOfTwo; + } + + /// <summary> /// Verifica se é possível caminhar na coordenada especificada. /// Este método será removido. /// </summary> |
