fix: Code gens items. Fixes code genning of ore (#684)
### THIS IS A BREAKING CHANGE IF YOU ARE ALREADY USING CODEGEN. IF YOUR WORLD HAS ERRORS LOADING PLEASE CONTACT ME ON DISCORD. ORE MIGHT FAIL TO LOAD. ### Changes * Fixes Components from addons not marking dirty * Code gens BaseAddonContainer * Code gens Ingots * Fixes code gen deserialization for Ore * Code gens dyetubs * Code gens reagents * Code gens tailor commodities * Code gens fish
This commit is contained in:
parent
2de4717390
commit
25fa9b397b
163 changed files with 1128 additions and 2494 deletions
|
|
@ -3,8 +3,11 @@ using Server.Multis;
|
|||
|
||||
namespace Server.Items
|
||||
{
|
||||
public abstract class BaseAddonContainer : BaseContainer, IChoppable, IAddon
|
||||
[Serializable(1, false)]
|
||||
public abstract partial class BaseAddonContainer : BaseContainer, IChoppable, IAddon
|
||||
{
|
||||
[SerializableField(0, setter: "private")]
|
||||
private List<AddonContainerComponent> _components;
|
||||
private CraftResource m_Resource;
|
||||
|
||||
public BaseAddonContainer(int itemID) : base(itemID)
|
||||
|
|
@ -14,10 +17,6 @@ namespace Server.Items
|
|||
Components = new List<AddonContainerComponent>();
|
||||
}
|
||||
|
||||
public BaseAddonContainer(Serial serial) : base(serial)
|
||||
{
|
||||
}
|
||||
|
||||
public override bool DisplayWeight => false;
|
||||
|
||||
[Hue, CommandProperty(AccessLevel.GameMaster)]
|
||||
|
|
@ -41,6 +40,7 @@ namespace Server.Items
|
|||
}
|
||||
}
|
||||
|
||||
[SerializableField(1)]
|
||||
[CommandProperty(AccessLevel.GameMaster)]
|
||||
public CraftResource Resource
|
||||
{
|
||||
|
|
@ -63,8 +63,6 @@ namespace Server.Items
|
|||
public virtual Point3D WallPosition => Point3D.Zero;
|
||||
public virtual BaseAddonContainerDeed Deed => null;
|
||||
|
||||
public List<AddonContainerComponent> Components { get; private set; }
|
||||
|
||||
Item IAddon.Deed => Deed;
|
||||
|
||||
public bool CouldFit(IPoint3D p, Map map)
|
||||
|
|
@ -186,25 +184,16 @@ namespace Server.Items
|
|||
}
|
||||
}
|
||||
|
||||
public override void Serialize(IGenericWriter writer)
|
||||
// Handles v0 with old Enum -> Int casting
|
||||
private void Deserialize(IGenericReader reader, int version)
|
||||
{
|
||||
base.Serialize(writer);
|
||||
|
||||
writer.Write(0); // version
|
||||
|
||||
writer.Write(Components);
|
||||
writer.Write((int)m_Resource);
|
||||
}
|
||||
|
||||
public override void Deserialize(IGenericReader reader)
|
||||
{
|
||||
base.Deserialize(reader);
|
||||
|
||||
var version = reader.ReadInt();
|
||||
|
||||
Components = reader.ReadEntityList<AddonContainerComponent>();
|
||||
m_Resource = (CraftResource)reader.ReadInt();
|
||||
}
|
||||
|
||||
[AfterDeserialization]
|
||||
private void AfterDeserialization()
|
||||
{
|
||||
AddonComponent.ApplyLightTo(this);
|
||||
}
|
||||
|
||||
|
|
@ -223,7 +212,7 @@ namespace Server.Items
|
|||
return;
|
||||
}
|
||||
|
||||
Components.Add(c);
|
||||
this.Add(Components, c);
|
||||
|
||||
c.Addon = this;
|
||||
c.Offset = new Point3D(x, y, z);
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue