ForestryMC
32 merged pull requests.
New Features
- #122 Added getProtectionCount() method to IArmorApiarist interface and updated ArmorApiaristHelper to use this new API. - @FourIsTheNumber
- Added: getProtectionCount() API method
- #120 Registered pollenFertile item under 'itemPollenFertile' OreDict entry with wildcard to cover all NBT variants. - @Eldrinn-Elantey
- Added: OreDictionary entry for fertile tree pollen
- #112 Created IFarmFertilizerRegistry interface and FarmFertilizerRegistry implementation; integrated with MultiblockManager API; updated InventoryFarm to use registry; added plugin support in PluginCore and PluginFarming. - @C0bra5
- Added: IFarmFertilizerRegistry interface, FarmFertilizerRegistry implementation
- #106 Added .title suffix support for machine GUI titles in localization; enabled color override system in FontColour and StringUtil; moved override file location for better organization. - @Ranzuu
- Added: GUI title customization via localization, color override for resource packs
- #105 Refactored backpack opening logic to support opening items from anywhere in the inventory. Added ItemLocation tracking and modified GuiHandler, ContainerItemInventory, and all item analyzers/imprinters to work with items not in hand. - @Erixonich
- Added: ItemLocation class, ContainerItemInventory support, NoHotbarNeeded mod support
- #104 Added PluginEtFuturumRequiem compatibility layer to register Et Futurum flowers with Forestry's flower type system (vanilla, nether, end). - @CN132DAS
- Added: Et Futurum Requiem flower support for bees
- Fixed: bees not recognizing EFR flowers
- Closes GTNH#22435
- #102 Modified AlvearyController and InventoryBeeHousing to drop items when the multiblock is broken. - @DarkShadow44
- Added: item dropping on Alveary destruction
- Fixed: item loss on Alveary break
- #101 Added durability bar rendering for ItemBackpack based on inventory fullness percentage. Added Config.java option to toggle the feature on/off. Added language string for the option. - @querns
- Added: backpack fullness durability bar display
Changes
- #115 Added missing items to GuiWorktable color properties and registered them in colour.properties configuration file. - @Ranzuu
- Added: color localization for worktable items
- #100 Added public getters to AlleleEffectThrottled, TreeDefinition, and Mutation classes for use by GT5-Unofficial. - @Alexdoru
- Added: public getter methods
Bug Fixes
- #129 Corrected BlockSlab display logic for double slab blocks in NEI. - @Cardinalstars
- Fixed: double slab display in NEI
- #128 Updated ja_JP.lang to convert old-format tile localization keys (e.g., 'tile.for.apiculture.0') to modern format with .name suffix, enabling proper display and external override support. - @sivaDog
- Fixed: Japanese block name localization
- Closes GTNH#26145
- #127 Removed hardcoded return value in BlockSlab to implement proper stacked block slab logic. - @vermz99
- Fixed: hardcoded slab block stacking
- #124 Modified CustomOverlayHandler to explicitly force shift to be considered held for worktable, carpenter, and fabricator handlers. - @YannickMG
- Fixed: worktable NEI fill regression
- #123 Adapted worktable NEI overlay handler for carpenter and fabricator 3x3 grids, added IGridRecipeHandler interface, updated PacketNEISelect and related network handlers. - @tiffit
- Added: NEI overlay handlers for carpenter and fabricator
- Fixed: carpenter recipe freezing in NEI
- Closes GTNH#25009
- #121 Enhanced ItemInventory, ItemWithGui, ItemInventoryBackpackPaged, and related backpack classes with improved synchronization logic to prevent item duplication under lag. - @Algent
- Fixed: backpack duplication exploit
- Closes Dupes-Exploits-GTNH#96
- #119 Fixed butterfly selection logic in RenderButterflyItem rendering method. - @Alexdoru
- Fixed: incorrect butterfly display in rendering
- #118 Added null check in RenderButterflyItem to provide a default butterfly when rendering the creative tab. - @Yoshy2002
- Fixed: crash when opening Forestry creative tab
- Closes GTNH#24505
- #117 Changed integer to float in apiary comb production formula division in Bee.java to prevent rounding errors. - @Faltsolph
- Fixed: apiary comb production rounding error
- Closes GTNH#24462
- #116 Updated RenderAnalyzer, RenderMill, EntityButterfly, and RenderButterflyItem to properly release WorldClient references after rendering. - @Alexdoru
- Fixed: WorldClient memory leaks in multiple renderers
- #114 Added null check in TileWood.getPickBlock() to prevent NPE when the block state is null. - @Alexdoru
- Fixed: crash on world rejoin due to null block in TileWood
- Closes GTNH#24296
- #113 Refactored RenderButterflyItem to properly manage WorldClient lifecycle references, preventing retained memory in the renderer. - @Alexdoru
- Fixed: WorldClient memory leak in butterfly rendering
- #109 Added rounding to two decimal places during temperature and humidity calculations in AlvearyController to prevent floating-point imprecision from accumulating and causing discrepancies between server and client values. - @TweksTY
- Fixed: floating-point precision in climate changes, server-client climate value desync
- #103 Added null guards to BlockUtil.getItemStackFromBlockBelow() reflection calls to prevent calling methods on null objects. - @Teteros
- Fixed: NullPointerException in BlockUtil reflections
Performance
- #133 Optimized Genome NBT repair logic to cache species default template resolution, reducing array allocations during NEI operation. - @boubou19
- #131 Added enum .values() caching in BlockSlab that was previously missed in earlier optimization pass. - @boubou19
- #130 Cached LetterProperties enum .values() calls that were invoked over 500 times during gameplay profiling. - @boubou19
- #110 Refactored BlockFruitPod, BlockSoil, BlockForestryFluid, and BlockMushroom to prevent chunk loading during tick operations. - @Alexdoru
- #107 Cached Enum.values() array calls in EnumBeeChromosome, EnumBeeType, EnumTreeChromosome, EnumHumidity, EnumTemperature, FarmDirection, EnumButterflyChromosome, and related classes to reduce runtime allocations. - @Alexdoru
Internal / Refactor
- #125 Created new IArmorApiaristMulti interface with getProtectionCount() method, moved implementation from IArmorApiarist to maintain ASM compatibility. - @FourIsTheNumber
- Added: IArmorApiaristMulti interface
- Removed: getProtectionCount() from IArmorApiarist
- #111 Removed LeafDecayHelper.java and custom leaf decay logic from BlockForestryLeaves; now uses NHLib's BFS leaf decay system. Added nh-lib dependency. - @Alexdoru
- Removed: LeafDecayHelper, custom BlockForestryLeaves decay logic
Chores
- #126 Deleted CONTRIBUTING.md documentation file. - @UltraProdigy
- Removed: CONTRIBUTING.md
Contributors
Everyone who authored, reviewed or co-authored a change on this page, with how many of them:
@Alexdoru (9), @boubou19 (9), @Dream-Master (7), @UltraProdigy (6), @Algent (3), @DarkShadow44 (3), @koolkrafter5 (3), @Luca-Guettinger (3), @FourIsTheNumber (2), @Ranzuu (2), @tiffit (2), @ah-OOG-ah (1), @AshVz (1), @C0bra5 (1), @Caedis (1), @Cardinalstars (1), @CN132DAS (1), @cursoragent (1), @Eldrinn-Elantey (1), @Erixonich (1), @Faltsolph (1), @Kogepan229 (1), @MalTeeez (1), @Miklebe (1), @querns (1), @RecursivePineapple (1), @sisyphussy (1), @sivaDog (1), @Teteros (1), @TweksTY (1), @vermz99 (1), @Worive (1), @YannickMG (1), @Yoshy2002 (1)