using System.Collections; using System.Collections.Generic; using UnityEngine; /// /// Kelas GridNode merepresentasikan sebuah node/sel di dalam grid untuk algoritma pathfinding. /// Kelas ini mewarisi dari PathFinding.Node dan mengimplementasikan fungsionalitas spesifik /// untuk pathfinding berbasis grid. /// public class GridNode : PathFinding.Node { /// /// Menentukan apakah node ini dapat dilalui oleh karakter. /// True jika node dapat dilalui, false jika node adalah penghalang. /// public bool IsWalkable { get; set; } /// /// Referensi ke GridMap yang mengelola seluruh grid. /// Digunakan untuk mendapatkan tetangga dan operasi lain yang berhubungan dengan grid. /// public GridMap gridMap; // Change to internal or public /// /// Constructor untuk membuat GridNode baru. /// /// Koordinat Vector2Int yang merepresentasikan posisi node di dalam grid /// Referensi ke GridMap yang mengelola grid ini public GridNode(Vector2Int value, GridMap gridMap) : base(value) { IsWalkable = true; // Secara default node dapat dilalui this.gridMap = gridMap; // Simpan referensi ke GridMap } /// /// Mengimplementasikan metode abstrak dari kelas dasar untuk mendapatkan daftar node tetangga. /// Metode ini akan memanggil GridMap.GetNeighbours() untuk mendapatkan semua node tetangga yang dapat dilalui. /// /// Daftar node tetangga yang dapat dicapai dari node ini public override List> GetNeighbours() { // Return an empty list for now. // Later we will call gridMap's GetNeighbours // function. //return new List>(); return gridMap.GetNeighbours(this); } }