Mods
Resource Packs
Data Packs
Modpacks
Shaders
Plugins
Mods Resource Packs Data Packs Plugins Shaders Modpacks
Sign in
ModsPluginsData PacksShadersResource PacksModpacks
Sign in
Settings
oωo (owo-lib)

oωo (owo-lib)

A general utility, GUI and config library for modding on Fabric and Quilt

9.84M
1,401
Library
AboutChangelogVersions

[1.21.1] oωo - neo - 0.12.15

by Blodhgarm on Oct 24, 2024
Download

Update version to be consistent with maven

[1.21.2+] oωo - 0.12.16

by glisco on Oct 23, 2024
Download

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.1] oωo - neo - 0.12.15

by Blodhgarm on Oct 23, 2024
Download

Fixes issues with Concurrent Modification Exception with FFAPI networking

[1.21.1] oωo - neo - 0.12.15

by Blodhgarm on Oct 22, 2024
Download

Initial Release of owo for Neoforge. Yippie!

[1.21+] oωo - 0.12.15

by glisco on Oct 8, 2024
Download

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

by glisco on Sep 15, 2024
Download

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

by glisco on Sep 13, 2024
Download

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

by glisco on Sep 3, 2024
Download

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

by glisco on Jul 28, 2024
Download

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

by glisco on Jun 15, 2024
Download

This build is primarily 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, primarily 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

[1.20.5+] oωo - 0.12.9

by glisco on Jun 11, 2024
Download

Additions

  • SpriteComponent now supports sprites in the GUI atlas
  • SpriteComponent can now enable blending, using the same API as TextureComponent

Changes

  • When hovering selectable areas in a ColorPickerComponent, the curses now uses the MOVE style
  • The owo-config screen has been updated to Minecraft's new design language for option screens
  • owo-ui errors which occur during the game's initial loading phase are now logged verbosely to hopefully aid in discovering how they are caused

Fixes

  • owo-lib now works with (and requires) Fabric API 0.100.0+
  • The owo-config search field now also searches when pressing the numpad's enter key

[1.20.5+] oωo - 0.12.8

by glisco on May 1, 2024
Download

Fixes

  • Joining a singleplayer world in an instance where no owo networking features are used no longer fails on the first attempt (#230)

[1.20.5+] oωo - 0.12.7

by glisco on Apr 29, 2024
Download

This build fixes a crash (#229) that would occur either on boot or when joining a server (depending on other context) with 0.12.6 for 1.20.5

[1.20.5] oωo - 0.12.6

by glisco on Apr 28, 2024
Download

This release is primarily a (preliminary, hence beta) port of 0.12.6. However, prompted by the game's networking changes and further reliance on attaching registry references to serialization infrastructure, there have been major internal reworks to both the Networking API and Endec. The majority of these changes are transparent to users, with the exception of the occasional requirement to pass a SerializationContext into Endec methods (the documentation will be updated accordingly).

[1.20.3+] oωo - 0.12.6

by glisco on Apr 3, 2024
Download

Additions

  • The new Endec#flatFieldOf function creates special struct fields which enable merging the fields of a StructEndec into another one through StructEndecBuilder.of

Fixes

  • Optionals now get serialized properly by the EdmSerializer
  • The EXPAND sizing method now works correctly in presence of a non-zero gap when used inside a FlowLayout (#219)

[1.20.3+] oωo - 0.12.5

by glisco on Feb 17, 2024
Download

Additions

  • EdmElement instances which hold a MAP type can now be represented as an EdmMap (which, importantly, implements MapCarrier and can thus be used with KeyedEndec) using EdmElement#asMap (#209, Blodhgarm)
  • The components of a record used for owo networking (or, more specifically, for which an instance of RecordEndec is made) can now be annotated @NullableComponent to support null serialization (#216, Blodhgarm)

Fixes

  • When text with a click event of type OPEN_URL is clicked in an owo-ui label component, the resulting link confirmation screen now properly returns to the screen with label on it after the link has been confirmed/rejected by the user (#214)
  • The error message logged when an owo UI model hot reload fails no longer has mismatched format specifiers
  • Hud addition/removal requests are now processed in invocation order at the beginning of every frame rendered while in a world (this solves weird ordering problems with addition/removal and fixes requests not being processed while the Hud is hidden) (#213)

[1.20.3+] oωo - 0.12.4

by glisco on Feb 13, 2024
Download

Additions

  • The line spacing applied to text rendered by owo-ui's label component is now configurable

Fixes

  • The previously broken BlockHitResult endec now encodes correctly and has been made publicly available as BuiltInEndecs.BLOCK_HIT_RESULT

[1.20.3+] oωo - 0.12.3

by glisco on Jan 18, 2024
Download

Fixes

  • Tooltips of stacked sibling components now render properly again
  • A label which does not have an owo-ui tooltip but contains text with a hover event now renders that hover event again

[1.20.3+] oωo - 0.12.2

by glisco on Jan 17, 2024
Download

Fixes

  • EdmIo now writes the type of each element in a sequence individually, since in general not all elements will have the same type - making some sequences that are valid at runtime unserializable

[1.20.3+] oωo - 0.12.1

by glisco on Jan 15, 2024
Download

Additions

A new sizing method joins the owo-ui framework - Sizing.expand. It works mostly the same as Sizing.fill (and indeed identically in a few cases) with the important difference that it applies after all other sizing types and only takes into account the space that remains after all other components have been inflated according to their sizing.

Along with this, the new Components.spacer can be used to, for example, easily push two components to opposite ends of their parent

Changes

  • The OverlayContainer no longer closes itself when its child is clicked inbounds but doesn't consume the event. Further, it prevents the screen from closing when ESC is pressed and instead only closes itself and it consumes all scroll events to avoid scrolling through the overlay(#199)
  • owo-ui component trees inside one of the screen implementations provided by owo (BaseOwoScreen and BaseOwoHandledScreen) can now process and consume ESC keypresses

Fixes

  • Only the most specific tooltip at a given mouse pointer location is now rendered by an owo-ui tree, fixing overlapping tooltips in the config screen (#95) and preventing tooltips from showing on components that are hidden by an overlay (like a color picker)
  • EntityComponent.RenderablePlayerEntity now correctly loads skins again
  • BaseComponent.hovered is now only set to true when the component is not obscured by another one (#199)
  • When moving around the handles of a color picker, which one is affected no longer depends on the cursor position but only on which one was clicked
1
2
3
5

90% of ad revenue goes to creators

Support creators and Modrinth ad-free with Modrinth+
Filter

Show all versions

Modrinth is open source.

main@aaf125c

© Rinth, Inc.

Company

TermsPrivacyRulesCareers

Resources

SupportBlogDocsStatus

Interact

Discord X (Twitter) Mastodon Crowdin
Get Modrinth App Settings
NOT AN OFFICIAL MINECRAFT SERVICE. NOT APPROVED BY OR ASSOCIATED WITH MOJANG OR MICROSOFT.