Table of Contents

Class SystemSerializer

Namespace
Core.SaveLoad
Assembly
Core.dll

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
object
SystemSerializer

Constructors

SystemSerializer(bool)

public SystemSerializer(bool logOperations = false)

Parameters

logOperations bool

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

saveData SaveGameData
systemName string
system T
loadAction Action<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

saveData SaveGameData
systemName string
system T
saveAction Action<BinaryWriter>

Type Parameters

T

SetLogOperations(bool)

Enable/disable operation logging

public void SetLogOperations(bool enabled)

Parameters

enabled bool