Class ConfigScreen

java.lang.Object
net.minecraft.client.gui.components.events.AbstractContainerEventHandler
net.minecraft.client.gui.screens.Screen
com.hbm_m.client.gui.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

public class ConfigScreen extends net.minecraft.client.gui.screens.Screen
Собственное меню конфигурации на vanilla-виджетах (замена Cloth Config GUI).

Раскладка как в 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, width

    Fields inherited from interface net.minecraft.client.gui.components.events.GuiEventListener

    DOUBLE_CLICK_THRESHOLD_MS
  • Constructor Summary

    Constructors
    Constructor
    Description
     
  • Method Summary

    Modifier and Type
    Method
    Description
    protected void
     
    boolean
     
    boolean
    mouseClicked(double mouseX, double mouseY, int button)
     
    boolean
    mouseScrolled(double mouseX, double mouseY, double amount)
     
    static void
    Точка входа (например, из обработчика хоткея OPEN_CONFIG).
    void
    render(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, wrapScreenError

    Methods inherited from class net.minecraft.client.gui.components.events.AbstractContainerEventHandler

    getFocused, isDragging, setDragging, setFocused

    Methods inherited from class java.lang.Object

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait

    Methods inherited from interface net.minecraft.client.gui.components.events.ContainerEventHandler

    charTyped, getChildAt, getCurrentFocusPath, isFocused, keyReleased, magicalSpecialHackyFocus, mouseDragged, mouseReleased, nextFocusPath, setFocused

    Methods inherited from interface net.minecraft.client.gui.components.events.GuiEventListener

    mouseMoved

    Methods 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:
      init in class net.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:
      render in interface net.minecraft.client.gui.components.Renderable
      Overrides:
      render in class net.minecraft.client.gui.screens.Screen
    • isPauseScreen

      public boolean isPauseScreen()
      Overrides:
      isPauseScreen in class net.minecraft.client.gui.screens.Screen