Skip to content

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)