Files
test/Assets/PerfectWorld/Scripts/Network/EC_ManMessageMono.cs
T
2025-12-22 17:52:32 +07:00

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;
}
}
}