Class StatefulScreen
java.lang.Object
net.minecraft.client.gui.components.events.AbstractContainerEventHandler
net.minecraft.client.gui.screens.Screen
com.pixelmonmod.api.client.screen.StatefulScreen
- 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 final class StatefulScreen
extends net.minecraft.client.gui.screens.Screen
implements net.minecraft.client.gui.components.events.GuiEventListener
Welcome to the Stateful Screen, a screen implementation with all the fun features of vanilla screens, but with the
ability to do designs (think skins), color themes, and more!
Stateful screens are created with a builder, rather than being extended or instantiated directly.
Stateful widgets come with various utilities as standard, such as parent-child hierarchy, all event handlers being
passed to all widgets automatically, and convenience classes and methods for ease of use.
TODO: Bring the UI particle system we have into this. That would be very good.
-
Nested Class Summary
Nested ClassesModifier and TypeClassDescriptionstatic classstatic classNested 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
children, CUBE_MAP, font, FOOTER_SEPARATOR, HEADER_SEPARATOR, height, INWORLD_FOOTER_SEPARATOR, INWORLD_HEADER_SEPARATOR, MENU_BACKGROUND, narratorButton, PANORAMA, renderables, screenExecutor, title, widthFields inherited from interface net.minecraft.client.gui.components.events.GuiEventListener
DOUBLE_CLICK_THRESHOLD_MS -
Method Summary
Modifier and TypeMethodDescriptionList<StatefulWidget<? extends StatefulWidget<?>>> floataspect()bounds()static StatefulScreen.BuildervoidvoidbooleancharTyped(char typedChar, int keyCode) close(Consumer<StatefulScreen> close) closeOnEsc(Predicate<StatefulScreen> closeOnEsc) voidcopyAttributes(StatefulScreen screen) longdesign()Optional<StatefulWidget<? extends StatefulWidget<?>>> <T> TgetAndPutAttribute(String key, T defaultValue, T newValue) <T> TgetAttribute(String key) <T> TgetAttribute(String key, T defaultValue) Optional<StatefulWidget<? extends StatefulWidget<?>>> floatheight()intvoidinit()init(Consumer<StatefulScreen> init) booleanbooleanis(net.minecraft.client.gui.screens.Screen screen) booleanisOpen()booleanbooleankeyPressed(int keyCode, int scanCode, int modifiers) booleankeyReleased(int keyCode, int scanCode, int modifiers) net.minecraft.world.level.Levellevel()voidmathMode()net.minecraft.client.MinecraftbooleanmouseClicked(double mouseX, double mouseY, int button) booleanmouseDragged(double mouseX, double mouseY, int button, double deltaX, double deltaY) voidmouseMoved(double mouseX, double mouseY) booleanmouseReleased(double mouseX, double mouseY, int button) booleanmouseScrolled(double mouseX, double mouseY, double deltaX, double deltaY) intnextUID()palette()voidplay(net.minecraft.core.Holder<net.minecraft.sounds.SoundEvent> sound) voidplay(net.minecraft.core.Holder<net.minecraft.sounds.SoundEvent> sound, float volume) voidplay(net.minecraft.core.Holder<net.minecraft.sounds.SoundEvent> sound, float volume, float pitch) voidplay(net.minecraft.sounds.SoundEvent sound) voidplay(net.minecraft.sounds.SoundEvent sound, float volume) voidplay(net.minecraft.sounds.SoundEvent sound, float volume, float pitch) voidnet.minecraft.client.player.LocalPlayerplayer()<T> TputAttribute(String key, Object value) booleanready()voidremoved()voidrender(@NotNull net.minecraft.client.gui.GuiGraphics graphics, int mouseX, int mouseY, float partialTicks) voidrenderBackground(@NotNull net.minecraft.client.gui.GuiGraphics graphics, int mouseX, int mouseY, float partialTicks) voidrenderLast(RenderConsumer renderLast) voidsetDraggedWidget(StatefulWidget<? extends StatefulWidget<?>> widget) voidsetFocusedWidget(StatefulWidget<? extends StatefulWidget<?>> widget) booleanvoidvoidtick()booleantickRate(long rate) void<W extends StatefulWidget<W>>
Wwidget(int uid) floatwidth()intwidthInt()Methods inherited from class net.minecraft.client.gui.screens.Screen
added, addRenderableOnly, addRenderableWidget, addWidget, afterKeyboardAction, afterMouseAction, afterMouseMove, changeFocus, children, clearFocus, clearTooltipForNextRenderPass, clearWidgets, createArrowEvent, createTabEvent, findNarratableWidget, getBackgroundMusic, getMinecraft, getNarrationMessage, getRectangle, getTitle, getTooltipFromItem, getUsageNarration, handleComponentClicked, handleDelayedNarration, hasAltDown, hasControlDown, hasShiftDown, init, insertText, isCopy, isCut, isMouseOver, isPaste, isSelectAll, isValidCharacterForName, onClose, onFilesDrop, rebuildWidgets, removeWidget, renderBlurredBackground, renderMenuBackground, renderMenuBackground, renderMenuBackgroundTexture, renderPanorama, renderTransparentBackground, renderWithTooltip, repositionElements, resize, setInitialFocus, setInitialFocus, setTooltipForNextRenderPass, setTooltipForNextRenderPass, setTooltipForNextRenderPass, setTooltipForNextRenderPass, shouldNarrateNavigation, triggerImmediateNarration, updateNarratedWidget, updateNarrationState, updateNarratorStatus, 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
getChildAt, getCurrentFocusPath, isFocused, nextFocusPath, setFocusedMethods inherited from interface net.minecraft.client.gui.components.events.GuiEventListener
getRectangle, isMouseOverMethods inherited from interface net.minecraft.client.gui.components.TabOrderedElement
getTabOrderGroup
-
Method Details
-
minecraft
public net.minecraft.client.Minecraft minecraft() -
player
public net.minecraft.client.player.LocalPlayer player() -
level
public net.minecraft.world.level.Level level() -
play
public void play(net.minecraft.core.Holder<net.minecraft.sounds.SoundEvent> sound) -
play
public void play(net.minecraft.sounds.SoundEvent sound) -
play
public void play(net.minecraft.core.Holder<net.minecraft.sounds.SoundEvent> sound, float volume) -
play
public void play(net.minecraft.sounds.SoundEvent sound, float volume) -
play
public void play(net.minecraft.core.Holder<net.minecraft.sounds.SoundEvent> sound, float volume, float pitch) -
play
public void play(net.minecraft.sounds.SoundEvent sound, float volume, float pitch) -
playClick
public void playClick() -
identifier
-
is
public boolean is(net.minecraft.client.gui.screens.Screen screen) -
is
-
isOpen
public boolean isOpen() -
allWidgets
-
widget
-
nextUID
public int nextUID() -
design
-
colorScheme
-
changeDesign
public void changeDesign() -
changeColorScheme
public void changeColorScheme() -
palette
-
width
public float width() -
widthInt
public int widthInt() -
height
public float height() -
heightInt
public int heightInt() -
aspect
public float aspect() -
bounds
-
mathMode
-
focusedWidget
-
setFocusedWidget
-
unfocusWidget
public void unfocusWidget() -
getDraggedWidget
-
setDraggedWidget
-
stopDraggingWidget
public void stopDraggingWidget() -
init
-
closeOnEsc
-
close
-
init
public void init()- Overrides:
initin classnet.minecraft.client.gui.screens.Screen
-
markReady
public void markReady() -
ready
public boolean ready() -
getAttribute
-
getAttribute
-
getAndPutAttribute
-
putAttribute
-
copyAttributes
-
tick
public void tick()- Overrides:
tickin classnet.minecraft.client.gui.screens.Screen
-
currentTick
public long currentTick() -
tickRate
public boolean tickRate(long rate) -
renderBackground
public void renderBackground(@NotNull @NotNull net.minecraft.client.gui.GuiGraphics graphics, int mouseX, int mouseY, float partialTicks) - Overrides:
renderBackgroundin classnet.minecraft.client.gui.screens.Screen
-
render
public void render(@NotNull @NotNull net.minecraft.client.gui.GuiGraphics graphics, int mouseX, int mouseY, float partialTicks) - Specified by:
renderin interfacenet.minecraft.client.gui.components.Renderable- Overrides:
renderin classnet.minecraft.client.gui.screens.Screen
-
renderLast
-
keyPressed
public boolean keyPressed(int keyCode, int scanCode, int modifiers) - Specified by:
keyPressedin interfacenet.minecraft.client.gui.components.events.ContainerEventHandler- Specified by:
keyPressedin interfacenet.minecraft.client.gui.components.events.GuiEventListener- Overrides:
keyPressedin classnet.minecraft.client.gui.screens.Screen
-
keyReleased
public boolean keyReleased(int keyCode, int scanCode, int modifiers) - Specified by:
keyReleasedin interfacenet.minecraft.client.gui.components.events.ContainerEventHandler- Specified by:
keyReleasedin interfacenet.minecraft.client.gui.components.events.GuiEventListener
-
charTyped
public boolean charTyped(char typedChar, int keyCode) - Specified by:
charTypedin interfacenet.minecraft.client.gui.components.events.ContainerEventHandler- Specified by:
charTypedin interfacenet.minecraft.client.gui.components.events.GuiEventListener
-
mouseClicked
public boolean mouseClicked(double mouseX, double mouseY, int button) - Specified by:
mouseClickedin interfacenet.minecraft.client.gui.components.events.ContainerEventHandler- Specified by:
mouseClickedin interfacenet.minecraft.client.gui.components.events.GuiEventListener
-
mouseReleased
public boolean mouseReleased(double mouseX, double mouseY, int button) - Specified by:
mouseReleasedin interfacenet.minecraft.client.gui.components.events.ContainerEventHandler- Specified by:
mouseReleasedin interfacenet.minecraft.client.gui.components.events.GuiEventListener
-
mouseDragged
public boolean mouseDragged(double mouseX, double mouseY, int button, double deltaX, double deltaY) - Specified by:
mouseDraggedin interfacenet.minecraft.client.gui.components.events.ContainerEventHandler- Specified by:
mouseDraggedin interfacenet.minecraft.client.gui.components.events.GuiEventListener
-
mouseScrolled
public boolean mouseScrolled(double mouseX, double mouseY, double deltaX, double deltaY) - Specified by:
mouseScrolledin interfacenet.minecraft.client.gui.components.events.ContainerEventHandler- Specified by:
mouseScrolledin interfacenet.minecraft.client.gui.components.events.GuiEventListener
-
mouseMoved
public void mouseMoved(double mouseX, double mouseY) - Specified by:
mouseMovedin interfacenet.minecraft.client.gui.components.events.GuiEventListener
-
removed
public void removed()- Overrides:
removedin classnet.minecraft.client.gui.screens.Screen
-
shouldCloseOnEsc
public boolean shouldCloseOnEsc()- Overrides:
shouldCloseOnEscin classnet.minecraft.client.gui.screens.Screen
-
isPauseScreen
public boolean isPauseScreen()- Overrides:
isPauseScreenin classnet.minecraft.client.gui.screens.Screen
-
builder
-