#pragma once using namespace std; #include "TileEntity.h" #define MAX_SIGN_LINES 4 class SignTileEntity : public TileEntity { public: eINSTANCEOF GetType() { return eTYPE_SIGNTILEENTITY; } static TileEntity *create() { return new SignTileEntity(); } public: static const int MAX_LINE_LENGTH; public: SignTileEntity(); virtual ~SignTileEntity(); wstring GetMessage(int i) { return m_wsmessages[i];} wstring *GetMessages() { return m_wsmessages;} void SetMessage(int iIndex,wstring &wsText); int GetSelectedLine() {return m_iSelectedLine;} void SetSelectedLine(int iLine) {m_iSelectedLine=iLine;} bool IsVerified() {return m_bVerified;} void SetVerified(bool bVerified) {m_bVerified=bVerified;} bool IsCensored() {return m_bCensored;} void SetCensored(bool bCensored) {m_bCensored=bCensored;} public: private: bool _isEditable; bool m_bVerified; bool m_bCensored; int m_iSelectedLine; wstring m_wsmessages[MAX_SIGN_LINES]; public: virtual void save(CompoundTag *tag); virtual void load(CompoundTag *tag); virtual shared_ptr getUpdatePacket(); bool isEditable(); void setEditable(bool isEditable); virtual void setChanged(); static int StringVerifyCallback(LPVOID lpParam,STRING_VERIFY_RESPONSE *pResults); // 4J Added virtual shared_ptr clone(); };