AbstractMoveableScreen
The AbstractMoveableScreen
class extends Screen
to provide a framework for creating editor screens with movable widgets. It handles widget rendering, input (dragging, clicking, scrolling), and context menus, enabling users to position and configure widgets interactively.
Class Variables
WidgetRenderer widgetRenderer: Manages rendering and interaction for widgets on this screen.
GlobalConfig.get().getSnapSize(): Defines grid divisions for widget snapping during dragging (default: 100; higher values create smaller grids).
Constructor
public AbstractMoveableScreen(Text title, WidgetRenderer renderer)
Parameters:
title
sets the screen title;renderer
provides the widget renderer.
Key Methods
onDisplayed(): Sets
widgetRenderer.isInEditor
totrue
when the screen opens.render(DrawContext, int, int, float): Renders the screen title, background (if no world), widgets via
widgetRenderer.renderWidgets
, and tooltips if enabled inGlobalConfig
. Also renders context menus viaContextMenuManager
.close(): Resets
widgetRenderer.isInEditor
tofalse
, callswidgetRenderer.onCloseScreen
, and closes context menus.mouseDragged(double, double, int, double, double): Handles widget dragging with snapping based on
GlobalConfig.get().getSnapSize()
.handleClickOnWidget(Widget, double, double, int): Customizable method for handling widget clicks (e.g., toggling visibility).
shouldPause(): Returns
false
by default, preventing game pause.
Input Handling
Overrides input methods (mouseClicked
, mouseReleased
, keyPressed
, etc.) to delegate to widgetRenderer
and ContextMenuManager
, supporting widget dragging, context menu interactions, and keyboard controls (e.g., Delete/Backspace for widget actions).
Ensure widgetRenderer
is initialized with widgets, or the screen will be empty.
Last updated
Was this helpful?