Exemple #1
0
    private void InteractWith(Bookshelf bookshelf)
    {
        Utility.Execute(booksToTake,
                        bookshelf.ContainBook,
                        book =>
        {
            BookModel bookModel = bookshelf.books.Find(b => b.book == book);

            if (bookshelf.TransferBook(this, bookModel))
            {
                booksToTake.Remove(bookModel.book);
            }
            else
            {
                Debug.Log(
                    $"Could not transfer book '{book.Title}' to player because already transporting max book count");
            }
        });

        Utility.Execute(booksToStore,
                        bookshelf.ShouldStoreBookIn,
                        b =>
        {
            if (!TransferBook(bookshelf, b))
            {
                Debug.Log(
                    $"Could not transfer book '{b.book.Title}' to {bookshelf.name} because already containing max book count");
            }
            booksToStore.Remove(b);
        });
    }