2.6 KiB
2.6 KiB
Migrating from Knit / Vexel
Lattice replaces both libraries with one dependency. Remove knit and
vexel from your build and fabric.mod.json, add lattice, then apply the
mappings below. Behavior is preserved unless noted in
architecture.md.
API mapping
| Before | After |
|---|---|
Knit.EventBus / Vexel.eventBus |
Lattice.eventBus |
VexelScreen + KnitScreen |
ui.UIScreen |
VexelElement |
ui.Element |
VexelWindow |
ui.Window |
components.core.* (Container, Rectangle, Text, SvgImage, Tooltip) |
ui.component.* |
elements.* (Button, Slider, …) |
ui.widget.* |
components.base.enums.* (Pos, Size, Alignment, Offset) |
ui.* |
animations.* (extensions, presets, EasingType) |
animation.* |
api.RenderAPI / api.nvg.NVGRenderer |
render.Renderer / render.NVGRenderer |
api.style.{Color, Font, Gradient, Image} |
render.* |
GuiEvent.Render |
event.RenderEvent.Gui |
KnitClient |
client.Client (client property is now minecraft) |
KnitPlayer / KnitChat / KnitClipboard / KnitDesktop / KnitLoader |
client.Player / Chat / Clipboard / Desktop / Loader |
KnitKeys / KnitMouse / KnitKeyboard / KnitInputs |
input.Keys / Mouse / Keyboard / Inputs |
KnitKey / KnitMouseButton / KnitInputCode |
input.Key / MouseButton / InputCode |
KnitResolution |
render.Resolution |
KnitText / text.asKnit() |
text.Texts / asBuilder() |
api.command.* (Commodore) |
command.* (unchanged API) |
api.utils.{NumberUtils, StringUtils} |
util.* |
TickScheduler.Client.x |
TickScheduler.x (now actually ticks) |
Behavioral changes
- One event bus. Anything registered on Vexel's bus moves to
Lattice.eventBus.EventBus.postno longer takescheckHierarchy— subscribe to concrete event classes. - Renderer takes Int ARGB only:
dropShadowandcreateImageno longer acceptjava.awt.Color;createImagelost its unusedidparameter. - Element listener aliases removed:
mouseClickListeners→listeners.mouseClick(the fluentonClick-style methods are unchanged). - Removed as dead code:
WorldRenderEvent/RenderContext(were no-op stubs),TickEvent.Server, the server tick scheduler, timer API onTickScheduler,scrollbarIgnorePadding/scrollbarCustomPadding(usescrollbarPadding). - Assets:
assets/vexel/*(default font, checkmark, dropdown icons) are nowassets/lattice/*. - Widget palette now flows through
ui.theme.Theme; values are unchanged, but you can retheme globally.