mirror of
				https://github.com/luanti-org/luanti.git
				synced 2025-10-31 15:35:21 +01:00 
			
		
		
		
	Some inventory const-ification
This commit is contained in:
		| @@ -178,9 +178,9 @@ std::string FurnaceNodeMetadata::infoText() | ||||
| 	//return "Furnace"; | ||||
| 	if(m_fuel_time >= m_fuel_totaltime) | ||||
| 	{ | ||||
| 		InventoryList *src_list = m_inventory->getList("src"); | ||||
| 		const InventoryList *src_list = m_inventory->getList("src"); | ||||
| 		assert(src_list); | ||||
| 		InventoryItem *src_item = src_list->getItem(0); | ||||
| 		const InventoryItem *src_item = src_list->getItem(0); | ||||
|  | ||||
| 		if(src_item) | ||||
| 			return "Furnace is out of fuel"; | ||||
| @@ -219,7 +219,7 @@ bool FurnaceNodeMetadata::step(float dtime) | ||||
|  | ||||
| 		InventoryList *src_list = m_inventory->getList("src"); | ||||
| 		assert(src_list); | ||||
| 		InventoryItem *src_item = src_list->getItem(0); | ||||
| 		const InventoryItem *src_item = src_list->getItem(0); | ||||
| 		 | ||||
| 		// Start only if there are free slots in dst, so that it can | ||||
| 		// accomodate any result item | ||||
| @@ -268,7 +268,7 @@ bool FurnaceNodeMetadata::step(float dtime) | ||||
|  | ||||
| 		InventoryList *fuel_list = m_inventory->getList("fuel"); | ||||
| 		assert(fuel_list); | ||||
| 		InventoryItem *fuel_item = fuel_list->getItem(0); | ||||
| 		const InventoryItem *fuel_item = fuel_list->getItem(0); | ||||
|  | ||||
| 		if(ItemSpec(ITEM_MATERIAL, CONTENT_TREE).checkItem(fuel_item)) | ||||
| 		{ | ||||
|   | ||||
| @@ -139,12 +139,12 @@ ServerActiveObject* InventoryItem::createSAO(ServerEnvironment *env, u16 id, v3f | ||||
| 	MaterialItem | ||||
| */ | ||||
|  | ||||
| bool MaterialItem::isCookable() | ||||
| bool MaterialItem::isCookable() const | ||||
| { | ||||
| 	return item_material_is_cookable(m_content); | ||||
| } | ||||
|  | ||||
| InventoryItem *MaterialItem::createCookResult() | ||||
| InventoryItem *MaterialItem::createCookResult() const | ||||
| { | ||||
| 	return item_material_create_cook_result(m_content); | ||||
| } | ||||
| @@ -176,7 +176,7 @@ ServerActiveObject* CraftItem::createSAO(ServerEnvironment *env, u16 id, v3f pos | ||||
| 	return InventoryItem::createSAO(env, id, pos); | ||||
| } | ||||
|  | ||||
| u16 CraftItem::getDropCount() | ||||
| u16 CraftItem::getDropCount() const | ||||
| { | ||||
| 	// Special cases | ||||
| 	s16 dc = item_craft_get_drop_count(m_subname); | ||||
| @@ -186,12 +186,12 @@ u16 CraftItem::getDropCount() | ||||
| 	return InventoryItem::getDropCount(); | ||||
| } | ||||
|  | ||||
| bool CraftItem::isCookable() | ||||
| bool CraftItem::isCookable() const | ||||
| { | ||||
| 	return item_craft_is_cookable(m_subname); | ||||
| } | ||||
|  | ||||
| InventoryItem *CraftItem::createCookResult() | ||||
| InventoryItem *CraftItem::createCookResult() const | ||||
| { | ||||
| 	return item_craft_create_cook_result(m_subname); | ||||
| } | ||||
| @@ -416,7 +416,7 @@ InventoryList & InventoryList::operator = (const InventoryList &other) | ||||
| 	return *this; | ||||
| } | ||||
|  | ||||
| std::string InventoryList::getName() | ||||
| const std::string &InventoryList::getName() const | ||||
| { | ||||
| 	return m_name; | ||||
| } | ||||
| @@ -443,6 +443,13 @@ u32 InventoryList::getFreeSlots() | ||||
| 	return getSize() - getUsedSlots(); | ||||
| } | ||||
|  | ||||
| const InventoryItem * InventoryList::getItem(u32 i) const | ||||
| { | ||||
| 	if(i > m_items.size() - 1) | ||||
| 		return NULL; | ||||
| 	return m_items[i]; | ||||
| } | ||||
|  | ||||
| InventoryItem * InventoryList::getItem(u32 i) | ||||
| { | ||||
| 	if(i > m_items.size() - 1) | ||||
| @@ -545,7 +552,7 @@ InventoryItem * InventoryList::addItem(u32 i, InventoryItem *newitem) | ||||
| bool InventoryList::itemFits(u32 i, InventoryItem *newitem) | ||||
| { | ||||
| 	// If it is an empty position, it's an easy job. | ||||
| 	InventoryItem *to_item = getItem(i); | ||||
| 	const InventoryItem *to_item = getItem(i); | ||||
| 	if(to_item == NULL) | ||||
| 	{ | ||||
| 		return true; | ||||
| @@ -736,7 +743,15 @@ InventoryList * Inventory::getList(const std::string &name) | ||||
| 	return m_lists[i]; | ||||
| } | ||||
|  | ||||
| s32 Inventory::getListIndex(const std::string &name) | ||||
| const InventoryList * Inventory::getList(const std::string &name) const | ||||
| { | ||||
| 	s32 i = getListIndex(name); | ||||
| 	if(i == -1) | ||||
| 		return NULL; | ||||
| 	return m_lists[i]; | ||||
| } | ||||
|  | ||||
| const s32 Inventory::getListIndex(const std::string &name) const | ||||
| { | ||||
| 	for(u32 i=0; i<m_lists.size(); i++) | ||||
| 	{ | ||||
| @@ -866,7 +881,7 @@ void IMoveAction::apply(InventoryContext *c, InventoryManager *mgr) | ||||
| 	Craft checking system | ||||
| */ | ||||
|  | ||||
| bool ItemSpec::checkItem(InventoryItem *item) | ||||
| bool ItemSpec::checkItem(const InventoryItem *item) const | ||||
| { | ||||
| 	if(type == ITEM_NONE) | ||||
| 	{ | ||||
| @@ -916,7 +931,7 @@ bool ItemSpec::checkItem(InventoryItem *item) | ||||
| 	return true; | ||||
| } | ||||
|  | ||||
| bool checkItemCombination(InventoryItem **items, ItemSpec *specs) | ||||
| bool checkItemCombination(InventoryItem const * const *items, const ItemSpec *specs) | ||||
| { | ||||
| 	u16 items_min_x = 100; | ||||
| 	u16 items_max_x = 100; | ||||
| @@ -979,8 +994,8 @@ bool checkItemCombination(InventoryItem **items, ItemSpec *specs) | ||||
| 		u16 items_y = items_min_y + y; | ||||
| 		u16 specs_x = specs_min_x + x; | ||||
| 		u16 specs_y = specs_min_y + y; | ||||
| 		InventoryItem *item = items[items_y * 3 + items_x]; | ||||
| 		ItemSpec &spec = specs[specs_y * 3 + specs_x]; | ||||
| 		const InventoryItem *item = items[items_y * 3 + items_x]; | ||||
| 		const ItemSpec &spec = specs[specs_y * 3 + specs_x]; | ||||
|  | ||||
| 		if(spec.checkItem(item) == false) | ||||
| 			return false; | ||||
|   | ||||
| @@ -61,19 +61,19 @@ public: | ||||
| 	// Creates an object from the item, to be placed in the world. | ||||
| 	virtual ServerActiveObject* createSAO(ServerEnvironment *env, u16 id, v3f pos); | ||||
| 	// Gets amount of items that dropping one SAO will decrement | ||||
| 	virtual u16 getDropCount(){ return getCount(); } | ||||
| 	virtual u16 getDropCount() const { return getCount(); } | ||||
|  | ||||
| 	/* | ||||
| 		Quantity methods | ||||
| 	*/ | ||||
|  | ||||
| 	// Shall return true if the item can be add()ed to the other | ||||
| 	virtual bool addableTo(InventoryItem *other) | ||||
| 	virtual bool addableTo(const InventoryItem *other) const | ||||
| 	{ | ||||
| 		return false; | ||||
| 	} | ||||
| 	 | ||||
| 	u16 getCount() | ||||
| 	u16 getCount() const | ||||
| 	{ | ||||
| 		return m_count; | ||||
| 	} | ||||
| @@ -82,7 +82,7 @@ public: | ||||
| 		m_count = count; | ||||
| 	} | ||||
| 	// This should return something else for stackable items | ||||
| 	virtual u16 freeSpace() | ||||
| 	virtual u16 freeSpace() const | ||||
| 	{ | ||||
| 		return 0; | ||||
| 	} | ||||
| @@ -102,11 +102,11 @@ public: | ||||
| 	*/ | ||||
|  | ||||
| 	// Whether it can be cooked | ||||
| 	virtual bool isCookable(){return false;} | ||||
| 	virtual bool isCookable() const {return false;} | ||||
| 	// Time of cooking | ||||
| 	virtual float getCookTime(){return 3.0;} | ||||
| 	// Result of cooking (can randomize) | ||||
| 	virtual InventoryItem *createCookResult(){return NULL;} | ||||
| 	virtual InventoryItem *createCookResult() const {return NULL;} | ||||
| 	 | ||||
| 	// Eat, press, activate, whatever. | ||||
| 	// Called when item is right-clicked when lying on ground. | ||||
| @@ -160,7 +160,7 @@ public: | ||||
| 		return os.str(); | ||||
| 	} | ||||
|  | ||||
| 	virtual bool addableTo(InventoryItem *other) | ||||
| 	virtual bool addableTo(const InventoryItem *other) const | ||||
| 	{ | ||||
| 		if(std::string(other->getName()) != "MaterialItem") | ||||
| 			return false; | ||||
| @@ -169,7 +169,7 @@ public: | ||||
| 			return false; | ||||
| 		return true; | ||||
| 	} | ||||
| 	u16 freeSpace() | ||||
| 	u16 freeSpace() const | ||||
| 	{ | ||||
| 		if(m_count > QUANTITY_ITEM_MAX_COUNT) | ||||
| 			return 0; | ||||
| @@ -178,8 +178,8 @@ public: | ||||
| 	/* | ||||
| 		Other properties | ||||
| 	*/ | ||||
| 	bool isCookable(); | ||||
| 	InventoryItem *createCookResult(); | ||||
| 	bool isCookable() const; | ||||
| 	InventoryItem *createCookResult() const; | ||||
| 	/* | ||||
| 		Special methods | ||||
| 	*/ | ||||
| @@ -289,9 +289,9 @@ public: | ||||
| 	} | ||||
|  | ||||
| 	ServerActiveObject* createSAO(ServerEnvironment *env, u16 id, v3f pos); | ||||
| 	u16 getDropCount(); | ||||
| 	u16 getDropCount() const; | ||||
|  | ||||
| 	virtual bool addableTo(InventoryItem *other) | ||||
| 	virtual bool addableTo(const InventoryItem *other) const | ||||
| 	{ | ||||
| 		if(std::string(other->getName()) != "CraftItem") | ||||
| 			return false; | ||||
| @@ -300,7 +300,7 @@ public: | ||||
| 			return false; | ||||
| 		return true; | ||||
| 	} | ||||
| 	u16 freeSpace() | ||||
| 	u16 freeSpace() const | ||||
| 	{ | ||||
| 		if(m_count > QUANTITY_ITEM_MAX_COUNT) | ||||
| 			return 0; | ||||
| @@ -311,8 +311,8 @@ public: | ||||
| 		Other properties | ||||
| 	*/ | ||||
|  | ||||
| 	bool isCookable(); | ||||
| 	InventoryItem *createCookResult(); | ||||
| 	bool isCookable() const; | ||||
| 	InventoryItem *createCookResult() const; | ||||
|  | ||||
| 	bool use(ServerEnvironment *env, Player *player); | ||||
| 	 | ||||
| @@ -467,7 +467,7 @@ public: | ||||
| 	InventoryList(const InventoryList &other); | ||||
| 	InventoryList & operator = (const InventoryList &other); | ||||
|  | ||||
| 	std::string getName(); | ||||
| 	const std::string &getName() const; | ||||
| 	u32 getSize(); | ||||
| 	// Count used slots | ||||
| 	u32 getUsedSlots(); | ||||
| @@ -477,6 +477,7 @@ public: | ||||
| 	void setDirty(bool dirty=true){ m_dirty = dirty; }*/ | ||||
| 	 | ||||
| 	// Get pointer to item | ||||
| 	const InventoryItem * getItem(u32 i) const; | ||||
| 	InventoryItem * getItem(u32 i); | ||||
| 	// Returns old item (or NULL). Parameter can be NULL. | ||||
| 	InventoryItem * changeItem(u32 i, InventoryItem *newitem); | ||||
| @@ -529,6 +530,7 @@ public: | ||||
|  | ||||
| 	InventoryList * addList(const std::string &name, u32 size); | ||||
| 	InventoryList * getList(const std::string &name); | ||||
| 	const InventoryList * getList(const std::string &name) const; | ||||
| 	bool deleteList(const std::string &name); | ||||
| 	// A shorthand for adding items. | ||||
| 	// Returns NULL if the item was fully added, leftover otherwise. | ||||
| @@ -542,7 +544,7 @@ public: | ||||
| 	 | ||||
| private: | ||||
| 	// -1 if not found | ||||
| 	s32 getListIndex(const std::string &name); | ||||
| 	const s32 getListIndex(const std::string &name) const; | ||||
|  | ||||
| 	core::array<InventoryList*> m_lists; | ||||
| }; | ||||
| @@ -689,14 +691,14 @@ struct ItemSpec | ||||
| 	{ | ||||
| 	} | ||||
|  | ||||
| 	bool checkItem(InventoryItem *item); | ||||
| 	bool checkItem(const InventoryItem *item) const; | ||||
| }; | ||||
|  | ||||
| /* | ||||
| 	items: a pointer to an array of 9 pointers to items | ||||
| 	specs: a pointer to an array of 9 ItemSpecs | ||||
| */ | ||||
| bool checkItemCombination(InventoryItem **items, ItemSpec *specs); | ||||
| bool checkItemCombination(const InventoryItem * const*items, const ItemSpec *specs); | ||||
|  | ||||
| #endif | ||||
|  | ||||
|   | ||||
		Reference in New Issue
	
	Block a user