257 lines
5.2 KiB
C#
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();
|
|
}
|
|
}
|
|
}
|