////////////////

        public bool IsBookEnabled(string bookName)
        {
            if (!this.Books.ContainsKey(bookName))
            {
                throw new ModHelpersException("No such book by name " + bookName);
            }

            InventoryBook book = this.Books[bookName];

            return(book.IsEnabled);
        }
Beispiel #2
0
        public bool RemoveLatestBookPage(Player player, string bookName, out string err)
        {
            if (!this.Books.ContainsKey(bookName))
            {
                throw new ModHelpersException("No such book by name " + bookName);
            }

            InventoryBook book = this.Books[bookName];

            return(book.DeleteEmptyPage(player, book.CountPages() - 1, out err));
        }
Beispiel #3
0
        public void DisableBook(string bookName)
        {
            if (!this.Books.ContainsKey(bookName))
            {
                throw new ModHelpersException("No such book by name " + bookName);
            }

            InventoryBook book = this.Books[bookName];

            book.IsEnabled = false;
        }
Beispiel #4
0
        ////////////////

        public Item[] GetBookPageItems(Player player, string bookName, int pageIdx)
        {
            if (!this.Books.ContainsKey(bookName))
            {
                throw new ModHelpersException("No such book by name " + bookName);
            }

            InventoryBook book = this.Books[bookName];

            return(book.GetPageItems(player, pageIdx));
        }
        ////////////////

        public Item[] GetLatestBookPageItems(Player player, string bookName)
        {
            if (this.Books.ContainsKey(bookName))
            {
                throw new ModHelpersException("No such book by name " + bookName);
            }

            InventoryBook book  = this.Books[bookName];
            int           count = book.CountPages();

            if (count == 0)
            {
                return(null);
            }

            return(book.GetPageItems(player, count - 1));
        }
        internal void Load(TagCompound tags)
        {
            var mymod = ExtensibleInventoryMod.Instance;

            if (!tags.ContainsKey("book_count") || !tags.ContainsKey("curr_book"))
            {
                var book = new InventoryBook(mymod.Config.DefaultBookEnabled, InventoryLibrary.DefaultBookName);

                book.Load(InventoryLibrary.DefaultBookName.ToLower(), tags);
                this.Books[InventoryLibrary.DefaultBookName] = book;

                return;
            }

            this.Books.Clear();

            int    bookCount    = tags.GetInt("book_count");
            string currBookName = tags.GetString("curr_book");

            for (int i = 0; i < bookCount; i++)
            {
                string bookName   = tags.GetString("book_name_" + i);
                string bookNameIo = bookName.ToLower();

                bool isEnabled = false;
                if (bookName == InventoryLibrary.DefaultBookName)
                {
                    isEnabled = mymod.Config.DefaultBookEnabled;
                }

                var book = new InventoryBook(isEnabled, bookName);

                book.Load(bookNameIo, tags);

                this.Books[bookName] = book;
            }

            this.CurrBookName = currBookName;
        }
        internal TagCompound Save(TagCompound tags)
        {
            tags["book_count"] = this.Books.Count;
            tags["curr_book"]  = this.CurrBookName;

            int i = 0;

            foreach (var kv in this.Books)
            {
                string bookName   = kv.Key;
                string bookNameIo = bookName.ToLower();

                InventoryBook book = kv.Value;

                tags["book_name_" + i] = bookName;
                book.Save(bookNameIo, tags);

                i++;
            }

            return(tags);
        }