fix(codegen): Fixes bulk order deed hue and codegens (#647)

- [X] Codegens some Bulk Order stuff
- [X] Fixes deserializing with a class that requires the parent as a constructor argument


Closes #641
Closes #623
This commit is contained in:
Kamron Batman 2021-06-11 19:51:03 -07:00 • committed by GitHub
parent eb4e3ac070
commit 510d2e006b
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
32 changed files with 185 additions and 378 deletions

View file

@ -20,7 +20,8 @@ namespace Server.Items
bool CouldFit(IPoint3D p, Map map);
}
public abstract class BaseAddon : Item, IChoppable, IAddon
[Serializable(2, false)]
public abstract partial class BaseAddon : Item, IChoppable, IAddon
{
private CraftResource m_Resource;
@ -32,15 +33,12 @@ namespace Server.Items
Components = new List<AddonComponent>();
}
public BaseAddon(Serial serial) : base(serial)
{
}
public virtual bool RetainDeedHue => false;
public virtual BaseAddonDeed Deed => null;
public List<AddonComponent> Components { get; private set; }
[SerializableField(0, setter: "private")]
private List<AddonComponent> _components;
public virtual bool ShareHue => true;
@ -66,6 +64,7 @@ namespace Server.Items
}
[CommandProperty(AccessLevel.GameMaster)]
[SerializableField(1)]
public CraftResource Resource
{
get => m_Resource;
@ -77,6 +76,7 @@ namespace Server.Items
Hue = CraftResources.GetHue(m_Resource);
InvalidateProperties();
((ISerializable)this).MarkDirty();
}
}
}
@ -277,30 +277,9 @@ namespace Server.Items
}
}
public override void Serialize(IGenericWriter writer)
private void Deserialize(IGenericReader reader, int version)
{
base.Serialize(writer);
writer.Write(1); // version
writer.Write(Components);
}
public override void Deserialize(IGenericReader reader)
{
base.Deserialize(reader);
var version = reader.ReadInt();
switch (version)
{
case 1:
case 0:
{
Components = reader.ReadEntityList<AddonComponent>();
break;
}
}
Components = reader.ReadEntityList<AddonComponent>();
if (version < 1 && Weight == 0)
{