using System; using UnityEngine; using CSNetwork; using PerfectWorld.Scripts.Managers.BrewMonster.Managers; using BrewMonster.Network; using UnityEngine.SceneManagement; using CSNetwork.GPDataType; namespace BrewMonster { [Serializable] public class EC_ManMessageMono : MonoBehaviour { private static EC_ManMessageMono instance; public static EC_ManMessageMono Instance { get { if (instance == null) { instance = FindAnyObjectByType(); } return instance; } } public EC_ManPlayer EC_ManPlayer; public EC_ManMatter EC_ManMatter; public EC_ManPlayer GetECManPlayer { get => EC_ManPlayer;} public EC_ManMatter GetECManMatter { get => EC_ManMatter;} public CECNPCMan _CECNPCMan { get; private set; } private void Awake() { instance = this; //TODO: Remove later EC_ManPlayer = new EC_ManPlayer(); _CECNPCMan = new CECNPCMan(); EC_ManMessage.RegisterHandler(EC_ManPlayer); EC_ManMessage.RegisterHandler(_CECNPCMan); EC_ManMatter = new EC_ManMatter(); EC_ManMessage.RegisterHandler(EC_ManMatter); Debug.Log($"EC_ManMessage RegisterHandlerRegisterHandlerRegisterHandler"); } private void OnDestroy() { EC_ManMessage.Dispose(); } private void Update() { EC_ManMessage.Tick(); } // Get object by specified ID // iAliveFlag: 0, both alive and dead; 1, must be alive; 2, must be dead public CECObject GetObject(int idObject, int iAliveFlag) { CECObject pObject = null; if (GPDataTypeHelper.ISNPCID(idObject)) { if (!(pObject = _CECNPCMan.GetNPC(idObject))) return null; if ((iAliveFlag == 1 && (pObject as CECNPC).IsDead()) || (iAliveFlag == 2 && !(pObject as CECNPC).IsDead())) return null; } else if (GPDataTypeHelper.ISPLAYERID(idObject)) { if (!(pObject = EC_ManPlayer.GetPlayer(idObject))) return null; if ((iAliveFlag == 1 && (pObject as CECPlayer).IsDead()) || (iAliveFlag == 2 && !(pObject as CECPlayer).IsDead())) return null; } //else if (GPDataTypeHelper.ISMATTERID(idObject)) // pObject = GetMatterMan()->GetMatter(idObject); return pObject; } } }