ModernUO/Projects/UOContent/Items/Skill Items/Blacksmith Items/Misc/LargeForge.cs

257 lines
5.2 KiB
C#

using ModernUO.Serialization;
using Server.Engines.Craft;
namespace Server.Items;
[Forge]
[SerializationGenerator(0, false)]
public partial class LargeForgeWest : Item
{
[SerializableField(0, getter: "private", setter: "private")]
private InternalItem _item;
[SerializableField(1, getter: "private", setter: "private")]
private InternalItem2 _item2;
[Constructible]
public LargeForgeWest() : base(0x199A)
{
Movable = false;
_item = new InternalItem(this);
_item2 = new InternalItem2(this);
}
public override void OnLocationChange(Point3D oldLocation)
{
if (_item != null)
{
_item.Location = new Point3D(X, Y + 1, Z);
}
if (_item2 != null)
{
_item2.Location = new Point3D(X, Y + 2, Z);
}
}
public override void OnMapChange()
{
if (_item != null)
{
_item.Map = Map;
}
if (_item2 != null)
{
_item2.Map = Map;
}
}
public override void OnAfterDelete()
{
base.OnAfterDelete();
_item?.Delete();
_item2?.Delete();
}
[Forge]
[SerializationGenerator(0, false)]
private partial class InternalItem : Item
{
private LargeForgeWest _parent;
public InternalItem(LargeForgeWest item) : base(0x1996)
{
Movable = false;
_parent = item;
}
public override void OnLocationChange(Point3D oldLocation)
{
if (_parent != null)
{
_parent.Location = new Point3D(X, Y - 1, Z);
}
}
public override void OnMapChange()
{
if (_parent != null)
{
_parent.Map = Map;
}
}
public override void OnAfterDelete()
{
base.OnAfterDelete();
_parent?.Delete();
}
}
[Forge]
[SerializationGenerator(0, false)]
private partial class InternalItem2 : Item
{
private LargeForgeWest _parent;
public InternalItem2(LargeForgeWest item) : base(0x1992)
{
Movable = false;
_parent = item;
}
public override void OnLocationChange(Point3D oldLocation)
{
if (_parent != null)
{
_parent.Location = new Point3D(X, Y - 2, Z);
}
}
public override void OnMapChange()
{
if (_parent != null)
{
_parent.Map = Map;
}
}
public override void OnAfterDelete()
{
base.OnAfterDelete();
_parent?.Delete();
}
}
}
[Forge]
[SerializationGenerator(0, false)]
public partial class LargeForgeEast : Item
{
private InternalItem _item;
private InternalItem2 _item2;
[Constructible]
public LargeForgeEast() : base(0x197A)
{
Movable = false;
_item = new InternalItem(this);
_item2 = new InternalItem2(this);
}
public override void OnLocationChange(Point3D oldLocation)
{
if (_item != null)
{
_item.Location = new Point3D(X + 1, Y, Z);
}
if (_item2 != null)
{
_item2.Location = new Point3D(X + 2, Y, Z);
}
}
public override void OnMapChange()
{
if (_item != null)
{
_item.Map = Map;
}
if (_item2 != null)
{
_item2.Map = Map;
}
}
public override void OnAfterDelete()
{
base.OnAfterDelete();
_item?.Delete();
_item2?.Delete();
}
[Forge]
[SerializationGenerator(0, false)]
private partial class InternalItem : Item
{
private LargeForgeEast _parent;
public InternalItem(LargeForgeEast item) : base(0x197E)
{
Movable = false;
_parent = item;
}
public override void OnLocationChange(Point3D oldLocation)
{
if (_parent != null)
{
_parent.Location = new Point3D(X - 1, Y, Z);
}
}
public override void OnMapChange()
{
if (_parent != null)
{
_parent.Map = Map;
}
}
public override void OnAfterDelete()
{
base.OnAfterDelete();
_parent?.Delete();
}
}
[Forge]
[SerializationGenerator(0, false)]
private partial class InternalItem2 : Item
{
private LargeForgeEast _parent;
public InternalItem2(LargeForgeEast item) : base(0x1982)
{
Movable = false;
_parent = item;
}
public override void OnLocationChange(Point3D oldLocation)
{
if (_parent != null)
{
_parent.Location = new Point3D(X - 2, Y, Z);
}
}
public override void OnMapChange()
{
if (_parent != null)
{
_parent.Map = Map;
}
}
public override void OnAfterDelete()
{
base.OnAfterDelete();
_parent?.Delete();
}
}
}