Class EngineContainerScreen<M extends net.minecraft.world.inventory.AbstractContainerMenu>

java.lang.Object
net.minecraft.client.gui.components.events.AbstractContainerEventHandler
net.minecraft.client.gui.screens.Screen
net.minecraft.client.gui.screens.inventory.AbstractContainerScreen<M>
de.luckymcdev.foundryengine.client.ui.screen.EngineContainerScreen<M>
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, net.minecraft.client.gui.screens.inventory.MenuAccess<M>

public abstract class EngineContainerScreen<M extends net.minecraft.world.inventory.AbstractContainerMenu> extends net.minecraft.client.gui.screens.inventory.AbstractContainerScreen<M>
Base class for container screens that integrates the Taffy-based widget system. Extends AbstractContainerScreen to provide slot rendering alongside custom widgets (buttons, panels, text, etc.).
  • 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.inventory.AbstractContainerScreen

    BACKGROUND_TEXTURE_HEIGHT, BACKGROUND_TEXTURE_WIDTH, DEFAULT_IMAGE_HEIGHT, DEFAULT_IMAGE_WIDTH, hoveredSlot, imageHeight, imageWidth, INVENTORY_LOCATION, inventoryLabelX, inventoryLabelY, isQuickCrafting, leftPos, menu, playerInventoryTitle, quickCraftSlots, titleLabelX, titleLabelY, topPos

    Fields inherited from class net.minecraft.client.gui.screens.Screen

    FADE_IN_TIME, font, FOOTER_SEPARATOR, HEADER_SEPARATOR, height, INWORLD_FOOTER_SEPARATOR, INWORLD_HEADER_SEPARATOR, MENU_BACKGROUND, minecraft, narratorButton, renderables, screenExecutor, title, width
  • Constructor Summary

    Constructors
    Constructor
    Description
    EngineContainerScreen(M menu, net.minecraft.world.entity.player.Inventory inventory, net.minecraft.network.chat.Component title)
     
    EngineContainerScreen(M menu, net.minecraft.world.entity.player.Inventory inventory, net.minecraft.network.chat.Component title, boolean debug)
     
  • Method Summary

    Modifier and Type
    Method
    Description
    void
    Adds a background widget (rendered behind slots invalid input: '&' labels).
    void
    Adds background widgets.
    void
    Adds a foreground widget (rendered above slots, below carried item / tooltips).
    void
    addWidgets(WidgetBase... widgets)
    Adds foreground widgets.
    boolean
    charTyped(net.minecraft.client.input.CharacterEvent event)
     
    protected final void
     
    void
    Override to run per-game-tick logic alongside the widgets.
    void
    extractBackground(net.minecraft.client.gui.GuiGraphicsExtractor graphics, int mouseX, int mouseY, float partialTick)
     
    void
    extractRenderState(net.minecraft.client.gui.GuiGraphicsExtractor guiGraphics, int mouseX, int mouseY, float partialTick)
     
    protected final UIArea
    The pixel rect occupied by the container GUI (slots + labels).
    protected UIArea
    Area the widget trees are laid out within.
    protected void
     
    protected final boolean
    Whether init() has completed at least once (i.e.
    boolean
    keyPressed(net.minecraft.client.input.KeyEvent event)
     
    boolean
    keyReleased(net.minecraft.client.input.KeyEvent event)
     
    boolean
    mouseClicked(net.minecraft.client.input.MouseButtonEvent event, boolean doubleClick)
     
    boolean
    mouseDragged(net.minecraft.client.input.MouseButtonEvent event, double dx, double dy)
     
    boolean
    mouseReleased(net.minecraft.client.input.MouseButtonEvent event)
     
    boolean
    mouseScrolled(double mouseX, double mouseY, double scrollX, double scrollY)
     
    void
    Removes a background widget.
    void
    Removes a foreground widget.
    void
    resize(int width, int height)
     
    protected final boolean
    Guards one-time widget construction across init() calls.
    boolean
     

    Methods inherited from class net.minecraft.client.gui.screens.inventory.AbstractContainerScreen

    addItemSlotMouseAction, checkHotbarKeyPressed, extractCarriedItem, extractContents, extractLabels, extractSlot, extractSlots, extractTooltip, getGuiLeft, getGuiTop, getHoveredSlot, getImageHeight, getImageWidth, getLeftPos, getMenu, getSlotUnderMouse, getTooltipFromContainerItem, getTopPos, getXSize, getYSize, handleSlotStateChanged, hasClickedOutside, isHovering, isInGameUi, isPauseScreen, onClose, onMouseClickAction, removed, renderSlotContents, slotClicked, tick

    Methods inherited from class net.minecraft.client.gui.screens.Screen

    added, addRenderableOnly, addRenderableWidget, addWidget, afterKeyboardAction, afterMouseAction, afterMouseMove, canInterruptWithAnotherScreen, changeFocus, children, clearFocus, clearWidgets, clickCommandAction, clickUrlAction, defaultHandleClickEvent, defaultHandleGameClickEvent, extractBlurredBackground, extractMenuBackground, extractMenuBackground, extractMenuBackgroundTexture, extractPanorama, extractRenderStateWithTooltipAndSubtitles, extractTransparentBackground, fadeWidgets, fillCrashDetails, findNarratableWidget, getBackgroundMusic, getFont, getMinecraft, getNarrationMessage, getRectangle, getTitle, getTooltipFromItem, getUsageNarration, handleDelayedNarration, init, insertText, isAllowedInPortal, isMouseOver, isValidCharacterForName, onFilesDrop, rebuildWidgets, removeWidget, repositionElements, setInitialFocus, setInitialFocus, shouldCloseOnEsc, shouldNarrateNavigation, showsActiveEffects, triggerImmediateNarration, updateNarratedWidget, updateNarrationState, updateNarratorStatus

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

    getFocused, isDragging, setDragging, setFocused

    Methods inherited from class Object

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

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

    getBorderForArrowNavigation, getChildAt, getCurrentFocusPath, isFocused, nextFocusPath, preeditUpdated, setFocused

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

    mouseMoved, shouldTakeFocusAfterInteraction

    Methods inherited from interface net.minecraft.client.gui.components.TabOrderedElement

    getTabOrderGroup
  • Constructor Details

    • EngineContainerScreen

      public EngineContainerScreen(M menu, net.minecraft.world.entity.player.Inventory inventory, net.minecraft.network.chat.Component title, boolean debug)
    • EngineContainerScreen

      public EngineContainerScreen(M menu, net.minecraft.world.entity.player.Inventory inventory, net.minecraft.network.chat.Component title)
  • Method Details

    • shouldDebug

      public boolean shouldDebug()
    • shouldBuildWidgets

      protected final boolean shouldBuildWidgets()
      Guards one-time widget construction across init() calls. Minecraft re-invokes init() on every resize; returning true only on the first call prevents screens from re-adding their widget tree (which would render duplicates).
    • isWidgetsInitialized

      protected final boolean isWidgetsInitialized()
      Whether init() has completed at least once (i.e. the widget trees exist).
    • getWidgetArea

      protected UIArea getWidgetArea()
      Area the widget trees are laid out within. Defaults to the full screen. Override and return getGuiArea() to place widgets relative to the container GUI (so their coordinates ignore where the GUI is on-screen).
    • getGuiArea

      protected final UIArea getGuiArea()
      The pixel rect occupied by the container GUI (slots + labels). Widgets laid out against this rect use (0,0) as the top-left of the container frame.
    • init

      protected void init()
      Overrides:
      init in class net.minecraft.client.gui.screens.inventory.AbstractContainerScreen<M extends net.minecraft.world.inventory.AbstractContainerMenu>
    • resize

      public void resize(int width, int height)
      Overrides:
      resize in class net.minecraft.client.gui.screens.Screen
    • addWidget

      public void addWidget(WidgetBase widget)
      Adds a foreground widget (rendered above slots, below carried item / tooltips).
    • addWidgets

      public void addWidgets(WidgetBase... widgets)
      Adds foreground widgets.
    • removeWidget

      public void removeWidget(WidgetBase widget)
      Removes a foreground widget.
    • addBackgroundWidget

      public void addBackgroundWidget(WidgetBase widget)
      Adds a background widget (rendered behind slots invalid input: '&' labels).
    • addBackgroundWidgets

      public void addBackgroundWidgets(WidgetBase... widgets)
      Adds background widgets.
    • removeBackgroundWidget

      public void removeBackgroundWidget(WidgetBase widget)
      Removes a background widget.
    • doTick

      public void doTick()
      Override to run per-game-tick logic alongside the widgets.
    • containerTick

      protected final void containerTick()
      Overrides:
      containerTick in class net.minecraft.client.gui.screens.inventory.AbstractContainerScreen<M extends net.minecraft.world.inventory.AbstractContainerMenu>
    • extractBackground

      public void extractBackground(net.minecraft.client.gui.GuiGraphicsExtractor graphics, int mouseX, int mouseY, float partialTick)
      Overrides:
      extractBackground in class net.minecraft.client.gui.screens.Screen
    • extractRenderState

      public void extractRenderState(net.minecraft.client.gui.GuiGraphicsExtractor guiGraphics, int mouseX, int mouseY, float partialTick)
      Specified by:
      extractRenderState in interface net.minecraft.client.gui.components.Renderable
      Overrides:
      extractRenderState in class net.minecraft.client.gui.screens.inventory.AbstractContainerScreen<M extends net.minecraft.world.inventory.AbstractContainerMenu>
    • mouseClicked

      public boolean mouseClicked(net.minecraft.client.input.MouseButtonEvent event, boolean doubleClick)
      Specified by:
      mouseClicked in interface net.minecraft.client.gui.components.events.ContainerEventHandler
      Specified by:
      mouseClicked in interface net.minecraft.client.gui.components.events.GuiEventListener
      Overrides:
      mouseClicked in class net.minecraft.client.gui.screens.inventory.AbstractContainerScreen<M extends net.minecraft.world.inventory.AbstractContainerMenu>
    • mouseReleased

      public boolean mouseReleased(net.minecraft.client.input.MouseButtonEvent event)
      Specified by:
      mouseReleased in interface net.minecraft.client.gui.components.events.ContainerEventHandler
      Specified by:
      mouseReleased in interface net.minecraft.client.gui.components.events.GuiEventListener
      Overrides:
      mouseReleased in class net.minecraft.client.gui.screens.inventory.AbstractContainerScreen<M extends net.minecraft.world.inventory.AbstractContainerMenu>
    • mouseScrolled

      public boolean mouseScrolled(double mouseX, double mouseY, double scrollX, double scrollY)
      Specified by:
      mouseScrolled in interface net.minecraft.client.gui.components.events.ContainerEventHandler
      Specified by:
      mouseScrolled in interface net.minecraft.client.gui.components.events.GuiEventListener
      Overrides:
      mouseScrolled in class net.minecraft.client.gui.screens.inventory.AbstractContainerScreen<M extends net.minecraft.world.inventory.AbstractContainerMenu>
    • mouseDragged

      public boolean mouseDragged(net.minecraft.client.input.MouseButtonEvent event, double dx, double dy)
      Specified by:
      mouseDragged in interface net.minecraft.client.gui.components.events.ContainerEventHandler
      Specified by:
      mouseDragged in interface net.minecraft.client.gui.components.events.GuiEventListener
      Overrides:
      mouseDragged in class net.minecraft.client.gui.screens.inventory.AbstractContainerScreen<M extends net.minecraft.world.inventory.AbstractContainerMenu>
    • keyPressed

      public boolean keyPressed(net.minecraft.client.input.KeyEvent event)
      Specified by:
      keyPressed in interface net.minecraft.client.gui.components.events.ContainerEventHandler
      Specified by:
      keyPressed in interface net.minecraft.client.gui.components.events.GuiEventListener
      Overrides:
      keyPressed in class net.minecraft.client.gui.screens.inventory.AbstractContainerScreen<M extends net.minecraft.world.inventory.AbstractContainerMenu>
    • keyReleased

      public boolean keyReleased(net.minecraft.client.input.KeyEvent event)
    • charTyped

      public boolean charTyped(net.minecraft.client.input.CharacterEvent event)