Files
cuberite-2a/source/cInventory.h
T

74 lines
1.9 KiB
C++
Raw Normal View History

2011-10-03 18:41:19 +00:00
#pragma once
#include "MemoryLeak.h"
#include "cWindowOwner.h"
#include "FileDefine.h"
namespace Json
{
class Value;
};
2011-10-03 18:41:19 +00:00
class cItem;
class cClientHandle;
class cPlayer;
class cPacket;
2011-10-03 18:41:19 +00:00
class cPacket_EntityEquipment;
class cInventory //tolua_export
2012-01-01 18:45:28 +00:00
: public cWindowOwner
2011-10-03 18:41:19 +00:00
{ //tolua_export
public:
cInventory(cPlayer* a_Owner);
~cInventory();
void Clear(); //tolua_export
cItem* GetSlotsForType( int a_Type );
int GetSlotCountForType( int a_Type );
bool AddItem( cItem & a_Item ); //tolua_export
bool RemoveItem( cItem & a_Item ); //tolua_export
void SaveToJson(Json::Value & a_Value);
bool LoadFromJson(Json::Value & a_Value);
2011-10-03 18:41:19 +00:00
void SendWholeInventory( cClientHandle* a_Client );
cItem* GetSlot( int a_SlotNum ); //tolua_export
cItem* GetSlots() { return m_Slots; }
cItem* GetFromHotBar( int a_SlotNum ); //tolua_export
cItem & GetEquippedItem(); //tolua_export
void SetEquippedSlot( int a_SlotNum ); //tolua_export
2012-01-01 18:45:28 +00:00
short GetEquippedSlot() { return m_EquippedSlot; } //tolua_export
2011-10-03 18:41:19 +00:00
virtual void Clicked( cPacket* a_ClickPacket ) = 0;
2011-10-03 18:41:19 +00:00
void SendSlot( int a_SlotNum ); //tolua_export
static const unsigned int c_NumSlots = 45;
static const unsigned int c_MainSlots = 27;
static const unsigned int c_HotSlots = 9;
static const unsigned int c_CraftSlots = 4;
static const unsigned int c_ArmorSlots = 4;
static const unsigned int c_CraftOffset = 0;
static const unsigned int c_ArmorOffset = 5;
static const unsigned int c_MainOffset = 9;
static const unsigned int c_HotOffset = 36;
protected:
2011-10-03 18:41:19 +00:00
bool AddToBar( cItem & a_Item, const int a_Offset, const int a_Size, bool* a_bChangedSlots, int a_Mode = 0 );
cItem* m_Slots;
cItem* m_MainSlots;
cItem* m_CraftSlots;
cItem* m_ArmorSlots;
cItem* m_HotSlots;
cItem* m_EquippedItem;
short m_EquippedSlot;
cPlayer* m_Owner;
}; //tolua_export