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