revert crafting updates of SVN538. Per Mark: changing baseclasses is a bad idea.

This commit is contained in:
xavier 2010-10-10 15:37:22 +00:00
parent 7399519cf7
commit e86794c4e6
130 changed files with 1007 additions and 4906 deletions

View file

@ -139,250 +139,7 @@ namespace Server.Items
public BaseContainer( Serial serial ) : base( serial )
{
}
#region Consume[...]
public int ConsumeTotalGroupedCompared( Type[][] types, int[] amounts, bool recurse, OnItemConsumed callback, CheckItemGroup grouper, Item compareTo )
{
if ( types.Length != amounts.Length )
throw new ArgumentException();
else if ( grouper == null )
throw new ArgumentNullException();
Item[][][] items = new Item[types.Length][][];
int[] totals = new int[types.Length];
bool hasComparer = false;
Item originalComparer = compareTo;
int comparerType = -1;
for ( int i = 0; i < types.Length; ++i )
{
Item[] typedItems = FindItemsByType( types[i], recurse );
List<List<Item>> groups = new List<List<Item>>();
int idx = 0;
if ( originalComparer != null )
{
for ( int j = 0; j < types[i].Length; ++j )
{
if ( originalComparer.GetType() == types[i][j] )
{
hasComparer = true;
compareTo = originalComparer;
comparerType = i;
break;
}
}
}
while( idx < typedItems.Length )
{
Item a = typedItems[idx++];
List<Item> group = new List<Item>();
if ( !hasComparer )
{
compareTo = a;
group.Add( a );
}
else if ( grouper( compareTo, a ) == 0 )
group.Add( a );
while( idx < typedItems.Length )
{
Item b = typedItems[idx];
int v = grouper( compareTo, b );
if( v == 0 )
group.Add( b );
else
break;
++idx;
}
groups.Add( group );
}
compareTo = originalComparer;
hasComparer = false;
items[i] = new Item[groups.Count][];
bool hasEnough = false;
for ( int j = 0; j < groups.Count; ++j )
{
items[i][j] = groups[j].ToArray();
for ( int k = 0; k < items[i][j].Length; ++k )
totals[i] += items[i][j][k].Amount;
}
if ( totals[i] >= amounts[i] )
hasEnough = true;
if ( !hasEnough )
return i;
}
for ( int i = 0; i < items.Length; ++i )
{
int need = amounts[i];
if ( originalComparer != null && comparerType == i )
{
object parent = originalComparer.RootParent;
if ( parent is Mobile )
{
Mobile m = (Mobile)parent;
if ( this.RootParent is Mobile && m == (Mobile)this.RootParent )
ConsumeNeeded( ref need, originalComparer, callback );
}
}
for ( int j = 0; j < items[i].Length && need > 0; ++j )
{
if ( totals[i] >= amounts[i] )
{
for ( int k = 0; k < items[i][j].Length && need > 0; ++k )
{
Item item = items[i][j][k];
if ( !item.Deleted )
ConsumeNeeded( ref need, item, callback );
}
}
}
}
return -1;
}
private void ConsumeNeeded( ref int need, Item item, OnItemConsumed callback )
{
int theirAmount = item.Amount;
if ( theirAmount < need )
{
if ( callback != null )
callback( item, theirAmount );
item.Delete();
need -= theirAmount;
}
else
{
if ( callback != null )
callback( item, need );
item.Consume( need );
need = 0;
}
}
#endregion
#region Get[Compared]Amount
public int GetComparedGroupAmount( Type[] types, bool recurse, CheckItemGroup grouper, Item compareTo )
{
if( grouper == null )
throw new ArgumentNullException();
Item[] typedItems = FindItemsByType( types, recurse );
bool hasComparer = false;
if ( compareTo != null )
{
for ( int i = 0; i < types.Length; ++i )
{
if ( compareTo.GetType() == types[i] )
{
hasComparer = true;
break;
}
}
}
List<List<Item>> groups = new List<List<Item>>();
int idx = 0;
while( idx < typedItems.Length )
{
Item a = typedItems[idx++];
List<Item> group = new List<Item>();
if ( !hasComparer )
{
compareTo = a;
group.Add( a );
}
else if ( grouper( compareTo, a ) == 0 )
group.Add( a );
while( idx < typedItems.Length )
{
Item b = typedItems[idx];
int v = grouper( compareTo, b );
if( v == 0 )
group.Add( b );
else
break;
++idx;
}
groups.Add( group );
}
int total = 0;
for( int j = 0; j < groups.Count; ++j )
{
Item[] items = groups[j].ToArray();
for( int k = 0; k < items.Length; ++k )
total += items[k].Amount;
}
return total;
}
public int GetAmountCompared( Type[] types, CheckItemGroup grouper, Item compareTo )
{
return GetAmountCompared( types, grouper, compareTo, true );
}
public int GetAmountCompared( Type[] types, CheckItemGroup grouper, Item compareTo, bool recurse )
{
Item[] items = FindItemsByType( types, recurse );
int amount = 0;
for ( int i = 0; i < items.Length; ++i )
{
if ( compareTo == null )
{
compareTo = items[i];
amount += items[i].Amount;
}
else if ( grouper( compareTo, items[i] ) == 0 )
amount += items[i].Amount;
}
return amount;
}
#endregion
/* Note: base class insertion; we cannot serialize anything here */
public override void Serialize( GenericWriter writer )
{
@ -717,7 +474,7 @@ namespace Server.Items
}
}
public class Barrel : BaseFurnitureContainer
public class Barrel : BaseContainer
{
[Constructable]
public Barrel() : base( 0xE77 )
@ -740,14 +497,14 @@ namespace Server.Items
{
base.Deserialize( reader );
int version = ( InheritsBaseCont ? OldVersion : reader.ReadInt() ); //Required for BaseFurnitureContainer insertion
int version = reader.ReadInt();
if ( Weight == 0.0 )
Weight = 25.0;
}
}
public class Keg : BaseFurnitureContainer
public class Keg : BaseContainer
{
[Constructable]
public Keg() : base( 0xE7F )
@ -770,7 +527,7 @@ namespace Server.Items
{
base.Deserialize( reader );
int version = ( InheritsBaseCont ? OldVersion : reader.ReadInt() ); //Required for BaseFurnitureContainer insertion
int version = reader.ReadInt();
}
}
@ -833,7 +590,7 @@ namespace Server.Items
public class WoodenBox : LockableContainer
{
[Constructable]
public WoodenBox() : base( 0xE7D )
public WoodenBox() : base( 0x9AA )
{
Weight = 4.0;
}
@ -862,9 +619,9 @@ namespace Server.Items
public class SmallCrate : LockableContainer
{
[Constructable]
public SmallCrate() : base( 0xE7E )
public SmallCrate() : base( 0x9A9 )
{
Weight = 1.0;
Weight = 2.0;
}
public SmallCrate( Serial serial ) : base( serial )
@ -884,8 +641,8 @@ namespace Server.Items
int version = reader.ReadInt();
if ( Weight == 4.0 || Weight == 2.0 )
Weight = 1.0;
if ( Weight == 4.0 )
Weight = 2.0;
}
}
@ -894,9 +651,9 @@ namespace Server.Items
public class MediumCrate : LockableContainer
{
[Constructable]
public MediumCrate() : base( 0xE3E )
public MediumCrate() : base( 0xE3F )
{
Weight = 1.0;
Weight = 2.0;
}
public MediumCrate( Serial serial ) : base( serial )
@ -916,8 +673,8 @@ namespace Server.Items
int version = reader.ReadInt();
if ( Weight == 6.0 || Weight == 2.0 )
Weight = 1.0;
if ( Weight == 6.0 )
Weight = 2.0;
}
}
@ -926,7 +683,7 @@ namespace Server.Items
public class LargeCrate : LockableContainer
{
[Constructable]
public LargeCrate() : base( 0xE3C )
public LargeCrate() : base( 0xE3D )
{
Weight = 1.0;
}
@ -957,8 +714,6 @@ namespace Server.Items
[Flipable( 0x9A8, 0xE80 )]
public class MetalBox : LockableContainer
{
public override CraftResource DefaultResource{ get{ return CraftResource.Iron; } }
[Constructable]
public MetalBox() : base( 0x9A8 )
{
@ -990,8 +745,6 @@ namespace Server.Items
[Flipable( 0x9AB, 0xE7C )]
public class MetalChest : LockableContainer
{
public override CraftResource DefaultResource{ get{ return CraftResource.Iron; } }
[Constructable]
public MetalChest() : base( 0x9AB )
{
@ -1023,8 +776,6 @@ namespace Server.Items
[Flipable( 0xE41, 0xE40 )]
public class MetalGoldenChest : LockableContainer
{
public override CraftResource DefaultResource{ get{ return CraftResource.Iron; } }
[Constructable]
public MetalGoldenChest() : base( 0xE41 )
{
@ -1053,13 +804,13 @@ namespace Server.Items
}
[Furniture]
[Flipable( 0xE43, 0xE42 )]
[Flipable( 0xe43, 0xe42 )]
public class WoodenChest : LockableContainer
{
[Constructable]
public WoodenChest() : base( 0xE42 )
public WoodenChest() : base( 0xe43 )
{
Weight = 1.0;
Weight = 2.0;
}
public WoodenChest( Serial serial ) : base( serial )
@ -1079,8 +830,8 @@ namespace Server.Items
int version = reader.ReadInt();
if ( Weight == 15.0 || Weight == 2.0 )
Weight = 1.0;
if ( Weight == 15.0 )
Weight = 2.0;
}
}
@ -1089,7 +840,7 @@ namespace Server.Items
public class PlainWoodenChest : LockableContainer
{
[Constructable]
public PlainWoodenChest() : base( 0x280C )
public PlainWoodenChest() : base( 0x280B )
{
}
@ -1120,7 +871,7 @@ namespace Server.Items
public class OrnateWoodenChest : LockableContainer
{
[Constructable]
public OrnateWoodenChest() : base( 0x280E )
public OrnateWoodenChest() : base( 0x280D )
{
}
@ -1151,7 +902,7 @@ namespace Server.Items
public class GildedWoodenChest : LockableContainer
{
[Constructable]
public GildedWoodenChest() : base( 0x2810 )
public GildedWoodenChest() : base( 0x280F )
{
}
@ -1182,7 +933,7 @@ namespace Server.Items
public class WoodenFootLocker : LockableContainer
{
[Constructable]
public WoodenFootLocker() : base( 0x2812 )
public WoodenFootLocker() : base( 0x2811 )
{
GumpID = 0x10B;
}
@ -1217,7 +968,7 @@ namespace Server.Items
public class FinishedWoodenChest : LockableContainer
{
[Constructable]
public FinishedWoodenChest() : base( 0x2814 )
public FinishedWoodenChest() : base( 0x2813 )
{
}

View file

@ -407,8 +407,6 @@ namespace Server.Items
[Flipable( 0x9A8, 0xE80 )]
public class FillableMetalBox : FillableContainer
{
public override CraftResource DefaultResource{ get{ return CraftResource.Iron; } }
[Constructable]
public FillableMetalBox() : base( 0x9A8 )
{
@ -470,8 +468,6 @@ namespace Server.Items
[Flipable( 0x9AB, 0xE7C )]
public class FillableMetalChest : FillableContainer
{
public override CraftResource DefaultResource{ get{ return CraftResource.Iron; } }
[Constructable]
public FillableMetalChest() : base( 0x9AB )
{
@ -502,8 +498,6 @@ namespace Server.Items
[Flipable( 0xE41, 0xE40 )]
public class FillableMetalGoldenChest : FillableContainer
{
public override CraftResource DefaultResource{ get{ return CraftResource.Iron; } }
[Constructable]
public FillableMetalGoldenChest() : base( 0xE41 )
{

View file

@ -1,162 +1,17 @@
using System;
using System.Collections.Generic;
using Server;
using Server.Misc;
using Server.Multis;
using Server.Network;
using Server.Engines.Craft;
namespace Server.Items
{
public abstract class BaseFurnitureContainer : BaseContainer, ICraftable
{
private Mobile m_Crafter;
private CraftQuality m_Quality;
private CraftResource m_Resource;
[CommandProperty( AccessLevel.GameMaster )]
public Mobile Crafter
{
get { return m_Crafter; }
set { m_Crafter = value; InvalidateProperties(); }
}
[CommandProperty( AccessLevel.GameMaster )]
public CraftQuality Quality
{
get { return m_Quality; }
set { m_Quality = value; InvalidateProperties(); }
}
[CommandProperty( AccessLevel.GameMaster )]
public CraftResource Resource
{
get { return m_Resource; }
set
{
if ( m_Resource != value )
{
m_Resource = value;
Hue = CraftResources.GetHue( m_Resource );
InvalidateProperties();
}
}
}
public virtual CraftResource DefaultResource{ get{ return CraftResource.RegularWood; } }
public virtual bool DisplaysResource{ get{ return true; } }
public virtual bool DisplaysMakersMark{ get{ return true; } }
#region Old Container Serialization Vars
/* DO NOT USE! Only used in serialization of furniture containers that originally derived from BaseContainer */
private bool m_InheritsBaseCont;
private int m_OldVersion;
protected bool InheritsBaseCont
{
get{ return m_InheritsBaseCont; }
}
protected int OldVersion
{
get{ return m_OldVersion; }
}
#endregion
public BaseFurnitureContainer( int itemID ) : base( itemID )
{
m_Quality = CraftQuality.Regular;
Resource = DefaultResource;
}
public BaseFurnitureContainer(Serial serial) : base(serial)
{
}
public override void GetProperties( ObjectPropertyList list )
{
base.GetProperties( list );
if ( m_Crafter != null && DisplaysMakersMark )
list.Add( 1050043, m_Crafter.Name ); // crafted by ~1_NAME~
if ( m_Quality == CraftQuality.Exceptional )
list.Add( 1060636 ); // exceptional
if( ( m_Resource >= CraftResource.OakWood && m_Resource <= CraftResource.Frostwood ) && Hue == CraftResources.GetHue( m_Resource ) && DisplaysResource )
list.Add( CraftResources.GetLocalizationNumber( m_Resource ) ); // resource name
}
public override void Serialize(GenericWriter writer)
{
base.Serialize(writer);
writer.Write((int) 2);
writer.Write( m_Crafter );
writer.WriteEncodedInt( (int) m_Quality );
writer.WriteEncodedInt( (int) m_Resource );
}
public override void Deserialize(GenericReader reader)
{
base.Deserialize(reader);
int version = reader.ReadInt();
switch ( version )
{
case 2:
{
m_Crafter = reader.ReadMobile();
m_Quality = (CraftQuality)reader.ReadEncodedInt();
m_Resource = (CraftResource)reader.ReadEncodedInt();
break;
}
case 1: //Captcha for EmptyBookcase
case 0:
{
m_InheritsBaseCont = true;
m_OldVersion = version;
m_Quality = CraftQuality.Regular;
m_Resource = DefaultResource;
break;
}
}
}
public virtual int OnCraft( int quality, bool makersMark, Mobile from, CraftSystem craftSystem, Type typeRes, BaseTool tool, CraftItem craftItem, int resHue )
{
if ( Core.ML )
{
Quality = (CraftQuality)quality;
if ( makersMark )
Crafter = from;
Type resourceType = typeRes;
if ( resourceType == null )
resourceType = craftItem.Resources.GetAt( 0 ).ItemType;
Resource = CraftResources.GetFromType( resourceType );
CraftContext context = craftSystem.GetContext( from );
if ( context != null && context.DoNotColor )
Hue = 0;
}
return quality;
}
}
[Furniture]
[Flipable( 0x2815, 0x2816 )]
public class TallCabinet : BaseFurnitureContainer
public class TallCabinet : BaseContainer
{
[Constructable]
public TallCabinet() : base( 0x2816 )
public TallCabinet() : base( 0x2815 )
{
Weight = 1.0;
}
@ -174,16 +29,16 @@ namespace Server.Items
public override void Deserialize( GenericReader reader )
{
base.Deserialize( reader );
int version = ( InheritsBaseCont ? OldVersion : reader.ReadInt() ); //Required for BaseFurnitureContainer insertion
int version = reader.ReadInt();
}
}
[Furniture]
[Flipable( 0x2817, 0x2818 )]
public class ShortCabinet : BaseFurnitureContainer
public class ShortCabinet : BaseContainer
{
[Constructable]
public ShortCabinet() : base( 0x2818 )
public ShortCabinet() : base( 0x2817 )
{
Weight = 1.0;
}
@ -201,19 +56,19 @@ namespace Server.Items
public override void Deserialize( GenericReader reader )
{
base.Deserialize( reader );
int version = ( InheritsBaseCont ? OldVersion : reader.ReadInt() ); //Required for BaseFurnitureContainer insertion
int version = reader.ReadInt();
}
}
[Furniture]
[Flipable( 0x2857, 0x2858 )]
public class RedArmoire : BaseFurnitureContainer
public class RedArmoire : BaseContainer
{
[Constructable]
public RedArmoire() : base( 0x2858 )
public RedArmoire() : base( 0x2857 )
{
Weight = 10.0;
Weight = 1.0;
}
public RedArmoire( Serial serial ) : base( serial )
@ -229,21 +84,18 @@ namespace Server.Items
public override void Deserialize( GenericReader reader )
{
base.Deserialize( reader );
int version = ( InheritsBaseCont ? OldVersion : reader.ReadInt() ); //Required for BaseFurnitureContainer insertion
if ( Weight == 1.0 )
Weight = 10.0;
int version = reader.ReadInt();
}
}
[Furniture]
[Flipable( 0x285D, 0x285E )]
public class CherryArmoire : BaseFurnitureContainer
public class CherryArmoire : BaseContainer
{
[Constructable]
public CherryArmoire() : base( 0x285E )
public CherryArmoire() : base( 0x285D )
{
Weight = 10.0;
Weight = 1.0;
}
public CherryArmoire( Serial serial ) : base( serial )
@ -259,21 +111,18 @@ namespace Server.Items
public override void Deserialize( GenericReader reader )
{
base.Deserialize( reader );
int version = ( InheritsBaseCont ? OldVersion : reader.ReadInt() ); //Required for BaseFurnitureContainer insertion
if ( Weight == 1.0 )
Weight = 10.0;
int version = reader.ReadInt();
}
}
[Furniture]
[Flipable( 0x285B, 0x285C )]
public class MapleArmoire : BaseFurnitureContainer
public class MapleArmoire : BaseContainer
{
[Constructable]
public MapleArmoire() : base( 0x285C )
public MapleArmoire() : base( 0x285B )
{
Weight = 10.0;
Weight = 1.0;
}
public MapleArmoire( Serial serial ) : base( serial )
@ -289,21 +138,18 @@ namespace Server.Items
public override void Deserialize( GenericReader reader )
{
base.Deserialize( reader );
int version = ( InheritsBaseCont ? OldVersion : reader.ReadInt() ); //Required for BaseFurnitureContainer insertion
if ( Weight == 1.0 )
Weight = 10.0;
int version = reader.ReadInt();
}
}
[Furniture]
[Flipable( 0x2859, 0x285A )]
public class ElegantArmoire : BaseFurnitureContainer
public class ElegantArmoire : BaseContainer
{
[Constructable]
public ElegantArmoire() : base( 0x285A )
public ElegantArmoire() : base( 0x2859 )
{
Weight = 10.0;
Weight = 1.0;
}
public ElegantArmoire( Serial serial ) : base( serial )
@ -319,19 +165,16 @@ namespace Server.Items
public override void Deserialize( GenericReader reader )
{
base.Deserialize( reader );
int version = ( InheritsBaseCont ? OldVersion : reader.ReadInt() ); //Required for BaseFurnitureContainer insertion
if ( Weight == 1.0 )
Weight = 10.0;
int version = reader.ReadInt();
}
}
[Furniture]
[Flipable( 0xA97, 0xA99, 0xA98, 0xA9A, 0xA9B, 0xA9C )]
public class FullBookcase : BaseFurnitureContainer
[Flipable( 0xa97, 0xa99, 0xa98, 0xa9a, 0xa9b, 0xa9c )]
public class FullBookcase : BaseContainer
{
[Constructable]
public FullBookcase() : base( 0xA99 )
public FullBookcase() : base( 0xA97 )
{
Weight = 1.0;
}
@ -349,16 +192,16 @@ namespace Server.Items
public override void Deserialize( GenericReader reader )
{
base.Deserialize( reader );
int version = ( InheritsBaseCont ? OldVersion : reader.ReadInt() ); //Required for BaseFurnitureContainer insertion
int version = reader.ReadInt();
}
}
[Furniture]
[Flipable( 0xA9D, 0xA9E )]
public class EmptyBookcase : BaseFurnitureContainer
[Flipable( 0xa9d, 0xa9e )]
public class EmptyBookcase : BaseContainer
{
[Constructable]
public EmptyBookcase() : base( 0xA9E )
public EmptyBookcase() : base( 0xA9D )
{
}
@ -376,7 +219,7 @@ namespace Server.Items
public override void Deserialize( GenericReader reader )
{
base.Deserialize( reader );
int version = ( InheritsBaseCont ? OldVersion : reader.ReadInt() ); //Required for BaseFurnitureContainer insertion
int version = reader.ReadInt();
if ( version == 0 && Weight == 1.0 )
Weight = -1;
@ -384,11 +227,11 @@ namespace Server.Items
}
[Furniture]
[Flipable( 0xA2C, 0xA34 )]
public class Drawer : BaseFurnitureContainer
[Flipable( 0xa2c, 0xa34 )]
public class Drawer : BaseContainer
{
[Constructable]
public Drawer() : base( 0xA34 )
public Drawer() : base( 0xA2C )
{
Weight = 1.0;
}
@ -406,16 +249,16 @@ namespace Server.Items
public override void Deserialize( GenericReader reader )
{
base.Deserialize( reader );
int version = ( InheritsBaseCont ? OldVersion : reader.ReadInt() ); //Required for BaseFurnitureContainer insertion
int version = reader.ReadInt();
}
}
[Furniture]
[Flipable( 0xA30, 0xA38 )]
public class FancyDrawer : BaseFurnitureContainer
[Flipable( 0xa30, 0xa38 )]
public class FancyDrawer : BaseContainer
{
[Constructable]
public FancyDrawer() : base( 0xA38 )
public FancyDrawer() : base( 0xA30 )
{
Weight = 1.0;
}
@ -430,81 +273,19 @@ namespace Server.Items
writer.Write( (int) 0 ); // version
}
public override void Deserialize( GenericReader reader )
{
base.Deserialize( reader );
int version = ( InheritsBaseCont ? OldVersion : reader.ReadInt() ); //Required for BaseFurnitureContainer insertion
}
}
[Furniture]
[Flipable( 0x2DF1, 0x2DF2 )]
public class OrnateElvenChest : BaseFurnitureContainer
{
[Constructable]
public OrnateElvenChest() : base( 0x2DF1 )
{
Weight = 1.0;
GumpID = 0x10C;
}
public OrnateElvenChest( Serial serial ) : base( serial )
{
}
public override void Serialize( GenericWriter writer )
{
base.Serialize( writer );
writer.Write( (int) 1 ); // version
}
public override void Deserialize( GenericReader reader )
{
base.Deserialize( reader );
int version = reader.ReadInt();
if ( version < 1 )
GumpID = 0x10C;
}
}
[Furniture]
[Flipable( 0x2DF3, 0x2DF4 )]
public class OrnateElvenBox : BaseFurnitureContainer
{
[Constructable]
public OrnateElvenBox() : base( 0x2DF3 )
{
Weight = 1.0;
GumpID = 0x10C;
}
public OrnateElvenBox( Serial serial ) : base( serial )
{
}
public override void Serialize( GenericWriter writer )
{
base.Serialize( writer );
writer.Write( (int) 1 ); // version
}
public override void Deserialize( GenericReader reader )
{
base.Deserialize( reader );
int version = reader.ReadInt();
if ( version < 1 )
GumpID = 0x10C;
}
}
[Furniture]
[Flipable( 0xA4F, 0xA53 )]
public class Armoire : BaseFurnitureContainer
[Flipable( 0xa4f, 0xa53 )]
public class Armoire : BaseContainer
{
[Constructable]
public Armoire() : base( 0xA53 )
public Armoire() : base( 0xA4F )
{
Weight = 1.0;
}
@ -528,18 +309,18 @@ namespace Server.Items
public override void Deserialize( GenericReader reader )
{
base.Deserialize( reader );
int version = ( InheritsBaseCont ? OldVersion : reader.ReadInt() ); //Required for BaseFurnitureContainer insertion
int version = reader.ReadInt();
DynamicFurniture.Close( this );
}
}
[Furniture]
[Flipable( 0xA4D, 0xA51 )]
public class FancyArmoire : BaseFurnitureContainer
[Flipable( 0xa4d, 0xa51 )]
public class FancyArmoire : BaseContainer
{
[Constructable]
public FancyArmoire() : base( 0xA51 )
public FancyArmoire() : base( 0xA4D )
{
Weight = 1.0;
}
@ -563,7 +344,7 @@ namespace Server.Items
public override void Deserialize( GenericReader reader )
{
base.Deserialize( reader );
int version = ( InheritsBaseCont ? OldVersion : reader.ReadInt() ); //Required for BaseFurnitureContainer insertion
int version = reader.ReadInt();
DynamicFurniture.Close( this );
}

View file

@ -12,9 +12,6 @@ namespace Server.Items
private uint m_KeyValue;
private Mobile m_Picker;
private bool m_TrapOnLockpick;
private CraftQuality m_Quality;
private Mobile m_Crafter;
private CraftResource m_Resource;
[CommandProperty( AccessLevel.GameMaster )]
public Mobile Picker
@ -119,39 +116,12 @@ namespace Server.Items
m_TrapOnLockpick = value;
}
}
[CommandProperty( AccessLevel.GameMaster )]
public CraftQuality Quality
{
get{ return m_Quality; }
set{ m_Quality = value; InvalidateProperties(); }
}
[CommandProperty( AccessLevel.GameMaster )]
public Mobile Crafter
{
get{ return m_Crafter; }
set{ m_Crafter = value; InvalidateProperties(); }
}
[CommandProperty( AccessLevel.GameMaster )]
public CraftResource Resource
{
get{ return m_Resource; }
set{ m_Resource = value; Hue = CraftResources.GetHue( m_Resource ); InvalidateProperties(); }
}
public virtual CraftResource DefaultResource{ get{ return CraftResource.RegularWood; } }
public override void Serialize( GenericWriter writer )
{
base.Serialize( writer );
writer.Write( (int) 7 ); // version
writer.Write( (int)m_Quality );
writer.Write( (int)m_Resource );
writer.WriteMobile( m_Crafter );
writer.Write( (int) 6 ); // version
writer.Write( m_IsShipwreckedItem );
@ -174,13 +144,6 @@ namespace Server.Items
switch ( version )
{
case 7:
{
m_Quality = (CraftQuality)reader.ReadInt();
m_Resource = (CraftResource)reader.ReadInt();
m_Crafter = reader.ReadMobile();
goto case 6;
}
case 6:
{
m_IsShipwreckedItem = reader.ReadBool();
@ -235,12 +198,6 @@ namespace Server.Items
m_RequiredSkill = m_LockLevel;
}
}
if ( version < 7 )
{
m_Quality = CraftQuality.Regular;
m_Resource = DefaultResource;
}
m_Locked = reader.ReadBool();
@ -251,8 +208,6 @@ namespace Server.Items
public LockableContainer( int itemID ) : base( itemID )
{
m_Quality = CraftQuality.Regular;
Resource = DefaultResource;
m_MaxLockLevel = 100;
}
@ -260,20 +215,6 @@ namespace Server.Items
{
}
public override void GetProperties( ObjectPropertyList list )
{
base.GetProperties( list );
if ( m_Crafter != null )
list.Add( 1050043, m_Crafter.Name ); // crafted by ~1_NAME~
if ( m_Quality == CraftQuality.Exceptional )
list.Add( 1060636 ); // exceptional
if( ( m_Resource >= CraftResource.OakWood && m_Resource <= CraftResource.Frostwood ) && Hue == CraftResources.GetHue( m_Resource ) )
list.Add( CraftResources.GetLocalizationNumber( m_Resource ) ); // resource name
}
public override bool CheckContentDisplay( Mobile from )
{
return !m_Locked && base.CheckContentDisplay( from );
@ -419,26 +360,6 @@ namespace Server.Items
public int OnCraft( int quality, bool makersMark, Mobile from, CraftSystem craftSystem, Type typeRes, BaseTool tool, CraftItem craftItem, int resHue )
{
if ( Core.ML )
{
Quality = (CraftQuality)quality;
Type resourceType = typeRes;
if ( resourceType == null )
resourceType = craftItem.Resources.GetAt( 0 ).ItemType;
Resource = CraftResources.GetFromType( resourceType );
CraftContext context = craftSystem.GetContext( from );
if ( context != null && context.DoNotColor )
Resource = DefaultResource;
if ( makersMark )
Crafter = from;
}
if ( from.CheckSkill( SkillName.Tinkering, -5.0, 15.0 ) )
{
from.SendLocalizedMessage( 500636 ); // Your tinker skill was sufficient to make the item lockable.
@ -471,7 +392,7 @@ namespace Server.Items
from.SendLocalizedMessage( 500637 ); // Your tinker skill was insufficient to make the item lockable.
}
return quality;
return 1;
}
#endregion

View file

@ -12,8 +12,6 @@ namespace Server.Items
[Flipable]
public class ParagonChest : LockableContainer
{
public override CraftResource DefaultResource{ get{ return CraftResource.Iron; } }
private static int[] m_ItemIDs = new int[]
{
0x9AB, 0xE40, 0xE41, 0xE7C

View file

@ -36,8 +36,6 @@ namespace Server.Items
[FlipableAttribute( 0xe41, 0xe40 )]
public class MetalGoldenTreasureChest : BaseTreasureChest
{
public override CraftResource DefaultResource{ get{ return CraftResource.Iron; } }
[Constructable]
public MetalGoldenTreasureChest() : base( 0xE41 )
{
@ -65,8 +63,6 @@ namespace Server.Items
[FlipableAttribute( 0x9ab, 0xe7c )]
public class MetalTreasureChest : BaseTreasureChest
{
public override CraftResource DefaultResource{ get{ return CraftResource.Iron; } }
[Constructable]
public MetalTreasureChest() : base( 0x9AB )
{