fix: Codegens some decorations (#806)

This commit is contained in:
Kamron Batman 2021-09-26 20:02:16 -07:00 committed by GitHub
parent 551078670d
commit 990d151ef3
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
81 changed files with 884 additions and 1738 deletions

View file

@ -27,6 +27,13 @@ namespace Server
entity.SavePosition = -1;
}
[MethodImpl(MethodImplOptions.AggressiveInlining)]
public static void Delete(this ISerializable entity, IEntity toDelete)
{
toDelete?.Delete();
entity.MarkDirty();
}
[MethodImpl(MethodImplOptions.AggressiveInlining)]
public static void Add<T>(this ISerializable entity, ICollection<T> list, T value)
{

View file

@ -1,28 +1,11 @@
namespace Server.Items
{
[Furniture]
[Serializable(0, false)]
[Flippable(0xB2D, 0xB2C)]
public class WoodenBench : Item
public partial class WoodenBench : Item
{
[Constructible]
public WoodenBench() : base(0xB2D) => Weight = 6;
public WoodenBench(Serial serial) : base(serial)
{
}
public override void Serialize(IGenericWriter writer)
{
base.Serialize(writer);
writer.Write(0);
}
public override void Deserialize(IGenericReader reader)
{
base.Deserialize(reader);
var version = reader.ReadInt();
}
}
}

View file

@ -2,229 +2,77 @@ namespace Server.Items
{
[Furniture]
[Flippable(0xB4F, 0xB4E, 0xB50, 0xB51)]
public class FancyWoodenChairCushion : Item
[Serializable(0, false)]
public partial class FancyWoodenChairCushion : Item
{
[Constructible]
public FancyWoodenChairCushion() : base(0xB4F) => Weight = 20.0;
public FancyWoodenChairCushion(Serial serial) : base(serial)
{
}
public override void Serialize(IGenericWriter writer)
{
base.Serialize(writer);
writer.Write(0);
}
public override void Deserialize(IGenericReader reader)
{
base.Deserialize(reader);
var version = reader.ReadInt();
if (Weight == 6.0)
{
Weight = 20.0;
}
}
}
[Furniture]
[Flippable(0xB53, 0xB52, 0xB54, 0xB55)]
public class WoodenChairCushion : Item
[Serializable(0, false)]
public partial class WoodenChairCushion : Item
{
[Constructible]
public WoodenChairCushion() : base(0xB53) => Weight = 20.0;
public WoodenChairCushion(Serial serial) : base(serial)
{
}
public override void Serialize(IGenericWriter writer)
{
base.Serialize(writer);
writer.Write(0);
}
public override void Deserialize(IGenericReader reader)
{
base.Deserialize(reader);
var version = reader.ReadInt();
if (Weight == 6.0)
{
Weight = 20.0;
}
}
}
[Furniture]
[Flippable(0xB57, 0xB56, 0xB59, 0xB58)]
public class WoodenChair : Item
[Serializable(0, false)]
public partial class WoodenChair : Item
{
[Constructible]
public WoodenChair() : base(0xB57) => Weight = 20.0;
public WoodenChair(Serial serial) : base(serial)
{
}
public override void Serialize(IGenericWriter writer)
{
base.Serialize(writer);
writer.Write(0);
}
public override void Deserialize(IGenericReader reader)
{
base.Deserialize(reader);
var version = reader.ReadInt();
if (Weight == 6.0)
{
Weight = 20.0;
}
}
}
[Furniture]
[Flippable(0xB5B, 0xB5A, 0xB5C, 0xB5D)]
public class BambooChair : Item
[Serializable(0, false)]
public partial class BambooChair : Item
{
[Constructible]
public BambooChair() : base(0xB5B) => Weight = 20.0;
public BambooChair(Serial serial) : base(serial)
{
}
public override void Serialize(IGenericWriter writer)
{
base.Serialize(writer);
writer.Write(0);
}
public override void Deserialize(IGenericReader reader)
{
base.Deserialize(reader);
var version = reader.ReadInt();
if (Weight == 6.0)
{
Weight = 20.0;
}
}
}
[DynamicFliping, Flippable(0x1218, 0x1219, 0x121A, 0x121B)]
public class StoneChair : Item
[DynamicFlipping]
[Flippable(0x1218, 0x1219, 0x121A, 0x121B)]
[Serializable(0, false)]
public partial class StoneChair : Item
{
[Constructible]
public StoneChair() : base(0x1218) => Weight = 20;
public StoneChair(Serial serial) : base(serial)
{
}
public override void Serialize(IGenericWriter writer)
{
base.Serialize(writer);
writer.Write(0);
}
public override void Deserialize(IGenericReader reader)
{
base.Deserialize(reader);
var version = reader.ReadInt();
}
}
[DynamicFliping, Flippable(0x2DE3, 0x2DE4, 0x2DE5, 0x2DE6)]
public class OrnateElvenChair : Item
[DynamicFlipping]
[Flippable(0x2DE3, 0x2DE4, 0x2DE5, 0x2DE6)]
[Serializable(0)]
public partial class OrnateElvenChair : Item
{
[Constructible]
public OrnateElvenChair() : base(0x2DE3) => Weight = 1.0;
public OrnateElvenChair(Serial serial) : base(serial)
{
}
public override void Serialize(IGenericWriter writer)
{
base.Serialize(writer);
writer.WriteEncodedInt(0); // version
}
public override void Deserialize(IGenericReader reader)
{
base.Deserialize(reader);
var version = reader.ReadEncodedInt();
}
}
[DynamicFliping, Flippable(0x2DEB, 0x2DEC, 0x2DED, 0x2DEE)]
public class BigElvenChair : Item
[DynamicFlipping]
[Flippable(0x2DEB, 0x2DEC, 0x2DED, 0x2DEE)]
[Serializable(0)]
public partial class BigElvenChair : Item
{
[Constructible]
public BigElvenChair() : base(0x2DEB)
{
}
public BigElvenChair(Serial serial) : base(serial)
{
}
public override void Serialize(IGenericWriter writer)
{
base.Serialize(writer);
writer.WriteEncodedInt(0); // version
}
public override void Deserialize(IGenericReader reader)
{
base.Deserialize(reader);
var version = reader.ReadEncodedInt();
}
}
[DynamicFliping, Flippable(0x2DF5, 0x2DF6)]
public class ElvenReadingChair : Item
[DynamicFlipping]
[Flippable(0x2DF5, 0x2DF6)]
[Serializable(0)]
public partial class ElvenReadingChair : Item
{
[Constructible]
public ElvenReadingChair() : base(0x2DF5)
{
}
public ElvenReadingChair(Serial serial) : base(serial)
{
}
public override void Serialize(IGenericWriter writer)
{
base.Serialize(writer);
writer.WriteEncodedInt(0); // version
}
public override void Deserialize(IGenericReader reader)
{
base.Deserialize(reader);
var version = reader.ReadEncodedInt();
}
}
}

View file

@ -1,62 +1,18 @@
namespace Server.Items
{
[Furniture]
public class Stool : Item
[Serializable(0, false)]
public partial class Stool : Item
{
[Constructible]
public Stool() : base(0xA2A) => Weight = 10.0;
public Stool(Serial serial) : base(serial)
{
}
public override void Serialize(IGenericWriter writer)
{
base.Serialize(writer);
writer.Write(0);
}
public override void Deserialize(IGenericReader reader)
{
base.Deserialize(reader);
var version = reader.ReadInt();
if (Weight == 6.0)
{
Weight = 10.0;
}
}
}
[Furniture]
public class FootStool : Item
[Serializable(0, false)]
public partial class FootStool : Item
{
[Constructible]
public FootStool() : base(0xB5E) => Weight = 6.0;
public FootStool(Serial serial) : base(serial)
{
}
public override void Serialize(IGenericWriter writer)
{
base.Serialize(writer);
writer.Write(0);
}
public override void Deserialize(IGenericReader reader)
{
base.Deserialize(reader);
var version = reader.ReadInt();
if (Weight == 6.0)
{
Weight = 10.0;
}
}
}
}

View file

@ -2,63 +2,19 @@ namespace Server.Items
{
[Furniture]
[Flippable(0xB32, 0xB33)]
public class Throne : Item
[Serializable(0, false)]
public partial class Throne : Item
{
[Constructible]
public Throne() : base(0xB33) => Weight = 1.0;
public Throne(Serial serial) : base(serial)
{
}
public override void Serialize(IGenericWriter writer)
{
base.Serialize(writer);
writer.Write(0);
}
public override void Deserialize(IGenericReader reader)
{
base.Deserialize(reader);
var version = reader.ReadInt();
if (Weight == 6.0)
{
Weight = 1.0;
}
}
}
[Furniture]
[Flippable(0xB2E, 0xB2F, 0xB31, 0xB30)]
public class WoodenThrone : Item
[Serializable(0, false)]
public partial class WoodenThrone : Item
{
[Constructible]
public WoodenThrone() : base(0xB2E) => Weight = 15.0;
public WoodenThrone(Serial serial) : base(serial)
{
}
public override void Serialize(IGenericWriter writer)
{
base.Serialize(writer);
writer.Write(0);
}
public override void Deserialize(IGenericReader reader)
{
base.Deserialize(reader);
var version = reader.ReadInt();
if (Weight == 6.0)
{
Weight = 15.0;
}
}
}
}

View file

@ -1,377 +1,122 @@
namespace Server.Items
{
[Flippable(0x156C, 0x156D)]
public class DecorativeShield1 : Item
[Serializable(0, false)]
public partial class DecorativeShield1 : Item
{
[Constructible]
public DecorativeShield1() : base(0x156C) => Movable = false;
public DecorativeShield1(Serial serial) : base(serial)
{
}
public override void Serialize(IGenericWriter writer)
{
base.Serialize(writer);
writer.Write(0); // version
}
public override void Deserialize(IGenericReader reader)
{
base.Deserialize(reader);
var version = reader.ReadInt();
}
}
[Flippable(0x156E, 0x156F)]
public class DecorativeShield2 : Item
[Serializable(0, false)]
public partial class DecorativeShield2 : Item
{
[Constructible]
public DecorativeShield2() : base(0x156E) => Movable = false;
public DecorativeShield2(Serial serial) : base(serial)
{
}
public override void Serialize(IGenericWriter writer)
{
base.Serialize(writer);
writer.Write(0); // version
}
public override void Deserialize(IGenericReader reader)
{
base.Deserialize(reader);
var version = reader.ReadInt();
}
}
[Flippable(0x1570, 0x1571)]
public class DecorativeShield3 : Item
[Serializable(0, false)]
public partial class DecorativeShield3 : Item
{
[Constructible]
public DecorativeShield3() : base(0x1570) => Movable = false;
public DecorativeShield3(Serial serial) : base(serial)
{
}
public override void Serialize(IGenericWriter writer)
{
base.Serialize(writer);
writer.Write(0); // version
}
public override void Deserialize(IGenericReader reader)
{
base.Deserialize(reader);
var version = reader.ReadInt();
}
}
[Flippable(0x1572, 0x1573)]
public class DecorativeShield4 : Item
[Serializable(0, false)]
public partial class DecorativeShield4 : Item
{
[Constructible]
public DecorativeShield4() : base(0x1572) => Movable = false;
public DecorativeShield4(Serial serial) : base(serial)
{
}
public override void Serialize(IGenericWriter writer)
{
base.Serialize(writer);
writer.Write(0); // version
}
public override void Deserialize(IGenericReader reader)
{
base.Deserialize(reader);
var version = reader.ReadInt();
}
}
[Flippable(0x1574, 0x1575)]
public class DecorativeShield5 : Item
[Serializable(0, false)]
public partial class DecorativeShield5 : Item
{
[Constructible]
public DecorativeShield5() : base(0x1574) => Movable = false;
public DecorativeShield5(Serial serial) : base(serial)
{
}
public override void Serialize(IGenericWriter writer)
{
base.Serialize(writer);
writer.Write(0); // version
}
public override void Deserialize(IGenericReader reader)
{
base.Deserialize(reader);
var version = reader.ReadInt();
}
}
[Flippable(0x1576, 0x1577)]
public class DecorativeShield6 : Item
[Serializable(0, false)]
public partial class DecorativeShield6 : Item
{
[Constructible]
public DecorativeShield6() : base(0x1576) => Movable = false;
public DecorativeShield6(Serial serial) : base(serial)
{
}
public override void Serialize(IGenericWriter writer)
{
base.Serialize(writer);
writer.Write(0); // version
}
public override void Deserialize(IGenericReader reader)
{
base.Deserialize(reader);
var version = reader.ReadInt();
}
}
[Flippable(0x1578, 0x1579)]
public class DecorativeShield7 : Item
[Serializable(0, false)]
public partial class DecorativeShield7 : Item
{
[Constructible]
public DecorativeShield7() : base(0x1578) => Movable = false;
public DecorativeShield7(Serial serial) : base(serial)
{
}
public override void Serialize(IGenericWriter writer)
{
base.Serialize(writer);
writer.Write(0); // version
}
public override void Deserialize(IGenericReader reader)
{
base.Deserialize(reader);
var version = reader.ReadInt();
}
}
[Flippable(0x157A, 0x157B)]
public class DecorativeShield8 : Item
[Serializable(0, false)]
public partial class DecorativeShield8 : Item
{
[Constructible]
public DecorativeShield8() : base(0x157A) => Movable = false;
public DecorativeShield8(Serial serial) : base(serial)
{
}
public override void Serialize(IGenericWriter writer)
{
base.Serialize(writer);
writer.Write(0); // version
}
public override void Deserialize(IGenericReader reader)
{
base.Deserialize(reader);
var version = reader.ReadInt();
}
}
[Flippable(0x157C, 0x157D)]
public class DecorativeShield9 : Item
[Serializable(0, false)]
public partial class DecorativeShield9 : Item
{
[Constructible]
public DecorativeShield9() : base(0x157C) => Movable = false;
public DecorativeShield9(Serial serial) : base(serial)
{
}
public override void Serialize(IGenericWriter writer)
{
base.Serialize(writer);
writer.Write(0); // version
}
public override void Deserialize(IGenericReader reader)
{
base.Deserialize(reader);
var version = reader.ReadInt();
}
}
[Flippable(0x157E, 0x157F)]
public class DecorativeShield10 : Item
[Serializable(0, false)]
public partial class DecorativeShield10 : Item
{
[Constructible]
public DecorativeShield10() : base(0x157E) => Movable = false;
public DecorativeShield10(Serial serial) : base(serial)
{
}
public override void Serialize(IGenericWriter writer)
{
base.Serialize(writer);
writer.Write(0); // version
}
public override void Deserialize(IGenericReader reader)
{
base.Deserialize(reader);
var version = reader.ReadInt();
}
}
[Flippable(0x1580, 0x1581)]
public class DecorativeShield11 : Item
[Serializable(0, false)]
public partial class DecorativeShield11 : Item
{
[Constructible]
public DecorativeShield11() : base(0x1580) => Movable = false;
public DecorativeShield11(Serial serial) : base(serial)
{
}
public override void Serialize(IGenericWriter writer)
{
base.Serialize(writer);
writer.Write(0); // version
}
public override void Deserialize(IGenericReader reader)
{
base.Deserialize(reader);
var version = reader.ReadInt();
}
}
[Flippable(0x1582, 0x1583, 0x1634, 0x1635)]
public class DecorativeShieldSword1North : Item
[Serializable(0, false)]
public partial class DecorativeShieldSword1North : Item
{
[Constructible]
public DecorativeShieldSword1North() : base(Utility.Random(0x1582, 2)) => Movable = false;
public DecorativeShieldSword1North(Serial serial) : base(serial)
{
}
public override void Serialize(IGenericWriter writer)
{
base.Serialize(writer);
writer.Write(0); // version
}
public override void Deserialize(IGenericReader reader)
{
base.Deserialize(reader);
var version = reader.ReadInt();
}
}
[Flippable(0x1634, 0x1635, 0x1582, 0x1583)]
public class DecorativeShieldSword1West : Item
[Serializable(0, false)]
public partial class DecorativeShieldSword1West : Item
{
[Constructible]
public DecorativeShieldSword1West() : base(Utility.Random(0x1634, 2)) => Movable = false;
public DecorativeShieldSword1West(Serial serial) : base(serial)
{
}
public override void Serialize(IGenericWriter writer)
{
base.Serialize(writer);
writer.Write(0); // version
}
public override void Deserialize(IGenericReader reader)
{
base.Deserialize(reader);
var version = reader.ReadInt();
}
}
[Flippable(0x1584, 0x1585, 0x1636, 0x1637)]
public class DecorativeShieldSword2North : Item
[Serializable(0, false)]
public partial class DecorativeShieldSword2North : Item
{
[Constructible]
public DecorativeShieldSword2North() : base(Utility.Random(0x1584, 2)) => Movable = false;
public DecorativeShieldSword2North(Serial serial) : base(serial)
{
}
public override void Serialize(IGenericWriter writer)
{
base.Serialize(writer);
writer.Write(0); // version
}
public override void Deserialize(IGenericReader reader)
{
base.Deserialize(reader);
var version = reader.ReadInt();
}
}
[Flippable(0x1636, 0x1637, 0x1584, 0x1585)]
public class DecorativeShieldSword2West : Item
[Serializable(0, false)]
public partial class DecorativeShieldSword2West : Item
{
[Constructible]
public DecorativeShieldSword2West() : base(Utility.Random(0x1636, 2)) => Movable = false;
public DecorativeShieldSword2West(Serial serial) : base(serial)
{
}
public override void Serialize(IGenericWriter writer)
{
base.Serialize(writer);
writer.Write(0); // version
}
public override void Deserialize(IGenericReader reader)
{
base.Deserialize(reader);
var version = reader.ReadInt();
}
}
}

View file

@ -1,134 +1,63 @@
namespace Server.Items
{
[Flippable(0x155E, 0x155F, 0x155C, 0x155D)]
public class DecorativeBowWest : Item
[Serializable(0, false)]
public partial class DecorativeBowWest : Item
{
[Constructible]
public DecorativeBowWest() : base(Utility.Random(0x155E, 2)) => Movable = false;
public DecorativeBowWest(Serial serial) : base(serial)
{
}
public override void Serialize(IGenericWriter writer)
{
base.Serialize(writer);
writer.Write(0); // version
}
public override void Deserialize(IGenericReader reader)
{
base.Deserialize(reader);
var version = reader.ReadInt();
}
}
[Flippable(0x155C, 0x155D, 0x155E, 0x155F)]
public class DecorativeBowNorth : Item
[Serializable(0, false)]
public partial class DecorativeBowNorth : Item
{
[Constructible]
public DecorativeBowNorth() : base(Utility.Random(0x155C, 2)) => Movable = false;
public DecorativeBowNorth(Serial serial) : base(serial)
{
}
public override void Serialize(IGenericWriter writer)
{
base.Serialize(writer);
writer.Write(0); // version
}
public override void Deserialize(IGenericReader reader)
{
base.Deserialize(reader);
var version = reader.ReadInt();
}
}
[Flippable(0x1560, 0x1561, 0x1562, 0x1563)]
public class DecorativeAxeNorth : Item
[Serializable(0, false)]
public partial class DecorativeAxeNorth : Item
{
[Constructible]
public DecorativeAxeNorth() : base(Utility.Random(0x1560, 2)) => Movable = false;
public DecorativeAxeNorth(Serial serial) : base(serial)
{
}
public override void Serialize(IGenericWriter writer)
{
base.Serialize(writer);
writer.Write(0); // version
}
public override void Deserialize(IGenericReader reader)
{
base.Deserialize(reader);
var version = reader.ReadInt();
}
}
[Flippable(0x1562, 0x1563, 0x1560, 0x1561)]
public class DecorativeAxeWest : Item
[Serializable(0, false)]
public partial class DecorativeAxeWest : Item
{
[Constructible]
public DecorativeAxeWest() : base(Utility.Random(0x1562, 2)) => Movable = false;
public DecorativeAxeWest(Serial serial) : base(serial)
{
}
public override void Serialize(IGenericWriter writer)
{
base.Serialize(writer);
writer.Write(0); // version
}
public override void Deserialize(IGenericReader reader)
{
base.Deserialize(reader);
var version = reader.ReadInt();
}
}
public class DecorativeSwordNorth : Item
[Serializable(0, false)]
public partial class DecorativeSwordNorth : Item
{
private InternalItem m_Item;
[SerializableField(0, getter: "private", setter: "private")]
private InternalItem _item;
[Constructible]
public DecorativeSwordNorth() : base(0x1565)
{
Movable = false;
m_Item = new InternalItem(this);
}
public DecorativeSwordNorth(Serial serial) : base(serial)
{
_item = new InternalItem(this);
}
public override void OnLocationChange(Point3D oldLocation)
{
if (m_Item != null)
if (_item != null)
{
m_Item.Location = new Point3D(X - 1, Y, Z);
_item.Location = new Point3D(X - 1, Y, Z);
}
}
public override void OnMapChange()
{
if (m_Item != null)
if (_item != null)
{
m_Item.Map = Map;
_item.Map = Map;
}
}
@ -136,55 +65,35 @@ namespace Server.Items
{
base.OnAfterDelete();
m_Item?.Delete();
_item?.Delete();
}
public override void Serialize(IGenericWriter writer)
[Serializable(0, false)]
private partial class InternalItem : Item
{
base.Serialize(writer);
writer.Write(0); // version
writer.Write(m_Item);
}
public override void Deserialize(IGenericReader reader)
{
base.Deserialize(reader);
var version = reader.ReadInt();
m_Item = reader.ReadEntity<InternalItem>();
}
private class InternalItem : Item
{
private DecorativeSwordNorth m_Item;
[SerializableField(0, getter: "private", setter: "private")]
private DecorativeSwordNorth _item;
public InternalItem(DecorativeSwordNorth item) : base(0x1564)
{
Movable = true;
m_Item = item;
}
public InternalItem(Serial serial) : base(serial)
{
_item = item;
}
public override void OnLocationChange(Point3D oldLocation)
{
if (m_Item != null)
if (_item != null)
{
m_Item.Location = new Point3D(X + 1, Y, Z);
_item.Location = new Point3D(X + 1, Y, Z);
}
}
public override void OnMapChange()
{
if (m_Item != null)
if (_item != null)
{
m_Item.Map = Map;
_item.Map = Map;
}
}
@ -192,58 +101,37 @@ namespace Server.Items
{
base.OnAfterDelete();
m_Item?.Delete();
}
public override void Serialize(IGenericWriter writer)
{
base.Serialize(writer);
writer.Write(0); // version
writer.Write(m_Item);
}
public override void Deserialize(IGenericReader reader)
{
base.Deserialize(reader);
var version = reader.ReadInt();
m_Item = reader.ReadEntity<DecorativeSwordNorth>();
_item?.Delete();
}
}
}
public class DecorativeSwordWest : Item
[Serializable(0)]
public partial class DecorativeSwordWest : Item
{
private InternalItem m_Item;
[SerializableField(0, getter: "private", setter: "private")]
private InternalItem _item;
[Constructible]
public DecorativeSwordWest() : base(0x1566)
{
Movable = false;
m_Item = new InternalItem(this);
}
public DecorativeSwordWest(Serial serial) : base(serial)
{
_item = new InternalItem(this);
}
public override void OnLocationChange(Point3D oldLocation)
{
if (m_Item != null)
if (_item != null)
{
m_Item.Location = new Point3D(X, Y - 1, Z);
_item.Location = new Point3D(X, Y - 1, Z);
}
}
public override void OnMapChange()
{
if (m_Item != null)
if (_item != null)
{
m_Item.Map = Map;
_item.Map = Map;
}
}
@ -251,55 +139,34 @@ namespace Server.Items
{
base.OnAfterDelete();
m_Item?.Delete();
_item?.Delete();
}
public override void Serialize(IGenericWriter writer)
[Serializable(0)]
private partial class InternalItem : Item
{
base.Serialize(writer);
writer.Write(0); // version
writer.Write(m_Item);
}
public override void Deserialize(IGenericReader reader)
{
base.Deserialize(reader);
var version = reader.ReadInt();
m_Item = reader.ReadEntity<InternalItem>();
}
private class InternalItem : Item
{
private DecorativeSwordWest m_Item;
[SerializableField(0, getter: "private", setter: "private")]
private DecorativeSwordWest _item;
public InternalItem(DecorativeSwordWest item) : base(0x1567)
{
Movable = true;
m_Item = item;
}
public InternalItem(Serial serial) : base(serial)
{
_item = item;
}
public override void OnLocationChange(Point3D oldLocation)
{
if (m_Item != null)
if (_item != null)
{
m_Item.Location = new Point3D(X, Y + 1, Z);
_item.Location = new Point3D(X, Y + 1, Z);
}
}
public override void OnMapChange()
{
if (m_Item != null)
if (_item != null)
{
m_Item.Map = Map;
_item.Map = Map;
}
}
@ -307,58 +174,37 @@ namespace Server.Items
{
base.OnAfterDelete();
m_Item?.Delete();
}
public override void Serialize(IGenericWriter writer)
{
base.Serialize(writer);
writer.Write(0); // version
writer.Write(m_Item);
}
public override void Deserialize(IGenericReader reader)
{
base.Deserialize(reader);
var version = reader.ReadInt();
m_Item = reader.ReadEntity<DecorativeSwordWest>();
_item?.Delete();
}
}
}
public class DecorativeDAxeNorth : Item
[Serializable(0)]
public partial class DecorativeDAxeNorth : Item
{
private InternalItem m_Item;
[SerializableField(0, getter: "private", setter: "private")]
private InternalItem _item;
[Constructible]
public DecorativeDAxeNorth() : base(0x1569)
{
Movable = false;
m_Item = new InternalItem(this);
}
public DecorativeDAxeNorth(Serial serial) : base(serial)
{
_item = new InternalItem(this);
}
public override void OnLocationChange(Point3D oldLocation)
{
if (m_Item != null)
if (_item != null)
{
m_Item.Location = new Point3D(X - 1, Y, Z);
_item.Location = new Point3D(X - 1, Y, Z);
}
}
public override void OnMapChange()
{
if (m_Item != null)
if (_item != null)
{
m_Item.Map = Map;
_item.Map = Map;
}
}
@ -366,55 +212,35 @@ namespace Server.Items
{
base.OnAfterDelete();
m_Item?.Delete();
_item?.Delete();
}
public override void Serialize(IGenericWriter writer)
[Serializable(0)]
private partial class InternalItem : Item
{
base.Serialize(writer);
writer.Write(0); // version
writer.Write(m_Item);
}
public override void Deserialize(IGenericReader reader)
{
base.Deserialize(reader);
var version = reader.ReadInt();
m_Item = reader.ReadEntity<InternalItem>();
}
private class InternalItem : Item
{
private DecorativeDAxeNorth m_Item;
[SerializableField(0, getter: "private", setter: "private")]
private DecorativeDAxeNorth _item;
public InternalItem(DecorativeDAxeNorth item) : base(0x1568)
{
Movable = true;
m_Item = item;
}
public InternalItem(Serial serial) : base(serial)
{
_item = item;
}
public override void OnLocationChange(Point3D oldLocation)
{
if (m_Item != null)
if (_item != null)
{
m_Item.Location = new Point3D(X + 1, Y, Z);
_item.Location = new Point3D(X + 1, Y, Z);
}
}
public override void OnMapChange()
{
if (m_Item != null)
if (_item != null)
{
m_Item.Map = Map;
_item.Map = Map;
}
}
@ -422,58 +248,38 @@ namespace Server.Items
{
base.OnAfterDelete();
m_Item?.Delete();
}
public override void Serialize(IGenericWriter writer)
{
base.Serialize(writer);
writer.Write(0); // version
writer.Write(m_Item);
}
public override void Deserialize(IGenericReader reader)
{
base.Deserialize(reader);
var version = reader.ReadInt();
m_Item = reader.ReadEntity<DecorativeDAxeNorth>();
_item?.Delete();
}
}
}
public class DecorativeDAxeWest : Item
[Serializable(0)]
public partial class DecorativeDAxeWest : Item
{
private InternalItem m_Item;
[SerializableField(0, getter: "private", setter: "private")]
private InternalItem _item;
[Constructible]
public DecorativeDAxeWest() : base(0x156A)
{
Movable = false;
m_Item = new InternalItem(this);
}
public DecorativeDAxeWest(Serial serial) : base(serial)
{
_item = new InternalItem(this);
}
public override void OnLocationChange(Point3D oldLocation)
{
if (m_Item != null)
if (_item != null)
{
m_Item.Location = new Point3D(X, Y - 1, Z);
_item.Location = new Point3D(X, Y - 1, Z);
}
}
public override void OnMapChange()
{
if (m_Item != null)
if (_item != null)
{
m_Item.Map = Map;
_item.Map = Map;
}
}
@ -481,55 +287,35 @@ namespace Server.Items
{
base.OnAfterDelete();
m_Item?.Delete();
_item?.Delete();
}
public override void Serialize(IGenericWriter writer)
[Serializable(0)]
private partial class InternalItem : Item
{
base.Serialize(writer);
writer.Write(0); // version
writer.Write(m_Item);
}
public override void Deserialize(IGenericReader reader)
{
base.Deserialize(reader);
var version = reader.ReadInt();
m_Item = reader.ReadEntity<InternalItem>();
}
private class InternalItem : Item
{
private DecorativeDAxeWest m_Item;
[SerializableField(0, getter: "private", setter: "private")]
private DecorativeDAxeWest _item;
public InternalItem(DecorativeDAxeWest item) : base(0x156B)
{
Movable = true;
m_Item = item;
}
public InternalItem(Serial serial) : base(serial)
{
_item = item;
}
public override void OnLocationChange(Point3D oldLocation)
{
if (m_Item != null)
if (_item != null)
{
m_Item.Location = new Point3D(X, Y + 1, Z);
_item.Location = new Point3D(X, Y + 1, Z);
}
}
public override void OnMapChange()
{
if (m_Item != null)
if (_item != null)
{
m_Item.Map = Map;
_item.Map = Map;
}
}
@ -537,25 +323,7 @@ namespace Server.Items
{
base.OnAfterDelete();
m_Item?.Delete();
}
public override void Serialize(IGenericWriter writer)
{
base.Serialize(writer);
writer.Write(0); // version
writer.Write(m_Item);
}
public override void Deserialize(IGenericReader reader)
{
base.Deserialize(reader);
var version = reader.ReadInt();
m_Item = reader.ReadEntity<DecorativeDAxeWest>();
_item?.Delete();
}
}
}

View file

@ -1,176 +1,57 @@
namespace Server.Items
{
public class LargePainting : Item
[Serializable(0, false)]
public partial class LargePainting : Item
{
[Constructible]
public LargePainting() : base(0x0EA0) => Movable = false;
public LargePainting(Serial serial) : base(serial)
{
}
public override void Serialize(IGenericWriter writer)
{
base.Serialize(writer);
writer.Write(0); // version
}
public override void Deserialize(IGenericReader reader)
{
base.Deserialize(reader);
var version = reader.ReadInt();
}
}
[Serializable(0, false)]
[Flippable(0x0E9F, 0x0EC8)]
public class WomanPortrait1 : Item
public partial class WomanPortrait1 : Item
{
[Constructible]
public WomanPortrait1() : base(0x0E9F) => Movable = false;
public WomanPortrait1(Serial serial) : base(serial)
{
}
public override void Serialize(IGenericWriter writer)
{
base.Serialize(writer);
writer.Write(0); // version
}
public override void Deserialize(IGenericReader reader)
{
base.Deserialize(reader);
var version = reader.ReadInt();
}
}
[Serializable(0, false)]
[Flippable(0x0EE7, 0x0EC9)]
public class WomanPortrait2 : Item
public partial class WomanPortrait2 : Item
{
[Constructible]
public WomanPortrait2() : base(0x0EE7) => Movable = false;
public WomanPortrait2(Serial serial) : base(serial)
{
}
public override void Serialize(IGenericWriter writer)
{
base.Serialize(writer);
writer.Write(0); // version
}
public override void Deserialize(IGenericReader reader)
{
base.Deserialize(reader);
var version = reader.ReadInt();
}
}
[Serializable(0, false)]
[Flippable(0x0EA2, 0x0EA1)]
public class ManPortrait1 : Item
public partial class ManPortrait1 : Item
{
[Constructible]
public ManPortrait1() : base(0x0EA2) => Movable = false;
public ManPortrait1(Serial serial) : base(serial)
{
}
public override void Serialize(IGenericWriter writer)
{
base.Serialize(writer);
writer.Write(0); // version
}
public override void Deserialize(IGenericReader reader)
{
base.Deserialize(reader);
var version = reader.ReadInt();
}
}
[Serializable(0, false)]
[Flippable(0x0EA3, 0x0EA4)]
public class ManPortrait2 : Item
public partial class ManPortrait2 : Item
{
[Constructible]
public ManPortrait2() : base(0x0EA3) => Movable = false;
public ManPortrait2(Serial serial) : base(serial)
{
}
public override void Serialize(IGenericWriter writer)
{
base.Serialize(writer);
writer.Write(0); // version
}
public override void Deserialize(IGenericReader reader)
{
base.Deserialize(reader);
var version = reader.ReadInt();
}
}
[Serializable(0, false)]
[Flippable(0x0EA6, 0x0EA5)]
public class LadyPortrait1 : Item
public partial class LadyPortrait1 : Item
{
[Constructible]
public LadyPortrait1() : base(0x0EA6) => Movable = false;
public LadyPortrait1(Serial serial) : base(serial)
{
}
public override void Serialize(IGenericWriter writer)
{
base.Serialize(writer);
writer.Write(0); // version
}
public override void Deserialize(IGenericReader reader)
{
base.Deserialize(reader);
var version = reader.ReadInt();
}
}
[Serializable(0, false)]
[Flippable(0x0EA7, 0x0EA8)]
public class LadyPortrait2 : Item
public partial class LadyPortrait2 : Item
{
[Constructible]
public LadyPortrait2() : base(0x0EA7) => Movable = false;
public LadyPortrait2(Serial serial) : base(serial)
{
}
public override void Serialize(IGenericWriter writer)
{
base.Serialize(writer);
writer.Write(0); // version
}
public override void Deserialize(IGenericReader reader)
{
base.Deserialize(reader);
var version = reader.ReadInt();
}
}
}

File diff suppressed because it is too large Load diff

View file

@ -697,7 +697,7 @@ namespace Server.Items
}
}
[DynamicFliping, Flippable(0x9A8, 0xE80)]
[DynamicFlipping, Flippable(0x9A8, 0xE80)]
public class MetalBox : LockableContainer
{
[Constructible]
@ -729,7 +729,7 @@ namespace Server.Items
}
}
[DynamicFliping, Flippable(0x9AB, 0xE7C)]
[DynamicFlipping, Flippable(0x9AB, 0xE7C)]
public class MetalChest : LockableContainer
{
[Constructible]
@ -761,7 +761,7 @@ namespace Server.Items
}
}
[DynamicFliping, Flippable(0xE41, 0xE40)]
[DynamicFlipping, Flippable(0xE41, 0xE40)]
public class MetalGoldenChest : LockableContainer
{
[Constructible]

View file

@ -51,7 +51,7 @@ namespace Server.Items
}
[AttributeUsage(AttributeTargets.Class)]
public class DynamicFlipingAttribute : Attribute
public class DynamicFlippingAttribute : Attribute
{
}

View file

@ -0,0 +1,4 @@
{
"version": 0,
"type": "Server.Items.BambooChair"
}

View file

@ -0,0 +1,4 @@
{
"version": 0,
"type": "Server.Items.BigElvenChair"
}

View file

@ -0,0 +1,4 @@
{
"version": 0,
"type": "Server.Items.DecorativeAxeNorth"
}

View file

@ -0,0 +1,4 @@
{
"version": 0,
"type": "Server.Items.DecorativeAxeWest"
}

View file

@ -0,0 +1,4 @@
{
"version": 0,
"type": "Server.Items.DecorativeBowNorth"
}

View file

@ -0,0 +1,4 @@
{
"version": 0,
"type": "Server.Items.DecorativeBowWest"
}

View file

@ -0,0 +1,11 @@
{
"version": 0,
"type": "Server.Items.DecorativeDAxeNorth.InternalItem",
"properties": [
{
"name": "Item",
"type": "Server.Items.DecorativeDAxeNorth",
"rule": "SerializableInterfaceMigrationRule"
}
]
}

View file

@ -0,0 +1,11 @@
{
"version": 0,
"type": "Server.Items.DecorativeDAxeNorth",
"properties": [
{
"name": "Item",
"type": "Server.Items.DecorativeDAxeNorth.InternalItem",
"rule": "SerializableInterfaceMigrationRule"
}
]
}

View file

@ -0,0 +1,11 @@
{
"version": 0,
"type": "Server.Items.DecorativeDAxeWest.InternalItem",
"properties": [
{
"name": "Item",
"type": "Server.Items.DecorativeDAxeWest",
"rule": "SerializableInterfaceMigrationRule"
}
]
}

View file

@ -0,0 +1,11 @@
{
"version": 0,
"type": "Server.Items.DecorativeDAxeWest",
"properties": [
{
"name": "Item",
"type": "Server.Items.DecorativeDAxeWest.InternalItem",
"rule": "SerializableInterfaceMigrationRule"
}
]
}

View file

@ -0,0 +1,4 @@
{
"version": 0,
"type": "Server.Items.DecorativeShield1"
}

View file

@ -0,0 +1,4 @@
{
"version": 0,
"type": "Server.Items.DecorativeShield10"
}

View file

@ -0,0 +1,4 @@
{
"version": 0,
"type": "Server.Items.DecorativeShield11"
}

View file

@ -0,0 +1,4 @@
{
"version": 0,
"type": "Server.Items.DecorativeShield2"
}

View file

@ -0,0 +1,4 @@
{
"version": 0,
"type": "Server.Items.DecorativeShield3"
}

View file

@ -0,0 +1,4 @@
{
"version": 0,
"type": "Server.Items.DecorativeShield4"
}

View file

@ -0,0 +1,4 @@
{
"version": 0,
"type": "Server.Items.DecorativeShield5"
}

View file

@ -0,0 +1,4 @@
{
"version": 0,
"type": "Server.Items.DecorativeShield6"
}

View file

@ -0,0 +1,4 @@
{
"version": 0,
"type": "Server.Items.DecorativeShield7"
}

View file

@ -0,0 +1,4 @@
{
"version": 0,
"type": "Server.Items.DecorativeShield8"
}

View file

@ -0,0 +1,4 @@
{
"version": 0,
"type": "Server.Items.DecorativeShield9"
}

View file

@ -0,0 +1,4 @@
{
"version": 0,
"type": "Server.Items.DecorativeShieldSword1North"
}

View file

@ -0,0 +1,4 @@
{
"version": 0,
"type": "Server.Items.DecorativeShieldSword1West"
}

View file

@ -0,0 +1,4 @@
{
"version": 0,
"type": "Server.Items.DecorativeShieldSword2North"
}

View file

@ -0,0 +1,4 @@
{
"version": 0,
"type": "Server.Items.DecorativeShieldSword2West"
}

View file

@ -0,0 +1,11 @@
{
"version": 0,
"type": "Server.Items.DecorativeSwordNorth.InternalItem",
"properties": [
{
"name": "Item",
"type": "Server.Items.DecorativeSwordNorth",
"rule": "SerializableInterfaceMigrationRule"
}
]
}

View file

@ -0,0 +1,11 @@
{
"version": 0,
"type": "Server.Items.DecorativeSwordNorth",
"properties": [
{
"name": "Item",
"type": "Server.Items.DecorativeSwordNorth.InternalItem",
"rule": "SerializableInterfaceMigrationRule"
}
]
}

View file

@ -0,0 +1,11 @@
{
"version": 0,
"type": "Server.Items.DecorativeSwordWest.InternalItem",
"properties": [
{
"name": "Item",
"type": "Server.Items.DecorativeSwordWest",
"rule": "SerializableInterfaceMigrationRule"
}
]
}

View file

@ -0,0 +1,11 @@
{
"version": 0,
"type": "Server.Items.DecorativeSwordWest",
"properties": [
{
"name": "Item",
"type": "Server.Items.DecorativeSwordWest.InternalItem",
"rule": "SerializableInterfaceMigrationRule"
}
]
}

View file

@ -0,0 +1,4 @@
{
"version": 0,
"type": "Server.Items.ElvenReadingChair"
}

View file

@ -0,0 +1,4 @@
{
"version": 0,
"type": "Server.Items.FancyWoodenChairCushion"
}

View file

@ -0,0 +1,4 @@
{
"version": 0,
"type": "Server.Items.FootStool"
}

View file

@ -0,0 +1,4 @@
{
"version": 0,
"type": "Server.Items.LadyPortrait1"
}

View file

@ -0,0 +1,4 @@
{
"version": 0,
"type": "Server.Items.LadyPortrait2"
}

View file

@ -0,0 +1,4 @@
{
"version": 0,
"type": "Server.Items.LargePainting"
}

View file

@ -0,0 +1,4 @@
{
"version": 0,
"type": "Server.Items.ManPortrait1"
}

View file

@ -0,0 +1,4 @@
{
"version": 0,
"type": "Server.Items.ManPortrait2"
}

View file

@ -0,0 +1,4 @@
{
"version": 0,
"type": "Server.Items.OrnateElvenChair"
}

View file

@ -0,0 +1,4 @@
{
"version": 0,
"type": "Server.Items.StoneChair"
}

View file

@ -0,0 +1,4 @@
{
"version": 0,
"type": "Server.Items.Stool"
}

View file

@ -0,0 +1,11 @@
{
"version": 0,
"type": "Server.Items.Tapestry1N.InternalItem",
"properties": [
{
"name": "Item",
"type": "Server.Items.Tapestry1N",
"rule": "SerializableInterfaceMigrationRule"
}
]
}

View file

@ -0,0 +1,11 @@
{
"version": 0,
"type": "Server.Items.Tapestry1N",
"properties": [
{
"name": "Item",
"type": "Server.Items.Tapestry1N.InternalItem",
"rule": "SerializableInterfaceMigrationRule"
}
]
}

View file

@ -0,0 +1,11 @@
{
"version": 0,
"type": "Server.Items.Tapestry2N.InternalItem",
"properties": [
{
"name": "Item",
"type": "Server.Items.Tapestry2N",
"rule": "SerializableInterfaceMigrationRule"
}
]
}

View file

@ -0,0 +1,11 @@
{
"version": 0,
"type": "Server.Items.Tapestry2N",
"properties": [
{
"name": "Item",
"type": "Server.Items.Tapestry2N.InternalItem",
"rule": "SerializableInterfaceMigrationRule"
}
]
}

View file

@ -0,0 +1,11 @@
{
"version": 0,
"type": "Server.Items.Tapestry2W.InternalItem",
"properties": [
{
"name": "Item",
"type": "Server.Items.Tapestry2W",
"rule": "SerializableInterfaceMigrationRule"
}
]
}

View file

@ -0,0 +1,11 @@
{
"version": 0,
"type": "Server.Items.Tapestry2W",
"properties": [
{
"name": "Item",
"type": "Server.Items.Tapestry2W.InternalItem",
"rule": "SerializableInterfaceMigrationRule"
}
]
}

View file

@ -0,0 +1,11 @@
{
"version": 0,
"type": "Server.Items.Tapestry3N.InternalItem",
"properties": [
{
"name": "Item",
"type": "Server.Items.Tapestry3N",
"rule": "SerializableInterfaceMigrationRule"
}
]
}

View file

@ -0,0 +1,11 @@
{
"version": 0,
"type": "Server.Items.Tapestry3N",
"properties": [
{
"name": "Item",
"type": "Server.Items.Tapestry3N.InternalItem",
"rule": "SerializableInterfaceMigrationRule"
}
]
}

View file

@ -0,0 +1,11 @@
{
"version": 0,
"type": "Server.Items.Tapestry3W.InternalItem",
"properties": [
{
"name": "Item",
"type": "Server.Items.Tapestry3W",
"rule": "SerializableInterfaceMigrationRule"
}
]
}

View file

@ -0,0 +1,11 @@
{
"version": 0,
"type": "Server.Items.Tapestry3W",
"properties": [
{
"name": "Item",
"type": "Server.Items.Tapestry3W.InternalItem",
"rule": "SerializableInterfaceMigrationRule"
}
]
}

View file

@ -0,0 +1,11 @@
{
"version": 0,
"type": "Server.Items.Tapestry4N.InternalItem",
"properties": [
{
"name": "Item",
"type": "Server.Items.Tapestry4N",
"rule": "SerializableInterfaceMigrationRule"
}
]
}

View file

@ -0,0 +1,11 @@
{
"version": 0,
"type": "Server.Items.Tapestry4N",
"properties": [
{
"name": "Item",
"type": "Server.Items.Tapestry4N.InternalItem",
"rule": "SerializableInterfaceMigrationRule"
}
]
}

View file

@ -0,0 +1,11 @@
{
"version": 0,
"type": "Server.Items.Tapestry4W.InternalItem",
"properties": [
{
"name": "Item",
"type": "Server.Items.Tapestry4W",
"rule": "SerializableInterfaceMigrationRule"
}
]
}

View file

@ -0,0 +1,11 @@
{
"version": 0,
"type": "Server.Items.Tapestry4W",
"properties": [
{
"name": "Item",
"type": "Server.Items.Tapestry4W.InternalItem",
"rule": "SerializableInterfaceMigrationRule"
}
]
}

View file

@ -0,0 +1,11 @@
{
"version": 0,
"type": "Server.Items.Tapestry5N.InternalItem",
"properties": [
{
"name": "Item",
"type": "Server.Items.Tapestry5N",
"rule": "SerializableInterfaceMigrationRule"
}
]
}

View file

@ -0,0 +1,11 @@
{
"version": 0,
"type": "Server.Items.Tapestry5N",
"properties": [
{
"name": "Item",
"type": "Server.Items.Tapestry5N.InternalItem",
"rule": "SerializableInterfaceMigrationRule"
}
]
}

View file

@ -0,0 +1,11 @@
{
"version": 0,
"type": "Server.Items.Tapestry5W.InternalItem",
"properties": [
{
"name": "Item",
"type": "Server.Items.Tapestry5W",
"rule": "SerializableInterfaceMigrationRule"
}
]
}

View file

@ -0,0 +1,11 @@
{
"version": 0,
"type": "Server.Items.Tapestry5W",
"properties": [
{
"name": "Item",
"type": "Server.Items.Tapestry5W.InternalItem",
"rule": "SerializableInterfaceMigrationRule"
}
]
}

View file

@ -0,0 +1,11 @@
{
"version": 0,
"type": "Server.Items.Tapestry6N.InternalItem",
"properties": [
{
"name": "Item",
"type": "Server.Items.Tapestry6N",
"rule": "SerializableInterfaceMigrationRule"
}
]
}

View file

@ -0,0 +1,11 @@
{
"version": 0,
"type": "Server.Items.Tapestry6N",
"properties": [
{
"name": "Item",
"type": "Server.Items.Tapestry6N.InternalItem",
"rule": "SerializableInterfaceMigrationRule"
}
]
}

View file

@ -0,0 +1,11 @@
{
"version": 0,
"type": "Server.Items.Tapestry6W.InternalItem",
"properties": [
{
"name": "Item",
"type": "Server.Items.Tapestry6W",
"rule": "SerializableInterfaceMigrationRule"
}
]
}

View file

@ -0,0 +1,11 @@
{
"version": 0,
"type": "Server.Items.Tapestry6W",
"properties": [
{
"name": "Item",
"type": "Server.Items.Tapestry6W.InternalItem",
"rule": "SerializableInterfaceMigrationRule"
}
]
}

View file

@ -0,0 +1,4 @@
{
"version": 0,
"type": "Server.Items.Throne"
}

View file

@ -0,0 +1,4 @@
{
"version": 0,
"type": "Server.Items.WomanPortrait1"
}

View file

@ -0,0 +1,4 @@
{
"version": 0,
"type": "Server.Items.WomanPortrait2"
}

View file

@ -0,0 +1,4 @@
{
"version": 0,
"type": "Server.Items.WoodenBench"
}

View file

@ -0,0 +1,4 @@
{
"version": 0,
"type": "Server.Items.WoodenChair"
}

View file

@ -0,0 +1,4 @@
{
"version": 0,
"type": "Server.Items.WoodenChairCushion"
}

View file

@ -0,0 +1,4 @@
{
"version": 0,
"type": "Server.Items.WoodenThrone"
}

View file

@ -901,7 +901,7 @@ namespace Server.Mobiles
var type = item.GetType();
if (type.IsDefined(typeof(FurnitureAttribute), true) ||
type.IsDefined(typeof(DynamicFlipingAttribute), true))
type.IsDefined(typeof(DynamicFlippingAttribute), true))
{
var objs = type.GetCustomAttributes(typeof(FlippableAttribute), true);