Binnie
40 merged pull requests.
New Features
- #106 Added
ColorUtilsclass and updateddependencies.gradleto use newer GTNHLib version; integrated into NEI recipe handlers for database and incubator recipes. - @Ranzuu- Added: ColorUtils class
- #81 Added title localization keys and inventory slot texture definition to multiple window and control classes. - @Ranzuu
- Added: title localization, slot texture customization
Changes
- #114 Made PlatinumSludgeOverhaul changes static in ExtraBeeItems initialization. - @boubou19
- #105 Renamed all occurrences of 'Gingko' to 'Ginkgo' in enum values, class names, language files, and texture assets. - @Ranzuu
- Fixed: Ginkgo spelling
- Closes GTNH#25935
- #94 Added widget focus check to GuiCraftGUI before processing NEI keybinds. Updated dependency version. - @tiffit
- Fixed: NEI keybinds triggering during Compartment search
- #82 Updated ItemHoneyComb to use ore dict check instead of direct IC2 dust reference. - @C0bra5
- #79 Added repair blacklist flag to ItemSequence class. - @DarkShadow44
- Closes GTNH#22791
Bug Fixes
- #117 Replaced custom IArmorApiarist checks in ExtraBeesEffect with Forestry's ArmorApiaristHelper. - @FourIsTheNumber
- Removed: custom apiarist armor checks
- Fixed: GT Mechanical Armor + Apiarist Protection not working with Unstable effect
- Closes GTNH#26407
- #116 Revised ControlSlot logic to handle shift-drag operations and tool station interactions correctly. - @Pxx500
- Fixed: shift-drag with compartments, crafting station compatibility
- #115 Added OpenGL state cleanup in GuiCraftGUI search grid rendering. - @Algent
- Fixed: GL state leak in search grid
- #111 Added side check in
ComponentPowerReceptorto prevent client-side energy net operations. - @AnsonYeung- Fixed: Client-side EnergyTileUnloadEvent spam
- Closes GTNH#26211
- #107 Corrected loader check logic in
ManagerLiquidfor GT6 detection. - @felixfour- Fixed: GT6 compatibility check
- #103 Corrected liquid storage handling in
ContainerCraftGUIandTransferRequestto prevent duplication exploits. - @jordanamr- Fixed: Genetics machine liquid storage bugs, Item duplication vulnerability
- #99 Refactored ManagerLiquid fluid registration logic to prevent concurrent registration issues. - @Pxx500
- Fixed: Client crash during liquid nitrogen registration from ExtraBees
- Closes GTNH#25449
- #98 Added setHasSubtypes(true) and setMaxDamage(0) to ItemMetadata. Removed duplicate setMaxDamage(0) from ItemETSlab for consistency. - @ArcadiaBlues
- Added: setHasSubtypes registration to ItemMetadata
- Removed: Duplicate setMaxDamage from ItemETSlab
- Fixed: Botany glass and ceramics combining in inventory
- Closes GTNH#9512
- #97 Changed ComponentTankContainer.drain() to pass the requested fluid type to getTankIndexToDrain() instead of null, ensuring the correct tank is selected. This also fixes canDrain() which delegates to the same method. - @dipo33
- Fixed: Wrong fluid type drained from tanks, Incorrect canDrain() behavior, AE2 storage bus fluid mismatch and dupe exploit
- Closes GTNH#24843
- #96 Stored Renderer instance in Window and restored CraftGUI.render at the start of initGui() instead of relying on static state. Re-added initialization logic that was skipped due to hasBeenInitialised check. - @Eldrinn-Elantey
- Added: Window-level Renderer storage
- Fixed: Client crash when opening Field Kit, Client crash when closing Recipe Viewer, Client crash on Compartment GUI state loss
- Closes GTNH#24817, GTNH#24821
- #95 Cleared static CraftGUI state in Window.onClose() to break references preventing memory reclamation. - @Alexdoru
- Removed: Static world client reference in CraftGUI
- Fixed: World client memory leak caused by static CraftGUI
- #93 Corrected tooltip string handling in WindowCompartment. - @Ranzuu
- Fixed: Compartment help tooltip string display
- Closes GTNH#24625
- #92 Added concurrent modification protection to Lumbermill recipe iteration logic. - @maxashen
- Fixed: Concurrent modification exception in Lumbermill
- #90 Deleted unused
worldfield from RendererMachine class that was retained across screen changes. Updated constructor calls across MachinePackage, Compartment, AlvearyMachine, ExtraTreeMachine, PackageGeneticBase, and LabMachinePackage. - @Alexdoru- Removed: Unused world client field in RendererMachine
- Fixed: World client memory leak in RendererMachine
- #89 Corrected animation position variable assignments in AnalyserComponentFX, InoculatorComponentFX, PolymeriserComponentFX, SequencerComponentFX, and SplicerComponentFX that were being reset to zero. Fine-tuned offset values in IsolatorComponentFX. - @TweksTY
- Fixed: VFX appearing at 0,0,0 world coordinates, Isolator animation offset
- #87 Replaced ExtraBees config reference with registered GeneticsConfig in IsolatorComponentLogic. - @SmileYik
- Added: GeneticsConfig registration
- Removed: EBConfigMachines reference
- Fixed: isolator consumption chance configuration
- #85 Added float cast in ExtraTreeFruitGene#getRipeningStage to fix incorrect integer division that was rounding to zero. - @Ameobea
- Fixed: fruit tree yield bug
- #83 Corrected BlockCeramicBrick and MultipassBlockRenderer rendering logic; added compartments disable config flag. - @brandyyn
- Added: compartments disable config
- Fixed: ceramic tile rendering crashes, missing pixels in ceramic tiles
- #80 Implemented IBeeHousing in TileExtraBeeAlveary so mutation block requirements are correctly detected. - @TweksTY
- Fixed: bee mutation with ExtraBees alveary blocks
- #76 Modified SplicerComponentLogic to track processed larvae and allow output when serum depletes, with fallback handling for slot changes. - @DarkShadow44
- Added: larvae work tracking
- Fixed: larvae stuck in splicer
- Closes GTNH#22432
- #74 Corrected packet listener invocation in ContainerCraftGUI batched update logic. - @Glease
- Fixed: userless sequencer issue, batch update listeners
- Closes GTNH#21525
Performance
- #119 Optimized ItemBotany and FlowerTemplates to reduce temporary object allocations during NEI display. - @boubou19
- Fixed: allocation overhead
- #113 Added enum value caching in ItemInsulatedTube to avoid repeated
Enum.values()calls. - @boubou19 - #112 Added static caching of enum values arrays in multiple genetics and botany files. - @boubou19
- #110 Further optimizations across Widget, ControlTab, ContainerCraftGUI, GuiCraftGUI, and machine rendering, including reduced redraws, allocation optimization, and render state caching. - @Algent
- #109 Refactored inventory syncing to avoid batch sends, cached ListMap in compartment inventory, improved GUI refresh logic to once per frame, eliminated duplicate item rendering and tooltip rendering, reduced allocation churn in transfer requests. - @Algent
- Added: ListMap caching
- Fixed: Double rendering of dragged items, Double rendering of NEI tooltips, Excessive inventory syncing, Inefficient ListMap traversal
- #86 Added static enum value caches in EnumAcidity, EnumFlowerChromosome, EnumMoisture, and EnumSoilType; updated call sites. - @Alexdoru
- Added: enum value caches
- #84 Refactored inventory slot component logic and dependencies. - @Caedis
- #78 Optimized TileEntityMetadata#getItemStack to minimize temporary NBT compound creation. - @boubou19
- #77 Modified TileEntityMetadata#getItemStack to only add NBT damage tags when the value exceeds the vanilla short limit (32767), reducing runtime allocations from 3 million to 540 tags. - @Alexdoru
- Fixed: Excessive NBT compound allocation
Internal / Refactor
- #75 Removed runtime reflection over Binnie and child mods; items now explicitly registered in their respective modules. - @ah-OOG-ah
- Added: explicit item registration
- Removed: reflective item discovery
Chores
- #118 Corrected spelling in en_GB.lang and en_US.lang language files. - @UltraProdigy
- Fixed: avocado name typo
- Closes GTNH#26420
- #108 Relocated 73 .pdn files and sketches from
src/main/resourcestoart/directory; added .pdn binary rule to.gitattributesto prevent line-ending normalization. - @Eldrinn-Elantey- Removed: Paint.NET source files from jar, Unused art sketches from jar
Contributors
Everyone who authored, reviewed or co-authored a change on this page, with how many of them:
@boubou19 (10), @UltraProdigy (9), @Alexdoru (6), @Algent (5), @Dream-Master (5), @Ranzuu (5), @Caedis (3), @DarkShadow44 (3), @Ethryan (3), @Luca-Guettinger (3), @Eldrinn-Elantey (2), @Guvante (2), @Nikolay-Sitnikov (2), @Pxx500 (2), @tiffit (2), @TweksTY (2), @ah-OOG-ah (1), @Ameobea (1), @AnsonYeung (1), @ArcadiaBlues (1), @Auynonymous (1), @brandyyn (1), @C0bra5 (1), @chochem (1), @cubefury (1), @danyadev (1), @dipo33 (1), @felixfour (1), @FourIsTheNumber (1), @Glease (1), @jordanamr (1), @MalTeeez (1), @maxashen (1), @POPlol333 (1), @Ruling-0 (1), @sisyphussy (1), @SmileYik (1), @Vlamonster (1), @wlhlm (1)