1
0
cuberite-2a/source/cInventory.h
faketruth c2b43f33da Player data is saved and loaded as human readable JSON now.
cFileFormatUpdate will loop through old files and convert them to new files (should replace legacy old format loading code)
cItem has two new functions to load from Json and output Json, this will keep the items in Json standard
ChestEntity and FurnaceEntity use the new functions in cItem

git-svn-id: http://mc-server.googlecode.com/svn/trunk@35 0a769ca7-a7f5-676a-18bf-c427514a06d6
2011-10-31 21:30:14 +00:00

73 lines
1.9 KiB
C++

#pragma once
#include "MemoryLeak.h"
#include "cWindowOwner.h"
#include "FileDefine.h"
namespace Json
{
class Value;
};
class cItem;
class cClientHandle;
class cPlayer;
class cPacket_WindowClick;
class cPacket_EntityEquipment;
class cInventory //tolua_export
: public cWindowOwner
{ //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 DrawInventory();
void SaveToJson(Json::Value & a_Value);
bool LoadFromJson(Json::Value & a_Value);
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
void Clicked( cPacket_WindowClick* a_ClickPacket );
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;
private:
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