PrimeWorldEditor/src/Core/CAreaAttributes.cpp

43 lines
1.1 KiB
C++

#include "CAreaAttributes.h"
#include "Core/Resource/Script/CGameTemplate.h"
#include "Core/Resource/Script/CScriptLayer.h"
CAreaAttributes::CAreaAttributes(CScriptObject *pObj)
{
SetObject(pObj);
}
CAreaAttributes::~CAreaAttributes()
{
}
void CAreaAttributes::SetObject(CScriptObject *pObj)
{
CScriptTemplate* pTemplate = pObj->Template();
CStructProperty* pProperties = pTemplate->Properties();
mpObject = pObj;
mGame = pTemplate->GameTemplate()->Game();
mNeedSky = CBoolRef(pObj->PropertyData(), pProperties->ChildByIndex(1));
if (mGame == EGame::Prime)
mOverrideSky = CAssetRef(pObj->PropertyData(), pProperties->ChildByIndex(7));
else if (mGame > EGame::Prime)
mOverrideSky = CAssetRef(pObj->PropertyData(), pProperties->ChildByID(0xD208C9FA));
}
bool CAreaAttributes::IsLayerEnabled() const
{
return mpObject->Layer()->IsActive();
}
bool CAreaAttributes::IsSkyEnabled() const
{
return mNeedSky.IsValid() ? mNeedSky.Get() : false;
}
CModel* CAreaAttributes::SkyModel() const
{
return mOverrideSky.IsValid() ? gpResourceStore->LoadResource<CModel>(mOverrideSky.Get()) : nullptr;
}