37 ItemStack(
const std::string &name_, u16 count_,
43 void serialize(std::ostream &os,
bool serialize_meta =
true)
const;
120 if (item_cap == NULL)
124 assert(item_cap != NULL);
134 if(amount > 65535 -
wear)
136 else if(amount < -
wear)
170 this->count == s.
count &&
171 this->wear == s.
wear &&
177 return !(*
this == s);
197 void setName(
const std::string &name);
198 void serialize(std::ostream &os,
bool incremental)
const;
206 return !(*
this == other);
209 const std::string &
getName()
const;
263 u32 count = 0,
bool swap_if_needed =
true,
bool *did_swap = NULL);
294 return !(*
this == other);
298 void serialize(std::ostream &os,
bool incremental =
false)
const;
304 std::vector<const InventoryList*>
getLists();
320 for (
const auto &list :
m_lists)
321 if (list->checkModified())
332 for (
const auto &list :
m_lists)
333 list->setModified(dirty);
Definition: itemdef.h:105
virtual const ItemDefinition & get(const std::string &name) const =0
virtual bool isKnown(const std::string &name) const =0
Definition: inventory.h:190
bool operator==(const InventoryList &other) const
Definition: inventory.cpp:524
u32 getSize() const
Definition: inventory.cpp:544
bool containsItem(const ItemStack &item, bool match_meta) const
Definition: inventory.cpp:675
const ItemStack & getItem(u32 i) const
Definition: inventory.cpp:569
ItemStack addItem(const ItemStack &newitem)
Definition: inventory.cpp:599
std::vector< ItemStack > m_items
Definition: inventory.h:273
bool operator!=(const InventoryList &other) const
Definition: inventory.h:204
IItemDefManager * m_itemdef
Definition: inventory.h:277
bool m_dirty
Definition: inventory.h:278
void setName(const std::string &name)
Definition: inventory.cpp:422
void setWidth(u32 newWidth)
Definition: inventory.cpp:416
bool checkModified() const
Definition: inventory.h:269
ItemStack removeItem(const ItemStack &item)
Definition: inventory.cpp:694
std::string m_name
Definition: inventory.h:274
u32 m_size
Definition: inventory.h:275
void deSerialize(std::istream &is)
Definition: inventory.cpp:450
u32 getUsedSlots() const
Definition: inventory.cpp:554
InventoryList(const std::string &name, u32 size, IItemDefManager *itemdef)
Definition: inventory.cpp:387
u32 moveItem(u32 i, InventoryList *dest, u32 dest_i, u32 count=0, bool swap_if_needed=true, bool *did_swap=NULL)
Definition: inventory.cpp:746
u32 getWidth() const
Definition: inventory.cpp:549
ItemStack changeItem(u32 i, const ItemStack &newitem)
Definition: inventory.cpp:581
void setModified(bool dirty=true)
Definition: inventory.h:270
void setSize(u32 newsize)
Definition: inventory.cpp:406
u32 getFreeSlots() const
Definition: inventory.cpp:564
InventoryList & operator=(const InventoryList &other)
Definition: inventory.cpp:512
void clearItems()
Definition: inventory.cpp:395
void serialize(std::ostream &os, bool incremental) const
Definition: inventory.cpp:428
void deleteItem(u32 i)
Definition: inventory.cpp:592
const std::string & getName() const
Definition: inventory.cpp:539
bool roomForItem(const ItemStack &item) const
Definition: inventory.cpp:662
u32 m_width
Definition: inventory.h:276
ItemStack takeItem(u32 i, u32 takecount)
Definition: inventory.cpp:714
bool itemFits(const u32 i, const ItemStack &newitem, ItemStack *restitem=NULL) const
Definition: inventory.cpp:649
void moveItemSomewhere(u32 i, InventoryList *dest, u32 count)
Definition: inventory.cpp:725
Definition: inventory.h:282
const s32 getListIndex(const std::string &name) const
Definition: inventory.cpp:1001
ItemStack addItem(const std::string &listname, const ItemStack &newitem)
Definition: inventory.h:307
void clear()
Definition: inventory.cpp:802
Inventory(IItemDefManager *itemdef)
Definition: inventory.cpp:811
InventoryList * getList(const std::string &name)
Definition: inventory.cpp:964
bool deleteList(const std::string &name)
Definition: inventory.cpp:981
InventoryList * addList(const std::string &name, u32 size)
Definition: inventory.cpp:938
bool operator==(const Inventory &other) const
Definition: inventory.cpp:837
bool checkModified() const
Definition: inventory.h:315
IItemDefManager * m_itemdef
Definition: inventory.h:341
std::vector< const InventoryList * > getLists()
Definition: inventory.cpp:972
~Inventory()
Definition: inventory.cpp:797
void setModified(bool dirty=true)
Definition: inventory.h:327
void serialize(std::ostream &os, bool incremental=false) const
Definition: inventory.cpp:850
bool m_dirty
Definition: inventory.h:342
void deSerialize(std::istream &is)
Definition: inventory.cpp:865
Inventory & operator=(const Inventory &other)
Definition: inventory.cpp:822
std::vector< InventoryList * > m_lists
Definition: inventory.h:340
bool operator!=(const Inventory &other) const
Definition: inventory.h:292
@ ITEM_TOOL
Definition: itemdef.h:48
u16 stack_max
Definition: itemdef.h:75
ToolCapabilities * tool_capabilities
Definition: itemdef.h:79
Definition: inventory.h:34
void add(u16 n)
Definition: inventory.h:71
std::string getDescription(IItemDefManager *itemdef) const
Definition: inventory.cpp:253
u16 count
Definition: inventory.h:184
ItemStack peekItem(u32 peekcount) const
Definition: inventory.cpp:372
u16 getStackMax(IItemDefManager *itemdef) const
Definition: inventory.h:85
std::string getShortDescription(IItemDefManager *itemdef) const
Definition: inventory.cpp:261
void clear()
Definition: inventory.h:63
ItemStack takeItem(u32 takecount)
Definition: inventory.cpp:352
bool operator!=(const ItemStack &s) const
Definition: inventory.h:175
void serialize(std::ostream &os, bool serialize_meta=true) const
Definition: inventory.cpp:59
std::string getItemString(bool include_meta=true) const
Definition: inventory.cpp:246
bool itemFits(ItemStack newitem, ItemStack *restitem, IItemDefManager *itemdef) const
Definition: inventory.cpp:313
ItemStackMetadata metadata
Definition: inventory.h:186
bool isKnown(IItemDefManager *itemdef) const
Definition: inventory.h:100
const ToolCapabilities & getToolCapabilities(IItemDefManager *itemdef) const
Definition: inventory.h:114
const ItemDefinition & getDefinition(IItemDefManager *itemdef) const
Definition: inventory.h:107
bool empty() const
Definition: inventory.h:58
std::string name
Definition: inventory.h:183
u16 wear
Definition: inventory.h:185
void deSerialize(std::istream &is, IItemDefManager *itemdef=NULL)
Definition: inventory.cpp:87
bool operator==(const ItemStack &s) const
Definition: inventory.h:167
void remove(u16 n)
Definition: inventory.h:76
u16 freeSpace(IItemDefManager *itemdef) const
Definition: inventory.h:91
ItemStack addItem(ItemStack newitem, IItemDefManager *itemdef)
Definition: inventory.cpp:276
bool addWear(s32 amount, IItemDefManager *itemdef)
Definition: inventory.h:130