diff options
Diffstat (limited to 'src/Item.h')
-rw-r--r-- | src/Item.h | 56 |
1 files changed, 32 insertions, 24 deletions
diff --git a/src/Item.h b/src/Item.h index 1a070eafd..620c77b29 100644 --- a/src/Item.h +++ b/src/Item.h @@ -11,6 +11,7 @@ #include "Defines.h" #include "Enchantments.h" +#include "WorldStorage/FireworksSerializer.h" @@ -32,18 +33,19 @@ namespace Json class cItem { public: - /// Creates an empty item + /** Creates an empty item */ cItem(void) : m_ItemType(E_ITEM_EMPTY), m_ItemCount(0), m_ItemDamage(0), m_CustomName(""), - m_Lore("") + m_Lore(""), + m_FireworkItem() { } - /// Creates an item of the specified type, by default 1 piece with no damage and no enchantments + /** Creates an item of the specified type, by default 1 piece with no damage and no enchantments */ cItem( short a_ItemType, char a_ItemCount = 1, @@ -57,7 +59,8 @@ public: m_ItemDamage (a_ItemDamage), m_Enchantments(a_Enchantments), m_CustomName (a_CustomName), - m_Lore (a_Lore) + m_Lore (a_Lore), + m_FireworkItem() { if (!IsValidItem(m_ItemType)) { @@ -70,14 +73,15 @@ public: } - /// Creates an exact copy of the item + /** Creates an exact copy of the item */ cItem(const cItem & a_CopyFrom) : m_ItemType (a_CopyFrom.m_ItemType), m_ItemCount (a_CopyFrom.m_ItemCount), m_ItemDamage (a_CopyFrom.m_ItemDamage), m_Enchantments(a_CopyFrom.m_Enchantments), m_CustomName (a_CopyFrom.m_CustomName), - m_Lore (a_CopyFrom.m_Lore) + m_Lore (a_CopyFrom.m_Lore), + m_FireworkItem(a_CopyFrom.m_FireworkItem) { } @@ -90,6 +94,7 @@ public: m_Enchantments.Clear(); m_CustomName = ""; m_Lore = ""; + m_FireworkItem.EmptyData(); } @@ -106,8 +111,8 @@ public: return ((m_ItemType <= 0) || (m_ItemCount <= 0)); } - /* Returns true if this itemstack can stack with the specified stack (types match, enchantments etc.) ItemCounts are ignored! - */ + /* Returns true if this itemstack can stack with the specified stack (types match, enchantments etc.) + ItemCounts are ignored. */ bool IsEqual(const cItem & a_Item) const { return ( @@ -115,7 +120,8 @@ public: (m_ItemDamage == a_Item.m_ItemDamage) && (m_Enchantments == a_Item.m_Enchantments) && (m_CustomName == a_Item.m_CustomName) && - (m_Lore == a_Item.m_Lore) + (m_Lore == a_Item.m_Lore) && + m_FireworkItem.IsEqualTo(a_Item.m_FireworkItem) ); } @@ -135,39 +141,39 @@ public: bool IsCustomNameEmpty(void) const { return (m_CustomName.empty()); } bool IsLoreEmpty(void) const { return (m_Lore.empty()); } - /// Returns a copy of this item with m_ItemCount set to 1. Useful to preserve enchantments etc. on stacked items + /** Returns a copy of this item with m_ItemCount set to 1. Useful to preserve enchantments etc. on stacked items */ cItem CopyOne(void) const; - /// Adds the specified count to this object and returns the reference to self (useful for chaining) + /** Adds the specified count to this object and returns the reference to self (useful for chaining) */ cItem & AddCount(char a_AmountToAdd); - /// Returns the maximum damage value that this item can have; zero if damage is not applied + /** Returns the maximum damage value that this item can have; zero if damage is not applied */ short GetMaxDamage(void) const; - /// Damages a weapon / tool. Returns true when damage reaches max value and the item should be destroyed + /** Damages a weapon / tool. Returns true when damage reaches max value and the item should be destroyed */ bool DamageItem(short a_Amount = 1); inline bool IsDamageable(void) const { return (GetMaxDamage() > 0); } - /// Returns true if the item is stacked up to its maximum stacking. + /** Returns true if the item is stacked up to its maximum stacking. */ bool IsFullStack(void) const; - /// Returns the maximum amount of stacked items of this type. + /** Returns the maximum amount of stacked items of this type. */ char GetMaxStackSize(void) const; // tolua_end - /// Returns the cItemHandler responsible for this item type + /** Returns the cItemHandler responsible for this item type */ cItemHandler * GetHandler(void) const; - /// Saves the item data into JSON representation + /** Saves the item data into JSON representation */ void GetJson(Json::Value & a_OutValue) const; - /// Loads the item data from JSON representation + /** Loads the item data from JSON representation */ void FromJson(const Json::Value & a_Value); - /// Returns true if the specified item type is enchantable (as per 1.2.5 protocol requirements) - static bool IsEnchantable(short a_ItemType); + /** Returns true if the specified item type is enchantable (as per 1.2.5 protocol requirements) */ + static bool IsEnchantable(short a_ItemType); // tolua_export /** Fills a_Enchantments with the list of enchantments applicable to the specified item type */ static void cItem::GetApplicableEnchantmentsForType(short a_ItemType, cEnchantmentsArray & a_Enchantments); @@ -177,9 +183,11 @@ public: short m_ItemType; char m_ItemCount; short m_ItemDamage; + cEnchantments m_Enchantments; AString m_CustomName; AString m_Lore; - cEnchantments m_Enchantments; + + cFireworkItem m_FireworkItem; }; // tolua_end @@ -196,7 +204,7 @@ class cItems // tolua_export public: // tolua_begin - /// Need a Lua-accessible constructor + /** Need a Lua-accessible constructor */ cItems(void) {} cItem * Get (int a_Idx); @@ -204,7 +212,7 @@ public: void Add (const cItem & a_Item) {push_back(a_Item); } void Delete(int a_Idx); void Clear (void) {clear(); } - int Size (void) {return size(); } + size_t Size (void) {return size(); } void Set (int a_Idx, short a_ItemType, char a_ItemCount, short a_ItemDamage); void Add (short a_ItemType, char a_ItemCount, short a_ItemDamage) @@ -219,7 +227,7 @@ public: -/// Used to store loot probability tables +/** Used to store loot probability tables */ class cLootProbab { public: |