89 lines
2.8 KiB
C#
89 lines
2.8 KiB
C#
using System;
|
|
using UnityEngine;
|
|
using CSNetwork;
|
|
using CSNetwork.GPDataType;
|
|
using PerfectWorld.Scripts.Managers.BrewMonster.Managers;
|
|
using PerfectWorld.Scripts.Managers;
|
|
|
|
namespace BrewMonster.Managers
|
|
{
|
|
[Serializable]
|
|
public class EC_ManMessageMono : MonoBehaviour
|
|
{
|
|
private static EC_ManMessageMono instance;
|
|
|
|
public static EC_ManMessageMono Instance
|
|
{
|
|
get
|
|
{
|
|
if (instance == null)
|
|
{
|
|
instance = FindAnyObjectByType<EC_ManMessageMono>();
|
|
}
|
|
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();
|
|
CECNPCMan.Tick();
|
|
}
|
|
|
|
// Get object by specified ID
|
|
// iAliveFlag: 0, both alive and dead; 1, must be alive; 2, must be dead
|
|
public CECObject GetObject(long idObject, int iAliveFlag)
|
|
{
|
|
CECObject pObject = null;
|
|
|
|
if (GPDataTypeHelper.ISNPCID((int)idObject))
|
|
{
|
|
if (!(pObject = CECNPCMan.GetNPC((int)idObject)))
|
|
return null;
|
|
|
|
if ((iAliveFlag == 1 && (pObject as CECNPC).IsDead()) ||
|
|
(iAliveFlag == 2 && !(pObject as CECNPC).IsDead()))
|
|
return null;
|
|
}
|
|
else if (GPDataTypeHelper.ISPLAYERID((int)idObject))
|
|
{
|
|
if (!(pObject = EC_ManPlayer.GetPlayer((int)idObject)))
|
|
return null;
|
|
|
|
if ((iAliveFlag == 1 && (pObject as CECPlayer).IsDead()) ||
|
|
(iAliveFlag == 2 && !(pObject as CECPlayer).IsDead()))
|
|
return null;
|
|
}
|
|
else if (GPDataTypeHelper.ISMATTERID((int)idObject))
|
|
{
|
|
pObject = EC_ManMatter.GetMatter((int)idObject);
|
|
}
|
|
|
|
return pObject;
|
|
}
|
|
}
|
|
} |