fix: Codegens tools (#1354)

This commit is contained in:
Kamron Batman 2023-02-25 13:54:05 -08:00 committed by GitHub
parent 5c99d0cb38
commit bf6da39176
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
61 changed files with 1827 additions and 2266 deletions

File diff suppressed because it is too large Load diff

View file

@ -1,219 +1,166 @@
using System;
using ModernUO.Serialization;
using Server.Engines.Craft;
using Server.Network;
namespace Server.Items
namespace Server.Items;
public enum ToolQuality
{
public enum ToolQuality
Low,
Regular,
Exceptional
}
[SerializationGenerator(2, false)]
public abstract partial class BaseTool : Item, IUsesRemaining, ICraftable
{
[InvalidateProperties]
[SerializableField(0)]
[SerializedCommandProperty(AccessLevel.GameMaster)]
private string _crafter;
[InvalidateProperties]
[SerializableField(2)]
[SerializedCommandProperty(AccessLevel.GameMaster)]
private int _usesRemaining;
public BaseTool(int itemID) : this(Utility.RandomMinMax(25, 75), itemID)
{
Low,
Regular,
Exceptional
}
public abstract class BaseTool : Item, IUsesRemaining, ICraftable
public BaseTool(int uses, int itemID) : base(itemID)
{
private Mobile m_Crafter;
private ToolQuality m_Quality;
private int m_UsesRemaining;
_usesRemaining = uses;
_quality = ToolQuality.Regular;
}
public BaseTool(int itemID) : this(Utility.RandomMinMax(25, 75), itemID)
[CommandProperty(AccessLevel.GameMaster)]
[SerializableProperty(1)]
public ToolQuality Quality
{
get => _quality;
set
{
UnscaleUses();
_quality = value;
ScaleUses();
this.MarkDirty();
}
}
public virtual bool BreakOnDepletion => true;
public abstract CraftSystem CraftSystem { get; }
private bool ShowUsesRemaining { get; set; } = true;
public int OnCraft(
int quality, bool makersMark, Mobile from, CraftSystem craftSystem, Type typeRes, BaseTool tool,
CraftItem craftItem, int resHue
)
{
Quality = (ToolQuality)quality;
if (makersMark)
{
Crafter = from?.RawName;
}
public BaseTool(int uses, int itemID) : base(itemID)
return quality;
}
bool IUsesRemaining.ShowUsesRemaining
{
get => ShowUsesRemaining;
set => ShowUsesRemaining = value;
}
public void ScaleUses()
{
UsesRemaining = _usesRemaining * GetUsesScalar() / 100;
InvalidateProperties();
}
public void UnscaleUses()
{
UsesRemaining = _usesRemaining * 100 / GetUsesScalar();
}
public int GetUsesScalar() => _quality == ToolQuality.Exceptional ? 200 : 100;
public override void GetProperties(IPropertyList list)
{
base.GetProperties(list);
// Makers mark not displayed on OSI
// if (m_Crafter != null)
// list.Add( 1050043, m_Crafter.Name ); // crafted by ~1_NAME~
if (_quality == ToolQuality.Exceptional)
{
m_UsesRemaining = uses;
m_Quality = ToolQuality.Regular;
list.Add(1060636); // exceptional
}
public BaseTool(Serial serial) : base(serial)
list.Add(1060584, _usesRemaining); // uses remaining: ~1_val~
}
public virtual void DisplayDurabilityTo(Mobile m)
{
LabelToAffix(m, 1017323, AffixType.Append, $": {_usesRemaining}"); // Durability
}
public static bool CheckAccessible(Item tool, Mobile m) => tool.IsChildOf(m) || tool.Parent == m;
public static bool CheckTool(Item tool, Mobile m)
{
var check = m.FindItemOnLayer(Layer.OneHanded);
if (check is BaseTool && check != tool && check is not AncientSmithyHammer)
{
return false;
}
[CommandProperty(AccessLevel.GameMaster)]
public Mobile Crafter
check = m.FindItemOnLayer(Layer.TwoHanded);
return check is not BaseTool || check == tool || check is AncientSmithyHammer;
}
public override void OnSingleClick(Mobile from)
{
DisplayDurabilityTo(from);
base.OnSingleClick(from);
}
public override void OnDoubleClick(Mobile from)
{
if (IsChildOf(from.Backpack) || Parent == from)
{
get => m_Crafter;
set
var system = CraftSystem;
var num = system.CanCraft(from, this, null);
// Blacksmithing shows the gump regardless of proximity of an anvil and forge after SE
if (num > 0 && (num != 1044267 || !Core.SE))
{
m_Crafter = value;
InvalidateProperties();
}
}
[CommandProperty(AccessLevel.GameMaster)]
public ToolQuality Quality
{
get => m_Quality;
set
{
UnscaleUses();
m_Quality = value;
InvalidateProperties();
ScaleUses();
}
}
public virtual bool BreakOnDepletion => true;
public abstract CraftSystem CraftSystem { get; }
private bool ShowUsesRemaining { get; set; } = true;
public int OnCraft(
int quality, bool makersMark, Mobile from, CraftSystem craftSystem, Type typeRes, BaseTool tool,
CraftItem craftItem, int resHue
)
{
Quality = (ToolQuality)quality;
if (makersMark)
{
Crafter = from;
}
return quality;
}
[CommandProperty(AccessLevel.GameMaster)]
public int UsesRemaining
{
get => m_UsesRemaining;
set
{
m_UsesRemaining = value;
InvalidateProperties();
}
}
bool IUsesRemaining.ShowUsesRemaining
{
get => ShowUsesRemaining;
set => ShowUsesRemaining = value;
}
public void ScaleUses()
{
m_UsesRemaining = m_UsesRemaining * GetUsesScalar() / 100;
InvalidateProperties();
}
public void UnscaleUses()
{
m_UsesRemaining = m_UsesRemaining * 100 / GetUsesScalar();
}
public int GetUsesScalar()
{
if (m_Quality == ToolQuality.Exceptional)
{
return 200;
}
return 100;
}
public override void GetProperties(IPropertyList list)
{
base.GetProperties(list);
// Makers mark not displayed on OSI
// if (m_Crafter != null)
// list.Add( 1050043, m_Crafter.Name ); // crafted by ~1_NAME~
if (m_Quality == ToolQuality.Exceptional)
{
list.Add(1060636); // exceptional
}
list.Add(1060584, m_UsesRemaining); // uses remaining: ~1_val~
}
public virtual void DisplayDurabilityTo(Mobile m)
{
LabelToAffix(m, 1017323, AffixType.Append, $": {m_UsesRemaining}"); // Durability
}
public static bool CheckAccessible(Item tool, Mobile m) => tool.IsChildOf(m) || tool.Parent == m;
public static bool CheckTool(Item tool, Mobile m)
{
var check = m.FindItemOnLayer(Layer.OneHanded);
if (check is BaseTool && check != tool && check is not AncientSmithyHammer)
{
return false;
}
check = m.FindItemOnLayer(Layer.TwoHanded);
return check is not BaseTool || check == tool || check is AncientSmithyHammer;
}
public override void OnSingleClick(Mobile from)
{
DisplayDurabilityTo(from);
base.OnSingleClick(from);
}
public override void OnDoubleClick(Mobile from)
{
if (IsChildOf(from.Backpack) || Parent == from)
{
var system = CraftSystem;
var num = system.CanCraft(from, this, null);
// Blacksmithing shows the gump regardless of proximity of an anvil and forge after SE
if (num > 0 && (num != 1044267 || !Core.SE))
{
from.SendLocalizedMessage(num);
}
else
{
from.SendGump(new CraftGump(from, system, this, null));
}
from.SendLocalizedMessage(num);
}
else
{
from.SendLocalizedMessage(1042001); // That must be in your pack for you to use it.
from.SendGump(new CraftGump(from, system, this, null));
}
}
public override void Serialize(IGenericWriter writer)
else
{
base.Serialize(writer);
writer.Write(1); // version
writer.Write(m_Crafter);
writer.Write((int)m_Quality);
writer.Write(m_UsesRemaining);
}
public override void Deserialize(IGenericReader reader)
{
base.Deserialize(reader);
var version = reader.ReadInt();
switch (version)
{
case 1:
{
m_Crafter = reader.ReadEntity<Mobile>();
m_Quality = (ToolQuality)reader.ReadInt();
goto case 0;
}
case 0:
{
m_UsesRemaining = reader.ReadInt();
break;
}
}
from.SendLocalizedMessage(1042001); // That must be in your pack for you to use it.
}
}
private void Deserialize(IGenericReader reader, int version)
{
Timer.DelayCall((item, crafter) => item._crafter = crafter?.RawName, this, reader.ReadEntity<Mobile>());
_quality = (ToolQuality)reader.ReadInt();
_usesRemaining = reader.ReadInt();
}
}

View file

@ -1,49 +1,27 @@
using ModernUO.Serialization;
using Server.Engines.Craft;
namespace Server.Items
namespace Server.Items;
[Flippable(0xE8A, 0xE89)]
[SerializationGenerator(0, false)]
public partial class Blowpipe : BaseTool
{
[Flippable(0xE8A, 0xE89)]
public class Blowpipe : BaseTool
[Constructible]
public Blowpipe() : base(0xE8A)
{
[Constructible]
public Blowpipe() : base(0xE8A)
{
Weight = 4.0;
Hue = 0x3B9;
}
[Constructible]
public Blowpipe(int uses) : base(uses, 0xE8A)
{
Weight = 4.0;
Hue = 0x3B9;
}
public Blowpipe(Serial serial) : base(serial)
{
}
public override CraftSystem CraftSystem => DefGlassblowing.CraftSystem;
public override int LabelNumber => 1044608; // blow pipe
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();
if (Weight == 2.0)
{
Weight = 4.0;
}
}
Weight = 4.0;
Hue = 0x3B9;
}
[Constructible]
public Blowpipe(int uses) : base(uses, 0xE8A)
{
Weight = 4.0;
Hue = 0x3B9;
}
public override CraftSystem CraftSystem => DefGlassblowing.CraftSystem;
public override int LabelNumber => 1044608; // blow pipe
}

View file

@ -1,39 +1,17 @@
using ModernUO.Serialization;
using Server.Engines.Craft;
namespace Server.Items
namespace Server.Items;
[Flippable(0x1028, 0x1029)]
[SerializationGenerator(0, false)]
public partial class DovetailSaw : BaseTool
{
[Flippable(0x1028, 0x1029)]
public class DovetailSaw : BaseTool
{
[Constructible]
public DovetailSaw() : base(0x1028) => Weight = 2.0;
[Constructible]
public DovetailSaw() : base(0x1028) => Weight = 2.0;
[Constructible]
public DovetailSaw(int uses) : base(uses, 0x1028) => Weight = 2.0;
[Constructible]
public DovetailSaw(int uses) : base(uses, 0x1028) => Weight = 2.0;
public DovetailSaw(Serial serial) : base(serial)
{
}
public override CraftSystem CraftSystem => DefCarpentry.CraftSystem;
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();
if (Weight == 1.0)
{
Weight = 2.0;
}
}
}
public override CraftSystem CraftSystem => DefCarpentry.CraftSystem;
}

View file

@ -1,33 +1,16 @@
using ModernUO.Serialization;
using Server.Engines.Craft;
namespace Server.Items
namespace Server.Items;
[SerializationGenerator(0, false)]
public partial class DrawKnife : BaseTool
{
public class DrawKnife : BaseTool
{
[Constructible]
public DrawKnife() : base(0x10E4) => Weight = 1.0;
[Constructible]
public DrawKnife() : base(0x10E4) => Weight = 1.0;
[Constructible]
public DrawKnife(int uses) : base(uses, 0x10E4) => Weight = 1.0;
[Constructible]
public DrawKnife(int uses) : base(uses, 0x10E4) => Weight = 1.0;
public DrawKnife(Serial serial) : base(serial)
{
}
public override CraftSystem CraftSystem => DefCarpentry.CraftSystem;
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 override CraftSystem CraftSystem => DefCarpentry.CraftSystem;
}

View file

@ -1,39 +1,17 @@
using ModernUO.Serialization;
using Server.Engines.Craft;
namespace Server.Items
namespace Server.Items;
[Flippable(0x1022, 0x1023)]
[SerializationGenerator(0, false)]
public partial class FletcherTools : BaseTool
{
[Flippable(0x1022, 0x1023)]
public class FletcherTools : BaseTool
{
[Constructible]
public FletcherTools() : base(0x1022) => Weight = 2.0;
[Constructible]
public FletcherTools() : base(0x1022) => Weight = 2.0;
[Constructible]
public FletcherTools(int uses) : base(uses, 0x1022) => Weight = 2.0;
[Constructible]
public FletcherTools(int uses) : base(uses, 0x1022) => Weight = 2.0;
public FletcherTools(Serial serial) : base(serial)
{
}
public override CraftSystem CraftSystem => DefBowFletching.CraftSystem;
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();
if (Weight == 1.0)
{
Weight = 2.0;
}
}
}
public override CraftSystem CraftSystem => DefBowFletching.CraftSystem;
}

View file

@ -1,33 +1,16 @@
using ModernUO.Serialization;
using Server.Engines.Craft;
namespace Server.Items
namespace Server.Items;
[SerializationGenerator(0, false)]
public partial class FlourSifter : BaseTool
{
public class FlourSifter : BaseTool
{
[Constructible]
public FlourSifter() : base(0x103E) => Weight = 1.0;
[Constructible]
public FlourSifter() : base(0x103E) => Weight = 1.0;
[Constructible]
public FlourSifter(int uses) : base(uses, 0x103E) => Weight = 1.0;
[Constructible]
public FlourSifter(int uses) : base(uses, 0x103E) => Weight = 1.0;
public FlourSifter(Serial serial) : base(serial)
{
}
public override CraftSystem CraftSystem => DefCooking.CraftSystem;
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 override CraftSystem CraftSystem => DefCooking.CraftSystem;
}

View file

@ -1,33 +1,16 @@
using ModernUO.Serialization;
using Server.Engines.Craft;
namespace Server.Items
namespace Server.Items;
[SerializationGenerator(0, false)]
public partial class Froe : BaseTool
{
public class Froe : BaseTool
{
[Constructible]
public Froe() : base(0x10E5) => Weight = 1.0;
[Constructible]
public Froe() : base(0x10E5) => Weight = 1.0;
[Constructible]
public Froe(int uses) : base(uses, 0x10E5) => Weight = 1.0;
[Constructible]
public Froe(int uses) : base(uses, 0x10E5) => Weight = 1.0;
public Froe(Serial serial) : base(serial)
{
}
public override CraftSystem CraftSystem => DefCarpentry.CraftSystem;
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 override CraftSystem CraftSystem => DefCarpentry.CraftSystem;
}

View file

@ -1,33 +1,16 @@
using ModernUO.Serialization;
using Server.Engines.Craft;
namespace Server.Items
namespace Server.Items;
[SerializationGenerator(0, false)]
public partial class Hammer : BaseTool
{
public class Hammer : BaseTool
{
[Constructible]
public Hammer() : base(0x102A) => Weight = 2.0;
[Constructible]
public Hammer() : base(0x102A) => Weight = 2.0;
[Constructible]
public Hammer(int uses) : base(uses, 0x102A) => Weight = 2.0;
[Constructible]
public Hammer(int uses) : base(uses, 0x102A) => Weight = 2.0;
public Hammer(Serial serial) : base(serial)
{
}
public override CraftSystem CraftSystem => DefCarpentry.CraftSystem;
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 override CraftSystem CraftSystem => DefCarpentry.CraftSystem;
}

View file

@ -1,33 +1,16 @@
using ModernUO.Serialization;
using Server.Engines.Craft;
namespace Server.Items
namespace Server.Items;
[SerializationGenerator(0, false)]
public partial class Inshave : BaseTool
{
public class Inshave : BaseTool
{
[Constructible]
public Inshave() : base(0x10E6) => Weight = 1.0;
[Constructible]
public Inshave() : base(0x10E6) => Weight = 1.0;
[Constructible]
public Inshave(int uses) : base(uses, 0x10E6) => Weight = 1.0;
[Constructible]
public Inshave(int uses) : base(uses, 0x10E6) => Weight = 1.0;
public Inshave(Serial serial) : base(serial)
{
}
public override CraftSystem CraftSystem => DefCarpentry.CraftSystem;
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 override CraftSystem CraftSystem => DefCarpentry.CraftSystem;
}

View file

@ -1,39 +1,17 @@
using ModernUO.Serialization;
using Server.Engines.Craft;
namespace Server.Items
namespace Server.Items;
[Flippable(0x1030, 0x1031)]
[SerializationGenerator(0, false)]
public partial class JointingPlane : BaseTool
{
[Flippable(0x1030, 0x1031)]
public class JointingPlane : BaseTool
{
[Constructible]
public JointingPlane() : base(0x1030) => Weight = 2.0;
[Constructible]
public JointingPlane() : base(0x1030) => Weight = 2.0;
[Constructible]
public JointingPlane(int uses) : base(uses, 0x1030) => Weight = 2.0;
[Constructible]
public JointingPlane(int uses) : base(uses, 0x1030) => Weight = 2.0;
public JointingPlane(Serial serial) : base(serial)
{
}
public override CraftSystem CraftSystem => DefCarpentry.CraftSystem;
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();
if (Weight == 1.0)
{
Weight = 2.0;
}
}
}
public override CraftSystem CraftSystem => DefCarpentry.CraftSystem;
}

View file

@ -1,33 +1,16 @@
using ModernUO.Serialization;
using Server.Engines.Craft;
namespace Server.Items
namespace Server.Items;
[SerializationGenerator(0, false)]
public partial class MalletAndChisel : BaseTool
{
public class MalletAndChisel : BaseTool
{
[Constructible]
public MalletAndChisel() : base(0x12B3) => Weight = 1.0;
[Constructible]
public MalletAndChisel() : base(0x12B3) => Weight = 1.0;
[Constructible]
public MalletAndChisel(int uses) : base(uses, 0x12B3) => Weight = 1.0;
[Constructible]
public MalletAndChisel(int uses) : base(uses, 0x12B3) => Weight = 1.0;
public MalletAndChisel(Serial serial) : base(serial)
{
}
public override CraftSystem CraftSystem => DefMasonry.CraftSystem;
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 override CraftSystem CraftSystem => DefMasonry.CraftSystem;
}

View file

@ -1,41 +1,19 @@
using ModernUO.Serialization;
using Server.Engines.Craft;
namespace Server.Items
namespace Server.Items;
[Flippable(0x0FBF, 0x0FC0)]
[SerializationGenerator(0, false)]
public partial class MapmakersPen : BaseTool
{
[Flippable(0x0FBF, 0x0FC0)]
public class MapmakersPen : BaseTool
{
[Constructible]
public MapmakersPen() : base(0x0FBF) => Weight = 1.0;
[Constructible]
public MapmakersPen() : base(0x0FBF) => Weight = 1.0;
[Constructible]
public MapmakersPen(int uses) : base(uses, 0x0FBF) => Weight = 1.0;
[Constructible]
public MapmakersPen(int uses) : base(uses, 0x0FBF) => Weight = 1.0;
public MapmakersPen(Serial serial) : base(serial)
{
}
public override CraftSystem CraftSystem => DefCartography.CraftSystem;
public override CraftSystem CraftSystem => DefCartography.CraftSystem;
public override int LabelNumber => 1044167; // mapmaker's pen
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();
if (Weight == 2.0)
{
Weight = 1.0;
}
}
}
public override int LabelNumber => 1044167; // mapmaker's pen
}

View file

@ -1,33 +1,16 @@
using ModernUO.Serialization;
using Server.Engines.Craft;
namespace Server.Items
namespace Server.Items;
[SerializationGenerator(0, false)]
public partial class MortarPestle : BaseTool
{
public class MortarPestle : BaseTool
{
[Constructible]
public MortarPestle() : base(0xE9B) => Weight = 1.0;
[Constructible]
public MortarPestle() : base(0xE9B) => Weight = 1.0;
[Constructible]
public MortarPestle(int uses) : base(uses, 0xE9B) => Weight = 1.0;
[Constructible]
public MortarPestle(int uses) : base(uses, 0xE9B) => Weight = 1.0;
public MortarPestle(Serial serial) : base(serial)
{
}
public override CraftSystem CraftSystem => DefAlchemy.CraftSystem;
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 override CraftSystem CraftSystem => DefAlchemy.CraftSystem;
}

View file

@ -1,34 +1,17 @@
using ModernUO.Serialization;
using Server.Engines.Craft;
namespace Server.Items
namespace Server.Items;
[Flippable(0x102C, 0x102D)]
[SerializationGenerator(0, false)]
public partial class MouldingPlane : BaseTool
{
[Flippable(0x102C, 0x102D)]
public class MouldingPlane : BaseTool
{
[Constructible]
public MouldingPlane() : base(0x102C) => Weight = 2.0;
[Constructible]
public MouldingPlane() : base(0x102C) => Weight = 2.0;
[Constructible]
public MouldingPlane(int uses) : base(uses, 0x102C) => Weight = 2.0;
[Constructible]
public MouldingPlane(int uses) : base(uses, 0x102C) => Weight = 2.0;
public MouldingPlane(Serial serial) : base(serial)
{
}
public override CraftSystem CraftSystem => DefCarpentry.CraftSystem;
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 override CraftSystem CraftSystem => DefCarpentry.CraftSystem;
}

View file

@ -1,34 +1,17 @@
using ModernUO.Serialization;
using Server.Engines.Craft;
namespace Server.Items
namespace Server.Items;
[Flippable(0x102E, 0x102F)]
[SerializationGenerator(0, false)]
public partial class Nails : BaseTool
{
[Flippable(0x102E, 0x102F)]
public class Nails : BaseTool
{
[Constructible]
public Nails() : base(0x102E) => Weight = 2.0;
[Constructible]
public Nails() : base(0x102E) => Weight = 2.0;
[Constructible]
public Nails(int uses) : base(uses, 0x102C) => Weight = 2.0;
[Constructible]
public Nails(int uses) : base(uses, 0x102C) => Weight = 2.0;
public Nails(Serial serial) : base(serial)
{
}
public override CraftSystem CraftSystem => DefCarpentry.CraftSystem;
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 override CraftSystem CraftSystem => DefCarpentry.CraftSystem;
}

View file

@ -1,33 +1,16 @@
using ModernUO.Serialization;
using Server.Engines.Craft;
namespace Server.Items
namespace Server.Items;
[SerializationGenerator(0, false)]
public partial class RollingPin : BaseTool
{
public class RollingPin : BaseTool
{
[Constructible]
public RollingPin() : base(0x1043) => Weight = 1.0;
[Constructible]
public RollingPin() : base(0x1043) => Weight = 1.0;
[Constructible]
public RollingPin(int uses) : base(uses, 0x1043) => Weight = 1.0;
[Constructible]
public RollingPin(int uses) : base(uses, 0x1043) => Weight = 1.0;
public RollingPin(Serial serial) : base(serial)
{
}
public override CraftSystem CraftSystem => DefCooking.CraftSystem;
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 override CraftSystem CraftSystem => DefCooking.CraftSystem;
}

View file

@ -1,56 +1,39 @@
using ModernUO.Serialization;
using Server.Engines.Craft;
namespace Server.Items
namespace Server.Items;
[SerializationGenerator(0, false)]
public partial class RunicDovetailSaw : BaseRunicTool
{
public class RunicDovetailSaw : BaseRunicTool
[Constructible]
public RunicDovetailSaw(CraftResource resource) : base(resource, 0x1028)
{
[Constructible]
public RunicDovetailSaw(CraftResource resource) : base(resource, 0x1028)
{
Weight = 2.0;
Hue = CraftResources.GetHue(resource);
}
Weight = 2.0;
Hue = CraftResources.GetHue(resource);
}
[Constructible]
public RunicDovetailSaw(CraftResource resource, int uses) : base(resource, uses, 0x1028)
{
Weight = 2.0;
Hue = CraftResources.GetHue(resource);
}
[Constructible]
public RunicDovetailSaw(CraftResource resource, int uses) : base(resource, uses, 0x1028)
{
Weight = 2.0;
Hue = CraftResources.GetHue(resource);
}
public RunicDovetailSaw(Serial serial) : base(serial)
{
}
public override CraftSystem CraftSystem => DefCarpentry.CraftSystem;
public override CraftSystem CraftSystem => DefCarpentry.CraftSystem;
public override int LabelNumber
public override int LabelNumber
{
get
{
get
var index = CraftResources.GetIndex(Resource);
if (index >= 1 && index <= 6)
{
var index = CraftResources.GetIndex(Resource);
if (index >= 1 && index <= 6)
{
return 1072633 + index;
}
return 1024137; // dovetail saw
return 1072633 + index;
}
}
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();
return 1024137; // dovetail saw
}
}
}

View file

@ -1,56 +1,39 @@
using ModernUO.Serialization;
using Server.Engines.Craft;
namespace Server.Items
namespace Server.Items;
[SerializationGenerator(0, false)]
public partial class RunicFletcherTool : BaseRunicTool
{
public class RunicFletcherTool : BaseRunicTool
[Constructible]
public RunicFletcherTool(CraftResource resource) : base(resource, 0x1022)
{
[Constructible]
public RunicFletcherTool(CraftResource resource) : base(resource, 0x1022)
{
Weight = 2.0;
Hue = CraftResources.GetHue(resource);
}
Weight = 2.0;
Hue = CraftResources.GetHue(resource);
}
[Constructible]
public RunicFletcherTool(CraftResource resource, int uses) : base(resource, uses, 0x1022)
{
Weight = 2.0;
Hue = CraftResources.GetHue(resource);
}
[Constructible]
public RunicFletcherTool(CraftResource resource, int uses) : base(resource, uses, 0x1022)
{
Weight = 2.0;
Hue = CraftResources.GetHue(resource);
}
public RunicFletcherTool(Serial serial) : base(serial)
{
}
public override CraftSystem CraftSystem => DefBowFletching.CraftSystem;
public override CraftSystem CraftSystem => DefBowFletching.CraftSystem;
public override int LabelNumber
public override int LabelNumber
{
get
{
get
var index = CraftResources.GetIndex(Resource);
if (index >= 1 && index <= 6)
{
var index = CraftResources.GetIndex(Resource);
if (index >= 1 && index <= 6)
{
return 1072627 + index;
}
return 1044559; // Fletcher's Tools
return 1072627 + index;
}
}
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();
return 1044559; // Fletcher's Tools
}
}
}

View file

@ -1,85 +1,68 @@
using ModernUO.Serialization;
using Server.Engines.Craft;
namespace Server.Items
namespace Server.Items;
[Flippable(0x13E4, 0x13E3)]
[SerializationGenerator(0, false)]
public partial class RunicHammer : BaseRunicTool
{
[Flippable(0x13E4, 0x13E3)]
public class RunicHammer : BaseRunicTool
[Constructible]
public RunicHammer(CraftResource resource) : base(resource, 0x13E3)
{
[Constructible]
public RunicHammer(CraftResource resource) : base(resource, 0x13E3)
Weight = 8.0;
Layer = Layer.OneHanded;
Hue = CraftResources.GetHue(resource);
}
[Constructible]
public RunicHammer(CraftResource resource, int uses) : base(resource, uses, 0x13E3)
{
Weight = 8.0;
Layer = Layer.OneHanded;
Hue = CraftResources.GetHue(resource);
}
public override CraftSystem CraftSystem => DefBlacksmithy.CraftSystem;
public override int LabelNumber
{
get
{
Weight = 8.0;
Layer = Layer.OneHanded;
Hue = CraftResources.GetHue(resource);
}
[Constructible]
public RunicHammer(CraftResource resource, int uses) : base(resource, uses, 0x13E3)
{
Weight = 8.0;
Layer = Layer.OneHanded;
Hue = CraftResources.GetHue(resource);
}
public RunicHammer(Serial serial) : base(serial)
{
}
public override CraftSystem CraftSystem => DefBlacksmithy.CraftSystem;
public override int LabelNumber
{
get
{
var index = CraftResources.GetIndex(Resource);
if (index >= 1 && index <= 8)
{
return 1049019 + index;
}
return 1045128; // runic smithy hammer
}
}
public override void AddNameProperties(IPropertyList list)
{
base.AddNameProperties(list);
var index = CraftResources.GetIndex(Resource);
if (index >= 1 && index <= 8)
{
return;
return 1049019 + index;
}
if (!CraftResources.IsStandard(Resource))
return 1045128; // runic smithy hammer
}
}
public override void AddNameProperties(IPropertyList list)
{
base.AddNameProperties(list);
var index = CraftResources.GetIndex(Resource);
if (index >= 1 && index <= 8)
{
return;
}
if (!CraftResources.IsStandard(Resource))
{
var num = CraftResources.GetLocalizationNumber(Resource);
if (num > 0)
{
var num = CraftResources.GetLocalizationNumber(Resource);
if (num > 0)
{
list.Add(num);
}
else
{
list.Add(CraftResources.GetName(Resource));
}
list.Add(num);
}
else
{
list.Add(CraftResources.GetName(Resource));
}
}
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,89 +1,65 @@
using ModernUO.Serialization;
using Server.Engines.Craft;
namespace Server.Items
namespace Server.Items;
[SerializationGenerator(0, false)]
public partial class RunicSewingKit : BaseRunicTool
{
public class RunicSewingKit : BaseRunicTool
[Constructible]
public RunicSewingKit(CraftResource resource) : base(resource, 0xF9D)
{
[Constructible]
public RunicSewingKit(CraftResource resource) : base(resource, 0xF9D)
Weight = 2.0;
Hue = CraftResources.GetHue(resource);
}
[Constructible]
public RunicSewingKit(CraftResource resource, int uses) : base(resource, uses, 0xF9D)
{
Weight = 2.0;
Hue = CraftResources.GetHue(resource);
}
public override CraftSystem CraftSystem => DefTailoring.CraftSystem;
public override void AddNameProperty(IPropertyList list)
{
if (CraftResources.IsStandard(Resource))
{
Weight = 2.0;
Hue = CraftResources.GetHue(resource);
list.Add(1061119, " "); // ~1_LEATHER_TYPE~ runic sewing kit
return;
}
[Constructible]
public RunicSewingKit(CraftResource resource, int uses) : base(resource, uses, 0xF9D)
var num = CraftResources.GetLocalizationNumber(Resource);
if (num > 0)
{
Weight = 2.0;
Hue = CraftResources.GetHue(resource);
// ~1_LEATHER_TYPE~ runic sewing kit
list.AddLocalized(1061119, num);
}
else
{
// ~1_LEATHER_TYPE~ runic sewing kit
list.Add(1061119, CraftResources.GetName(Resource));
}
}
public override void OnSingleClick(Mobile from)
{
if (CraftResources.IsStandard(Resource))
{
LabelTo(from, 1061119, " "); // ~1_LEATHER_TYPE~ runic sewing kit
return;
}
public RunicSewingKit(Serial serial) : base(serial)
var num = CraftResources.GetLocalizationNumber(Resource);
if (num > 0)
{
LabelTo(from, 1061119, $"#{num}"); // ~1_LEATHER_TYPE~ runic sewing kit
}
public override CraftSystem CraftSystem => DefTailoring.CraftSystem;
public override void AddNameProperty(IPropertyList list)
else
{
if (CraftResources.IsStandard(Resource))
{
list.Add(1061119, " "); // ~1_LEATHER_TYPE~ runic sewing kit
return;
}
var num = CraftResources.GetLocalizationNumber(Resource);
if (num > 0)
{
// ~1_LEATHER_TYPE~ runic sewing kit
list.Add(1061119, $"#{num}");
}
else
{
// ~1_LEATHER_TYPE~ runic sewing kit
list.Add(1061119, CraftResources.GetName(Resource));
}
}
public override void OnSingleClick(Mobile from)
{
var v = " ";
if (!CraftResources.IsStandard(Resource))
{
var num = CraftResources.GetLocalizationNumber(Resource);
if (num > 0)
{
v = $"#{num}";
}
else
{
v = CraftResources.GetName(Resource);
}
}
LabelTo(from, 1061119, v); // ~1_LEATHER_TYPE~ runic sewing kit
}
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();
if (ItemID is 0x13E4 or 0x13E3)
{
ItemID = 0xF9D;
}
LabelTo(from, 1061119, CraftResources.GetName(Resource)); // ~1_LEATHER_TYPE~ runic sewing kit
}
}
}

View file

@ -1,34 +1,17 @@
using ModernUO.Serialization;
using Server.Engines.Craft;
namespace Server.Items
namespace Server.Items;
[Flippable(0x1034, 0x1035)]
[SerializationGenerator(0, false)]
public partial class Saw : BaseTool
{
[Flippable(0x1034, 0x1035)]
public class Saw : BaseTool
{
[Constructible]
public Saw() : base(0x1034) => Weight = 2.0;
[Constructible]
public Saw() : base(0x1034) => Weight = 2.0;
[Constructible]
public Saw(int uses) : base(uses, 0x1034) => Weight = 2.0;
[Constructible]
public Saw(int uses) : base(uses, 0x1034) => Weight = 2.0;
public Saw(Serial serial) : base(serial)
{
}
public override CraftSystem CraftSystem => DefCarpentry.CraftSystem;
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 override CraftSystem CraftSystem => DefCarpentry.CraftSystem;
}

View file

@ -1,33 +1,16 @@
using ModernUO.Serialization;
using Server.Engines.Craft;
namespace Server.Items
namespace Server.Items;
[SerializationGenerator(0, false)]
public partial class Scorp : BaseTool
{
public class Scorp : BaseTool
{
[Constructible]
public Scorp() : base(0x10E7) => Weight = 1.0;
[Constructible]
public Scorp() : base(0x10E7) => Weight = 1.0;
[Constructible]
public Scorp(int uses) : base(uses, 0x10E7) => Weight = 1.0;
[Constructible]
public Scorp(int uses) : base(uses, 0x10E7) => Weight = 1.0;
public Scorp(Serial serial) : base(serial)
{
}
public override CraftSystem CraftSystem => DefCarpentry.CraftSystem;
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 override CraftSystem CraftSystem => DefCarpentry.CraftSystem;
}

View file

@ -1,41 +1,19 @@
using ModernUO.Serialization;
using Server.Engines.Craft;
namespace Server.Items
namespace Server.Items;
[Flippable(0x0FBF, 0x0FC0)]
[SerializationGenerator(0, false)]
public partial class ScribesPen : BaseTool
{
[Flippable(0x0FBF, 0x0FC0)]
public class ScribesPen : BaseTool
{
[Constructible]
public ScribesPen() : base(0x0FBF) => Weight = 1.0;
[Constructible]
public ScribesPen() : base(0x0FBF) => Weight = 1.0;
[Constructible]
public ScribesPen(int uses) : base(uses, 0x0FBF) => Weight = 1.0;
[Constructible]
public ScribesPen(int uses) : base(uses, 0x0FBF) => Weight = 1.0;
public ScribesPen(Serial serial) : base(serial)
{
}
public override CraftSystem CraftSystem => DefInscription.CraftSystem;
public override CraftSystem CraftSystem => DefInscription.CraftSystem;
public override int LabelNumber => 1044168; // scribe's pen
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();
if (Weight == 2.0)
{
Weight = 1.0;
}
}
}
public override int LabelNumber => 1044168; // scribe's pen
}

View file

@ -1,33 +1,16 @@
using ModernUO.Serialization;
using Server.Engines.Craft;
namespace Server.Items
namespace Server.Items;
[SerializationGenerator(0, false)]
public partial class SewingKit : BaseTool
{
public class SewingKit : BaseTool
{
[Constructible]
public SewingKit() : base(0xF9D) => Weight = 2.0;
[Constructible]
public SewingKit() : base(0xF9D) => Weight = 2.0;
[Constructible]
public SewingKit(int uses) : base(uses, 0xF9D) => Weight = 2.0;
[Constructible]
public SewingKit(int uses) : base(uses, 0xF9D) => Weight = 2.0;
public SewingKit(Serial serial) : base(serial)
{
}
public override CraftSystem CraftSystem => DefTailoring.CraftSystem;
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 override CraftSystem CraftSystem => DefTailoring.CraftSystem;
}

View file

@ -1,35 +1,18 @@
using ModernUO.Serialization;
using Server.Engines.Craft;
namespace Server.Items
namespace Server.Items;
[SerializationGenerator(0, false)]
public partial class Skillet : BaseTool
{
public class Skillet : BaseTool
{
[Constructible]
public Skillet() : base(0x97F) => Weight = 1.0;
[Constructible]
public Skillet() : base(0x97F) => Weight = 1.0;
[Constructible]
public Skillet(int uses) : base(uses, 0x97F) => Weight = 1.0;
[Constructible]
public Skillet(int uses) : base(uses, 0x97F) => Weight = 1.0;
public Skillet(Serial serial) : base(serial)
{
}
public override int LabelNumber => 1044567; // skillet
public override int LabelNumber => 1044567; // skillet
public override CraftSystem CraftSystem => DefCooking.CraftSystem;
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 override CraftSystem CraftSystem => DefCooking.CraftSystem;
}

View file

@ -1,34 +1,17 @@
using ModernUO.Serialization;
using Server.Engines.Craft;
namespace Server.Items
namespace Server.Items;
[Flippable(0xFB5, 0xFB4)]
[SerializationGenerator(0, false)]
public partial class SledgeHammer : BaseTool
{
[Flippable(0xFB5, 0xFB4)]
public class SledgeHammer : BaseTool
{
[Constructible]
public SledgeHammer() : base(0xFB5) => Layer = Layer.OneHanded;
[Constructible]
public SledgeHammer() : base(0xFB5) => Layer = Layer.OneHanded;
[Constructible]
public SledgeHammer(int uses) : base(uses, 0xFB5) => Layer = Layer.OneHanded;
[Constructible]
public SledgeHammer(int uses) : base(uses, 0xFB5) => Layer = Layer.OneHanded;
public SledgeHammer(Serial serial) : base(serial)
{
}
public override CraftSystem CraftSystem => DefBlacksmithy.CraftSystem;
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 override CraftSystem CraftSystem => DefBlacksmithy.CraftSystem;
}

View file

@ -1,42 +1,25 @@
using ModernUO.Serialization;
using Server.Engines.Craft;
namespace Server.Items
namespace Server.Items;
[Flippable(0x13E3, 0x13E4)]
[SerializationGenerator(0, false)]
public partial class SmithHammer : BaseTool
{
[Flippable(0x13E3, 0x13E4)]
public class SmithHammer : BaseTool
[Constructible]
public SmithHammer() : base(0x13E3)
{
[Constructible]
public SmithHammer() : base(0x13E3)
{
Weight = 8.0;
Layer = Layer.OneHanded;
}
[Constructible]
public SmithHammer(int uses) : base(uses, 0x13E3)
{
Weight = 8.0;
Layer = Layer.OneHanded;
}
public SmithHammer(Serial serial) : base(serial)
{
}
public override CraftSystem CraftSystem => DefBlacksmithy.CraftSystem;
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();
}
Weight = 8.0;
Layer = Layer.OneHanded;
}
[Constructible]
public SmithHammer(int uses) : base(uses, 0x13E3)
{
Weight = 8.0;
Layer = Layer.OneHanded;
}
public override CraftSystem CraftSystem => DefBlacksmithy.CraftSystem;
}

View file

@ -1,34 +1,17 @@
using ModernUO.Serialization;
using Server.Engines.Craft;
namespace Server.Items
namespace Server.Items;
[Flippable(0x1032, 0x1033)]
[SerializationGenerator(0, false)]
public partial class SmoothingPlane : BaseTool
{
[Flippable(0x1032, 0x1033)]
public class SmoothingPlane : BaseTool
{
[Constructible]
public SmoothingPlane() : base(0x1032) => Weight = 1.0;
[Constructible]
public SmoothingPlane() : base(0x1032) => Weight = 1.0;
[Constructible]
public SmoothingPlane(int uses) : base(uses, 0x1032) => Weight = 1.0;
[Constructible]
public SmoothingPlane(int uses) : base(uses, 0x1032) => Weight = 1.0;
public SmoothingPlane(Serial serial) : base(serial)
{
}
public override CraftSystem CraftSystem => DefCarpentry.CraftSystem;
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 override CraftSystem CraftSystem => DefCarpentry.CraftSystem;
}

View file

@ -1,30 +1,29 @@
using ModernUO.Serialization;
using Server.Engines.Craft;
namespace Server.Items
namespace Server.Items;
[Flippable(0x1EB8, 0x1EB9)]
[SerializationGenerator(0, false)]
public partial class TinkerTools : BaseTool
{
[Flippable(0x1EB8, 0x1EB9)]
[SerializationGenerator(0, false)]
public partial class TinkerTools : BaseTool
{
[Constructible]
public TinkerTools() : base(0x1EB8) => Weight = 1.0;
[Constructible]
public TinkerTools() : base(0x1EB8) => Weight = 1.0;
[Constructible]
public TinkerTools(int uses) : base(uses, 0x1EB8) => Weight = 1.0;
[Constructible]
public TinkerTools(int uses) : base(uses, 0x1EB8) => Weight = 1.0;
public override CraftSystem CraftSystem => DefTinkering.CraftSystem;
}
[SerializationGenerator(0, false)]
public partial class TinkersTools : BaseTool
{
[Constructible]
public TinkersTools() : base(0x1EBC) => Weight = 1.0;
[Constructible]
public TinkersTools(int uses) : base(uses, 0x1EBC) => Weight = 1.0;
public override CraftSystem CraftSystem => DefTinkering.CraftSystem;
}
public override CraftSystem CraftSystem => DefTinkering.CraftSystem;
}
[SerializationGenerator(0, false)]
public partial class TinkersTools : BaseTool
{
[Constructible]
public TinkersTools() : base(0x1EBC) => Weight = 1.0;
[Constructible]
public TinkersTools(int uses) : base(uses, 0x1EBC) => Weight = 1.0;
public override CraftSystem CraftSystem => DefTinkering.CraftSystem;
}

View file

@ -1,34 +1,17 @@
using ModernUO.Serialization;
using Server.Engines.Craft;
namespace Server.Items
namespace Server.Items;
[Flippable(0xfbb, 0xfbc)]
[SerializationGenerator(0, false)]
public partial class Tongs : BaseTool
{
[Flippable(0xfbb, 0xfbc)]
public class Tongs : BaseTool
{
[Constructible]
public Tongs() : base(0xFBB) => Weight = 2.0;
[Constructible]
public Tongs() : base(0xFBB) => Weight = 2.0;
[Constructible]
public Tongs(int uses) : base(uses, 0xFBB) => Weight = 2.0;
[Constructible]
public Tongs(int uses) : base(uses, 0xFBB) => Weight = 2.0;
public Tongs(Serial serial) : base(serial)
{
}
public override CraftSystem CraftSystem => DefBlacksmithy.CraftSystem;
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 override CraftSystem CraftSystem => DefBlacksmithy.CraftSystem;
}

View file

@ -0,0 +1,11 @@
{
"version": 1,
"type": "Server.Items.BaseRunicTool",
"properties": [
{
"name": "Resource",
"type": "Server.Items.CraftResource",
"rule": "EnumMigrationRule"
}
]
}

View file

@ -0,0 +1,27 @@
{
"version": 2,
"type": "Server.Items.BaseTool",
"properties": [
{
"name": "Crafter",
"type": "string",
"rule": "PrimitiveTypeMigrationRule",
"ruleArguments": [
""
]
},
{
"name": "Quality",
"type": "Server.Items.ToolQuality",
"rule": "EnumMigrationRule"
},
{
"name": "UsesRemaining",
"type": "int",
"rule": "PrimitiveTypeMigrationRule",
"ruleArguments": [
""
]
}
]
}

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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