chore: universe serializer filters in only the root universe objects
This commit is contained in:
parent
fa3a4d1e0d
commit
efe51b491d
@ -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());
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user