DragPointPropDTOSerializer.cs 1.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243
  1. using System.IO;
  2. namespace MeidoPhotoStudio.Plugin;
  3. public class DragPointPropDTOSerializer : SimpleSerializer<DragPointPropDTO>
  4. {
  5. private const short Version = 1;
  6. private static SimpleSerializer<PropInfo> PropInfoSerializer =>
  7. Serialization.GetSimple<PropInfo>();
  8. private static SimpleSerializer<TransformDTO> TransformSerializer =>
  9. Serialization.GetSimple<TransformDTO>();
  10. private static SimpleSerializer<AttachPointInfo> AttachPointSerializer =>
  11. Serialization.GetSimple<AttachPointInfo>();
  12. public override void Serialize(DragPointPropDTO dragPointDto, BinaryWriter writer)
  13. {
  14. writer.WriteVersion(Version);
  15. PropInfoSerializer.Serialize(dragPointDto.PropInfo, writer);
  16. TransformSerializer.Serialize(dragPointDto.TransformDTO, writer);
  17. AttachPointSerializer.Serialize(dragPointDto.AttachPointInfo, writer);
  18. writer.Write(dragPointDto.ShadowCasting);
  19. }
  20. public override DragPointPropDTO Deserialize(BinaryReader reader, SceneMetadata metadata)
  21. {
  22. _ = reader.ReadVersion();
  23. return new DragPointPropDTO
  24. {
  25. PropInfo = PropInfoSerializer.Deserialize(reader, metadata),
  26. TransformDTO = TransformSerializer.Deserialize(reader, metadata),
  27. AttachPointInfo = AttachPointSerializer.Deserialize(reader, metadata),
  28. ShadowCasting = reader.ReadBoolean(),
  29. };
  30. }
  31. }