Class ConfigScreen
- All Implemented Interfaces:
net.minecraft.client.gui.components.events.ContainerEventHandler,net.minecraft.client.gui.components.events.GuiEventListener,net.minecraft.client.gui.components.Renderable,net.minecraft.client.gui.components.TabOrderedElement
Раскладка как в Cloth Config:
- слева — вертикальный переключатель Клиент/Сервер;
- сверху (справа от переключателя) — горизонтальные вкладки категорий с плавной пиксельной прокруткой (колесо над полосой / Shift+колесо / стрелки ◀ ▶); возможность прокрутки НЕ зависит от выбранной вкладки;
- в центре — прокручиваемый список полей выбранной категории (со сбросом ↺ у каждого поля и глобальной кнопкой «Сбросить всё»);
Фон: поверх текущего экрана рисуется только полупрозрачный тёмный оверлей (земляной «dirt» фон НЕ используется — ни у экрана, ни у списка).
Виджеты строятся из ConfigSchema: boolean→тоггл-кнопка
ON/OFF, enum→циклическая кнопка, ограниченный int→слайдер (bounded discrete),
остальное→EditBox с подсветкой ошибок и клэмпом. Для изменений,
требующих перезапуска/перезагрузки ресурсов, — подтверждение через vanilla
ConfirmScreen.
Прокрутка списка: ContainerObjectSelectionList корректно
маршрутизирует клики в дочерние виджеты, только если позиция скроллбара
сдвинута к правому краю списка (переопределение getScrollbarPosition()).
Без этого дефолтный width/2 + 124 оказывается посередине экрана и
клики по правым виджетам отбрасываются.
-
Nested Class Summary
Nested classes/interfaces inherited from class net.minecraft.client.gui.screens.Screen
net.minecraft.client.gui.screens.Screen.NarratableSearchResult -
Field Summary
Fields inherited from class net.minecraft.client.gui.screens.Screen
BACKGROUND_LOCATION, font, height, minecraft, renderables, screenExecutor, title, widthFields inherited from interface net.minecraft.client.gui.components.events.GuiEventListener
DOUBLE_CLICK_THRESHOLD_MS -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionprotected voidinit()booleanbooleanmouseClicked(double mouseX, double mouseY, int button) booleanmouseScrolled(double mouseX, double mouseY, double amount) static voidopen()Точка входа (например, из обработчика хоткея OPEN_CONFIG).voidrender(net.minecraft.client.gui.GuiGraphics g, int mouseX, int mouseY, float partial) Methods inherited from class net.minecraft.client.gui.screens.Screen
added, addRenderableOnly, addRenderableWidget, addWidget, afterKeyboardAction, afterMouseAction, afterMouseMove, changeFocus, children, clearWidgets, findNarratableWidget, getBackgroundMusic, getMinecraft, getNarrationMessage, getRectangle, getTitle, getTooltipFromItem, handleComponentClicked, handleDelayedNarration, hasAltDown, hasControlDown, hasShiftDown, hideWidgets, init, insertText, isCopy, isCut, isMouseOver, isPaste, isSelectAll, isValidCharacterForName, keyPressed, narrationEnabled, onClose, onFilesDrop, rebuildWidgets, removed, removeWidget, renderBackground, renderDirtBackground, renderWithTooltip, repositionElements, resize, setInitialFocus, setTooltipForNextRenderPass, setTooltipForNextRenderPass, setTooltipForNextRenderPass, setTooltipForNextRenderPass, shouldCloseOnEsc, shouldNarrateNavigation, tick, triggerImmediateNarration, updateNarratedWidget, updateNarrationState, wrapScreenErrorMethods inherited from class net.minecraft.client.gui.components.events.AbstractContainerEventHandler
getFocused, isDragging, setDragging, setFocusedMethods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitMethods inherited from interface net.minecraft.client.gui.components.events.ContainerEventHandler
charTyped, getChildAt, getCurrentFocusPath, isFocused, keyReleased, magicalSpecialHackyFocus, mouseDragged, mouseReleased, nextFocusPath, setFocusedMethods inherited from interface net.minecraft.client.gui.components.events.GuiEventListener
mouseMovedMethods inherited from interface net.minecraft.client.gui.components.TabOrderedElement
getTabOrderGroup
-
Constructor Details
-
ConfigScreen
public ConfigScreen()
-
-
Method Details
-
open
public static void open()Точка входа (например, из обработчика хоткея OPEN_CONFIG). -
init
protected void init()- Overrides:
initin classnet.minecraft.client.gui.screens.Screen
-
mouseScrolled
public boolean mouseScrolled(double mouseX, double mouseY, double amount) -
mouseClicked
public boolean mouseClicked(double mouseX, double mouseY, int button) -
render
public void render(net.minecraft.client.gui.GuiGraphics g, int mouseX, int mouseY, float partial) - Specified by:
renderin interfacenet.minecraft.client.gui.components.Renderable- Overrides:
renderin classnet.minecraft.client.gui.screens.Screen
-
isPauseScreen
public boolean isPauseScreen()- Overrides:
isPauseScreenin classnet.minecraft.client.gui.screens.Screen
-