using Unity.Netcode; using UnityEngine; namespace Northbound { /// /// Core의 자원을 관리하고 다른 시스템에서 접근할 수 있도록 하는 매니저 /// public class CoreResourceManager : MonoBehaviour { private static CoreResourceManager _instance; public static CoreResourceManager Instance => _instance; [Header("References")] public Core mainCore; // 메인 코어 참조 private void Awake() { if (_instance != null && _instance != this) { Destroy(gameObject); return; } _instance = this; } /// /// 자원을 사용할 수 있는지 확인 /// public bool CanAfford(int cost) { if (mainCore == null) { Debug.LogWarning("메인 코어가 설정되지 않았습니다."); return false; } return mainCore.CanConsumeResource(cost); } /// /// 자원을 소비 /// public void SpendResources(int amount) { if (mainCore == null) { Debug.LogWarning("메인 코어가 설정되지 않았습니다."); return; } mainCore.ConsumeResourceServerRpc(amount); } /// /// 자원을 환불 (건설 실패 시 등) /// public void AddResources(int amount) { if (mainCore == null) { Debug.LogWarning("메인 코어가 설정되지 않았습니다."); return; } mainCore.AddResource(amount); } /// /// 현재 자원량 가져오기 /// public int GetCurrentResources() { if (mainCore == null) return 0; return mainCore.TotalResources; } } }