Skip to content

Releases: wisp-forest/owo-lib

0.10.4+1.19.4

19 May 09:14
84136c1
Compare
Choose a tag to compare

Similarly to 0.10.3, this build contains more changes to the core shader loading system. The immediate effect of this is proper compatibility with the QSL implementation of Fabric's Core Shader API, although it should also make such incompatibilities much more unlikely to occur in the future

0.10.3+1.19.4

20 Mar 22:13
e67fc2e
Compare
Choose a tag to compare

This build is indentical feature-wise to 0.10.3 for 1.19.3

0.10.3+1.19.3

16 Mar 00:06
deba67d
Compare
Choose a tag to compare

This release primarily fixes compatibility with Fabric API's latest core shader registry addition. As such, Fabric API >=0.76.0 is now required.

Along with this, parsing order in owo-ui's text-box has been corrected to set max-length before reading text (#110)

0.10.2+1.19.3

31 Jan 22:48
3de5078
Compare
Choose a tag to compare

Changes

The vertical and horizontal layout algorithms that were previously implemented in the respective subclasses of FlowLayout have been factored out into two implementations of the new Algorithm interface. The subclasses are temporarily preserved for backwards-compatibility but are deprecated and will be removed in the next major version.

Ideally you should already migrate your code to use the generic FlowLayout class to prepare for the move

Fixes

  • The injections into ShaderProgram are no longer required, which should fix compatibility with Satin on Quilt (#83)
  • Entity name tags are now rendered by default again, whereas before they would only appear after seeing an owo-ui entity component for the first time (#84)
  • Vanilla text fields (and thereby owo text boxes) are once again GreedyInputComponents
  • Yet another situation in which a scroll container could achieve a scroll value of NaN has been resolved

0.10.1+1.19.3

18 Jan 21:45
28316fa
Compare
Choose a tag to compare

This build fixes a crash that would occur when Satin is installed alongside owo by allowing Satin's shader identifier fixin to take precedence of owo's very similar implementation

0.10.0+1.19.3

17 Jan 22:38
d3cc195
Compare
Choose a tag to compare

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 via Containers.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 new tooltipFromItem 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 on DropdownComponent 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 via Containers.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 new decimalPlaces 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 new hsv() 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 of EntityComponent 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 to closeWhenNotHovered 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

0.9.3+1.19.3

09 Dec 00:03
5ce8abe
Compare
Choose a tag to compare

This build primarily constitutes the first public release for 1.19.3. It also fixes a bug introduced in 0.9 which caused text field event listeners to break in production.

0.9.3+1.19

09 Dec 00:04
4034e0a
Compare
Choose a tag to compare

Refer to 0.9.3+1.19.3

0.9.2+1.19

28 Nov 22:27
6afac83
Compare
Choose a tag to compare

This build reverts a change made to the Item Group API when porting to 1.19.3 which caused the creative tabs of mods which use an owo Item Group without owo item settings to be empty. This affected primarily Conjuring (for which a separate update was released) and Numismatic Overhaul

0.9.1+1.19

27 Nov 23:19
172ab14
Compare
Choose a tag to compare

This build fixes an NPE that would occur when config search focuses an option inside 2+ collapsed containers