-
Improved layout logic in
AbsoluteLayout
,BoxLayout
,LinearLayout
, andListLayout
. -
Added Z-axis offset handling to enhance rendering of layered UI components.
-
Unified Data Storage Interface
- Renamed
customData
to a more semantically meaningful name:userData
.
- Renamed
-
Enhanced Components
- Updated the implementation of
ButtonDsl
. - Introduced new
ItemIcon
widget for better icon rendering support.
- Updated the implementation of
-
Rendering Improvements
- Added
runWithZOffset
method to ensure key elements like tooltips, Toasts, and popups are rendered on top layers.
- Added
Version Update
- Mod version: Upgraded from
0.7.19+beta
to0.8.0+beta
- Nebula library version: Upgraded from
0.2.22
to0.2.23
Functional Improvements and Code Refactoring
-
Refactored layout logic:
- Fixed a long-standing issue by swapping and unifying the implementations of [RowLayout] and [ColumnLayout].
- Introduced a new [TableLayout] class to support table-style layouts.
-
Optimized text size calculation:
- Simplified string concatenation in [ConfigKeyBindBoolean.kt]by using the
translateTextWithParent
method instead of repetitive inline concatenation.
- Simplified string concatenation in [ConfigKeyBindBoolean.kt]by using the
-
Introduced GUIWrapper utility class:
- Added a generic GUI wrapper in [GUIWrapper.kt](file://D:\Develop\workspace\minecraft\ibuki_gourd\src\client\kotlin\moe\forpleuvoir\ibukigourd\config\userdata\GUIWrapper.kt), enabling dynamic UI binding for configuration items via scopes.
-
Improved naming conventions for layout scopes:
- Renamed certain layout scope interfaces for better clarity, such as renaming [ColumnListLayoutScope] to [RowListLayoutScope] to align with actual functionality.
-
Enhanced flexibility of Modifier APIs:
- Extended
Modifier.padding
andModifier.margin
methods to allow selective modification of padding or margin on individual sides.
- Extended
- Widget: Text labels now support
hoverEvent
data, adding hover tooltips to themselves. - Simplified Code Structure: Refactored the configuration wrappers for string lists and string key-value pair lists.
- Improved Configuration Flexibility: Increased the limit for configuration containers, allowing users to configure more options.
- New Layout Features: Added a constraint-unlocking feature to
ListLayout
, providing more flexible interface layout controls. - Improved Code Readability and Maintainability: Fixed spelling errors in the code, extracted constants to reduce the use of magic numbers, and optimized some parts of the code logic.
-
Keybind Improvements:
- Enhanced conflict detection logic with hover tooltips.
- Keybind class now supports custom key names.
- Optimized component state management and logic.
-
New Features:
- Added an update interval configuration for text labels.
-
UI Enhancements:
- Support displaying the first configuration item in container wrappers.
-
Fixes:
- Fixed size issues with Boolean configuration wrappers.
- Corrected localization translations for newly added key-value pairs.
-
Dependency Update:
- Updated
nebula
to version0.2.22
.
- Updated
- Selector Component: Added
onSelected
callback, support for custom selection rules, improved variable naming, and enhanced component flexibility. - Tab Component: Added
initial
parameter to support default tab selection logic. - Text Components: Updated default rendering layer to
SEE_THROUGH
. - Configuration Logic: Enhanced key binding and value change detection logic, fixed issues with serialization and deep copy.
- Other Improvements: Removed redundant code, improved click event layer validation, and improved serialization support.