summaryrefslogtreecommitdiffstats
path: root/source/cChestEntity.h
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--source/cChestEntity.h42
1 files changed, 42 insertions, 0 deletions
diff --git a/source/cChestEntity.h b/source/cChestEntity.h
new file mode 100644
index 000000000..5170b168d
--- /dev/null
+++ b/source/cChestEntity.h
@@ -0,0 +1,42 @@
+#pragma once
+
+#include "cBlockEntity.h"
+#include "cWindowOwner.h"
+#include "FileDefine.h"
+
+namespace Json
+{
+ class Value;
+};
+
+class cClientHandle;
+class cServer;
+class cItem;
+class cNBTData;
+class cChestEntity : public cBlockEntity, public cWindowOwner
+{
+public:
+ cChestEntity(int a_X, int a_Y, int a_Z);
+ virtual ~cChestEntity();
+ virtual void Destroy();
+
+ void HandleData( cNBTData* a_NBTData );
+
+ cItem * GetSlot( int a_Slot );
+ void SetSlot( int a_Slot, cItem & a_Item );
+
+ void WriteToFile(FILE* a_File);
+ bool LoadFromFile(FILE* a_File);
+
+ bool LoadFromJson( const Json::Value& a_Value );
+ void SaveToJson( Json::Value& a_Value );
+
+ void SendTo( cClientHandle* a_Client, cServer* a_Server );
+
+ virtual void UsedBy( cPlayer & a_Player );
+
+ static const int c_ChestWidth = 9;
+ static const int c_ChestHeight = 3;
+private:
+ cItem* m_Content;
+}; \ No newline at end of file