73 lines
1.9 KiB
C++
73 lines
1.9 KiB
C++
#include "assetmgr.h"
|
|
#include "tier2/ifilesystem.h"
|
|
#include "tier2/fileformats/json.h"
|
|
|
|
class CAssetManager: public IAssetManager
|
|
{
|
|
public:
|
|
virtual FunnyModel_t *LoadModel( const char *szName ) override;
|
|
virtual FunnyMaterial_t *LoadMaterial( const char *szName ) override;
|
|
virtual void UnrefModel( FunnyModel_t *pModel ) override;
|
|
virtual void UnrefMaterial( FunnyMaterial_t *pModel ) override;
|
|
CUtlVector<FunnyModel_t> m_models;
|
|
CUtlVector<FunnyModel_t*> m_modelUsages;
|
|
CUtlVector<FunnyMaterial_t> m_materials;
|
|
CUtlVector<FunnyMaterial_t*> m_materialUsages;
|
|
|
|
FunnyModel_t *LoadModelFromParams( const char *szMesh, const char *szMaterial );
|
|
};
|
|
|
|
FunnyModel_t *CAssetManager::LoadModel( const char *szName )
|
|
{
|
|
IFileHandle *pHandle = filesystem->Open(szName, FILEMODE_READ);
|
|
CUtlString szProperties = filesystem->ReadString(pHandle);
|
|
V_printf("%s\n", szProperties.GetString());
|
|
IJSONValue *pRoot = JSONManager()->ReadString(szProperties);
|
|
IJSONObject *pMainObject;
|
|
CUtlString szMeshData;
|
|
IVertexBuffer *pVertices;
|
|
switch (pRoot->GetType())
|
|
{
|
|
case JSON_PARAMETER_OBJECT:
|
|
{
|
|
pMainObject = pRoot->GetObject();
|
|
if (!pMainObject)
|
|
{
|
|
V_printf("Failed to load properties\n");
|
|
return NULL;
|
|
|
|
}
|
|
IJSONValue *pMesh = pMainObject->GetValue("mesh");
|
|
IJSONValue *pMaterial = pMainObject->GetValue("material");
|
|
CUtlString szMesh = pMesh->GetStringValue();
|
|
CUtlString szMaterial = pMaterial->GetStringValue();
|
|
|
|
return NULL;
|
|
}
|
|
break;
|
|
default:
|
|
return NULL;
|
|
}
|
|
}
|
|
|
|
void CAssetManager::UnrefModel( FunnyModel_t *pModel )
|
|
{
|
|
|
|
}
|
|
|
|
FunnyMaterial_t *CAssetManager::LoadMaterial( const char *szName )
|
|
{
|
|
FunnyMaterial_t stMaterial = {};
|
|
}
|
|
|
|
void CAssetManager::UnrefMaterial( FunnyMaterial_t *pModel )
|
|
{
|
|
|
|
}
|
|
FunnyModel_t *CAssetManager::LoadModelFromParams( const char *szMesh, const char *szMaterial )
|
|
{
|
|
}
|
|
|
|
static CAssetManager s_assetmgr;
|
|
IAssetManager *g_pAssetManager = &s_assetmgr;
|