Files
wwdpublic/Content.Client/_White/Book/UI/BookBoundUserInterface.cs
Yarik 7b502a53fc Biggest books update (#772)
* Большое обновление книжек

* Remove dotnet tool cache artifacts

* Remove dotnet tool cache artifacts 2

* All comments on English

* Add all validation

* All localization, code reduction, named bookmarks system

* Add "try catch" because coderabbitai asked

* Add base check content length

* Fix "\\n"

* the "BookRandomStory" system has been fix and translate

* little fix "BookRandomStory" system

* 2 little fix "BookRandomStory" system

* 3 little fix "BookRandomStory" system

* 4 little fix "BookRandomStory" system

* 5 little fix "BookRandomStory" system

* Improved handling of UTF-8 character truncation

* 2 Improved validation and handling of UTF-8 character truncation

* Mini-up for author_books

* add new author book for botany

* Smaller long of text on one page

* translation of the new janitor's book

* Spelling lesson

* Make TODO notes

* Translate TODO notes...

* little fix "Check the status of the dialog before using it."

* DONE: Create new pages to transfer text, not replace old ones

* DONE: Make it visible when the text limit per page is exceeded

* DONE: Make it possible to delete unnecessary pages

* Fall protection on incorrect markings

* fix ".ftl"

* Text length limit for SplitContentIntoPages

* change limits

* Add sound

* Add placeholder to loadouts and new symbol for CreateNewPage

* Apply some suggestions from code review

All changes, except moving files into White folders

Co-authored-by: Spatison <137375981+Spatison@users.noreply.github.com>

* Apply some suggestions from code review 2

Co-authored-by: Spatison <137375981+Spatison@users.noreply.github.com>

* Transfering into "_White" folder

* Remove dublicate code

* Added the necessary code

* Add method

* BookSystem has been transfered into "Shared" folder

* Add attributions for ".ogg"

* changes for tools have been canceled

* Apply some suggestions from code review 3

Co-authored-by: Spatison <137375981+Spatison@users.noreply.github.com>

* content have been transfered into "_White" folder 2

* Little fix locales

* Apply some suggestions from code review 4

Add comments in "Resources/Prototypes/Entities/Objects/Misc/books_author.yml"

Co-authored-by: Spatison <137375981+Spatison@users.noreply.github.com>

* content have been transfered into "_White" folder and translate

* English spelling lesson

Co-authored-by: Spatison <137375981+Spatison@users.noreply.github.com>

* Add BookRandomeStorySystem

* Apply some suggestions from code review 5

Co-authored-by: Spatison <137375981+Spatison@users.noreply.github.com>

* rolling back some changes from "code review 5"

* Spelling lesson 2

* tweak BookSystem. (Apply suggestion from code review)

Co-authored-by: Spatison <137375981+Spatison@users.noreply.github.com>

* Little fix bookmark-default-title

* Apply some suggestions from code review 6

Co-authored-by: Spatison <137375981+Spatison@users.noreply.github.com>

* fix code review changes and transfer "BookRandomStorySystem.cs" into "Content.System"

* Half of good locales

* full good locales of RandomStorySystem

* Spelling lesson 3

* Removed unnecessary StoryGen file

* Fixed bookmarks pos after del any page

* Transd files into _White folder

* Fixed the constant activity of the add page button

* Correction at the request of coderabbitai

* Transfered at the request of code review

* Transfered at the request of code review 2

* Fix transfer

* Apply suggestions from code review 7

Co-authored-by: Spatison <137375981+Spatison@users.noreply.github.com>

* Apply suggestions from code review 8

Co-authored-by: Spatison <137375981+Spatison@users.noreply.github.com>
Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>

* Apply and fix all suggestions from code review of file "BookWindow.xaml.cs"

* Fix formated

* Apply some suggestions from code review 9

maybe last...

Co-authored-by: Spatison <137375981+Spatison@users.noreply.github.com>
Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>

* Add try catch on texture loading

* Add Dispose method

* Correct display of blank pages

* Little fix eng locale

* Unnecessary code removed

* A Little Defense Against NRE/KeyNotFound.

* Highlighting the current page in the bookmarks drop-down list.

* Added fallback for the save button when there is no hotkey.

* Correct unsubscribing from events.

* Little fix save button

* Little fix formated

* Locales transfered fix

---------

Co-authored-by: Spatison <137375981+Spatison@users.noreply.github.com>
Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>
2025-08-30 17:35:36 +03:00

64 lines
1.6 KiB
C#

using Content.Shared._White.Book;
using JetBrains.Annotations;
using Robust.Client.UserInterface;
namespace Content.Client._White.Book.UI;
[UsedImplicitly]
public sealed class BookBoundUserInterface(EntityUid owner, Enum uiKey) : BoundUserInterface(owner, uiKey)
{
[ViewVariables]
private BookWindow? _window;
protected override void Open()
{
base.Open();
_window = this.CreateWindow<BookWindow>();
_window.OnPageChanged += OnPageChanged;
_window.OnTextSaved += OnTextSaved;
_window.OnAddPage += OnAddPage;
_window.OnBookmarkAdded += OnBookmarkAdded;
_window.OnBookmarkRemoved += OnBookmarkRemoved;
_window.OnPageDeleted += OnPageDeleted;
}
protected override void UpdateState(BoundUserInterfaceState state)
{
base.UpdateState(state);
if (state is BookBoundUserInterfaceState bookState)
_window?.ShowBook(bookState, bookState.IsEditing);
}
private void OnAddPage()
{
SendMessage(new BookAddPageMessage());
}
private void OnPageChanged(int newPage)
{
SendMessage(new BookPageChangedMessage(newPage));
}
private void OnTextSaved(string text)
{
SendMessage(new BookAddTextMessage(text));
}
private void OnBookmarkAdded(int pageIndex, string bookmarkName)
{
SendMessage(new BookAddBookmarkMessage(pageIndex, bookmarkName));
}
private void OnBookmarkRemoved(int pageIndex)
{
SendMessage(new BookRemoveBookmarkMessage(pageIndex));
}
private void OnPageDeleted(int pageIndex)
{
SendMessage(new BookDeletePageMessage(pageIndex));
}
}