Преглед на файлове

Merge pull request #413 from Azaezel/alpha40_ServerAssetValidator

add validation flagging for server objects
Areloch преди 4 години
родител
ревизия
baeabb4a51
променени са 2 файла, в които са добавени 9 реда и са изтрити 0 реда
  1. 7 0
      Engine/source/T3D/shapeBase.cpp
  2. 2 0
      Templates/BaseGame/game/core/clientServer/scripts/server/server.cs

+ 7 - 0
Engine/source/T3D/shapeBase.cpp

@@ -68,6 +68,7 @@
 #include "renderInstance/renderOcclusionMgr.h"
 #include "core/stream/fileStream.h"
 #include "T3D/accumulationVolume.h"
+#include "console/persistenceManager.h"
 
 IMPLEMENT_CO_DATABLOCK_V1(ShapeBaseData);
 
@@ -359,6 +360,12 @@ bool ShapeBaseData::preload(bool server, String &errorStr)
          }
       }
    }
+   PersistenceManager *persistMgr;
+   if (!Sim::findObject("ServerAssetValidator", persistMgr)) Con::errorf("ServerAssetValidator not found!");
+   if (server && persistMgr && shapeAssetId == StringTable->EmptyString())
+   {
+      persistMgr->setDirty(this);
+   }
 
    //Legacy catch
    if (shapeName != StringTable->EmptyString())

+ 2 - 0
Templates/BaseGame/game/core/clientServer/scripts/server/server.cs

@@ -185,6 +185,7 @@ function createServer(%serverType, %levelAsset)
 
 function onServerCreated()
 {
+   new PersistenceManager( ServerAssetValidator );
    // Server::GameType is sent to the master server.
    // This variable should uniquely identify your game and/or mod.
    $Server::GameType = $appName;
@@ -208,6 +209,7 @@ function onServerCreated()
    
    // Keep track of when the game started
    $Game::StartTime = $Sim::Time;
+   ServerAssetValidator.saveDirty();
 }
 
 /// Shut down the server