From 1a0bfd8d28c68d3ee60352ef67c58da946c43cea Mon Sep 17 00:00:00 2001 From: "madmaxoft@gmail.com" Date: Mon, 28 May 2012 16:47:57 +0000 Subject: Chests and Furnaces are now saved properly into Anvil scheme. git-svn-id: http://mc-server.googlecode.com/svn/trunk@516 0a769ca7-a7f5-676a-18bf-c427514a06d6 --- source/cFurnaceEntity.h | 28 +++++++++++++++++++++------- 1 file changed, 21 insertions(+), 7 deletions(-) (limited to 'source/cFurnaceEntity.h') diff --git a/source/cFurnaceEntity.h b/source/cFurnaceEntity.h index 21cdb1e38..253990000 100644 --- a/source/cFurnaceEntity.h +++ b/source/cFurnaceEntity.h @@ -4,6 +4,7 @@ #include "cBlockEntity.h" #include "cWindowOwner.h" #include "FileDefine.h" +#include "cItem.h" @@ -16,8 +17,6 @@ namespace Json class cClientHandle; class cServer; -class cItem; -class cNBTData; @@ -36,23 +35,38 @@ public: bool LoadFromJson(const Json::Value& a_Value ); virtual void SaveToJson(Json::Value& a_Value ) override; + // Returns true if there's any change, forcing the chunk to go dirty. bool Tick( float a_Dt ); virtual void UsedBy( cPlayer * a_Player ) override; bool StartCooking(); + + /// Restarts cooking. Used after the furnace is loaded from storage to set up the internal variables so that cooking continues, if it was active. Returns true if cooking. + bool ContinueCooking(void); void ResetCookTimer(); + const cItem & GetSlot(int i) const { return m_Items[i]; } + + void SetSlot(int a_Slot, const cItem & a_Item); + + float GetTimeCooked(void) const {return m_TimeCooked; } + float GetTimeToBurn(void) const {return m_BurnTime - m_TimeBurned; } + + void SetBurnTimes(float a_BurnTime, float a_TimeBurned) {m_BurnTime = a_BurnTime; m_TimeBurned = 0; } + void SetCookTimes(float a_CookTime, float a_TimeCooked) {m_CookTime = a_CookTime; m_TimeCooked = a_TimeCooked; } + private: cItem * m_Items; cItem * m_CookingItem; - float m_CookTime; - float m_TimeCooked; - - float m_BurnTime; - float m_TimeBurned; + + // All timers are in 1 ms + float m_CookTime; // Amount of time needed to fully cook current item + float m_TimeCooked; // Amount of time that the current item has been cooking + float m_BurnTime; // Amount of time that the current fuel can burn (in total); zero if no fuel burning + float m_TimeBurned; // Amount of time that the current fuel has been burning }; -- cgit v1.2.3