- Added priority attribute to Linear Layout for setting measurement priority.
- Fixed an issue where the dedicated server failed to load Mod.
- Optimized layout issues for some components.
Minecraftversion updated to1.21.11- Code structure optimization
- Minecraft version updated to 1.21.10, and support for Neoforge added
- Added fade-in animation to screens
- Temporarily removed screen blur settings
Summary of Version 0.8.5 Updates
Main Updates
1. Rich Text Parser Refactoring
- Renamed
richtexttoinline_style_textfor unified naming style and improved readability - Modified related package paths and class names, including renaming
RichTextto [InlineStyleTextParser] - Optimized the [Text] class by adding a new [inlineStyle] method for parsing inline styled text
- Improved user interaction in numeric editors
2. GUI Component Improvements
- Numeric Editor Optimization: Enhanced user experience with input validation and color feedback
- State Management Optimization: Improved state binding and notification mechanisms in multiple components
- Scrolling Component Improvements: Optimized scroll bar rendering logic for Scroller, TextArea, TableContainer, and ListContainer
- Text Component Enhancement: Added [bindState] method to TextArea and TextEditor for simplified state binding
3. Configuration System Enhancement
- Added new [ConfigKeyCode] configuration type
- Optimized configuration wrapper state management and rendering logic
- Improved configuration container interface with grouping and search functionality
4. Input System Improvements
- Optimized key binding conflict detection logic
- Added new key setting components (KeyCodeSetterButton, KeyBindSetterButton, etc.)
5. GUI Rendering Optimization
- Adjusted TextRender default drawing layer to SEE_THROUGH
- Optimized icon component to use State instead of single color values
- Improved screen rendering task execution mechanism using CopyOnWriteArrayList and AtomicBoolean
6. Other Improvements
- Added getUserData related convenience methods to GUI context
- Fixed slider component initialization issues
- Added new icon textures (COPY, PASTE, CUT)
- Fixed modifier parameter type issues in multiple components
Key Technical Changes
Technical Refactoring
- Extensive package and class name renaming for unified naming conventions
- Optimized state management system with additional convenience extension properties and methods
User Experience Improvements
- Added grouping navigation and search functionality to configuration interface
- Added input validation and instant feedback to text editors
- Scroll bars now only display when needed, improving interface aesthetics
Performance Optimizations
- Improved screen task execution mechanism for better responsiveness
- Optimized component rendering logic to avoid unnecessary redraws
These updates significantly enhance the mod's stability and user experience while providing developers with more powerful GUI building tools.
Version 0.8.4 Changelog
✨ New Features
- Inline-Style Text Parsing:
- Introduced a brand-new inline-style text parser (
InlineStyleTextParser). - You can now define styles directly within your text using the
&{...}syntax, e.g.,&{#66CCFF,b,i}Hello IbukiGourd.
- Introduced a brand-new inline-style text parser (
🚀 Optimizations
- GUI System:
- Refactored and optimized the state-binding and notification mechanisms for
TextAreaandTextEditor. - Improved state management for
IconWidget, which now uses aStateobject to handle color changes, enhancing responsiveness and maintainability. - Added color parameters to
LockButtonto allow for more flexible customization. - Enhanced the user interaction experience for the number editor.
- Adjusted the default rendering layer of
TextRendertoSEE_THROUGH.
- Refactored and optimized the state-binding and notification mechanisms for
- Debugging: Improved the display logic for debugging information.
🐞 Bug Fixes
- Fixed errors that could occur when calling certain rendering functions.
- Resolved several issues within the text DSL.
fix some bug
Fix some bugs
-
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
customDatato a more semantically meaningful name:userData.
- Renamed
-
Enhanced Components
- Updated the implementation of
ButtonDsl. - Introduced new
ItemIconwidget for better icon rendering support.
- Updated the implementation of
-
Rendering Improvements
- Added
runWithZOffsetmethod to ensure key elements like tooltips, Toasts, and popups are rendered on top layers.
- Added
Version Update
- Mod version: Upgraded from
0.7.19+betato0.8.0+beta - Nebula library version: Upgraded from
0.2.22to0.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
translateTextWithParentmethod 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.paddingandModifier.marginmethods to allow selective modification of padding or margin on individual sides.
- Extended
Gui code optimization and bug fix
- Fixed the issue of not serializing mouse buttons correctly
- Code optimization
fix: The issue where TextLabel fails to render properly when the ModernUI Mod text engine is enabled.
- Widget: Text labels now support
hoverEventdata, 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
nebulato version0.2.22.
- Updated
- Selector Component: Added
onSelectedcallback, support for custom selection rules, improved variable naming, and enhanced component flexibility. - Tab Component: Added
initialparameter 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.
Code optimization
fix some bug


