fix: ignore serialization objects being included in serialization fixed

This commit is contained in:
Syntriax 2025-04-25 21:59:56 +03:00
parent b002dd469a
commit 3a0942ff46
2 changed files with 4 additions and 3 deletions

View File

@ -32,7 +32,8 @@ public class BehaviourControllerConverter : IEngineTypeYamlConverter
SerializedClass instanceSerializedClass = (SerializedClass)rootDeserializer(typeof(SerializedClass))!; SerializedClass instanceSerializedClass = (SerializedClass)rootDeserializer(typeof(SerializedClass))!;
behaviourController = (IBehaviourController)instanceSerializedClass.CreateInstance(); behaviourController = (IBehaviourController)instanceSerializedClass.CreateInstance();
if (parser.Consume<Scalar>().Value.CompareTo(nameof(IBehaviourController.StateEnable)) != 0) string value = parser.Consume<Scalar>().Value;
if (value.CompareTo(nameof(IBehaviourController.StateEnable)) != 0)
throw new(); throw new();
stateEnable = (IStateEnable)rootDeserializer(typeof(IStateEnable))!; stateEnable = (IStateEnable)rootDeserializer(typeof(IStateEnable))!;
@ -69,7 +70,7 @@ public class BehaviourControllerConverter : IEngineTypeYamlConverter
serializer(behaviourController.StateEnable); serializer(behaviourController.StateEnable);
emitter.Emit(new Scalar(BEHAVIOURS_SCALAR_NAME)); emitter.Emit(new Scalar(BEHAVIOURS_SCALAR_NAME));
serializer(behaviourController.GetBehaviours<IBehaviour>()); serializer(behaviourController.GetBehaviours<IBehaviour>().Where(b => !b.GetType().HasAttribute<IgnoreSerializationAttribute>()));
emitter.Emit(new MappingEnd()); emitter.Emit(new MappingEnd());
} }

View File

@ -88,7 +88,7 @@ public class UniverseObjectConverter : IEngineTypeYamlConverter
serializer(universeObject.BehaviourController); serializer(universeObject.BehaviourController);
emitter.Emit(new Scalar(nameof(IUniverseObject.Children))); emitter.Emit(new Scalar(nameof(IUniverseObject.Children)));
serializer(universeObject.Children); serializer(universeObject.Children.Where(c => !c.GetType().HasAttribute<IgnoreSerializationAttribute>()));
emitter.Emit(new MappingEnd()); emitter.Emit(new MappingEnd());
} }