TurnBasedStrategyCourse/Assets/Scripts/Grid/LevelGrid.cs

35 lines
1.3 KiB
C#

using System.Collections.Generic;
using UnityEngine;
public class LevelGrid : MonoBehaviour {
[SerializeField] private Transform GridDebugObjectPrefab;
private GridSystem gridSystem;
public static LevelGrid Instance { get; private set; }
private void Awake() {
if (Instance is not null) {
Debug.LogError($"There is more than one LevelGrid! {transform} - {Instance}");
Destroy(gameObject);
return;
}
Instance = this;
gridSystem = new(10, 10, 2f);
gridSystem.CreateDebugObjects(GridDebugObjectPrefab);
}
public void AddUnitAtGridPosition(GridPosition gridPosition, Unit unit) => gridSystem.GetGridObject(gridPosition).UnitList.Add(unit);
public List<Unit> GetUnitListAtGridPosition(GridPosition gridPosition) => gridSystem.GetGridObject(gridPosition).UnitList;
public void RemoveUnitAtGridPosition(GridPosition gridPosition, Unit unit) => gridSystem.GetGridObject(gridPosition).UnitList.Remove(unit);
public GridPosition GetGridPosition(Vector3 worldPosition) => gridSystem.GetGridPosition(worldPosition);
public void UnitMovedGridPosition(Unit unit, GridPosition fromGridPosition, GridPosition toGridPosition) {
RemoveUnitAtGridPosition(fromGridPosition, unit);
AddUnitAtGridPosition(toGridPosition, unit);
}
}