diff --git a/src/Snapshot.cs b/src/Snapshot.cs index 9090852..4537e14 100644 --- a/src/Snapshot.cs +++ b/src/Snapshot.cs @@ -60,7 +60,7 @@ public class Snapshot : IDisposable relationStorage.Clear(); } - for (var i = 0; i < world.ComponentIndex.Count; i += 1) + for (var i = 0; i < ComponentSnapshots.Count; i += 1) { var componentStorage = world.ComponentIndex[i]; ComponentSnapshots[i].Restore(componentStorage); @@ -106,10 +106,9 @@ public class Snapshot : IDisposable } // restore entity tags - world.EntityTags.Clear(); - foreach (var s in EntityTags) + for (var i = 0; i < EntityTags.Count; i += 1) { - world.EntityTags.Add(s); + world.EntityTags[i] = EntityTags[i]; } } diff --git a/src/TypeId.cs b/src/TypeId.cs index 92f3598..53c785f 100644 --- a/src/TypeId.cs +++ b/src/TypeId.cs @@ -36,6 +36,7 @@ public class ComponentTypeIdAssigner : ComponentTypeIdAssigner #if DEBUG World.ComponentTypeToId[typeof(T)] = new TypeId(Id); + World.ComponentTypeIdToType.Add(typeof(T)); #endif } }