Files
2025-12-12 18:06:48 +07:00

79 lines
2.6 KiB
C#

using BrewMonster;
using BrewMonster.Managers;
using BrewMonster.Scripts.Ornament;
using CSNetwork.GPDataType;
using PerfectWorld.Scripts.Managers.BrewMonster.Managers;
using UnityEngine;
namespace BrewMonster.Scripts.World
{
public class CECWorld : Singleton<CECWorld>
{
protected A3DTerrain2 m_pA3DTerrain;
CECOrnamentMan m_pOnmtMan;
uint m_dwBornStamp = 0;
CECAssureMove m_pAssureMove; // object used to assure move
int m_idInst = 161; // id of instance
public uint GetBornStamp() { return m_dwBornStamp++; }
// Get terrain object
public A3DTerrain2 GetTerrain()
{
return m_pA3DTerrain;
}
//TODO: Skill Gfx Manager
//public CECSkillGfxMan GetSkillGfxMan() { return (CECSkillGfxMan)m_aManagers[MAN_SKILLGFX]; }// Terrain object
public CECOrnamentMan GetOrnamentMan()
{
return m_pOnmtMan;
}
public float GetTerrainHeight(A3DVECTOR3 vPos, ref A3DVECTOR3 pvNormal /* NULL */)
{
A3DTerrain2 pTerrain = GetTerrain();
return pTerrain.GetPosHeight(vPos, ref pvNormal);
}
public float GetWaterHeight(A3DVECTOR3 vPos)
{
// TODO: Hook into the actual water system once it is available.
A3DVECTOR3 dummy = default;
return GetTerrainHeight(vPos, ref dummy);
}
public CECObject GetObject(int idObject, int iAliveFlag)
{
CECObject pObject = null;
if (GPDataTypeHelper.ISNPCID(idObject))
{
if (!(pObject = EC_ManMessageMono.Instance.CECNPCMan.GetNPC(idObject)))
return null;
if ((iAliveFlag == 1 && ((CECNPC)pObject).IsDead()) ||
(iAliveFlag == 2 && !((CECNPC)pObject).IsDead()))
return null;
}
else if (GPDataTypeHelper.ISPLAYERID(idObject))
{
if (!(pObject = EC_ManMessageMono.Instance.GetECManPlayer.GetPlayer(idObject)))
return null;
if ((iAliveFlag == 1 && ((CECPlayer)pObject).IsDead()) ||
(iAliveFlag == 2 && !((CECPlayer)pObject).IsDead()))
return null;
}
else if (GPDataTypeHelper.ISMATTERID(idObject))
pObject = EC_ManMessageMono.Instance.GetECManMatter.GetMatter(idObject);
return pObject;
}
public int GetInstanceID() { return m_idInst; }
public CECAssureMove GetAssureMove()
{ return m_pAssureMove; }
}
}