BuildCraft
12 merged pull requests.
New Features
- #28 Added ItemBlockTank class for custom tank tooltips and updated ItemPipe to display color-coded pipe type information. Updated tank block registration and added pipe-type-to-color mappings. - @Eldrinn-Elantey
- Added: ItemBlockTank class, color-coded pipe tooltips
- #24 Enhanced BlockTank interaction logic to support all fluid container types and improved inventory handling for stacked items and structures. - @UltraProdigy
- Added: interactive functionality for all cell types with BC tanks
- Fixed: BC Tank interaction with all cell types, stacked cell interaction
New Content
- #27 Added PipeFluidsObsidian class with configurable experimental content flag. Uses same energy cost as Pump (25RF per 250mB) but transfers at lower rate with fluid loss. - @DrParadox7
- Added: Obsidian Fluid Pipe, experimental content config
Changes
- #26 Updated locale files and GUI classes to add localized titles, adjusted GUI window sizes and inventory label positions to match texture resources. - @Ranzuu
- Added: localized GUI titles
- Fixed: GUI appearance and alignment
Bug Fixes
- #33 Removed BuildCraftCore.useServerDataOnClient, its config entry, and CoreProxy.getServerTile and its client override. RenderTank, RenderRefinery and PipeRendererTESR now use the tile entity they are given instead of looking up the server-side tile. - @tiffit
- Removed: useServerDataOnClient config option
- Fixed: Infinite EBF power, including after a power failure (#25365), Probable fix for GT Wiremill outputting multiple stacks (#24468), coke oven spawning a full chest of coke (#24658), cat duplication (#24710) and EBF infinite power (#24722)
- Migration: The removed option only affected how tanks, refineries and pipes were drawn on the client in singleplayer; it never moved items or power, so there is nothing in a 2.8.4 world to clean up.
- Closes GTNH#24468, GTNH#24658, GTNH#24710, GTNH#24722, GTNH#25365
- #32 Fixed world reference leaks in multiple BuildCraft modules through reference cleanup in singleton instances and listeners. - @Alexdoru
- Fixed: three world memory leaks
- #29 Reverts lang commit e3123215 that polluted the non-English buildcraft .lang files (cs_CZ, da_DK, de_DE, es_*, etc.) with English keys. - @DrParadox7
- Fixed: English keys in non-English BuildCraft lang files
Performance
- #35 GuiAssemblyTable caches potentialRecipes and recomputes them only when the 12 input slots change, using TileAssemblyTable.getPotentialOutputs(limit). AssemblyRecipeManager uses THashMap, FlexibleRecipe trims its input lists, and ItemFacade replaces the allFacadeIDs contains scan with a THashSet lookup and shares the structure pipe input. - @Algent
- Fixed: Assembly Table GUI scanning all recipes every frame
- #30 TileEngineBase caches base, chamber and trunk ResourceLocations, invalidated through a static version counter bumped by onTextureReload from the TextureStitchEvent.Post hook. BlockEngine.getTexturePrefix uses String.replace instead of replaceAll to avoid compiling a regex each call. - @mitchej123
Internal / Refactor
- #34 Adds a compileOnly Angelica API dependency and marks the BuildCraft ISBRH renderers with ThreadSafeISBRH. Removes the shared renderPass field, canRenderInPassBC and getCurrentRenderPass from BlockBuildCraft in favour of getPassCount and getIconForPass. FakeBlock is no longer a singleton and each renderer holds its own instance. - @mitchej123
- Added: thread-safe block renderers
- Removed: renderPass field on BlockBuildCraft
Chores
- #36 TileGenericPipe.refreshRenderState, computeConnections and computeConnection go from protected to public, which lets GuideNH skip some accessor mixins and refresh pipe state on the client. - @ABKQPO
- #25 Removed MinecraftForge.EVENT_BUS.register(ListOreDictionaryCache.INSTANCE) from BuildCraftCore.postInit; the names are still registered through the loop that follows. - @Alexdoru
- Removed: unused event bus registration
Contributors
Everyone who authored, reviewed or co-authored a change on this page, with how many of them:
@Nikolay-Sitnikov (4), @Alexdoru (2), @Dream-Master (2), @DrParadox7 (2), @mitchej123 (2), @ABKQPO (1), @Algent (1), @boubou19 (1), @Caedis (1), @danyadev (1), @DarkShadow44 (1), @Eldrinn-Elantey (1), @Guvante (1), @koolkrafter5 (1), @LazyFlesh (1), @Nana-Sakura (1), @Ranzuu (1), @Ruling-0 (1), @tiffit (1), @UltraProdigy (1)