Skip to content

Releases: wisp-forest/owo-lib

[1.21.4] oωo - 0.12.19

12 Dec 00:31
49a02fa
Compare
Choose a tag to compare

Changes

  • Updated to 1.21.4
  • The tooltip of the UI managed by an OwoUIAdapter is no longer drawn directly inside the adapter's render method. Instead, the separate drawTooltip method must be invoked after rendering, allowing tooltips to be rendered definitively after all main UI

Fixes

  • owo-ui tooltips in screens with layers should no longer stack with main UI incorrectly
  • Endec encoding and decoding of optional fields in NBT has been fixed

[1.21.2+] oωo - 0.12.18

08 Nov 21:09
c41c5a1
Compare
Choose a tag to compare

Fixes

  • TextureComponent rendering now works properly again

[1.21.2+] oωo - 0.12.17

28 Oct 18:54
68f3754
Compare
Choose a tag to compare

Changes

  • As a consequence of updating the endec library, the signatures of the field(...) methods on (De)Serializer.Struct have changed to accomodate
    the new optional flattening methodology. If this causes trouble, contact us and we'll try to help

Fixes

  • Optional struct fields should now always encode properly in self-described formats (namely JSON and NBT)

[1.21.2+] oωo - 0.12.16

23 Oct 20:52
edf6f59
Compare
Choose a tag to compare

Primarily, this release constitutes the first port of owo-lib to 1.21.2/3. There were however also a number of other changes:

Additions

  • CodecUtils now offers the eitherStructEndec(...) and xorStructEndec(...) methods for creating either/xor endecs which conform to the StructEndec interface
  • The endec builder used for serializing owo-config options over the network can now be customized in the ConfigWrapper constructor

Changes

  • As a consequence of the vanilla changes to item and block registration, the AutoRegistryContainer API is deprecated for the moment and might be (partially) removed in a future release. We're investigating potential alternatives
  • Which owo-ui components are used for the exclusion areas provided to REI and EMI can now be customized by overriding BaseOwoHandledScreen#componentsForExclusionAreas()

Fixes

  • BaseOwoHandledScreen#enableSlot(Slot) no longer incorrectly disables the slot

[1.21+] oωo - 0.12.15

08 Oct 20:16
d76a9a7
Compare
Choose a tag to compare

Changes / Fixes

This release fundamentally changes the implementation used for Endec/Codec interop. Instead of always using EDM as the intermediary format, the framework will now try to determine if a format-appropriate (De)Serializer/DynamicOps implementation is available and use it if so. This means that the serialized representation of all data structures should now be both consistent and preserved correctly when in complex nested scenarios, something we hope will alleviate an entire class of bugs. Most of these are related to serialized EDM which turns out unrepresentable in NBT, but other formats might have been affected too

[1.21+] oωo - 0.12.14

15 Sep 12:06
5235a88
Compare
Choose a tag to compare

Additions

  • CursorStyle now includes the whole range of standard cursors implemented by GLFW (#296, chyzman)

Fixes

  • Scissor coordinates are now clamped before passing them to OpenGL in the ScissorStack utility - this fixes a bunch of edge-cases with mods like Ok Boomer
  • Using a cursor style which is unsupported by the host OS no longer causes a crash when trying to dispose the screen (#301)

[1.21+] oωo - 0.12.13

13 Sep 21:28
cbc2e3c
Compare
Choose a tag to compare

Fixes

  • Modifying the message of a CheckboxComponent now functions correctly again
  • The experimental derived components API, which breaks stack equality in 0.12.12, should now work without crashes and without that bug (#298)

[1.21+] oωo - 0.12.12

03 Sep 17:26
212005b
Compare
Choose a tag to compare

Additions

  • An experimental API for deriving item stack components based on the user-provided components has been added (check OwoItem#deriveStackComponents). The current implementation only re-derives components when Item#postProcessComponents gets invoked and is subject to change

Changes

  • Config screen providers are now registered through the new ConfigScreenProviders class to avoid classloading issues (the old methods on ConfigScreen remain but are deprecated for removal). Along with this change, the config screen generated by a provider no longer needs to extend owo's ConfigScreen

Fixes

  • The SyncedProperty and screen handler messages APIs now properly pass registry context when serializing over the network
  • Recipe-specific remainders, which were not properly ported to 1.21, work again

[1.21] oωo - 0.12.11

28 Jul 22:46
447f780
Compare
Choose a tag to compare

Additions

  • Minecraft's ComponentTypes can now have both their codec and packet codec populated by calling .endec(...)
  • A new overload for CodecUtils.toEndec along with CodecUtils.toEndecWithRegistries allow creating endecs from both a codec and packetcodec (where the latter one uses a packetcodec of RegistryByteBuf)
  • The new Surface.panorama(...) allows using Minecraft's main menu panorama as an owo-ui surface
  • Sizing.Random

Changes

  • The OwoItemSettings-specific methods are now interface-injected onto all item settings and the previous class deprecated
  • EndecRecipeSerializer is no longer abstract, making subclassing unnecessary in most cases

Fixes

  • A number of changes were made to the endec library and owo's EdmOps to alleviate most (hopefully all) problems related to codec <-> endec interop when NBT is involved (Blodhgarm)
  • Wrapper item groups (which broke during the port 1.21) now work again
  • MinecraftEndecs.PACKET_BYTE_BUF no longer moves the reader index when encoding a buffer
  • A rare crash that could occur when causing input on a screen which failed loading its UI model has been fixed (#263, Zailer43)
  • Pressing ctrl+delete in a text field in owo-ui debug mode no longer crashes (#264, Zailer43)
  • Color.ofDye, which was improperly ported, now produces correct colors again (#273, Blodhgarm)
  • OverlayContainer no longer mounts its children incorrectly if it has a non-zero position (#278, kikugie)

[1.21] oωo - 0.12.10

15 Jun 21:22
0a75cb5
Compare
Choose a tag to compare

This build is primary a port of 0.12.9 to 1.21. This mandated a few other changes:

Endec changes

The Endec API is no longer built into owo-lib. Instead, owo now uses and ships the standalone endec library. This entails four major changes:

  • Endecs for Minecraft's types are no longer found on BuiltInEndecs but instead on MinecraftEndecs
  • DFU interop (namely, converting between codecs and endecs) is now handled through CodecUtils.toCodec/toEndec and related functions
  • A number of package changes, primarly io.wispforest.owo.serialization -> io.wispforest.endec
  • All JSON-related implementations are now named after the JSON library they use. In consequence, the previous JsonSerializer is now GsonSerializer and so on

Further Fixes

  • EdmOps no longer uses null as its empty value, fixing a number of edge cases with particular types of DFU codecs when doing interop
  • owo's ScreenHandler extensions don't require a HandledScreen anymore and now also support other screens which implement ScreenHandlerProvider