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!;
|
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 MappingStart());
|
||||||
|
|
||||||
emitter.Emit(new Scalar(nameof(IUniverse.Id)));
|
emitter.Emit(new Scalar(nameof(IUniverse.Id)));
|
||||||
@ -70,7 +81,7 @@ public class UniverseSerializer : IEngineTypeYamlSerializer
|
|||||||
serializer(universe.StateEnable);
|
serializer(universe.StateEnable);
|
||||||
|
|
||||||
emitter.Emit(new Scalar(nameof(IUniverse.UniverseObjects)));
|
emitter.Emit(new Scalar(nameof(IUniverse.UniverseObjects)));
|
||||||
serializer(universe.UniverseObjects.Where(uo => !uo.GetType().HasAttribute<IgnoreSerializationAttribute>()));
|
serializer(rootUniverseObjects);
|
||||||
|
|
||||||
emitter.Emit(new MappingEnd());
|
emitter.Emit(new MappingEnd());
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user