FactoryTemplate.cs 1.6 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152
  1. using System;
  2. using InABox.Core;
  3. namespace Comal.Classes
  4. {
  5. public class FactoryTemplate : BaseObject, IPersistent, IPackable
  6. {
  7. public FactoryTemplate()
  8. {
  9. Stages = new PackableList<StageTemplate>();
  10. Items = new PackableList<FactoryTemplateItem>();
  11. //Attributes = new PackableList<FactoryTemplateAttribute>();
  12. }
  13. public Guid ID { get; set; }
  14. public string Code { get; set; }
  15. public string Name { get; set; }
  16. public string Group { get; set; }
  17. public PackableList<StageTemplate> Stages { get; set; }
  18. //public PackableList<FactoryTemplateAttribute> Attributes { get; set; }
  19. public PackableList<FactoryTemplateItem> Items { get; set; }
  20. public void Pack(FastBinaryWriter writer)
  21. {
  22. writer.Write(ID.ToByteArray());
  23. writer.Write(Code);
  24. writer.Write(Name);
  25. writer.Write(Group);
  26. Stages.Pack(writer);
  27. //Attributes.Pack(writer);
  28. Items.Pack(writer);
  29. }
  30. public void Unpack(FastBinaryReader reader)
  31. {
  32. ID = new Guid(reader.ReadBytes(16));
  33. Code = reader.ReadString();
  34. Name = reader.ReadString();
  35. Group = reader.ReadString();
  36. Stages = new PackableList<StageTemplate>();
  37. Stages.Unpack(reader);
  38. //Attributes = new PackableList<FactoryTemplateAttribute>();
  39. //Attributes.Unpack(reader);
  40. Items = new PackableList<FactoryTemplateItem>();
  41. Items.Unpack(reader);
  42. }
  43. }
  44. }