feat: entity register for serialized entity references
This commit is contained in:
@@ -6,13 +6,9 @@ using YamlDotNet.Serialization;
|
||||
|
||||
namespace Syntriax.Engine.Core.Serialization;
|
||||
|
||||
public class StateEnableSerializer : IEngineTypeYamlSerializer
|
||||
public class StateEnableSerializer : EngineTypeYamlSerializerBase<IStateEnable>
|
||||
{
|
||||
private const string SERIALIZED_SCALAR_NAME = "Properties";
|
||||
|
||||
public bool Accepts(Type type) => typeof(IStateEnable).IsAssignableFrom(type);
|
||||
|
||||
public object? ReadYaml(IParser parser, Type type, ObjectDeserializer rootDeserializer)
|
||||
public override IStateEnable? Read(IParser parser, Type type, ObjectDeserializer rootDeserializer)
|
||||
{
|
||||
bool enabled;
|
||||
|
||||
@@ -27,7 +23,7 @@ public class StateEnableSerializer : IEngineTypeYamlSerializer
|
||||
if (parser.Consume<Scalar>().Value.CompareTo(SERIALIZED_SCALAR_NAME) != 0)
|
||||
throw new();
|
||||
SerializedClass instanceSerializedClass = (SerializedClass)rootDeserializer(typeof(SerializedClass))!;
|
||||
stateEnable = (IStateEnable)instanceSerializedClass.CreateInstance();
|
||||
stateEnable = (IStateEnable)instanceSerializedClass.CreateInstance(EntityRegistry);
|
||||
|
||||
parser.Consume<MappingEnd>();
|
||||
|
||||
@@ -36,7 +32,7 @@ public class StateEnableSerializer : IEngineTypeYamlSerializer
|
||||
return stateEnable;
|
||||
}
|
||||
|
||||
public void WriteYaml(IEmitter emitter, object? value, Type type, ObjectSerializer serializer)
|
||||
public override void WriteYaml(IEmitter emitter, object? value, Type type, ObjectSerializer serializer)
|
||||
{
|
||||
IStateEnable stateEnable = (IStateEnable)value!;
|
||||
|
||||
|
||||
Reference in New Issue
Block a user