Reorganizes Project (#41)

This commit is contained in:
Kamron Batman 2019-08-02 18:13:40 -07:00 committed by GitHub
parent 08bf44af9a
commit 3614a66aee
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
3499 changed files with 79 additions and 55 deletions

View file

@ -0,0 +1,120 @@
namespace Server.Items
{
public abstract class BaseWaterContainer : Container, IHasQuantity
{
private int m_Quantity;
public BaseWaterContainer(int Item_Id, bool filled)
: base(Item_Id)
{
m_Quantity = filled ? MaxQuantity : 0;
}
public BaseWaterContainer(Serial serial)
: base(serial)
{
}
public abstract int voidItem_ID{ get; }
public abstract int fullItem_ID{ get; }
public abstract int MaxQuantity{ get; }
public override int DefaultGumpID => 0x3e;
[CommandProperty(AccessLevel.GameMaster)]
public virtual bool IsEmpty => m_Quantity <= 0;
[CommandProperty(AccessLevel.GameMaster)]
public virtual bool IsFull => m_Quantity >= MaxQuantity;
[CommandProperty(AccessLevel.GameMaster)]
public virtual int Quantity
{
get => m_Quantity;
set
{
if (value != m_Quantity)
{
m_Quantity = value < 1 ? 0 : value > MaxQuantity ? MaxQuantity : value;
Movable = !IsLockedDown ? IsEmpty : false;
ItemID = IsEmpty ? voidItem_ID : fullItem_ID;
if (!IsEmpty)
{
IEntity rootParent = RootParent;
if (rootParent?.Map != null && rootParent.Map != Map.Internal)
MoveToWorld(rootParent.Location, rootParent.Map);
}
InvalidateProperties();
}
}
}
public override void OnDoubleClick(Mobile from)
{
if (IsEmpty) base.OnDoubleClick(from);
}
public override void OnSingleClick(Mobile from)
{
if (IsEmpty)
{
base.OnSingleClick(from);
}
else
{
if (Name == null)
LabelTo(from, LabelNumber);
else
LabelTo(from, Name);
}
}
public override void OnAosSingleClick(Mobile from)
{
if (IsEmpty)
{
base.OnAosSingleClick(from);
}
else
{
if (Name == null)
LabelTo(from, LabelNumber);
else
LabelTo(from, Name);
}
}
public override void GetProperties(ObjectPropertyList list)
{
if (IsEmpty) base.GetProperties(list);
}
public override bool OnDragDropInto(Mobile from, Item item, Point3D p)
{
if (!IsEmpty) return false;
return base.OnDragDropInto(from, item, p);
}
public override void Serialize(GenericWriter writer)
{
base.Serialize(writer);
writer.Write(0); // version
writer.Write(m_Quantity);
}
public override void Deserialize(GenericReader reader)
{
base.Deserialize(reader);
int version = reader.ReadInt();
m_Quantity = reader.ReadInt();
}
}
}

View file

@ -0,0 +1,37 @@
namespace Server.Items
{
internal class Bucket : BaseWaterContainer
{
private static int vItemID = 0x14e0;
private static int fItemID = 0x2004;
[Constructible]
public Bucket(bool filled = false)
: base(filled ? fItemID : vItemID, filled)
{
}
public Bucket(Serial serial)
: base(serial)
{
}
public override int voidItem_ID => vItemID;
public override int fullItem_ID => fItemID;
public override int MaxQuantity => 25;
public override void Serialize(GenericWriter writer)
{
base.Serialize(writer);
writer.Write(0); // version
}
public override void Deserialize(GenericReader reader)
{
base.Deserialize(reader);
int version = reader.ReadInt();
}
}
}

View file

@ -0,0 +1,32 @@
namespace Server.Items
{
internal class ClosedBarrel : TrappableContainer
{
[Constructible]
public ClosedBarrel()
: base(0x0FAE)
{
}
public ClosedBarrel(Serial serial)
: base(serial)
{
}
public override int DefaultGumpID => 0x3e;
public override void Serialize(GenericWriter writer)
{
base.Serialize(writer);
writer.Write(0); // version
}
public override void Deserialize(GenericReader reader)
{
base.Deserialize(reader);
int version = reader.ReadInt();
}
}
}

View file

@ -0,0 +1,30 @@
namespace Server.Items
{
public class UnfinishedBarrel : Item
{
[Constructible]
public UnfinishedBarrel() : base(0x1EB5)
{
Movable = true;
Stackable = false;
}
public UnfinishedBarrel(Serial serial) : base(serial)
{
}
public override void Serialize(GenericWriter writer)
{
base.Serialize(writer);
writer.Write(0);
}
public override void Deserialize(GenericReader reader)
{
base.Deserialize(reader);
int version = reader.ReadInt();
}
}
}

View file

@ -0,0 +1,39 @@
namespace Server.Items
{
internal class WaterBarrel : BaseWaterContainer
{
private static int vItemID = 0xe77;
private static int fItemID = 0x154d;
[Constructible]
public WaterBarrel(bool filled = false)
: base(filled ? fItemID : vItemID, filled)
{
}
public WaterBarrel(Serial serial)
: base(serial)
{
}
public override int LabelNumber => 1025453; /* water barrel */
public override int voidItem_ID => vItemID;
public override int fullItem_ID => fItemID;
public override int MaxQuantity => 100;
public override void Serialize(GenericWriter writer)
{
base.Serialize(writer);
writer.Write(0); // version
}
public override void Deserialize(GenericReader reader)
{
base.Deserialize(reader);
int version = reader.ReadInt();
}
}
}

View file

@ -0,0 +1,37 @@
namespace Server.Items
{
internal class Tub : BaseWaterContainer
{
private static int vItemID = 0xe83;
private static int fItemID = 0xe7b;
[Constructible]
public Tub(bool filled = false)
: base(filled ? fItemID : vItemID, filled)
{
}
public Tub(Serial serial)
: base(serial)
{
}
public override int voidItem_ID => vItemID;
public override int fullItem_ID => fItemID;
public override int MaxQuantity => 50;
public override void Serialize(GenericWriter writer)
{
base.Serialize(writer);
writer.Write(0); // version
}
public override void Deserialize(GenericReader reader)
{
base.Deserialize(reader);
int version = reader.ReadInt();
}
}
}