Перейти к содержанию

UniScreen

Платформо-независимое описание полноэкранного GUI-окна UniGUI.

Обзор

UniScreen — фундаментальный дескриптор полноэкранных GUI-интерфейсов в UniGUI. Он инкапсулирует дерево виджетов Widget, заголовок окна, масштабирование интерфейса (uiScale), синхронизацию с масштабом GUI игры, политику рендеринга (UiRenderPolicy), шрифт по умолчанию и перехват клавиатурного ввода перед отправкой виджетам.

Жизненный цикл и открытие

Открытие и закрытие экрана не зависит от платформы. Вызов openGui() запрашивает у активного RenderBackend открытие экрана (например, создание и отображение Minecraft-обёртки Screen или автономного окна). Колбэк onClose вызывается при закрытии экрана.

Масштабирование и перехват ввода

Экран может масштабироваться синхронно с настройками интерфейса игры (scaleWithGameGui(true)) либо использовать фиксированный масштаб через uiScale(float).

Интерфейс KeyboardInputHandler позволяет глобально перехватывать горячие клавиши (например, Esc или поиск) до их передачи сфокусированным виджетам.

Создание и открытие экрана

Widget root = new MySettingsWidget();
UniScreen screen = new UniScreen("Settings", root)
    .renderPolicy(UiRenderPolicy.onDirty())
    .scaleWithGameGui(true)
    .onClose(() -> System.out.println("Экран закрыт"))
    .openGui();

Пользовательский масштаб и перехват ввода

UniScreen screen = new UniScreen("Редактор", editorRoot)
    .uiScale(1.5f)
    .keyboardInputHandler((keyCode, scanCode, modifiers) -> {
        if (keyCode == 256) { // ESC
            screen.closeGui();
            return true;
        }
        return false;
    })
    .openGui();

API

UniScreen::closeCallback()

closeCallback()

Возвращает зарегистрированный колбэк закрытия или null.

Возвращает Runnable: Колбэк Runnable или null..

UniScreen::closeGui()

closeGui()

Закрывает этот экран через установленный бэкенд платформы игры.

Возвращает UniScreen: Текущий экземпляр экрана для цепочки вызовов..

UniScreen::context()

context()

Возвращает опциональный контекст интерфейса, привязанный к экрану.

Возвращает UIContext: Привязанный UIContext или null..

UniScreen::defaultFont()

defaultFont()

Возвращает шрифт по умолчанию на уровне экрана или null, если используется дефолт бэкенда.

Возвращает FontFace: Экземпляр FontFace или null..

UniScreen::defaultFont(FontFace)

defaultFont(FontFace)

Устанавливает шрифт по умолчанию для экрана; null восстанавливает значение по умолчанию.

Параметр Тип Описание
font FontFace Шрифт FontFace или null для сброса на дефолт бэкенда.

Возвращает UniScreen: Текущий экземпляр экрана для цепочки вызовов..

UniScreen::hasCustomUiScale()

hasCustomUiScale()

Возвращает true, если задан пользовательский масштаб интерфейса.

Возвращает boolean: True, если задан конечный масштаб..

UniScreen::keyboardInputHandler()

keyboardInputHandler()

Возвращает перехватчик клавиатурного ввода уровня экрана.

Возвращает KeyboardInputHandler: Экземпляр KeyboardInputHandler или null..

UniScreen::keyboardInputHandler(KeyboardInputHandler)

keyboardInputHandler(KeyboardInputHandler)

Устанавливает перехватчик ввода с клавиатуры, вызываемый до передачи событий виджетам.

Параметр Тип Описание
handler KeyboardInputHandler Обработчик клавиатурного ввода.

Возвращает UniScreen: Текущий экземпляр экрана для цепочки вызовов..

UniScreen::onClose(Runnable)

onClose(Runnable)

Регистрирует колбэк, вызываемый при закрытии экрана.

Параметр Тип Описание
callback Runnable Действие Runnable.

Возвращает UniScreen: Текущий экземпляр экрана для цепочки вызовов..

UniScreen::openGui()

openGui()

Открывает этот экран через установленный бэкенд платформы игры.

Возвращает UniScreen: Текущий экземпляр экрана для цепочки вызовов..

UniScreen::pauseGame()

pauseGame()

Ставится ли игра на паузу, пока экран открыт (только одиночная игра); по умолчанию true.

Возвращает boolean: true, если игра ставится на паузу, пока экран открыт..

UniScreen::pauseGame(boolean)

pauseGame(boolean)

Задаёт, ставится ли игра на паузу, пока экран открыт. В сетевой игре не действует.

Параметр Тип Описание
value boolean Логическое значение.

Возвращает UniScreen: Текущий экземпляр экрана для цепочки вызовов..

UniScreen::renderPolicy()

renderPolicy()

Возвращает активную политику рендеринга и инвалидации.

Возвращает UiRenderPolicy: Текущая политика UiRenderPolicy..

UniScreen::renderPolicy(UiRenderPolicy)

renderPolicy(UiRenderPolicy)

Настраивает политику рендеринга и инвалидации для экрана.

Параметр Тип Описание
policy UiRenderPolicy Устанавливаемая политика UiRenderPolicy; при null используется continuous.

Возвращает UniScreen: Текущий экземпляр экрана для цепочки вызовов..

UniScreen::root()

root()

Возвращает корневой виджет экрана.

Возвращает Widget: Экземпляр корневого виджета..

UniScreen::scaleWithGameGui()

scaleWithGameGui()

Возвращает true, если масштаб экрана синхронизируется с настройками GUI игры.

Возвращает boolean: True при синхронизации масштаба..

UniScreen::scaleWithGameGui(boolean)

scaleWithGameGui(boolean)

Определяет, должен ли экран синхронизировать масштаб с настройками GUI игры.

Параметр Тип Описание
value boolean True для включения синхронизации.

Возвращает UniScreen: Текущий экземпляр экрана для цепочки вызовов..

UniScreen::title()

title()

Возвращает заголовок окна экрана.

Возвращает String: Строка заголовка экрана..

UniScreen::title(String)

title(String)

Устанавливает заголовок окна экрана.

Параметр Тип Описание
title String Новый заголовок экрана.

Возвращает UniScreen: Текущий экземпляр экрана для цепочки вызовов..

UniScreen::uiScale()

uiScale()

Возвращает пользовательский масштаб интерфейса или NaN, если не задан.

Возвращает float: Множитель масштабирования..

UniScreen::uiScale(float)

uiScale(float)

Устанавливает фиксированный масштаб интерфейса для экрана.

Параметр Тип Описание
scale float Положительный конечный масштабный коэффициент.

Возвращает UniScreen: Текущий экземпляр экрана для цепочки вызовов..