MCPcopy Create free account
hub / github.com/TorqueGameEngines/Torque3D / saveAsset

Method saveAsset

Engine/source/terrain/terrData.cpp:469–517  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

467}
468
469bool TerrainBlock::saveAsset()
470{
471 if (!mTerrainAsset.isNull() && mTerrainAsset->isAssetValid())
472 {
473 mTerrainAsset->clearAssetDependencyFields("terrainMaterailAsset");
474
475 AssetQuery* pAssetQuery = new AssetQuery();
476 pAssetQuery->registerObject();
477
478 AssetDatabase.findAssetType(pAssetQuery, "TerrainMaterialAsset");
479
480 TerrainBlock* terr = static_cast<TerrainBlock*>(getClientObject());
481 if (!terr)
482 {
483 Con::warnf("No active client terrain while trying to save asset. Could be a server action, but should check to be sure!");
484 terr = this;
485 }
486
487 for (U32 i = 0; i < pAssetQuery->mAssetList.size(); i++)
488 {
489 //Acquire it so we can check it for matches
490 AssetPtr<TerrainMaterialAsset> terrMatAsset = pAssetQuery->mAssetList[i];
491
492 for (U32 m = 0; m < terr->mFile->mMaterials.size(); m++)
493 {
494 StringTableEntry intMatName = terr->mFile->mMaterials[m]->getInternalName();
495
496 StringTableEntry assetMatDefName = terrMatAsset->getMaterialDefinitionName();
497 if (assetMatDefName == intMatName)
498 {
499 mTerrainAsset->addAssetDependencyField("terrainMaterailAsset", terrMatAsset.getAssetId());
500 }
501 }
502
503 terrMatAsset.clear();
504 }
505
506 pAssetQuery->destroySelf();
507
508 bool saveAssetSuccess = mTerrainAsset->saveAsset();
509
510 if (!saveAssetSuccess)
511 return false;
512
513 return mFile->save(mTerrainAsset->getTerrainFilePath());
514 }
515
516 return false;
517}
518
519bool TerrainBlock::_setTerrainFile( void *obj, const char *index, const char *data )
520{

Callers 4

terrData.cppFile · 0.45
saveSceneMethod · 0.45
getAssetByFilenameMethod · 0.45
getAssetIdByFilenameMethod · 0.45

Calls 15

isAssetValidMethod · 0.80
findAssetTypeMethod · 0.80
getInternalNameMethod · 0.80
getTerrainFilePathMethod · 0.80
getClientObjectFunction · 0.50
warnfFunction · 0.50
isNullMethod · 0.45
registerObjectMethod · 0.45
sizeMethod · 0.45

Tested by

no test coverage detected