using System; using Server.Items; using Server.Network; namespace Server.Items { public abstract class BaseLeather : Item { private CraftResource m_Resource; [CommandProperty( AccessLevel.GameMaster )] public CraftResource Resource { get{ return m_Resource; } set{ m_Resource = value; InvalidateProperties(); } } public override void Serialize( GenericWriter writer ) { base.Serialize( writer ); writer.Write( (int) 1 ); // version writer.Write( (int) m_Resource ); } public override void Deserialize( GenericReader reader ) { base.Deserialize( reader ); int version = reader.ReadInt(); switch ( version ) { case 1: { m_Resource = (CraftResource)reader.ReadInt(); break; } case 0: { OreInfo info = new OreInfo( reader.ReadInt(), reader.ReadInt(), reader.ReadString() ); m_Resource = CraftResources.GetFromOreInfo( info ); break; } } } public BaseLeather( CraftResource resource ) : this( resource, 1 ) { } public BaseLeather( CraftResource resource, int amount ) : base( 0x1081 ) { Stackable = true; Weight = 1.0; Amount = amount; m_Resource = resource; } public BaseLeather( Serial serial ) : base( serial ) { } public override int LabelNumber { get { return 1047022; } } } [FlipableAttribute( 0x1081, 0x1082 )] public class Leather : BaseLeather { [Constructable] public Leather() : this( 1 ) { } [Constructable] public Leather( int amount ) : base( CraftResource.Leathered, amount ) { } public Leather( Serial serial ) : base( serial ) { } public override void Serialize( GenericWriter writer ) { base.Serialize( writer ); writer.Write( (int) 0 ); // version } public override void Deserialize( GenericReader reader ) { base.Deserialize( reader ); int version = reader.ReadInt(); } } }