Skip to content

Binnie ​

40 merged pull requests.

New Features ​

  • #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 ExtraBeeItems.postInit checks for dustPlatinumMetallicPowder for PlatinumDust, copies it with stackSize 2, and otherwise falls back to the normal dust lookup. This hardcodes what the GT5U PlatinumSludgeOverhaul changes at runtime. - @boubou19
  • #105 Renamed all occurrences of 'Gingko' to 'Ginkgo' in enum values, class names, language files, and texture assets. - @Ranzuu
  • #94 Added widget focus check to GuiCraftGUI before processing NEI keybinds. Updated dependency version. - @tiffit
    • Fixed: NEI keybinds triggering during Compartment search
  • #82 ItemHoneyComb.addSubtypes replaces the direct IC2 itemCofeePowder reference with an OreDictionary lookup for dustCoffee, added only if the entry exists. - @C0bra5
    • Removed: IC2 coffee powder reference in the Coffee comb

Bug Fixes ​

  • #120 GuiCraftGUI.drawScreen now calls glEnable(GL_RESCALE_NORMAL) before RenderHelper.enableGUIStandardItemLighting. - @slprime
    • Fixed: Wrong lighting in Binnie GUI screens
  • #117 ExtraBeesEffect drops its own wearsHelmet/wearsChest/wearsLegs/wearsBoots/wearsItems checks on IArmorApiarist and calls BeeManager.armorApiaristHelper in onRadioactiveEffect instead. - @FourIsTheNumber
    • Removed: ExtraBees own apiarist armor checks
    • Fixed: GT Mechanical Armor not giving apiarist protection against the 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 GuiCraftGUI.renderItem now calls glClear(GL_DEPTH_BUFFER_BIT) after renderItemOverlayIntoGUI and before disabling item lighting and popping the attrib stack. - @Algent
    • Fixed: GL state leak in the search grid
  • #111 ComponentPowerReceptor.addToEnergyNet and removeFromEnergyNet now return early when world.isRemote. - @AnsonYeung
    • Fixed: EnergyTileUnloadEvent log spam on the client
    • Closes GTNH#26211
  • #107 ManagerLiquid.isExternalFluid checks Loader.isModLoaded("gregtech_nh") instead of "gregtech". - @felixfour
    • Fixed: GregTech mod check for external fluids
  • #103 TransferRequest.transfer now breaks out of the tank loop when the item changes after transferToTank or transferFromTank. Added dropOverflow(EntityPlayer), which ContainerCraftGUI.tankClick now uses. - @jordanamr
    • Fixed: dupe bugs in genetics machine liquid storage
  • #99 ManagerLiquid.createLiquids now goes through createOrGetLiquid, which checks the FluidRegistry for an existing fluid. It tracks owned fluids and tolerates the externally registered liquidnitrogen when GregTech is loaded. - @Pxx500
    • Fixed: client crash from liquid nitrogen registration conflict
    • Closes GTNH#25449
  • #98 ItemMetadata and ItemETStairs constructors now call setMaxDamage(0) and setHasSubtypes(true). The same calls were removed from ItemETSlab, which now inherits them. - @ArcadiaBlues
    • Fixed: different block variants stacking together
    • Closes GTNH#9512
  • #97 ComponentTankContainer.drain(ForgeDirection, FluidStack, boolean) now passes the resource to getTankIndexToDrain instead of null. canDrain, which delegates to it, is corrected too. - @dipo33
    • Fixed: wrong fluid drained from Binnie tanks when a specific fluid was requested, fluid dupe/loss with AE2 storage buses
    • Closes GTNH#24843
  • #96 Window now stores its own Renderer and assigns it to CraftGUI.render at the start of every initGui(), instead of overwriting the global in the constructor. WindowFieldKit.onUpdateClient adds a null check on GlassControl. - @Eldrinn-Elantey
    • Fixed: client crash when opening the Field Kit, client crash when closing recipe viewer in a compartment
    • 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 WindowCompartment.addHelp calls now use the existing binniecore.machine.storage.tab.properties and tab.properties.desc keys instead of the nonexistent tooltip.* keys. - @Ranzuu
    • Fixed: Compartment help tooltip showing the raw tooltip string
    • Closes GTNH#24625
  • #92 Lumbermill.getRecipeResult now iterates over a copy of CraftingManager's recipe list instead of the live list. - @maxashen
    • Fixed: ConcurrentModificationException in Lumbermill recipe scan
  • #90 Deleted unused world field 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 Removed the initializer-block resets of axisX, axisZ and angle to zero in the anonymous EntityFX classes of the Analyser, Inoculator, Polymeriser, Sequencer and Splicer FX components. IsolatorComponentFX now uses posX and posZ-based axis values and a shifted spawn Z. - @TweksTY
    • Fixed: Genetics machine effects appearing at 0,0,0, off-center Isolator animation
  • #87 EBConfigMachines is renamed to GeneticsConfig under @Config(modid = Genetics) and registered with ConfigurationManager in a static block in Genetics. IsolatorComponentLogic.onFinishTask reads GeneticsConfig.isolatorConsumptionChance. - @SmileYik
    • Added: GeneticsConfig
    • Removed: EBConfigMachines
    • Fixed: Isolator consumption chance always being 0
  • #85 ExtraTreeFruitGene.getRipeningStage divided two ints before returning a float, so it rounded down to 0 below full ripeness. It now casts ripeningTime to float first. - @Ameobea
    • Fixed: Integer division in fruit ripening stage giving near-zero fruit yields
  • #83 BlockCeramicBrick icon and colour lookups now decode the tile type and colours directly from metadata. MultipassBlockRenderer gets a rendering flag and try/finally layer reset. New BCConfig.disableCompartments (default false, RequiresMcRestart) skips adding ModuleStorage in BinnieCore. - @brandyyn
    • Added: Config option to disable compartments
    • Fixed: Missing pixels in ceramic tiles, Ceramic tile rendering, Crashes when rendering or breaking ceramic tiles
  • #80 TileExtraBeeAlveary now implements IBeeHousing, delegating to the multiblock controller the way Forestry's TileAlveary does. The mutation check walks down past blocks that implement IBeeHousing, and Extra Bees blocks did not. - @TweksTY
    • Fixed: Block-requirement bee mutations failing with an Extra Bees alveary block as the bottom center
  • #79 ItemSequence overrides isRepairable to return false. Closes GT-New-Horizons-Modpack#22791. - @DarkShadow44
    • Fixed: Thaumic Restorer repairing genetics sequences
    • Closes GTNH#22791
  • #76 SplicerComponentLogic tracks the last worked-on target stack (workedOnStack, saved to NBT, reset when the target slot changes) and exposes it through a new default IProcess.workedOnTarget(). The SplicerPackage transfer condition uses it when no serum is present. - @DarkShadow44
    • Fixed: Larvae in Splicer not moved to output slot once the serum runs out
    • Closes GTNH#22432
  • #74 Batch handling moved from ContainerCraftGUI.handleNBT into receiveNBT, which now recurses over each batched action so window.receiveGuiNBT and the machine's ReceiveGuiNBT listener are called for every one. Follow-up of #72. - @Glease
    • Fixed: Batched GUI updates skipping window and machine packet listeners, Userless Sequencer
    • Closes GTNH#21525

Performance ​

  • #119 ItemBotany now reads render alleles straight from the stack's Genome NBT instead of building full flower objects, and FlowerTemplates.getDefaultTemplate caches the template and returns a clone once it is fully populated. - @boubou19
    • Fixed: heavy memory allocation from Botany flowers in NEI
  • #113 Insulate.get in ItemInsulatedTube uses the cached VALUES array instead of calling values(), which clones the array on every call. - @boubou19
  • #112 Adds cached VALUES arrays to enums such as Material, Insulate, BlockPlant.Type and SaplingType, and uses them in place of values() in ItemInsulatedTube, BlockPlant, ItemWeed and ExtraTreeSpecies. - @boubou19
    • Added: cached enum VALUES arrays
  • #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 a cached static VALUES array to Botany enums (EnumAcidity, EnumMoisture, EnumSoilType, EnumFlowerChromosome, TileType and others) and replaced values() calls with it across about 64 files. Bumps ForestryMC to 4.11.7, which the change depends on. - @Alexdoru
    • Added: cached VALUES arrays on Botany enums
  • #84 ComponentInventorySlots now uses an Int2ObjectLinkedOpenHashMap with a cached size and cached accessible slot array, and avoids double lookups. Also bumps ForestryMC, GTNHLib, NEI, BuildCraft, the settings convention and gradle.properties. - @Caedis
  • #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 ​

  • #106 Adds binnie.genetics.nei.helper.ColorUtils with a ColorResource neiDisplayText (0xFFFFFF) and uses it in DatabaseRecipeHandler and IncubatorRecipeHandler. Bumps GTNHLib to 0.11.30. - @Ranzuu
    • Added: ColorUtils with neiDisplayText color resource
  • #75 Removed the reflective item parsing and ManagerItem, added explicit item initialization in Botany and other modules, reordered Botany fields, and bumped ForestryMC, GTNHLib, NEI, BuildCraft, the settings convention and the Gradle wrapper. - @ah-OOG-ah
    • Removed: reflective item registration, ManagerItem

Chores ​

  • #118 Corrected spelling in en_GB.lang and en_US.lang language files. - @UltraProdigy
  • #108 Moves 73 .pdn files and unused -wip sketches from src/main/resources/assets/botany/textures/blocks/flowers to art/, adds a binary rule for .pdn in .gitattributes, and deletes the duplicate geranium-original.png. - @Eldrinn-Elantey
    • Removed: Paint.NET source files from the packaged jar, geranium-original.png

Contributors ​

Everyone who authored, reviewed or co-authored a change on this page, with how many of them:

@boubou19 (9), @UltraProdigy (9), @Algent (6), @Alexdoru (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), @slprime (1), @SmileYik (1), @Vlamonster (1), @wlhlm (1)