Class SystemSerializer
ENGINE LAYER - Generic system serialization helper
Responsibilities:
- Provide generic Save/Load methods for systems with SaveState/LoadState
- Handle MemoryStream/BinaryWriter/BinaryReader boilerplate
- Store/retrieve serialized data in SaveGameData
- Reduce SaveManager code duplication
Pattern: Instead of writing 6+ pairs of SaveXXX/LoadXXX methods with identical patterns, use generic methods that work with any system implementing the save/load pattern.
Usage: systemSerializer.SaveSystem(saveData, "TimeManager", gameState.Time); systemSerializer.LoadSystem(saveData, "TimeManager", gameState.Time);
public class SystemSerializer
- Inheritance
-
objectSystemSerializer
Constructors
SystemSerializer(bool)
public SystemSerializer(bool logOperations = false)
Parameters
logOperationsbool
Methods
LoadSystem<T>(SaveGameData, string, T, Action<BinaryReader>)
Load a system's state using its LoadState(BinaryReader) method Generic method that works with any system following the load pattern
public void LoadSystem<T>(SaveGameData saveData, string systemName, T system, Action<BinaryReader> loadAction)
Parameters
saveDataSaveGameDatasystemNamestringsystemTloadActionAction<BinaryReader>
Type Parameters
T
SaveSystem<T>(SaveGameData, string, T, Action<BinaryWriter>)
Save a system's state using its SaveState(BinaryWriter) method Generic method that works with any system following the save pattern
public void SaveSystem<T>(SaveGameData saveData, string systemName, T system, Action<BinaryWriter> saveAction)
Parameters
saveDataSaveGameDatasystemNamestringsystemTsaveActionAction<BinaryWriter>
Type Parameters
T
SetLogOperations(bool)
Enable/disable operation logging
public void SetLogOperations(bool enabled)
Parameters
enabledbool