TimeOffsetSerializer fixes (#3985)

This commit is contained in:
metalgearsloth
2023-05-01 14:47:16 +10:00
committed by GitHub
parent b5ebc11d26
commit 45734a2bdd
35 changed files with 181 additions and 132 deletions

View File

@@ -30,6 +30,16 @@ internal sealed class MapSerializationContext : ISerializationContext, IEntityLo
private Dictionary<int, EntityUid> _uidEntityMap = new();
private Dictionary<EntityUid, int> _entityUidMap = new();
/// <summary>
/// Are we currently iterating prototypes or entities for writing.
/// </summary>
public bool WritingReadingPrototypes { get; set; }
/// <summary>
/// Whether the map has been MapInitialized or not.
/// </summary>
public bool MapInitialized;
/// <summary>
/// How long the target map has been paused. Used for time offsets.
/// </summary>
@@ -45,11 +55,16 @@ internal sealed class MapSerializationContext : ISerializationContext, IEntityLo
SerializerProvider.RegisterSerializer(this);
}
public void Set(Dictionary<int, EntityUid> uidEntityMap, Dictionary<EntityUid, int> entityUidMap,
TimeSpan pauseTime, EntityUid? parentUid)
public void Set(
Dictionary<int, EntityUid> uidEntityMap,
Dictionary<EntityUid, int> entityUidMap,
bool mapPreInit,
TimeSpan pauseTime,
EntityUid? parentUid)
{
_uidEntityMap = uidEntityMap;
_entityUidMap = entityUidMap;
MapInitialized = mapPreInit;
PauseTime = pauseTime;
if (parentUid != null && parentUid.Value.IsValid())
_parentUid = parentUid;