SaveData
Namespace: Murder.Assets 
Assembly: Murder.dll
public class SaveData : GameAsset
Tracks a saved game with all the player status.
Implements: GameAsset
⭐ Constructors
protected SaveData(int saveSlot, float saveVersion, BlackboardTracker blackboardTracker)
Parameters 
saveSlot int 
saveVersion float 
blackboardTracker BlackboardTracker 
public SaveData(int saveSlot, float saveVersion)
Parameters 
saveSlot int 
saveVersion float 
⭐ Properties
_entitiesOnWorldToDestroy
protected readonly Dictionary<TKey, TValue> _entitiesOnWorldToDestroy;
List of all consumed entities throughout the map. Mapped according to: [World guid -> [Entity Guid]]
Returns 
Dictionary<TKey, TValue> 
BlackboardTracker
public readonly BlackboardTracker BlackboardTracker;
Returns 
BlackboardTracker 
CanBeCreated
public virtual bool CanBeCreated { get; }
Returns 
bool 
CanBeDeleted
public virtual bool CanBeDeleted { get; }
Returns 
bool 
CanBeRenamed
public virtual bool CanBeRenamed { get; }
Returns 
bool 
CanBeSaved
public virtual bool CanBeSaved { get; }
Returns 
bool 
CurrentWorld
public T? CurrentWorld { get; }
Returns 
T? 
DynamicAssets
public Dictionary<TKey, TValue> DynamicAssets { get; private set; }
These are all the dynamic assets within the game session.
Returns 
Dictionary<TKey, TValue> 
EditorColor
public virtual Vector4 EditorColor { get; }
Returns 
Vector4 
EditorFolder
public virtual string EditorFolder { get; }
Returns 
string 
FileChanged
public bool FileChanged { get; public set; }
Returns 
bool 
FilePath
public string FilePath { get; public set; }
Returns 
string 
Guid
public Guid Guid { get; protected set; }
Returns 
Guid 
Icon
public virtual char Icon { get; }
Returns 
char 
IsStoredInSaveData
public virtual bool IsStoredInSaveData { get; }
Returns 
bool 
Name
public string Name { get; public set; }
Returns 
string 
PendingOperation
public Task PendingOperation { get; }
Returns 
Task 
Rename
public bool Rename { get; public set; }
Returns 
bool 
SaveDataRelativeDirectoryPath
public string SaveDataRelativeDirectoryPath { get; private set; }
This is save path, used by its assets.
Returns 
string 
SavedWorlds
public ImmutableDictionary<TKey, TValue> SavedWorlds { get; private set; }
This maps [World Guid -> Saved World Guid] that does not belong to a run and should be persisted.
Returns 
ImmutableDictionary<TKey, TValue> 
SaveLocation
public virtual string SaveLocation { get; }
Returns 
string 
SaveName
public string SaveName { get; private set; }
This is the name used in-game, specified by the user.
Returns 
string 
SaveRelativeDirectoryPath
public string SaveRelativeDirectoryPath { get; private set; }
This is save path, used by its assets.
Returns 
string 
SaveSlot
public readonly int SaveSlot;
Which save slot this belongs to. Default is zero.
Returns 
int 
SaveVersion
public readonly float SaveVersion;
Game version, used for game save compatibility.
Returns 
float 
StoreInDatabase
public virtual bool StoreInDatabase { get; }
Returns 
bool 
TaggedForDeletion
public bool TaggedForDeletion;
Returns 
bool 
⭐ Methods
GetOrCreateEntitiesToBeDestroyedAt(World)
protected HashSet<T> GetOrCreateEntitiesToBeDestroyedAt(World world)
Fetch the collected items at 
Parameters 
world World 
Returns 
HashSet<T> 
EntityToGuid(World, Entity)
protected T? EntityToGuid(World world, Entity e)
Parameters 
world World 
e Entity 
Returns 
T? 
EntityToGuid(World, int)
protected T? EntityToGuid(World world, int id)
Returns 
T? 
TryGetDynamicAssetImpl(out T&)
protected virtual bool TryGetDynamicAssetImpl(T& value)
Parameters 
value T& 
Returns 
bool 
GetDefaultSaveName()
protected virtual string GetDefaultSaveName()
Returns 
string 
ClearAllWorlds()
protected virtual void ClearAllWorlds()
This will clean all saved worlds.
OnModified()
protected virtual void OnModified()
HasFinishedSaveWorld()
public bool HasFinishedSaveWorld()
Returns 
bool 
RecordRemovedEntityFromWorld(World, Entity)
public bool RecordRemovedEntityFromWorld(World world, Entity entity)
This records that an entity has been removed from the map.
Parameters 
world World 
entity Entity 
Returns 
bool 
Duplicate(string)
public GameAsset Duplicate(string name)
Parameters 
name string 
Returns 
GameAsset 
AssetsToBeSaved()
public List<T> AssetsToBeSaved()
Returns 
List<T> 
GetSimplifiedName()
public string GetSimplifiedName()
Returns 
string 
GetSplitNameWithEditorPath()
public String[] GetSplitNameWithEditorPath()
Returns 
string[] 
TryGetDynamicAsset()
public T TryGetDynamicAsset()
Returns 
T 
TryLoadLevel(Guid)
public virtual SavedWorld TryLoadLevel(Guid guid)
Get a world asset to instantiate in the game.
This tracks the 
Parameters 
guid Guid 
Returns 
SavedWorld 
AfterDeserialized()
public virtual void AfterDeserialized()
ChangeSaveName(string)
public void ChangeSaveName(string name)
Parameters 
name string 
Initialize()
public void Initialize()
Called after creating a fresh new save from this.
MakeGuid()
public void MakeGuid()
RemoveDynamicAsset(Type)
public void RemoveDynamicAsset(Type t)
Parameters 
t Type 
SaveAsync(MonoWorld)
public void SaveAsync(MonoWorld world)
This saves a world that should be persisted across several runs. For now, this will be restricted to the city.
Parameters 
world MonoWorld 
SaveDynamicAsset(Guid)
public void SaveDynamicAsset(Guid guid)
Parameters 
guid Guid 
TrackAssetOnSave(Guid)
public void TrackAssetOnSave(Guid g)
Parameters 
g Guid 
TrackCurrentWorld(Guid)
public void TrackCurrentWorld(Guid guid)
Parameters 
guid Guid 
⚡