StructureLib
15 merged pull requests.
New Features
- #66 Enhanced GuiScreenConfigureChannels with confirmation UI for channel clearing. Added localization strings in English and Russian. - @Eldrinn-Elantey
- Added: confirmation step to Clear button
- #57 Added default getDescription() method to IStructureElement returning optional human-readable block names. Added withDescription() wrapper in StructureUtility and delegated through IStructureElementChain, LazyStructureElement, and all wrapper methods. All changes are backward-compatible. - @Luca-Guettinger
- Added: getDescription() method to IStructureElement, withDescription() wrapper
- #56 Enhanced StructureUtility ofBlock method to provide descriptive error messages and added corresponding localization strings. - @evgengoldwar
- Added: block placement hint messages
- #53 Added tab-key autocomplete handler to GuiScreenConfigureChannels. - @Worive
- Added: tab autocomplete for channel names
- #49 Extended IStructureDefinition with iteration capability and enhanced IStructureWalker to support structure enumeration. - @RecursivePineapple
- Added: Structure iteration interface methods, IStructureWalker enhancements
New Content
- #52 Replaced dot-based hint textures in BlockHint with numbered variants (HINT_0 through HINT_11, plus HINT_AIR and HINT_DEFAULT) and updated BlockHint logic to support numeric display. - @UltraProdigy
- Added: numbered hint textures
Changes
- #67 Updated subchannel color localization strings from orange (§6) to aqua (§b) across English, Russian, and Chinese language files. - @DylanTaylor1
- #60 Modified getDescription() signature to accept context parameter across IStructureElement, IStructureElementChain, LazyStructureElement, and StructureUtility. Breaking to PR #57 only. - @Luca-Guettinger
- Migration: Update any mod using StructureLib's getDescription method to pass the required Context parameter.
- #59 Enhanced description fallback logic in StructureUtility. - @Luca-Guettinger
Bug Fixes
- #68 Modified StructureUtility.getBlocksToPlace to read channel from context, ensuring consistent behavior with survival placement. - @AnsonYeung
- Fixed: NEI preview showing wrong blocks with glass tier
- #63 Made SKIP short-circuit ofChain to prevent fallback alternatives from replacing valid blocks. Added PlaceResult.REJECT_CONTINUE for unhandled cases. Updated SurvivalBuildStructureWalker and default methods to use REJECT_CONTINUE instead of SKIP. - @Yoshy2002
- Added: PlaceResult.REJECT_CONTINUE
- Fixed: survival placement overwriting valid blocks
- #51 Added check to disable Add button when channel key field is empty in GuiScreenConfigureChannels. - @wlhlm
- Fixed: Channel configuration GUI crash on empty key
- Closes GTNH#22838
- #48 Fixed method visibility conflict in GuiScreenConfigureChannels where a private getButtonList accessor conflicted with InventoryBogoSorter's GuiScreenAccessor mixin on Java 8. - @wlhlm
- Fixed: Java 8 Hologram Projector GUI crash
- Closes GTNH#21124
Performance
- #54 Optimized StructureDefinition.addShape method, reducing benchmark time from 161ms to 60.7ms. - @danyadev
Internal / Refactor
- #61 Refactored multiple source files to use modern Java syntax, updated CI workflow configuration, added LICENSE and LICENSE.LESSER files, and cleaned up build configuration in addon.gradle. - @Nikolay-Sitnikov
- Added: LICENSE and LICENSE.LESSER files
- Removed: unused code and unnecessary @SuppressWarnings
Contributors
Everyone who authored, reviewed or co-authored a change on this page, with how many of them:
@Glease (6), @AnsonYeung (4), @Luca-Guettinger (4), @RecursivePineapple (2), @UltraProdigy (2), @wlhlm (2), @Yoshy2002 (2), @Alexdoru (1), @chrombread (1), @cubefury (1), @danyadev (1), @DylanTaylor1 (1), @Eldrinn-Elantey (1), @evgengoldwar (1), @leagris (1), @Nikolay-Sitnikov (1), @sisyphussy (1), @Spicierspace153 (1), @Worive (1)