diff options
Diffstat (limited to '')
-rw-r--r-- | src/BookContent.h | 64 |
1 files changed, 64 insertions, 0 deletions
diff --git a/src/BookContent.h b/src/BookContent.h new file mode 100644 index 000000000..042ebff50 --- /dev/null +++ b/src/BookContent.h @@ -0,0 +1,64 @@ + +// BookContent.h + +#pragma once + +#include "WorldStorage/FastNBT.h" +#include "json/json.h" + + + + +// tolua_begin +class cBookContent +{ +public: + /** Creates a empty book */ + cBookContent() {} + + /** Set the author of the book */ + void SetAuthor(const AString & a_Author) { m_Author = a_Author; } + + /** Returns the author of the book */ + const AString GetAuthor(void) const { return m_Author; } + + /** Set the title of the book */ + void SetTitle(const AString & a_Title) { m_Title = a_Title; } + + /** Returns the title of the book */ + const AString GetTitle(void) const { return m_Title; } + + /** Add a page to the end of the book */ + void AddPage(const AString & a_Page) { m_Pages.emplace_back(a_Page); } + + /** Clears the whole book */ + void Clear(); + + /** Returns true if the book has no author, no title and no pages */ + bool IsEmpty(void) const; + + // tolua_end + + /** Returns a AStringVector ref to the pages. Used in ManualBindings and for saving the book */ + const AStringVector & GetPages(void) const { return m_Pages; } + + /** Set the pages. Used in ManualBindings */ + void SetPages(const AStringVector & a_Pages) { m_Pages = a_Pages; } + + /** Read the book content from nbt. The boolean a_SaveAsJson is optional. If a player creates a book, the text should be in a json string */ + static void ParseFromNBT(int TagTag, cBookContent & a_BookContent, const cParsedNBT & a_NBT, bool a_SaveAsJson = false); + + /** Write book content to nbt */ + static void WriteToNBTCompound(const cBookContent & a_BookContent, cFastNBTWriter & a_Writer); + +private: + /** Author of the book */ + AString m_Author; + + /** Title of the book */ + AString m_Title; + + /** Contains the pages */ + AStringVector m_Pages; + +}; // tolua_export |