Changelog
Additions
UI
- The new
ColorPickerComponent
presents an easy-to-use, self-contained way to choose a color. It visually presents a standard HSV picker, with a hue (and optionally alpha) slider and picker for value and saturation. The picker itself shows neither a color preview nor hex field - these can easily be added externally via the color selection event stream supplied by the picker - UI overlays like popup dialogs can now be easily realized via the new
OverlayContainer
, accessible viaContainers.overlay(...)
. This component, when added to some parent (in most cases the root), renders an overlay covering the entire parent and places its child in the center. By default, it automatically closes itself when a click event is received outside the child ItemComponent
features the newtooltipFromItem
utility method, which can be used to gather the full tooltip of an item stack, including extra tooltip data- Rendering of nametags in
EntityComponent
can now be toggled on a per-component basis - The new
openAsContextMenu
function onDropdownComponent
enables easy integration of context menus into any screen - Animations on component properties now provide the
finished()
event stream which emits every time the animation finishes a full run in either direction RenderEffectWrapper
, accessible viaContainers.renderEffect
offers a hassle-free way to apply arbitrary rendering effects to its children. Check out the component's javadoc for a more complete overview
Config
- owo-ui's
Color
type is now supported in configs. This means it will be properly serialized as a string representing the color in#AARRGGBB
format and displayed that way in the config screen. With this also comes an optional color picker, allowing your users to easily pick a color (optionally with alpha as well) - The Jankson serializer instance used by any given config wrapper can now be customized through the new, optional constructor parameter. This enables non-standard serialization of existing types and also allows serializing completely custom types
- The
@RangeConstraint
annotation has gained the newdecimalPlaces
parameter which controls how many decimal places are shown when this option is edited as a slider
Rendering
The Drawer
class has gained a few new rendering functions to fill in missing functionality:
- drawCircle and drawRing can be used to draw either a filled circle or ring with specific inner and outer radius respectively
- drawLine draws an arbitrary line as a quad instead of using OpenGL's line mode, which allows more correct control over thickness
Additionally, the new GlProgram
class and corresponding infrastructure enables usage of custom core shaders from mod namespaces. Two default programs are provided, although they are not currently part of stable public API:
- OwoClient.BLUR_PROGRAM applies an approximate gaussian blur to the area it draws over
- OwoClient.HSV_PROGRAM works much the same as the standard position-color program, but accepts the color attribute in HSVA format instead of RGBA
Changes
UI
- The HSV interface of
Color
has been improved: Constructing a color with a hue of 1 no longer causes it to become yellow instead of red and the newhsv()
getter can be used to convert from RGB to HSV easily - The REI exclusion zone provider now gathers the components directly from the UI adapter instead of simply assuming that it's available as the first drawable child of the screen - this should fix some edge cases in which the exclusion zones were broken due to a different widget somehow being inserted into the screen before the UI adapter
- The
RenderablePlayerEntity
inner class ofEntityComponent
is now publically accessible - this makes it easier to call methods on such entities and allows easily extending the class if so desired DropdownComponent.requiresHover
has been renamed tocloseWhenNotHovered
to more clearly communicate its purpose. The entire dropdown system has been slightly overhauled in general to be more visually pleasing and easier to use
Config
OptionComponentFactory.Result
now features two type parameters to more cleanly carry information about the contained components- All numeric, range-constrained config options can now be edited with either a slider or text field, at the discretion of the user
Fixes
UI
- Sprite components with ticked sprites should now properly animate with Sodium's "Only animate visible textures" option enabled (BasiqueEvangelist, #78)
- When cycling UI component focus with the Tab key, the first component no longer get skipped and the children of a grid layout are no longer focused in reverse order (#77)
- Fire and the nametags of entities are now properly aligned in
EntityComponent
- Buttons and checkboxes in dropdown can now be properly clicked on the entire width of the dropdown
- Layers now handle event parameters in a different way that works around a memory present in Fabric API's event system. This previously caused owo screen instances to be leaked, which is no longer the case (#81)
Misc
- Items from
OwoItemGroup
sub-tabs which are not the first one are now properly indexed for search in the creative inventory - owo-sentinel now one again has full functionality when running on the Quilt Loader
Files
owo-lib-0.10.0+1.19.3.jar(820.65 KiB) Primary
90% of ad revenue goes to creators
Support creators and Modrinth ad-free with Modrinth+Metadata
Release channel
BetaVersion number
0.10.0+1.19.3Loaders
FabricQuilt
Game versions
1.19.3Downloads
169Publication date
January 17, 2023 at 10:32 PMPublisher
glisco
Owner