mirror of
https://github.com/EQEmu/Server.git
synced 2025-12-11 16:51:29 +00:00
76 lines
2.4 KiB
C++
76 lines
2.4 KiB
C++
#ifndef EQEMU_LUA_INVENTORY_H
|
|
#define EQEMU_LUA_INVENTORY_H
|
|
#ifdef LUA_EQEMU
|
|
|
|
#include "lua_ptr.h"
|
|
|
|
class Lua_ItemInst;
|
|
class Lua_Item;
|
|
|
|
namespace EQ
|
|
{
|
|
class InventoryProfile;
|
|
}
|
|
|
|
namespace luabind {
|
|
struct scope;
|
|
}
|
|
|
|
luabind::scope lua_register_inventory();
|
|
|
|
// This class should be deprecated due to the nature of inventory actions.
|
|
// Direct manipulation of the inventory system bypasses the client management
|
|
// of database calls and can lead to lost items, duplicated items and/or
|
|
// desync'd inventories, if not handled correctly.
|
|
|
|
class Lua_Inventory : public Lua_Ptr<EQ::InventoryProfile>
|
|
{
|
|
typedef EQ::InventoryProfile NativeType;
|
|
public:
|
|
Lua_Inventory() : Lua_Ptr(nullptr) { }
|
|
Lua_Inventory(EQ::InventoryProfile *d) : Lua_Ptr(d) { }
|
|
virtual ~Lua_Inventory() { }
|
|
|
|
operator EQ::InventoryProfile*() {
|
|
return reinterpret_cast<EQ::InventoryProfile*>(GetLuaPtrData());
|
|
}
|
|
|
|
Lua_ItemInst GetItem(int slot_id);
|
|
Lua_ItemInst GetItem(int slot_id, int bag_slot);
|
|
int PutItem(int slot_id, Lua_ItemInst item);
|
|
int PushCursor(Lua_ItemInst item);
|
|
bool SwapItem(int source_slot, int destination_slot);
|
|
bool DeleteItem(int slot_id);
|
|
bool DeleteItem(int slot_id, int quantity);
|
|
bool CheckNoDrop(int slot_id);
|
|
uint32 CountAugmentEquippedByID(uint32 item_id);
|
|
uint32 CountItemEquippedByID(uint32 item_id);
|
|
Lua_ItemInst PopItem(int slot_id);
|
|
bool HasAugmentEquippedByID(uint32 item_id);
|
|
bool HasItemEquippedByID(uint32 item_id);
|
|
int HasItem(int item_id);
|
|
int HasItem(int item_id, int quantity);
|
|
int HasItem(int item_id, int quantity, int where);
|
|
bool HasSpaceForItem(Lua_Item item, int quantity);
|
|
int HasItemByUse(int use);
|
|
int HasItemByUse(int use, uint8 quantity);
|
|
int HasItemByUse(int use, uint8 quantity, uint8 where);
|
|
int HasItemByLoreGroup(uint32 loregroup);
|
|
int HasItemByLoreGroup(uint32 loregroup, int where);
|
|
int FindFreeSlot(bool for_bag, bool try_cursor);
|
|
int FindFreeSlot(bool for_bag, bool try_cursor, int min_size);
|
|
int FindFreeSlot(bool for_bag, bool try_cursor, int min_size, bool is_arrow);
|
|
int CalcSlotId(int slot_id);
|
|
int CalcSlotId(int slot_id, int bag_slot);
|
|
int CalcBagIdx(int slot_id);
|
|
int CalcSlotFromMaterial(int material);
|
|
int CalcMaterialFromSlot(int equipslot);
|
|
bool CanItemFitInContainer(Lua_Item item, Lua_Item container);
|
|
bool SupportsContainers(int slot_id);
|
|
int GetSlotByItemInst(Lua_ItemInst inst);
|
|
luabind::object GetAugmentIDsBySlotID(lua_State* L, int16 slot_id);
|
|
};
|
|
|
|
#endif
|
|
#endif
|