Versions & compatibility
Galdur UI follows Semantic Versioning, but its components extend vanilla classes, so a Minecraft update can force a major version.
Semantic Versioning
Versions read MAJOR.MINOR.PATCH:
| Part | Changes when… |
|---|---|
| PATCH | Bug fixes, no API change. |
| MINOR | New features; code written against an earlier minor of the same major still compiles and works. |
| MAJOR | Incompatible change to api.*, including one forced by a Minecraft update. |
A MINOR may still break the API. Depend on [0.1,0.2) rather than [0.1,) in neoforge.mods.toml. internal.* is never covered by these rules.
Why Minecraft updates matter
The Galdur UI API is not independent from Minecraft: its components extend vanilla classes to fit into the game's screens and layouts.
| Galdur UI class | Extends / implements (vanilla) |
|---|---|
api.widget.GaldurButton | AbstractWidget |
api.widget.GaldurLabel | AbstractWidget |
api.widget.GaldurCheckbox | AbstractWidget |
api.widget.GaldurScrollList | AbstractWidget |
api.widget.GaldurSearchField | AbstractWidget (holds an EditBox) |
api.widget.GaldurItemSlot | AbstractWidget |
api.widget.GaldurTabs | AbstractWidget |
api.widget.GaldurProgressBar | AbstractWidget |
api.widget.GaldurIconButton | GaldurButton (so AbstractWidget) |
api.widget.GaldurItemGrid | AbstractWidget |
api.screen.GaldurContainerScreen | AbstractContainerScreen |
api.menu.GaldurMenu | AbstractContainerMenu (logic side, loads on a server) |
api.layout.GaldurPanelLayout | AbstractLayout (so Layout), Renderable |
Their render methods take a GuiGraphics, and their mouse and keyboard methods follow the AbstractWidget signatures. When Mojang changes these classes (rendering in 1.21.6 or input in 1.21.9, for instance), the Galdur UI API changes with them: such an update may require a major version of Galdur UI, even though most of the work is absorbed internally.
The rule for your mod
Only call the Galdur API (api.*) to draw and build screens, never GuiGraphics directly, and never depend on internal.*. The more a mod goes through the API, the less code it has to rework for each Minecraft version.
Supported versions
| Galdur UI | Minecraft | NeoForge | Java |
|---|---|---|---|
| 0.1.x | 1.21.1 | 21.1.x | 21 |
Changes are listed in the Changelog.