oωo (owo-lib)
A general utility, GUI and config library for modding on Fabric and Quilt
*
特点包括:
- [owo-ui](
- [owo-config](
- 一个完全自动的[注册系统](
- [物品组扩展](
- 一个功能齐全的[网络层](
- 客户端粒子辅助工具,可轻松组合多粒子效果
- 丰富的文本翻译,允许您在语言文件中使用Minecraft的文本组件格式,提供带样式的文本,无需任何代码
*
owo有两种主要的文档方式:
- 整个代码库中都有丰富、详细的JavaDoc
- 在
来自Modrinth
[1.21+] oωo - 0.12.15.4+1.21
owo-lib-0.12.15.4+1.21.jar下载0.12.15.4+1.21#Release
owo-lib-0.12.15.4+1.21-sources.jar下载0.12.15.4+1.21#Release
## Fixes
- Fixed the optional flattening implementation introduced in the last build
- Decoding of sequence elements in NBT has been made idempotent
- Fixed the optional flattening implementation introduced in the last build
- Decoding of sequence elements in NBT has been made idempotent
展开
版本: 0.12.15.4+1.21
支持游戏: 1.21, 1.21.1
类型: Fabric Quilt
Release
下载次数: 52,662
[1.21.5] oωo - 0.12.20
owo-lib-0.12.20+1.21.5.jar下载0.12.20+1.21.5#Beta
owo-lib-0.12.20+1.21.5-sources.jar下载0.12.20+1.21.5#Beta
## Changes
- Updated to 1.21.5
- As a consequence of the changes to Minecraft's rendering backend, the `GlProgram` API has been removed since it is no longer necessary
- As a further consequence of the above change, owo's built-in programs have changed API:
- `OwoClient.HSV_PROGRAM` has been superseded by `OwoUIPipelines.GUI_HSV`
- `OwoClient.BLUR_PROGRAM` has been replaced with the `OwoBlurRenderer`, which uses the same shader and parameters under the hood
- Updated to 1.21.5
- As a consequence of the changes to Minecraft's rendering backend, the `GlProgram` API has been removed since it is no longer necessary
- As a further consequence of the above change, owo's built-in programs have changed API:
- `OwoClient.HSV_PROGRAM` has been superseded by `OwoUIPipelines.GUI_HSV`
- `OwoClient.BLUR_PROGRAM` has been replaced with the `OwoBlurRenderer`, which uses the same shader and parameters under the hood
展开
版本: 0.12.20+1.21.5
支持游戏: 1.21.5
类型: Fabric Quilt
Beta
下载次数: 16,489
[1.21+] oωo - 0.12.15.2+1.21
owo-lib-0.12.15.2+1.21.jar下载0.12.15.2+1.21#Release
owo-lib-0.12.15.2+1.21-sources.jar下载0.12.15.2+1.21#Release
## Fixes
- Backport optional flattening fixes from 0.12.17
- Backport optional flattening fixes from 0.12.17
展开
版本: 0.12.15.2+1.21
支持游戏: 1.21, 1.21.1
类型: Fabric Quilt
Release
下载次数: 16,191
[1.21.1] oωo - neo - 0.12.15.1-beta.3+1.21
owo-lib-neoforge-0.12.15.1-beta.3+1.21.jar下载0.12.15.1-beta.3+1.21#Beta
owo-lib-neoforge-0.12.15.1-beta.3+1.21-sources.jar下载0.12.15.1-beta.3+1.21#Beta
Fixes:
- Fix issues with errors relating to texture identifier being null
- Fix issue involved with ModDataLoader on Connector not being able to get any mod list
- Fix issues with errors relating to texture identifier being null
- Fix issue involved with ModDataLoader on Connector not being able to get any mod list
展开
版本: 0.12.15.1-beta.3+1.21
支持游戏: 1.21.1
类型: NeoForge
Beta
下载次数: 21,762
[1.21.1] oωo - neo - 0.12.15.1-beta.2+1.21
owo-lib-neoforge-0.12.15.1-beta.2+1.21.jar下载0.12.15.1-beta.2+1.21#Beta
owo-lib-neoforge-0.12.15.1-beta.2+1.21-sources.jar下载0.12.15.1-beta.2+1.21#Beta
Fixes issues for devs due to improper declaration of Access Widner
展开
版本: 0.12.15.1-beta.2+1.21
支持游戏: 1.21.1
类型: NeoForge
Beta
下载次数: 23,211
[1.21.1] oωo - neo - 0.12.15.1-beta.1+1.21
owo-lib-neoforge-0.12.15.1-beta.1+1.21.jar下载0.12.15.1-beta.1+1.21#Beta
owo-lib-neoforge-0.12.15.1-beta.1+1.21-sources.jar下载0.12.15.1-beta.1+1.21#Beta
## Fixes:
- Aggressively specialize lists generated by NbtSerializer.Sequence to fix deserialization of types like UUID which expect a specialized NBT array type (#363, Blodhgarm)
- Aggressively specialize lists generated by NbtSerializer.Sequence to fix deserialization of types like UUID which expect a specialized NBT array type (#363, Blodhgarm)
展开
版本: 0.12.15.1-beta.1+1.21
支持游戏: 1.21.1
类型: NeoForge
Beta
下载次数: 262
[1.21+] oωo - 0.12.15.1+1.21
owo-lib-0.12.15.1+1.21.jar下载0.12.15.1+1.21#Release
owo-lib-0.12.15.1+1.21-sources.jar下载0.12.15.1+1.21#Release
## Fixes
- Aggressively specialize lists generated by `NbtSerializer.Sequence` to fix deserialization of types like `UUID` which expect a specialized NBT array type (#363, Blodhgarm)
- Aggressively specialize lists generated by `NbtSerializer.Sequence` to fix deserialization of types like `UUID` which expect a specialized NBT array type (#363, Blodhgarm)
展开
版本: 0.12.15.1+1.21
支持游戏: 1.21, 1.21.1
类型: Fabric Quilt
Release
下载次数: 279,380
[1.21.4] oωo - neo - 0.12.19
owo-lib-neoforge-0.12.19-beta.2+1.21.4.jar下载0.12.19-beta.2+1.21.4#Beta
owo-lib-neoforge-0.12.19-beta.2+1.21.4-sources.jar下载0.12.19-beta.2+1.21.4#Beta
Deal with issues involving recent changes to neos reload listeners changes
展开
版本: 0.12.19-beta.2+1.21.4
支持游戏: 1.21.4
类型: NeoForge
Beta
下载次数: 1,926
[1.21.4] oωo - 0.12.20
owo-lib-0.12.20+1.21.4.jar下载0.12.20+1.21.4#Release
owo-lib-0.12.20+1.21.4-sources.jar下载0.12.20+1.21.4#Release
## Changes
- Tooltip rendering on the owo-ui screen template classes can now be customized by overriding `drawComponentTooltip`
## Fixes
- owo-ui screens built using the provided template classes no longer stop rendering their tooltip after reinitializing (#314, Blodhgarm)
- Tooltip rendering on the owo-ui screen template classes can now be customized by overriding `drawComponentTooltip`
## Fixes
- owo-ui screens built using the provided template classes no longer stop rendering their tooltip after reinitializing (#314, Blodhgarm)
展开
版本: 0.12.20+1.21.4
支持游戏: 1.21.4
类型: Fabric Quilt
Release
下载次数: 337,989
[1.21.4] oωo - neo - 0.12.19
owo-lib-neoforge-0.12.19-beta.1+1.21.4.jar下载0.12.19-beta.1+1.21.4#Beta
owo-lib-neoforge-0.12.19-beta.1+1.21.4-sources.jar下载0.12.19-beta.1+1.21.4#Beta
# 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
- 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
展开
版本: 0.12.19-beta.1+1.21.4
支持游戏: 1.21.4
类型: NeoForge
Beta
下载次数: 1,025
[1.21.4] oωo - 0.12.19
owo-lib-0.12.19+1.21.4.jar下载0.12.19+1.21.4#Beta
owo-lib-0.12.19+1.21.4-sources.jar下载0.12.19+1.21.4#Beta
## 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
- 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
展开
版本: 0.12.19+1.21.4
支持游戏: 1.21.4
类型: Fabric Quilt
Beta
下载次数: 63,551
[1.21.1] oωo - neo - 0.12.18
owo-lib-neoforge-0.12.18-beta.6+1.21.2.jar下载0.12.18-beta.6+1.21.2#Beta
owo-lib-neoforge-0.12.18-beta.6+1.21.2-sources.jar下载0.12.18-beta.6+1.21.2#Beta
Update to fix issues where networking would only register within debug environment.
展开
版本: 0.12.18-beta.6+1.21.2
支持游戏: 1.21.3
类型: NeoForge
Beta
下载次数: 333
[1.21.1] oωo - neo - 0.12.18
owo-lib-neoforge-0.12.18-beta.5+1.21.2.jar下载0.12.18-beta.5+1.21.2#Beta
owo-lib-neoforge-0.12.18-beta.5+1.21.2-sources.jar下载0.12.18-beta.5+1.21.2#Beta
Removes final bit of renderdoc code
展开
版本: 0.12.18-beta.5+1.21.2
支持游戏: 1.21.3
类型: NeoForge
Beta
下载次数: 390
[1.21.1] oωo - neo - 0.12.15
owo-lib-neoforge-0.12.15-beta.12+1.21.jar下载0.12.15-beta.12+1.21#Beta
owo-lib-neoforge-0.12.15-beta.12+1.21-sources.jar下载0.12.15-beta.12+1.21#Beta
Removes final bit of renderdoc code
展开
版本: 0.12.15-beta.12+1.21
支持游戏: 1.21.1
类型: NeoForge
Beta
下载次数: 49,180
[1.21.1] oωo - neo - 0.12.18
owo-lib-neoforge-0.12.18-beta.4+1.21.2.jar下载0.12.18-beta.4+1.21.2#Beta
owo-lib-neoforge-0.12.18-beta.4+1.21.2-sources.jar下载0.12.18-beta.4+1.21.2#Beta
Update to 1.21.3 which brings less of a reliance on FFAPI and disabled RenderDoc utility to use neos RenderNurse within the future
展开
版本: 0.12.18-beta.4+1.21.2
支持游戏: 1.21.3
类型: NeoForge
Beta
下载次数: 204
[1.21.1] oωo - neo - 0.12.15
owo-lib-neoforge-0.12.15-beta.11+1.21.jar下载0.12.15-beta.11+1.21#Beta
owo-lib-neoforge-0.12.15-beta.11+1.21-sources.jar下载0.12.15-beta.11+1.21#Beta
Disable RenderDoc Utils to be replaced with Neos RenderNurse
展开
版本: 0.12.15-beta.11+1.21
支持游戏: 1.21.1
类型: NeoForge
Beta
下载次数: 2,338
[1.21.1] oωo - neo - 0.12.15
owo-lib-neoforge-0.12.15-beta.10+1.21.jar下载0.12.15-beta.10+1.21#Beta
owo-lib-neoforge-0.12.15-beta.10+1.21-sources.jar下载0.12.15-beta.10+1.21#Beta
Fix issues with config screens being non existant though mod info screen
展开
版本: 0.12.15-beta.10+1.21
支持游戏: 1.21.1
类型: NeoForge
Beta
下载次数: 1,651
[1.21.2+] oωo - 0.12.18
owo-lib-0.12.18+1.21.2.jar下载0.12.18+1.21.2#Release
owo-lib-0.12.18+1.21.2-sources.jar下载0.12.18+1.21.2#Release
## Fixes
- `TextureComponent` rendering now works properly again
- `TextureComponent` rendering now works properly again
展开
版本: 0.12.18+1.21.2
支持游戏: 1.21.2, 1.21.3
类型: Fabric Quilt
Release
下载次数: 43,154
[1.21.1] oωo - neo - 0.12.15
owo-lib-neoforge-0.12.15-beta.9+1.21.jar下载0.12.15-beta.9+1.21#Beta
owo-lib-neoforge-0.12.15-beta.9+1.21-sources.jar下载0.12.15-beta.9+1.21#Beta
Fix issues where during a ModLoading error, owolib would be blamed for Shader loading issues due to neos continuation of general asset loading
展开
版本: 0.12.15-beta.9+1.21
支持游戏: 1.21.1
类型: NeoForge
Beta
下载次数: 2,663
[1.21.2+] oωo - 0.12.17
owo-lib-0.12.17+1.21.2.jar下载0.12.17+1.21.2#Beta
owo-lib-0.12.17+1.21.2-sources.jar下载0.12.17+1.21.2#Beta
## 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)
- 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)
展开
版本: 0.12.17+1.21.2
支持游戏: 1.21.2, 1.21.3
类型: Fabric Quilt
Beta
下载次数: 4,539
[1.21.1] oωo - neo - 0.12.15
owo-lib-neoforge-0.12.15-beta.6+1.21.jar下载0.12.15-beta.6+1.21#Beta
owo-lib-neoforge-0.12.15-beta.6+1.21-sources.jar下载0.12.15-beta.6+1.21#Beta
Update version to be consistent with maven
展开
版本: 0.12.15-beta.6+1.21
支持游戏: 1.21.1
类型: NeoForge
Beta
下载次数: 1,155
[1.21.2+] oωo - 0.12.16
owo-lib-0.12.16+1.21.2.jar下载0.12.16+1.21.2#Beta
owo-lib-0.12.16+1.21.2-sources.jar下载0.12.16+1.21.2#Beta
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
## 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
展开
版本: 0.12.16+1.21.2
支持游戏: 1.21.2, 1.21.3
类型: Fabric Quilt
Beta
下载次数: 8,670
[1.21.1] oωo - neo - 0.12.15
owo-lib-neoforge-0.12.15-beta.5+1.21.jar下载0.12.15-beta.5+1.21#Beta
owo-lib-neoforge-0.12.15-beta.5+1.21-sources.jar下载0.12.15-beta.5+1.21#Beta
Fixes issues with Concurrent Modification Exception with FFAPI networking
展开
版本: 0.12.15-beta.5+1.21
支持游戏: 1.21.1
类型: NeoForge
Beta
下载次数: 174
[1.21.1] oωo - neo - 0.12.15
owo-lib-neoforge-0.12.15-beta.4+1.21.jar下载0.12.15-beta.4+1.21#Beta
owo-lib-neoforge-0.12.15-beta.4+1.21-sources.jar下载0.12.15-beta.4+1.21#Beta
Initial Release of owo for Neoforge. Yippie!
展开
版本: 0.12.15-beta.4+1.21
支持游戏: 1.21.1
类型: NeoForge
Beta
下载次数: 186
[1.21+] oωo - 0.12.15
owo-lib-0.12.15+1.21.jar下载0.12.15+1.21#Release
owo-lib-0.12.15+1.21-sources.jar下载0.12.15+1.21#Release
## 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
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
展开
版本: 0.12.15+1.21
支持游戏: 1.21, 1.21.1
类型: Fabric Quilt
Release
下载次数: 1,341,742
[1.21+] oωo - 0.12.14
owo-lib-0.12.14+1.21.jar下载0.12.14+1.21#Release
owo-lib-0.12.14+1.21-sources.jar下载0.12.14+1.21#Release
## 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)
- `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)
展开
版本: 0.12.14+1.21
支持游戏: 1.21, 1.21.1
类型: Fabric Quilt
Release
下载次数: 166,233
[1.21+] oωo - 0.12.13
owo-lib-0.12.13+1.21.jar下载0.12.13+1.21#Release
owo-lib-0.12.13+1.21-sources.jar下载0.12.13+1.21#Release
## 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)
- 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)
展开
版本: 0.12.13+1.21
支持游戏: 1.21, 1.21.1
类型: Fabric Quilt
Release
下载次数: 8,942
[1.21+] oωo - 0.12.12
owo-lib-0.12.12+1.21.jar下载0.12.12+1.21#Release
owo-lib-0.12.12+1.21-sources.jar下载0.12.12+1.21#Release
## 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
- 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
展开
版本: 0.12.12+1.21
支持游戏: 1.21, 1.21.1
类型: Fabric Quilt
Release
下载次数: 44,248
[1.21] oωo - 0.12.11
owo-lib-0.12.11+1.21.jar下载0.12.11+1.21#Release
owo-lib-0.12.11+1.21-sources.jar下载0.12.11+1.21#Release
## Additions
- Minecraft's `ComponentType`s 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)
- Minecraft's `ComponentType`s 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)
展开
版本: 0.12.11+1.21
支持游戏: 1.21, 1.21.1
类型: Fabric Quilt
Release
下载次数: 183,524
[1.21] oωo - 0.12.10
owo-lib-0.12.10+1.21.jar下载0.12.10+1.21#Beta
owo-lib-0.12.10+1.21-sources.jar下载0.12.10+1.21#Beta
This build is primarily a port of [0.12.9](https://modrinth.com/mod/owo-lib/version/0.12.9+1.20.5) 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](https://github.com/wisp-forest/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
### Endec changes
The `Endec` API is no longer built into owo-lib. Instead, owo now uses and ships the standalone [endec](https://github.com/wisp-forest/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
展开
版本: 0.12.10+1.21
支持游戏: 1.21
类型: Fabric Quilt
Beta
下载次数: 243,856
[1.20.5+] oωo - 0.12.9
owo-lib-0.12.9+1.20.5.jar下载0.12.9+1.20.5#Release
owo-lib-0.12.9+1.20.5-sources.jar下载0.12.9+1.20.5#Release
### 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
- `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
展开
版本: 0.12.9+1.20.5
支持游戏: 1.20.5, 1.20.6
类型: Fabric Quilt
Release
下载次数: 17,354
[1.20.5+] oωo - 0.12.8
owo-lib-0.12.8+1.20.5.jar下载0.12.8+1.20.5#Beta
owo-lib-0.12.8+1.20.5-sources.jar下载0.12.8+1.20.5#Beta
### Fixes
- Joining a singleplayer world in an instance where no owo networking features are used no longer fails on the first attempt (#230)
- Joining a singleplayer world in an instance where no owo networking features are used no longer fails on the first attempt (#230)
展开
版本: 0.12.8+1.20.5
支持游戏: 1.20.5, 1.20.6
类型: Fabric Quilt
Beta
下载次数: 10,396
[1.20.5+] oωo - 0.12.7
owo-lib-0.12.7+1.20.5.jar下载0.12.7+1.20.5#Beta
owo-lib-0.12.7+1.20.5-sources.jar下载0.12.7+1.20.5#Beta
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
展开
版本: 0.12.7+1.20.5
支持游戏: 1.20.5, 1.20.6
类型: Fabric Quilt
Beta
下载次数: 688
[1.20.5] oωo - 0.12.6
owo-lib-0.12.6+1.20.5.jar下载0.12.6+1.20.5#Beta
owo-lib-0.12.6+1.20.5-sources.jar下载0.12.6+1.20.5#Beta
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).
展开
版本: 0.12.6+1.20.5
支持游戏: 1.20.5
类型: Fabric Quilt
Beta
下载次数: 295
[1.20.3+] oωo - 0.12.6
owo-lib-0.12.6+1.20.3.jar下载0.12.6+1.20.3#Release
owo-lib-0.12.6+1.20.3-sources.jar下载0.12.6+1.20.3#Release
## 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)
- 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)
展开
版本: 0.12.6+1.20.3
支持游戏: 1.20.3, 1.20.4
类型: Fabric Quilt
Release
下载次数: 176,573
[1.20.3+] oωo - 0.12.5
owo-lib-0.12.5+1.20.3.jar下载0.12.5+1.20.3#Release
owo-lib-0.12.5+1.20.3-sources.jar下载0.12.5+1.20.3#Release
## 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)
- `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)
展开
版本: 0.12.5+1.20.3
支持游戏: 1.20.3, 1.20.4
类型: Fabric Quilt
Release
下载次数: 58,806
[1.20.3+] oωo - 0.12.4
owo-lib-0.12.4+1.20.3.jar下载0.12.4+1.20.3#Release
owo-lib-0.12.4+1.20.3-sources.jar下载0.12.4+1.20.3#Release
## 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`
- 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`
展开
版本: 0.12.4+1.20.3
支持游戏: 1.20.3, 1.20.4
类型: Fabric Quilt
Release
下载次数: 6,391
[1.20.3+] oωo - 0.12.3
owo-lib-0.12.3+1.20.3.jar下载0.12.3+1.20.3#Release
owo-lib-0.12.3+1.20.3-sources.jar下载0.12.3+1.20.3#Release
## 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
- 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
展开
版本: 0.12.3+1.20.3
支持游戏: 1.20.3, 1.20.4
类型: Fabric Quilt
Release
下载次数: 31,186
[1.20.3+] oωo - 0.12.2
owo-lib-0.12.2+1.20.3.jar下载0.12.2+1.20.3#Beta
owo-lib-0.12.2+1.20.3-sources.jar下载0.12.2+1.20.3#Beta
## 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
- 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
展开
版本: 0.12.2+1.20.3
支持游戏: 1.20.3, 1.20.4
类型: Fabric Quilt
Beta
下载次数: 648
[1.20.3+] oωo - 0.12.1
owo-lib-0.12.1+1.20.3.jar下载0.12.1+1.20.3#Beta
owo-lib-0.12.1+1.20.3-sources.jar下载0.12.1+1.20.3#Beta
## 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
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
展开
版本: 0.12.1+1.20.3
支持游戏: 1.20.3, 1.20.4
类型: Fabric Quilt
Beta
下载次数: 1,096
[1.20.3+] oωo - 0.12.0
owo-lib-0.12.0+1.20.3.jar下载0.12.0+1.20.3#Beta
owo-lib-0.12.0+1.20.3-sources.jar下载0.12.0+1.20.3#Beta
## Additions
The major addition this time around is the Endec serialization framework, an interoperable alternative to Mojang's own Codec. As outlined in the changes section, this supersedes a bunch of older owo APIs as well - notably networking. To get started with endec, check out the newly written documentation: https://docs.wispforest.io/owo/endec/
## Changes
- `NbtKey` and all associated API has been removed entirely in favor of the new, Endec-based and functionally extremely similar `KeyedEndec` used in conjunction with `MapCarrier` (which is interface-injected onto the same classes as `NbtCarrier` used to be)
- `PacketBufSerializer` has been removed in its entirety and all dependent API updated to use Endecs instead. For writing data directly to a network buffer like the old API used to allow, use the equivalent Endec (potentially obtained from the `ReflectiveEndecBuilder`) together with the interface-injected `PacketByteBuf#write(Endec, Object)` and `PacketByteBuf#read(Endec)`
- As a consequence of the update to 1.20.3+, the custom text API has been simplified. Because the vanilla changes make them redundant, `CustomTextContent` along with `CustomTextContentSerializer` no longer exist - instead, simply implement the vanilla `TextContent` interface, create a `TextContent.Type` with the appropriate codec and register said type in the `CustomTextRegistry` as before
## Fixes
- `ScissorStack` now clamps the width/height passed to `glScissor` to prevent causing OpenGL errors in contexts with funky transformations
- All buffers in the draw context used for layers are now forcefully flushed before the layer is rendered to stop tooltips going missing due to scissoring in the layer
- Forcefully flush all buffers after drawing an owo-ui tooltip (similar issues as above)
---
Finally, the following previously deprecated API elements have been removed:
- `BaseParentComponent#mountChild`, use the new two-argument version instead to prevent unnecessary inflations
- `ParentComponent#collectChildren`, replaced by the more appropriately named but functionally identical `ParentComponent#collectDescendants`
- `OwoItemGroup#setSelectedTab`, `OwoItemGroup#getSelectedTab` and `OwoItemGroup#getSelectedTabIndex` - use the new equivalents which are aware that multiple tabs can be selected
- `NinePatchRenderer` and `OwoNinePatchRenderers`, long-replaced by `NinePatchTexture` and `OwoNinePatchTextures`
The major addition this time around is the Endec serialization framework, an interoperable alternative to Mojang's own Codec. As outlined in the changes section, this supersedes a bunch of older owo APIs as well - notably networking. To get started with endec, check out the newly written documentation: https://docs.wispforest.io/owo/endec/
## Changes
- `NbtKey` and all associated API has been removed entirely in favor of the new, Endec-based and functionally extremely similar `KeyedEndec` used in conjunction with `MapCarrier` (which is interface-injected onto the same classes as `NbtCarrier` used to be)
- `PacketBufSerializer` has been removed in its entirety and all dependent API updated to use Endecs instead. For writing data directly to a network buffer like the old API used to allow, use the equivalent Endec (potentially obtained from the `ReflectiveEndecBuilder`) together with the interface-injected `PacketByteBuf#write(Endec, Object)` and `PacketByteBuf#read(Endec)`
- As a consequence of the update to 1.20.3+, the custom text API has been simplified. Because the vanilla changes make them redundant, `CustomTextContent` along with `CustomTextContentSerializer` no longer exist - instead, simply implement the vanilla `TextContent` interface, create a `TextContent.Type` with the appropriate codec and register said type in the `CustomTextRegistry` as before
## Fixes
- `ScissorStack` now clamps the width/height passed to `glScissor` to prevent causing OpenGL errors in contexts with funky transformations
- All buffers in the draw context used for layers are now forcefully flushed before the layer is rendered to stop tooltips going missing due to scissoring in the layer
- Forcefully flush all buffers after drawing an owo-ui tooltip (similar issues as above)
---
Finally, the following previously deprecated API elements have been removed:
- `BaseParentComponent#mountChild`, use the new two-argument version instead to prevent unnecessary inflations
- `ParentComponent#collectChildren`, replaced by the more appropriately named but functionally identical `ParentComponent#collectDescendants`
- `OwoItemGroup#setSelectedTab`, `OwoItemGroup#getSelectedTab` and `OwoItemGroup#getSelectedTabIndex` - use the new equivalents which are aware that multiple tabs can be selected
- `NinePatchRenderer` and `OwoNinePatchRenderers`, long-replaced by `NinePatchTexture` and `OwoNinePatchTextures`
展开
版本: 0.12.0+1.20.3
支持游戏: 1.20.3, 1.20.4
类型: Fabric Quilt
Beta
下载次数: 16,561
[1.20.2] oωo - 0.11.4
owo-lib-0.11.4+1.20.2.jar下载0.11.4+1.20.2#Release
owo-lib-0.11.4+1.20.2-sources.jar下载0.11.4+1.20.2#Release
### Fixes
- Having `librenderdoc` available system-wide on Linux no longer causes a JVM crash due to a bug in JNA which we now circumvent (#197)
- Having `librenderdoc` available system-wide on Linux no longer causes a JVM crash due to a bug in JNA which we now circumvent (#197)
展开
版本: 0.11.4+1.20.2
支持游戏: 1.20.2
类型: Fabric Quilt
Release
下载次数: 67,638
[1.20.2] oωo - 0.11.3
owo-lib-0.11.3+1.20.2.jar下载0.11.3+1.20.2#Beta
### Additions
- Multiple tabs can now be selected simultaneously in a single OwoItemGroup (this behavior can be disabled for each group individually if not desired)
- The new `panelWithInset(...)` surface allows building interfaces in the style of the Social Interactions screen
- Sizing with different methods (for instance, content and fixed sizing) can now be animated between (there are no immediate API changes as a result of this, merely one less runtime warning and a new feature)
- The base point (for layout calculations) and visual position (for rendering and interaction) of an owo-ui cmponent are now two separate concepts (this again comes without any breaking API changes, merely two new methods that should be called in the appropriate places)
- Items can now automatically have their usage statistic tracked by owo through setting `OwoItemSettings#trackUsageStat()`
- [Experimental] Screens can now implement the `DisposableScreen` interface if they need to be notified when the player actually closes all screens (that is, returns to the game) instead of immediately when navigating to a different screen (which might then later navigate back to the first screen)
### Changes
- Methods on owo-ui components which accept a collection of components now use upper-bounded generics instead of an explicit type to allow more specific collections at the call site
- `Sizing.fill()` can now be called with zero arguments to indicate 100% fill
- `UIParsing.registerFactory(...)` can *and should* now be called with an indentifier instead of a plain string for the element name
- `ParentComponent#childById(...)` is no longer @Nullable, as it is generally expected to return a component in its most common use-case (querying the constituents of a UI model)
### Fixes
- Trimmed armor in an ItemComponent now renders properly (#152, Zailer43)
- Explicitly positioned owo-ui components are no longer inflated twice for each single layout pass
- Multiple tabs can now be selected simultaneously in a single OwoItemGroup (this behavior can be disabled for each group individually if not desired)
- The new `panelWithInset(...)` surface allows building interfaces in the style of the Social Interactions screen
- Sizing with different methods (for instance, content and fixed sizing) can now be animated between (there are no immediate API changes as a result of this, merely one less runtime warning and a new feature)
- The base point (for layout calculations) and visual position (for rendering and interaction) of an owo-ui cmponent are now two separate concepts (this again comes without any breaking API changes, merely two new methods that should be called in the appropriate places)
- Items can now automatically have their usage statistic tracked by owo through setting `OwoItemSettings#trackUsageStat()`
- [Experimental] Screens can now implement the `DisposableScreen` interface if they need to be notified when the player actually closes all screens (that is, returns to the game) instead of immediately when navigating to a different screen (which might then later navigate back to the first screen)
### Changes
- Methods on owo-ui components which accept a collection of components now use upper-bounded generics instead of an explicit type to allow more specific collections at the call site
- `Sizing.fill()` can now be called with zero arguments to indicate 100% fill
- `UIParsing.registerFactory(...)` can *and should* now be called with an indentifier instead of a plain string for the element name
- `ParentComponent#childById(...)` is no longer @Nullable, as it is generally expected to return a component in its most common use-case (querying the constituents of a UI model)
### Fixes
- Trimmed armor in an ItemComponent now renders properly (#152, Zailer43)
- Explicitly positioned owo-ui components are no longer inflated twice for each single layout pass
展开
版本: 0.11.3+1.20.2
支持游戏: 1.20.2
类型: Fabric Quilt
Beta
下载次数: 51,205
[1.20.1] oωo - 0.11.2
owo-lib-0.11.2+1.20.jar下载0.11.2+1.20#Release
### Fixes
- Component stacking is now properly undone to prevent messing with the global z-offset (#142)
- owo-ui HUD components are now rendered with a z-offset of 100 by default to prevent overdraw by the chat overlay (#143)
- The EULA reader now properly works in conjunction with YesCheat (#138)
- Component stacking is now properly undone to prevent messing with the global z-offset (#142)
- owo-ui HUD components are now rendered with a z-offset of 100 by default to prevent overdraw by the chat overlay (#143)
- The EULA reader now properly works in conjunction with YesCheat (#138)
展开
版本: 0.11.2+1.20
支持游戏: 1.20, 1.20.1
类型: Fabric Quilt
Release
下载次数: 5,356,786
[1.20.1] oωo - 0.11.1
owo-lib-0.11.1+1.20.jar下载0.11.1+1.20#Release
## Fixes
- The `ltr-text-flow` algorithm for flow layouts no longer miscalculates its columns in some situations (#137)
- Clearing the text field of a color config option no longer crashes the game (#128)
- The owo-config annotation processor should now generate type interfaces in a deterministic order every time its ran (#139)
## Changes
- `OwoUIDrawContext.of(...)` now inherits the matrix- and scissor-stacks of the source context - this is more intuitive given how the method is named and used & fixes a few transform-related problems in owo-ui
- The `ReiUIAdapter` now flushes the draw buffer when its finished rendering to prevent mysteriously empty tooltips
- Item insertion order when transferring container->player inventory using `ScreenUtils.handleSlotTransfer(...)` has been reversed to match vanilla behavior
## Additions
- A set of new interface-injected methods on `DrawContext` enable easy, fluent matrix-stack manipulation directly on the associated draw context (#136, Blodhgarm)
- owo-ui now also provides exclusion zones to EMI (#103, Abbie5)
- `ItemOps.decrementPlayerHandItem(...)` and `.emptyAwareDecrement(...)` gained new overloads which accept a count instead of always decrementing by 1 (#141, chyzman)
- The `ltr-text-flow` algorithm for flow layouts no longer miscalculates its columns in some situations (#137)
- Clearing the text field of a color config option no longer crashes the game (#128)
- The owo-config annotation processor should now generate type interfaces in a deterministic order every time its ran (#139)
## Changes
- `OwoUIDrawContext.of(...)` now inherits the matrix- and scissor-stacks of the source context - this is more intuitive given how the method is named and used & fixes a few transform-related problems in owo-ui
- The `ReiUIAdapter` now flushes the draw buffer when its finished rendering to prevent mysteriously empty tooltips
- Item insertion order when transferring container->player inventory using `ScreenUtils.handleSlotTransfer(...)` has been reversed to match vanilla behavior
## Additions
- A set of new interface-injected methods on `DrawContext` enable easy, fluent matrix-stack manipulation directly on the associated draw context (#136, Blodhgarm)
- owo-ui now also provides exclusion zones to EMI (#103, Abbie5)
- `ItemOps.decrementPlayerHandItem(...)` and `.emptyAwareDecrement(...)` gained new overloads which accept a count instead of always decrementing by 1 (#141, chyzman)
展开
版本: 0.11.1+1.20
支持游戏: 1.20, 1.20.1
类型: Fabric Quilt
Release
下载次数: 147,532
[1.20+] oωo - 0.11.0
owo-lib-0.11.0+1.20.jar下载0.11.0+1.20#Beta
## Additions
### Cross-referencing in UI models
When instantiating templates in a UI model, you can use the new `<template-name>@<ui-model-id>` syntax to reference a template from a different UI model. This allows much greater flexibility than before in modularizing and re-using templates across different screens.
Along with this change, the `<components>` element in UI model definitions is no longer required.
### UI
- The `blur()` surface now supports parsing from UI models
- `BaseOwo*Screen` implementations now provide the `component(...)` shorthand for `this.adapter.rootComponent.childById(...)`
- Layers can now align their components relative to Minecraft's handled screen coordinates using `alignComponentToHandledScreenCoordinates(...)` on the instance
- `Surface.PANEL_INSET` was added, which renders an inset area to be used inside `Surface.PANEL` - this looks very similar to the vanilla recipe book panel
- Two new components, `smallCheckbox(...)` and `slimSlider(...)`, were added - they function mostly identically to the already existing counterparts, but (as the name implies) take up less space and offer more customizability
- `TextAreaComponent`, a third new component, is an extension of vanilla's new `EditBoxWidget` for general-purpose use and optimized to play nicely within an owo-ui context
- `ItemComponent` offers a new property, `setTooltipFromStack`, which always keeps the component's tooltip in sync with the item stack it's displaying
- The height of each line a `LabelComponent` can now be configured using the new `lineHeight` property, which allows properly supporting non-standard fonts
- Components can now be placed at fixed percentage across their parent without respecting the components own size using `Positioning.across()`
- `StackLayout` respects much the same layout rules as `FlowLayout`, but doesn't place components next to each other - instead it places them on top of each other, thus creating a stack of components
- `Containers.ltrTextFlow(...)` creates a new type of FlowLayout, which works just like `Components.horizontalFlow(...)` but wraps when it exceeds its own width - just like how left-to-right text is laid out in a document
- Block, item, and entity components now support NBT (and in the case of blocks, block state data) when being parsed from a UI model
### Config
Server-sided retrieval of a client's config options has been made more ergonomic. For this purpose, the generated config wrapper now exposes the key of each individual option through the `.keys` object. Further, `ConfigSynchronizer.getClientOptions` received a new override which directly accepts the config wrapper, enabling the following API:
```java
var optionValue = ConfigSynchronizer.getClientOptions(player, MyMod.CONFIG).get(MyMod.CONFIG.keys.someOption);
```
### Misc
- owo-sentinel now lists the mod which included it in addition to all mods that depend on owo, in an effort to reduce confusion when mod authors don't declare their dependency (BasiqueEvangelist, #123)
- `AutoRegistryContainer` provides two new convenience functions:
- `.register(...)`, which is simply an alias for `FieldRegistrationHandler.register(...)`
- `.conform(...)`, which forcefully casts a `Class<?>` to a `Class<T>` for implementing `getTargetFieldType()` for parametrized classes
## Changes
### UI
- `HUD` now processes removal requests before add requests, allowing HUD components to be properly reloaded within the same frame
- When the inspector draws slot indices in a handled screen, it now uses `H:` to denote the slot index in the handler and `I:` to indicate that slot's index into its respective inventory
- The `file(...)` UI model data source is now deprecated in favor of a new, configurable hot reload system which is only active in development. This way, you cannot accidentally ship your mod with the file data source enabled, causing it to crash in production
- `NinePatchRenderer` was renamed to `NinePatchTexture` and reworked to function in a data-driven manner. No old functionality has been removed yet, it was however deprecated. More details on how to use the new implementation will be added to the documentation shortly
## Fixes
### UI
- `ItemComponent`s once again use correct lighting on side-lit models *and* apply lighting properly when non-side-lit models are scaled down
- `LabelComponent` now properly fetches the text style under the cursor when determining which hover and click events to execute
- `TextFieldWidget` and `EditBoxWidget` now have their `tick()` function called when wrapped by owo-ui, making their cursors blink properly
- `ScrollContainer.scrollTo(...)` now works properly on horizontal containers and has a new overload for directly specifying the target scroll offset without supplying a component
### Config
- owo-config screen providers are now once again properly listed in Mod Menu
### Misc
- `ParticleSystemController`s no longer forcefully require handshaking when merely mentioned, fixing optional handshaking (BasiqueEvangelist, #123)
- By utilizing new API within Roughly Enough Items, handled screens built with owo-ui now properly layer with the REI overlay - there should be no more over- and underdraw
---
Finally, the following previously deprecated API elements have been removed:
- `VerticalFlowLayout` and `HorizontalFlowLayout`, which have been replaced by instantiating `FlowLayout` with the respective Algorithm
- `OptionComponent` and `OptionComponents.createSlider`, which were replaced by `OptionValueProvider` and `OptionComponents.createRangeControls` respectivel
- `SliderComponent#onChanged`, replaced by the respective event stream
### Cross-referencing in UI models
When instantiating templates in a UI model, you can use the new `<template-name>@<ui-model-id>` syntax to reference a template from a different UI model. This allows much greater flexibility than before in modularizing and re-using templates across different screens.
Along with this change, the `<components>` element in UI model definitions is no longer required.
### UI
- The `blur()` surface now supports parsing from UI models
- `BaseOwo*Screen` implementations now provide the `component(...)` shorthand for `this.adapter.rootComponent.childById(...)`
- Layers can now align their components relative to Minecraft's handled screen coordinates using `alignComponentToHandledScreenCoordinates(...)` on the instance
- `Surface.PANEL_INSET` was added, which renders an inset area to be used inside `Surface.PANEL` - this looks very similar to the vanilla recipe book panel
- Two new components, `smallCheckbox(...)` and `slimSlider(...)`, were added - they function mostly identically to the already existing counterparts, but (as the name implies) take up less space and offer more customizability
- `TextAreaComponent`, a third new component, is an extension of vanilla's new `EditBoxWidget` for general-purpose use and optimized to play nicely within an owo-ui context
- `ItemComponent` offers a new property, `setTooltipFromStack`, which always keeps the component's tooltip in sync with the item stack it's displaying
- The height of each line a `LabelComponent` can now be configured using the new `lineHeight` property, which allows properly supporting non-standard fonts
- Components can now be placed at fixed percentage across their parent without respecting the components own size using `Positioning.across()`
- `StackLayout` respects much the same layout rules as `FlowLayout`, but doesn't place components next to each other - instead it places them on top of each other, thus creating a stack of components
- `Containers.ltrTextFlow(...)` creates a new type of FlowLayout, which works just like `Components.horizontalFlow(...)` but wraps when it exceeds its own width - just like how left-to-right text is laid out in a document
- Block, item, and entity components now support NBT (and in the case of blocks, block state data) when being parsed from a UI model
### Config
Server-sided retrieval of a client's config options has been made more ergonomic. For this purpose, the generated config wrapper now exposes the key of each individual option through the `.keys` object. Further, `ConfigSynchronizer.getClientOptions` received a new override which directly accepts the config wrapper, enabling the following API:
```java
var optionValue = ConfigSynchronizer.getClientOptions(player, MyMod.CONFIG).get(MyMod.CONFIG.keys.someOption);
```
### Misc
- owo-sentinel now lists the mod which included it in addition to all mods that depend on owo, in an effort to reduce confusion when mod authors don't declare their dependency (BasiqueEvangelist, #123)
- `AutoRegistryContainer` provides two new convenience functions:
- `.register(...)`, which is simply an alias for `FieldRegistrationHandler.register(...)`
- `.conform(...)`, which forcefully casts a `Class<?>` to a `Class<T>` for implementing `getTargetFieldType()` for parametrized classes
## Changes
### UI
- `HUD` now processes removal requests before add requests, allowing HUD components to be properly reloaded within the same frame
- When the inspector draws slot indices in a handled screen, it now uses `H:` to denote the slot index in the handler and `I:` to indicate that slot's index into its respective inventory
- The `file(...)` UI model data source is now deprecated in favor of a new, configurable hot reload system which is only active in development. This way, you cannot accidentally ship your mod with the file data source enabled, causing it to crash in production
- `NinePatchRenderer` was renamed to `NinePatchTexture` and reworked to function in a data-driven manner. No old functionality has been removed yet, it was however deprecated. More details on how to use the new implementation will be added to the documentation shortly
## Fixes
### UI
- `ItemComponent`s once again use correct lighting on side-lit models *and* apply lighting properly when non-side-lit models are scaled down
- `LabelComponent` now properly fetches the text style under the cursor when determining which hover and click events to execute
- `TextFieldWidget` and `EditBoxWidget` now have their `tick()` function called when wrapped by owo-ui, making their cursors blink properly
- `ScrollContainer.scrollTo(...)` now works properly on horizontal containers and has a new overload for directly specifying the target scroll offset without supplying a component
### Config
- owo-config screen providers are now once again properly listed in Mod Menu
### Misc
- `ParticleSystemController`s no longer forcefully require handshaking when merely mentioned, fixing optional handshaking (BasiqueEvangelist, #123)
- By utilizing new API within Roughly Enough Items, handled screens built with owo-ui now properly layer with the REI overlay - there should be no more over- and underdraw
---
Finally, the following previously deprecated API elements have been removed:
- `VerticalFlowLayout` and `HorizontalFlowLayout`, which have been replaced by instantiating `FlowLayout` with the respective Algorithm
- `OptionComponent` and `OptionComponents.createSlider`, which were replaced by `OptionValueProvider` and `OptionComponents.createRangeControls` respectivel
- `SliderComponent#onChanged`, replaced by the respective event stream
展开
版本: 0.11.0+1.20
支持游戏: 1.20, 1.20.1
类型: Fabric Quilt
Beta
下载次数: 122,601
[1.19.4] oωo - 0.10.6
owo-lib-0.10.6+1.19.4.jar下载0.10.6+1.19.4#Release
Continuing the spirit of the last two releases, this build brings another very important fix - this time to config synchronization. The previous implementation had a bug where all synced options would be lost upon death of the player, which caused crashes specifically in conjunction with [YIGD](https://modrinth.com/mod/yigd) and [Numismatic Overhaul](https://modrinth.com/mod/numismatic-overhaul)
This should ideally be the last build that backports fixes from the 0.11 prereleases and therefor the last release for 1.19.4 before we move onto 1.20
This should ideally be the last build that backports fixes from the 0.11 prereleases and therefor the last release for 1.19.4 before we move onto 1.20
展开
版本: 0.10.6+1.19.4
支持游戏: 1.19.4
类型: Fabric Quilt
Release
下载次数: 30,415
[1.19.4] oωo - 0.10.5
owo-lib-0.10.5+1.19.4.jar下载0.10.5+1.19.4#Release
Just like [0.10.4](https://modrinth.com/mod/owo-lib/version/0.10.4+1.19.4), this is another round of small fixes:
- Fabric API fixed their implementation of the screen render event, leading to owo's workaround now breaking rendering of owo-ui layers
- Lighting orientation on owo-ui item components was fixed, as proposed in #119
- Fabric API fixed their implementation of the screen render event, leading to owo's workaround now breaking rendering of owo-ui layers
- Lighting orientation on owo-ui item components was fixed, as proposed in #119
展开
版本: 0.10.5+1.19.4
支持游戏: 1.19.4
类型: Fabric Quilt
Release
下载次数: 784
[1.19.4] oωo - 0.10.4
owo-lib-0.10.4+1.19.4.jar下载0.10.4+1.19.4#Release
Similarly to [0.10.3](https://modrinth.com/mod/owo-lib/version/0.10.3+1.19.4), 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
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.4+1.19.4
支持游戏: 1.19.4
类型: Fabric Quilt
Release
下载次数: 1,781
[1.19.4] oωo - 0.10.3
owo-lib-0.10.3+1.19.4.jar下载0.10.3+1.19.4#Beta
This build is indentical feature-wise to [0.10.3 for 1.19.3](https://modrinth.com/mod/owo-lib/version/0.10.3+1.19.3)
展开
版本: 0.10.3+1.19.4
支持游戏: 1.19.4
类型: Fabric Quilt
Beta
下载次数: 32,568
[1.19.3] oωo - 0.10.3
owo-lib-0.10.3+1.19.3.jar下载0.10.3+1.19.3#Release
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)
Along with this, parsing order in owo-ui's `text-box` has been corrected to set `max-length` before reading `text` (#110)
展开
版本: 0.10.3+1.19.3
支持游戏: 1.19.3
类型: Fabric Quilt
Release
下载次数: 14,409
[1.19.3] oωo - 0.10.2
owo-lib-0.10.2+1.19.3.jar下载0.10.2+1.19.3#Release
### 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 `GreedyInputComponent`s
- Yet another situation in which a scroll container could achieve a scroll value of `NaN` has been resolved
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 `GreedyInputComponent`s
- Yet another situation in which a scroll container could achieve a scroll value of `NaN` has been resolved
展开
版本: 0.10.2+1.19.3
支持游戏: 1.19.3
类型: Fabric Quilt
Release
下载次数: 4,271
[1.19.3] oωo - 0.10.1
owo-lib-0.10.1+1.19.3.jar下载0.10.1+1.19.3#Beta
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.1+1.19.3
支持游戏: 1.19.3
类型: Fabric Quilt
Beta
下载次数: 3,160
[1.19.3] oωo - 0.10.0
owo-lib-0.10.0+1.19.3.jar下载0.10.0+1.19.3#Beta
## 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](https://github.com/wisp-forest/owo-lib/blob/1.19.3/src/main/java/io/wispforest/owo/ui/container/RenderEffectWrapper.java) 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
### 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](https://github.com/wisp-forest/owo-lib/blob/1.19.3/src/main/java/io/wispforest/owo/ui/container/RenderEffectWrapper.java) 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.10.0+1.19.3
支持游戏: 1.19.3
类型: Fabric Quilt
Beta
下载次数: 178
[1.19] oωo - 0.9.3
owo-lib-0.9.3+1.19.jar下载0.9.3+1.19#Beta
Refer to 0.9.3+1.19.3
展开
版本: 0.9.3+1.19
支持游戏: 1.19, 1.19.1, 1.19.2
类型: Fabric Quilt
Beta
下载次数: 512,737
[1.19.3] oωo - 0.9.3
owo-lib-0.9.3+1.19.3.jar下载0.9.3+1.19.3#Beta
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.3
支持游戏: 1.19.3
类型: Fabric Quilt
Beta
下载次数: 9,386
[1.19] oωo - 0.9.2
owo-lib-0.9.2+1.19.jar下载0.9.2+1.19#Beta
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.2+1.19
支持游戏: 1.19, 1.19.1, 1.19.2
类型: Fabric Quilt
Beta
下载次数: 963
[1.19] oωo - 0.9.1
owo-lib-0.9.1+1.19.jar下载0.9.1+1.19#Beta
This build fixes an NPE that would occur when config search focuses an option inside 2+ collapsed containers
展开
版本: 0.9.1+1.19
支持游戏: 1.19, 1.19.1, 1.19.2
类型: Fabric Quilt
Beta
下载次数: 1,201
[1.19] oωo - 0.9.0
owo-lib-0.9.0+1.19.jar下载0.9.0+1.19#Beta
## Additions
### UI
- Cursor styling functionality from `OwoUIAdapter` is now available globally via the new **CursorAdapter** abstraction, which also provides the implementation for owo-ui
- The new **configure** method on `Component` enables inline configuration of component properties which don't return the component itself. Due to limitations with Java's generic parameters, it is required to manually specify the type of component you're configuring when calling this method, like so: `Components.label(...).<LabelComponent>configure(label -> label.mouseDown().subscribe(...))`. <br> Additionally, any state change events emitted during execution of such a configuration closure are delayed until the closure has completed - this enables large performance improvements when configuring multiple properties of a mounted component, including adding/removing children, as everything is consolidated into a single layout pass
- The flow layout has gained the new **gap** property, which adds the specified amount of dead space between each child
- Collapsible containers now expose the `onToggled` event stream as well as their current state
- All components can now easily look up the root component in their respective tree using the new `root()` method
- Text box max length can now be defined in XML with the `max-length` element
- The new **popFramesAndDraw** method on `ScissorStack`, allows escaping up to the given amount of clipping frames and execute the supplied draw call
- owo-ui colors can now generate a hex color string via the **asHexString** method
- Entity components can now have an additional **dynamic transform** applied before rendering the entity
- `Components#textBox(...)` no longer creates and returns a `TextFieldWidget`, instead it creates a **TextBoxComponent**. This is owo-ui's extension of the vanilla text field, which properly sizes itself if the background is disabled and provides the **onChanged** event stream. This stream only emits events when the text in the box *actually changes*, unlike the vanilla change listener
### Config
- The config screen now includes a search bar which allows searching through all options and sections by name and value. This search function acts like search in a text editor - you enter your query, then press enter, after which you can inspect all matches individually by pressing enter again
- The new client-side `/owo-config` command can open all config screens for which a provider is registered, even when modmenu is not installed
- `Set<T>` is now a supported type for config options
### UI - Layers
Built on top of owo-ui, a new system called **Layers** has been introduced. This generic API allows adding, or layering if you will, owo-ui components onto arbitrary existing screens. It comes with a helper system that allows easily locating existing vanilla widgets on the screen, as well as the option to align your own components relative to them
### Screen Handler Properties and Messages
The new `createProperty` along with `addServerboundMessage` and `addClientboundMessage` methods injected into `ScreenHandler` allow for a significant simplification of screen networking. Everything owo can serialize by default is supported out of the box for properties, which automatically get synchronized to the client, and for messages the same rules apply as for standard packets in an `OwoNetChannel`. As always, if a serializer is missing you can add your own via `PacketBufSerializer.register(...)`
This system should completely eliminate the need for externally defined networking, everything can be done directly inside the screen handler
## Changes
### ItemGroup API
- Existing item groups can now be extended with additional sub-tabs and buttons via mod data
- The name of a sub-tab is now displayed after the name of the item group, given that the tab does not have the new `primary` attribute
- Each sub-tab can now declare its contained items more rigorously, as they now define a callback which gets executed to populate the group
- [1.19.3 only] `OwoItemGroup`s now define their icon in terms of an owo `Icon`, meaning you are no longer restricted to just item stacks
### UI
- Sliders have been migrated to use event streams just like other input events and gained the new `slideEnd` event stream which gets invoked when the user releases the slider handle
- `apply_ContentSizing` in `BaseComponent` has been replaced by `determnine_ContentSizing` which now returns the content size instead of applying it directly
Moreover, the layout algorithm has received a major optimization that improves layout times in complex screens **by up to 560%**
### Config
- Additionally to the existing method, enum config options can now be translated on a per-config instead of a per-option level
- When adding a new entry to a list config option while it isn't expanded, the list now opens itself and focuses the new entry (#68)
- The previously private mechanism for registering config screen providers used by the `@Modmenu` annotation has been made public as `ConfigScreen#registerProvider`. This means that any potential custom config screen implementations can now be easily registered without needing an additional dependency on modmenu
### Misc
- The `owo.forceDisableDebug` system property is now deprecated and superseded by simply setting `owo.debug` to `false`
## Fixes
### UI
- Scrollbars can no longer exceed the size of the container
- When dragging the scrollbar in a precisely filled scroll container, the content no longer becomes invisible
- All button renderers now properly draw with depth testing enabled
- Text boxes, more specifically `TextFieldWidget`, now properly respond to focus events
- The UI Interaction sound event is no longer added to the respective registry, which means that client-side mods which use owo no longer cause registry sync to fail (#72)
- Animations on parent components no longer update twice per frame
### Config
- Section headers applied to `@Nest` options now show up properly
- The config screen no longer attempts to apply constraints placed on `List` config options to that lists elements (#69)
- owo is inherently funny
### Misc
- owo no longer crashes when run on a dev server
### Removed deprecated elements
- `TexturedButtonComponent`, superseded by `ButtonComponent.Renderer#texture(...)`
- All methods in `Components` which returned `ButtonWidget`, superseded by `ButtonComponent`
- `ScreenUtils#generateSlotGrid` and `ScreenUtils#generatePlayerSlots`, superseded by `SlotGenerator`
- `ScrollContainer.scrollbarColor`, superseded by `ScrollContainer.Scrollbar#color(...)`
### UI
- Cursor styling functionality from `OwoUIAdapter` is now available globally via the new **CursorAdapter** abstraction, which also provides the implementation for owo-ui
- The new **configure** method on `Component` enables inline configuration of component properties which don't return the component itself. Due to limitations with Java's generic parameters, it is required to manually specify the type of component you're configuring when calling this method, like so: `Components.label(...).<LabelComponent>configure(label -> label.mouseDown().subscribe(...))`. <br> Additionally, any state change events emitted during execution of such a configuration closure are delayed until the closure has completed - this enables large performance improvements when configuring multiple properties of a mounted component, including adding/removing children, as everything is consolidated into a single layout pass
- The flow layout has gained the new **gap** property, which adds the specified amount of dead space between each child
- Collapsible containers now expose the `onToggled` event stream as well as their current state
- All components can now easily look up the root component in their respective tree using the new `root()` method
- Text box max length can now be defined in XML with the `max-length` element
- The new **popFramesAndDraw** method on `ScissorStack`, allows escaping up to the given amount of clipping frames and execute the supplied draw call
- owo-ui colors can now generate a hex color string via the **asHexString** method
- Entity components can now have an additional **dynamic transform** applied before rendering the entity
- `Components#textBox(...)` no longer creates and returns a `TextFieldWidget`, instead it creates a **TextBoxComponent**. This is owo-ui's extension of the vanilla text field, which properly sizes itself if the background is disabled and provides the **onChanged** event stream. This stream only emits events when the text in the box *actually changes*, unlike the vanilla change listener
### Config
- The config screen now includes a search bar which allows searching through all options and sections by name and value. This search function acts like search in a text editor - you enter your query, then press enter, after which you can inspect all matches individually by pressing enter again
- The new client-side `/owo-config` command can open all config screens for which a provider is registered, even when modmenu is not installed
- `Set<T>` is now a supported type for config options
### UI - Layers
Built on top of owo-ui, a new system called **Layers** has been introduced. This generic API allows adding, or layering if you will, owo-ui components onto arbitrary existing screens. It comes with a helper system that allows easily locating existing vanilla widgets on the screen, as well as the option to align your own components relative to them
### Screen Handler Properties and Messages
The new `createProperty` along with `addServerboundMessage` and `addClientboundMessage` methods injected into `ScreenHandler` allow for a significant simplification of screen networking. Everything owo can serialize by default is supported out of the box for properties, which automatically get synchronized to the client, and for messages the same rules apply as for standard packets in an `OwoNetChannel`. As always, if a serializer is missing you can add your own via `PacketBufSerializer.register(...)`
This system should completely eliminate the need for externally defined networking, everything can be done directly inside the screen handler
## Changes
### ItemGroup API
- Existing item groups can now be extended with additional sub-tabs and buttons via mod data
- The name of a sub-tab is now displayed after the name of the item group, given that the tab does not have the new `primary` attribute
- Each sub-tab can now declare its contained items more rigorously, as they now define a callback which gets executed to populate the group
- [1.19.3 only] `OwoItemGroup`s now define their icon in terms of an owo `Icon`, meaning you are no longer restricted to just item stacks
### UI
- Sliders have been migrated to use event streams just like other input events and gained the new `slideEnd` event stream which gets invoked when the user releases the slider handle
- `apply_ContentSizing` in `BaseComponent` has been replaced by `determnine_ContentSizing` which now returns the content size instead of applying it directly
Moreover, the layout algorithm has received a major optimization that improves layout times in complex screens **by up to 560%**
### Config
- Additionally to the existing method, enum config options can now be translated on a per-config instead of a per-option level
- When adding a new entry to a list config option while it isn't expanded, the list now opens itself and focuses the new entry (#68)
- The previously private mechanism for registering config screen providers used by the `@Modmenu` annotation has been made public as `ConfigScreen#registerProvider`. This means that any potential custom config screen implementations can now be easily registered without needing an additional dependency on modmenu
### Misc
- The `owo.forceDisableDebug` system property is now deprecated and superseded by simply setting `owo.debug` to `false`
## Fixes
### UI
- Scrollbars can no longer exceed the size of the container
- When dragging the scrollbar in a precisely filled scroll container, the content no longer becomes invisible
- All button renderers now properly draw with depth testing enabled
- Text boxes, more specifically `TextFieldWidget`, now properly respond to focus events
- The UI Interaction sound event is no longer added to the respective registry, which means that client-side mods which use owo no longer cause registry sync to fail (#72)
- Animations on parent components no longer update twice per frame
### Config
- Section headers applied to `@Nest` options now show up properly
- The config screen no longer attempts to apply constraints placed on `List` config options to that lists elements (#69)
- owo is inherently funny
### Misc
- owo no longer crashes when run on a dev server
### Removed deprecated elements
- `TexturedButtonComponent`, superseded by `ButtonComponent.Renderer#texture(...)`
- All methods in `Components` which returned `ButtonWidget`, superseded by `ButtonComponent`
- `ScreenUtils#generateSlotGrid` and `ScreenUtils#generatePlayerSlots`, superseded by `SlotGenerator`
- `ScrollContainer.scrollbarColor`, superseded by `ScrollContainer.Scrollbar#color(...)`
展开
版本: 0.9.0+1.19
支持游戏: 1.19, 1.19.1, 1.19.2
类型: Fabric Quilt
Beta
下载次数: 665
[1.19+] oωo - 0.8.5
owo-lib-0.8.5+1.19.jar下载0.8.5+1.19#Release
### Changes
- The slot management methods on `BaseOwoHandledScreen` now have overloads which directly accept a slot instance instead of just and ID
- The Z-Offset of the inspector can now be customized in OwoUIAdapter
- The new ReiUIAdapter#wrap(WidgetWithBounds) allows embedding most if not all of REI's existing Widgets in an owo-ui-based REI display category
### Fixes
- Mouse coordinates are now passed with proper offsets when propagating mouse events to the focused component
- The slot management methods on `BaseOwoHandledScreen` now have overloads which directly accept a slot instance instead of just and ID
- The Z-Offset of the inspector can now be customized in OwoUIAdapter
- The new ReiUIAdapter#wrap(WidgetWithBounds) allows embedding most if not all of REI's existing Widgets in an owo-ui-based REI display category
### Fixes
- Mouse coordinates are now passed with proper offsets when propagating mouse events to the focused component
展开
版本: 0.8.5+1.19
支持游戏: 1.19, 1.19.1, 1.19.2
类型: Fabric Quilt
Release
下载次数: 42,295
[1.19+] oωo - 0.8.4
owo-lib-0.8.4+1.19.jar下载0.8.4+1.19#Release
### Changes
- Texture components have a new property - `blend`. When this is enabled, OpenGL alpha blending is properly set up and you can use translucent textures
- All synced config options are now synced in `INFORM_SERVER` fashion even when playing singleplayer
### Fixes
- The client-only `renderdoc` command is no longer registered on the server, allowing you to start servers with owo in debug mode again
- The `visible-area` declaration in the UI Model XML schema no longer requires all values to be specified
- The intersection comparisons used for mouse events and component visibility checks no longer over-account by one pixel
- String config options can now contain backslashes (#59)
- Texture components have a new property - `blend`. When this is enabled, OpenGL alpha blending is properly set up and you can use translucent textures
- All synced config options are now synced in `INFORM_SERVER` fashion even when playing singleplayer
### Fixes
- The client-only `renderdoc` command is no longer registered on the server, allowing you to start servers with owo in debug mode again
- The `visible-area` declaration in the UI Model XML schema no longer requires all values to be specified
- The intersection comparisons used for mouse events and component visibility checks no longer over-account by one pixel
- String config options can now contain backslashes (#59)
展开
版本: 0.8.4+1.19
支持游戏: 1.19, 1.19.1, 1.19.2
类型: Fabric Quilt
Release
下载次数: 244
[1.19+] oωo - 0.8.3
owo-lib-0.8.3+1.19.jar下载0.8.3+1.19#Release
## Changes
### Component customization
- Button rendering can now be completely customized, with a new flat renderer available among the defaults. This also means `TexturedButtonComponent` is now deprecated and superseded by the `texture` button renderer
- Scrollbar rendering is now fully customizable as well. By default, this includes the two types of vanilla scrollbar used in game menus and the creative inventory screen as well as the default flat owo-ui scrollbar. Scroll containers can now also define an increment by which they are scrolled and the length of the scrollbar can be set to a fixed value
- owo-ui now features the `NinePatchRenderer` utility, which can draw a nine-patch style texture in both tiled and stretched mode with next to no performance impact. This is used to enable the new scrollbar rendering and also allows buttons to scale to arbitrary sizes, contrary to the vanilla implementation. As it is also used to draw the panel surface, performance on all screens that use panels should be improved
### RenderDoc integration
When RenderDoc is injected into a game instance with owo installed, you can now take advantage of comprehensive bindings to RenderDoc API. In-game this enables the new `/renderdoc` client command which opens a screen that lets you configure the RenderDoc overlay as well as take captures and launch the Replay UI. Additionally, when in an owo screen, CTRL+ALT+R can create a capture of only the draw calls relevant to screen - check out the docs over at https://docs.wispforest.io/owo/renderdoc/
## Fixes
### owo-ui
- Scroll containers now properly account for their child's margins and mount it with the current scroll position already applied
- Named text colors no longer need to be intentionally misspelled to get parsed properly
- The inspector can no longer go offscreen
- Vanilla widgets now properly propagate the focus events
- Component visiblity is now checked with the model view transform applied
- Labels no longer cause unnecessary state updates
- Tooltips now properly respect overflow clipping and component visibility
- Checkboxes now properly emit all checked/unchecked events
### Other
- `@Nest` config entries can now have the same name as their class (#52)
- sentinel now always runs in console-mode on macOS (#51)
### Component customization
- Button rendering can now be completely customized, with a new flat renderer available among the defaults. This also means `TexturedButtonComponent` is now deprecated and superseded by the `texture` button renderer
- Scrollbar rendering is now fully customizable as well. By default, this includes the two types of vanilla scrollbar used in game menus and the creative inventory screen as well as the default flat owo-ui scrollbar. Scroll containers can now also define an increment by which they are scrolled and the length of the scrollbar can be set to a fixed value
- owo-ui now features the `NinePatchRenderer` utility, which can draw a nine-patch style texture in both tiled and stretched mode with next to no performance impact. This is used to enable the new scrollbar rendering and also allows buttons to scale to arbitrary sizes, contrary to the vanilla implementation. As it is also used to draw the panel surface, performance on all screens that use panels should be improved
### RenderDoc integration
When RenderDoc is injected into a game instance with owo installed, you can now take advantage of comprehensive bindings to RenderDoc API. In-game this enables the new `/renderdoc` client command which opens a screen that lets you configure the RenderDoc overlay as well as take captures and launch the Replay UI. Additionally, when in an owo screen, CTRL+ALT+R can create a capture of only the draw calls relevant to screen - check out the docs over at https://docs.wispforest.io/owo/renderdoc/
## Fixes
### owo-ui
- Scroll containers now properly account for their child's margins and mount it with the current scroll position already applied
- Named text colors no longer need to be intentionally misspelled to get parsed properly
- The inspector can no longer go offscreen
- Vanilla widgets now properly propagate the focus events
- Component visiblity is now checked with the model view transform applied
- Labels no longer cause unnecessary state updates
- Tooltips now properly respect overflow clipping and component visibility
- Checkboxes now properly emit all checked/unchecked events
### Other
- `@Nest` config entries can now have the same name as their class (#52)
- sentinel now always runs in console-mode on macOS (#51)
展开
版本: 0.8.3+1.19
支持游戏: 1.19, 1.19.1, 1.19.2
类型: Fabric Quilt
Release
下载次数: 426
[1.19+] oωo - 0.8.2
owo-lib-0.8.2+1.19.jar下载0.8.2+1.19#Beta
### Changes
- The biggest change in this release is the addition of the SlotComponent, a simple wrapper for handled screen slots. You can obtain the instance for a given slot via the `slotAsComponent(int)` method on `BaseOwoHandledScreen`. It will then always move the linked slot to where the component gets placed by the layout and apply clipping properly
- Config wrappers now create the full file path of a config - this allows properly grouping multiple configs in a directory
### Fixes
- The Modrinth item group icon now matches current branding
- Status effects in the creative inventory now properly shift when there are item group buttons in the way
- Pressing tab in an owo item group with buttons or tabs no longer renders a tooltip whereever the cursor is
- The biggest change in this release is the addition of the SlotComponent, a simple wrapper for handled screen slots. You can obtain the instance for a given slot via the `slotAsComponent(int)` method on `BaseOwoHandledScreen`. It will then always move the linked slot to where the component gets placed by the layout and apply clipping properly
- Config wrappers now create the full file path of a config - this allows properly grouping multiple configs in a directory
### Fixes
- The Modrinth item group icon now matches current branding
- Status effects in the creative inventory now properly shift when there are item group buttons in the way
- Pressing tab in an owo item group with buttons or tabs no longer renders a tooltip whereever the cursor is
展开
版本: 0.8.2+1.19
支持游戏: 1.19, 1.19.1, 1.19.2
类型: Fabric Quilt
Beta
下载次数: 21,116
[1.19+] oωo - 0.8.1
owo-lib-0.8.1+1.19.jar下载0.8.1+1.19#Beta
## Fixes
- The config Annotation Processor no longer crashes when you have a config model without any nested objects
- The config Annotation Processor no longer crashes when you have a config model without any nested objects
展开
版本: 0.8.1+1.19
支持游戏: 1.19, 1.19.1, 1.19.2
类型: Fabric Quilt
Beta
下载次数: 703
[1.19+] oωo - 0.8.0
owo-lib-0.8.0+1.19.jar下载0.8.0+1.19#Beta
### The 0.8 Update
This release marks the first public beta of owo-lib 0.8, the UI and Config update. As that name suggests the primary new features in this release are the owo-ui GUI framework and the owo-config configuration and screen generation library. You can find their respective documentation here:
- owo-ui: https://docs.wispforest.io/owo/ui/
- owo-config: https://docs.wispforest.io/owo/config/
Both of these additions are highly complex and introduce potential bugs. There has been extensive testing to try and ensure a smooth start, but of course we cannot guarantee that everything has been squashed. So while we consider it more than safe enough to use, keep this in mind and please report any bugs you may find.
### Other changes
There have also been a number of smaller refactors and new deprecations across the entire library, notably ScreenUtils#generatePlayerSlots has been deprecated and replaced with the more flexible and powerful SlotGenerator utility. owo-sentinel has finally been fixed to work properly in 1.19 environments and the rich translations feature is now fully compatible with Server Translations API.
Another small new feature, courtesy of [Blodhgarm](https://github.com/Dragon-Seeker), is the Recipe-specific Remainders API which, as the name suggests, enables recipe remainders to be defined and applied on a per-recipe level instead of globally.
### Deprecated APIs
As this is a large release, the majority if not all previously deprecated APIs have been stripped and/or partly refactored. The majority of mods should be fine, although if you haven't updated in a while there's potential you need to fix some things.
This release marks the first public beta of owo-lib 0.8, the UI and Config update. As that name suggests the primary new features in this release are the owo-ui GUI framework and the owo-config configuration and screen generation library. You can find their respective documentation here:
- owo-ui: https://docs.wispforest.io/owo/ui/
- owo-config: https://docs.wispforest.io/owo/config/
Both of these additions are highly complex and introduce potential bugs. There has been extensive testing to try and ensure a smooth start, but of course we cannot guarantee that everything has been squashed. So while we consider it more than safe enough to use, keep this in mind and please report any bugs you may find.
### Other changes
There have also been a number of smaller refactors and new deprecations across the entire library, notably ScreenUtils#generatePlayerSlots has been deprecated and replaced with the more flexible and powerful SlotGenerator utility. owo-sentinel has finally been fixed to work properly in 1.19 environments and the rich translations feature is now fully compatible with Server Translations API.
Another small new feature, courtesy of [Blodhgarm](https://github.com/Dragon-Seeker), is the Recipe-specific Remainders API which, as the name suggests, enables recipe remainders to be defined and applied on a per-recipe level instead of globally.
### Deprecated APIs
As this is a large release, the majority if not all previously deprecated APIs have been stripped and/or partly refactored. The majority of mods should be fine, although if you haven't updated in a while there's potential you need to fix some things.
展开
版本: 0.8.0+1.19
支持游戏: 1.19, 1.19.1, 1.19.2
类型: Fabric Quilt
Beta
下载次数: 823
[1.18.2] oωo - 0.7.2
owo-lib-0.7.2-no-cme+1.18.jar下载0.7.2-no-cme+1.18#Beta
## Changes
- Refer to changelog for [0.7.3+1.19](https://modrinth.com/mod/owo-lib/version/0.7.3+1.19)
## Fixes
- CME during oregen should be fixed
- Refer to changelog for [0.7.3+1.19](https://modrinth.com/mod/owo-lib/version/0.7.3+1.19)
## Fixes
- CME during oregen should be fixed
展开
版本: 0.7.2-no-cme+1.18
支持游戏: 1.18.2
类型: Fabric
Beta
下载次数: 19,091
[1.19] oωo - 0.7.3
owo-lib-0.7.3+1.19.jar下载0.7.3+1.19#Release
## Changes
- /heal and /damage now report the effective HP change
- Argument order in VectorSerializer now matches convention, store and storef have been renamed to put and putf
- sentinel is now intialized in a mixin plugin
- owo.text has been added - an experimental, currently undocumented API for making custom TextContent types
## Fixes
- Copenhagen now uses a ThreadLocal map to avoid concurrency issues in worldgen
- WorldOps.teleportToDimension no longer swaps yaw and pitch
- /heal and /damage now report the effective HP change
- Argument order in VectorSerializer now matches convention, store and storef have been renamed to put and putf
- sentinel is now intialized in a mixin plugin
- owo.text has been added - an experimental, currently undocumented API for making custom TextContent types
## Fixes
- Copenhagen now uses a ThreadLocal map to avoid concurrency issues in worldgen
- WorldOps.teleportToDimension no longer swaps yaw and pitch
展开
版本: 0.7.3+1.19
支持游戏: 1.19
类型: Fabric
Release
下载次数: 2,409
[1.18.2] oωo - 0.7.2
owo-lib-0.7.2+1.18.jar下载0.7.2+1.18#Release
Allow using custom stack generators with owo item groups
展开
版本: 0.7.2+1.18
支持游戏: 1.18.2
类型: Fabric
Release
下载次数: 13,250
[1.18.2] oωo - 0.7.1
owo-lib-0.7.1+1.18.jar下载0.7.1+1.18#Release
NbtKey API for basic NBT serialization duties like in Item implementations and improved debug commands
展开
版本: 0.7.1+1.18
支持游戏: 1.18.2
类型: Fabric
Release
下载次数: 1,863
[1.18.2] oωo - 0.7.0
owo-lib-0.7.0+1.18.jar下载0.7.0+1.18#Release
Headless environment support for sentinel, updated TagInjector framework, fix compatibility with Quilt Loader, add RegistryAccess, allow ClientParticles to randomize velocity on only one axis, deprecate @ElementType and @MapTypes, relocate RegistryHelper creation, add deferred packet and particle system handlers, add dispatched and polymorphic packet serializer framework, freeze particle systems
展开
版本: 0.7.0+1.18
支持游戏: 1.18.2
类型: Fabric
Release
下载次数: 773
[1.18.2] oωo - 0.6.0
owo-lib-0.6.0+1.18.jar下载0.6.0+1.18#Release
Optional channels, automatic generics extraction, removed deprecated ServerParticles and field processing api
展开
版本: 0.6.0+1.18
支持游戏: 1.18.2
类型: Fabric
Release
下载次数: 1,234
[1.18.2] owo - 0.5.4
owo-lib-0.5.4+1.18.jar下载0.5.4+1.18#Release
First public release for 1.18.2
展开
版本: 0.5.4+1.18
支持游戏: 1.18.2
类型: Fabric
Release
下载次数: 297
[1.18+] oωo - 0.5.2
owo-lib-0.5.2+1.18.jar下载0.5.2+1.18#Release
Update to loom 0.11, add default serializers for ChunkPos and ParticleEffect, add 'query_poi' debug command, make text field injection trert didgts as word characters
展开
版本: 0.5.2+1.18
支持游戏: 1.18, 1.18.1
类型: Fabric
Release
下载次数: 2,316
[1.18+] oωo - 0.5.1
owo-lib-0.5.1+1.18.jar下载0.5.1+1.18#Release
Fix handshake stalling the client when the server is incompatible, freeze channels after mod init, rename particle system exectute method to spawn, fix namespace of enum argument type
展开
版本: 0.5.1+1.18
支持游戏: 1.18, 1.18.1
类型: Fabric
Release
下载次数: 629
[1.18+] oωo - 0.5.0
owo-lib-0.5.0+1.18.jar下载0.5.0+1.18#Release
Add handshake support to avoid joining incompatible servers, add offline data api, add new particle api, fix primitive array serialization
展开
版本: 0.5.0+1.18
支持游戏: 1.18, 1.18.1
类型: Fabric
Release
下载次数: 239
[1.18+] oωo - 0.4.0
owo-lib-0.4.0+1.18.jar下载0.4.0+1.18#Release
Added networking API, some additions to ReflectionUtils
展开
版本: 0.4.0+1.18
支持游戏: 1.18, 1.18.1
类型: Fabric
Release
下载次数: 134
[1.18+] oωo - 0.3.14
owo-lib-0.3.14+1.18.jar下载0.3.14+1.18#Release
Fix crash caused by an action registered via the RegistryHelper registering a new entry into its registry, make KawaiiUtil part of the public API
展开
版本: 0.3.14+1.18
支持游戏: 1.18, 1.18.1
类型: Fabric
Release
下载次数: 168
[1.18+] oωo - 0.3.13
owo-lib-0.3.13+1.18.jar下载0.3.13+1.18#Release
API change in FieldProcessingSubject and its dependents - all methods that got passed ID and value now also get passed the field object
展开
版本: 0.3.13+1.18
支持游戏: 1.18, 1.18.1
类型: Fabric
Release
下载次数: 103
[1.18+] oωo - 0.3.12
owo-lib-0.3.12+1.18.jar下载0.3.12+1.18#Release
Fix compat crash on servers if "OperatingSystem" was classloaded
展开
版本: 0.3.12+1.18
支持游戏: 1.18, 1.18.1
类型: Fabric
Release
下载次数: 120
[1.18+] oωo - 0.3.11
owo-lib-0.3.11+1.18.jar下载0.3.11+1.18#Release
Fix crashing servers through item group init, allow agreeing to the eula in the server console
展开
版本: 0.3.11+1.18
支持游戏: 1.18, 1.18.1
类型: Fabric
Release
下载次数: 106
[1.18+] oωo - 0.3.10
owo-lib-0.3.10+1.18.jar下载0.3.10+1.18#Release
Fix crash when using auto registry on a class with null fields, add /logger debug command for changing the global logging level at runtime, make opening links and files be handled off-thread to avoid stalling the client, make it possible for owo item groups to display only one tab, use the slider from the custom texture
展开
版本: 0.3.10+1.18
支持游戏: 1.18, 1.18.1
类型: Fabric
Release
下载次数: 118
[1.18] oωo - 0.3.8
owo-lib-0.3.8+1.18.jar下载0.3.8+1.18#Release
Port to 1.18 proper, fix hard-requiring REI in dev
展开
版本: 0.3.8+1.18
支持游戏: 1.18
类型: Fabric
Release
下载次数: 237
[1.18-pre8] oωo - 0.3.7
owo-lib-0.3.7+1.18.jar下载0.3.7+1.18#Release
Fix TagInjector affecting all tag types
展开
版本: 0.3.7+1.18
支持游戏: 1.18-pre8
类型: Fabric
Release
下载次数: 99
[1.18-pre8] oωo - 0.3.6
owo-lib-0.3.6+1.18.jar下载0.3.6+1.18#Release
Added TagInjector util
展开
版本: 0.3.6+1.18
支持游戏: 1.18-pre8
类型: Fabric
Release
下载次数: 101
[1.18-pre8] oωo - 0.3.5
owo-lib-0.3.5+1.18.jar下载0.3.5+1.18#Release
I had to fix so many stupid mistakes while porting it's actually amazing
展开
版本: 0.3.5+1.18
支持游戏: 1.18-pre8
类型: Fabric
Release
下载次数: 105
[1.17+] oωo - 0.3.2
owo-lib-0.3.2+1.17.jar下载0.3.2+1.17#Release
Added teleport util
展开
版本: 0.3.2+1.17
支持游戏: 1.17, 1.17.1
类型: Fabric
Release
下载次数: 1,658
[21w43a] oωo - 0.3.0
owo-0.3.0+1.18.jar下载0.3.0+1.18#Alpha
First 1.18 port
展开
版本: 0.3.0+1.18
支持游戏: 21w43a
类型: Fabric
Alpha
下载次数: 156
[1.17+] oωo - 0.3.1
owo-0.3.1.jar下载0.3.1#Release
Added animated texture support for tab icons, added support for loading mod data from "moddata"
展开
版本: 0.3.1
支持游戏: 1.17, 1.17.1
类型: Fabric
Release
下载次数: 132
[1.17+] oωo - 0.3.0
owo-0.3.0.jar下载0.3.0#Release
owo-0.3.0-dev.jar下载0.3.0#Release
owo-0.3.0-sources-dev.jar下载0.3.0#Release
owo-0.3.0-sources.jar下载0.3.0#Release
Mid-sized feature update with breaking changes, for changelog see https://github.com/glisco03/owo-lib/releases/tag/0.3.0-fixed-rei
展开
版本: 0.3.0
支持游戏: 1.17, 1.17.1
类型: Fabric
Release
下载次数: 348
[1.17+] oωo - 0.2.1
owo-0.2.1.jar下载0.2.1#Release
Don't break when someone tries to use json groups
展开
版本: 0.2.1
支持游戏: 1.17, 1.17.1
类型: Fabric
Release
下载次数: 100
[1.17+] oωo 0.2.0
owo-0.2.0.jar下载0.2.0#Beta
owo-0.2.0-dev.jar下载0.2.0#Beta
owo-0.2.0-sources-dev.jar下载0.2.0#Beta
owo-0.2.0-sources.jar下载0.2.0#Beta
展开
版本: 0.2.0
支持游戏: 1.17, 1.17.1
类型: Fabric
Beta
下载次数: 278
收录