79 lines
2.6 KiB
C#
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; }
|
|
|
|
}
|
|
}
|