Mirror of Svelto.ECS because we're a fan of it
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

28 lines
1.4KB

  1. using System.Collections.Generic;
  2. namespace Svelto.ECS.Serialization
  3. {
  4. public class DefaultVersioningFactory<T> : IDeserializationFactory where T : IEntityDescriptor, new()
  5. {
  6. public EntityStructInitializer BuildDeserializedEntity(EGID egid,
  7. ISerializationData serializationData,
  8. ISerializableEntityDescriptor entityDescriptor,
  9. SerializationType serializationType,
  10. IEntitySerialization entitySerialization)
  11. {
  12. var initializer = _factory.BuildEntity<T>(egid, _implementors);
  13. entitySerialization.DeserializeEntityStructs(serializationData, entityDescriptor, ref initializer, serializationType);
  14. return initializer;
  15. }
  16. public DefaultVersioningFactory(IEntityFactory factory) { _factory = factory; }
  17. public DefaultVersioningFactory(IEntityFactory factory, IEnumerable<object> implementors) { _factory = factory;
  18. _implementors = implementors;
  19. }
  20. readonly IEntityFactory _factory;
  21. readonly IEnumerable<object> _implementors;
  22. }
  23. }