chore: universe serializer filters in only the root universe objects
This commit is contained in:
@@ -58,6 +58,17 @@ public class UniverseSerializer : IEngineTypeYamlSerializer
|
||||
{
|
||||
IUniverse universe = (IUniverse)value!;
|
||||
|
||||
IEnumerable<IUniverseObject> rootUniverseObjects = universe.UniverseObjects
|
||||
.Select(uo =>
|
||||
{
|
||||
IUniverseObject root = uo;
|
||||
while (root.Parent is IUniverseObject parent)
|
||||
root = parent;
|
||||
return root;
|
||||
})
|
||||
.Where(uo => !uo.GetType().HasAttribute<IgnoreSerializationAttribute>())
|
||||
.Distinct();
|
||||
|
||||
emitter.Emit(new MappingStart());
|
||||
|
||||
emitter.Emit(new Scalar(nameof(IUniverse.Id)));
|
||||
@@ -70,7 +81,7 @@ public class UniverseSerializer : IEngineTypeYamlSerializer
|
||||
serializer(universe.StateEnable);
|
||||
|
||||
emitter.Emit(new Scalar(nameof(IUniverse.UniverseObjects)));
|
||||
serializer(universe.UniverseObjects.Where(uo => !uo.GetType().HasAttribute<IgnoreSerializationAttribute>()));
|
||||
serializer(rootUniverseObjects);
|
||||
|
||||
emitter.Emit(new MappingEnd());
|
||||
}
|
||||
|
Reference in New Issue
Block a user