ForgeMultipart
13 merged pull requests.
New Features
- #54 Added JsonModeledPart interface, RenderPartResolver and a client MixinRenderGlobal (early, requires GTNHLib) that redirects part break renders to ModelISBRH. TileMultipartClient renders JsonModeledPart via ModelISBRH. Enabled mixins with a FMPMixinLoader core mod and updated dependencies. - @Cardinalstars
- Added: JSON model support for multipart parts, breaking texture for ISBRH multipart parts
- #53 Adds the ISBRHPart interface with renderWorldBlock. TileMultipartClient.renderStatic now takes the world and RenderBlocks and calls ISBRHPart parts directly; other parts use the old renderStatic. MultipartRenderer imports the Angelica ThreadSafeISBRH API. - @Cardinalstars
- Added: ISBRHPart interface for multipart rendering
- #48 Added ItemMicroPartTransformer and PosteaCompat classes that implement PostEA transformer integration to remap microblock material IDs during mod transitions. - @FourIsTheNumber
- Added: ItemMicroPartTransformer, PosteaCompat integration
Changes
- #45 Changed BlockMultipart material definition from Material.rock to a more fitting alternative material class. - @DarkShadow44
Bug Fixes
- #61 MicroRecipe.findMaterial in codechicken.microblock skips MissingMicroMaterial when matching an item to a material. - @Ressed
- Fixed: stone microblocks crafted as MissingMicroMaterial
- Closes GTNH#26848
- #58 In TileMultipart's part callback loop, the check changed from p.tile != null to p.tile == this, so only parts still bound to the receiving tile get callbacks. - @Pxx500
- Fixed: AE2 cable disconnecting when a ProjectRed gate is removed from the same block
- #50 Removes the shared MultipartRenderer.pass field set in canRenderInPass and shouldRenderInPass. MultipartRenderer now reads the pass from MinecraftForgeClient.getRenderPass for dynamic rendering and from ForgeHooksClient.getWorldRenderPass for static rendering. - @mitchej123
- Fixed: shared render pass state in multipart rendering
- #49 Added CubicChunksCompat, which listens for CubeEvent.DataLoad at highest priority and calls MultipartSaveLoad.loadTiles, now taking a world and tile map instead of a Chunk. silentAddTile sets tile coordinates and uses addTileEntity. Registered only when cubicchunks is loaded. Needs CubicChunks1710 PR 82. - @RecursivePineapple
- Added: CubicChunks compatibility for multipart tile loading
- Fixed: multipart tiles not swapped in when loading CubicChunks cubes
- #47 Unknown names now resolve to a new MissingMicroMaterial placeholder with its own id instead of id 0. The client id-map packet handler is skipped when mc.isSingleplayer, so the shared static registry is not cleared on the netty thread during a server-thread read. - @Caedis
- Added: Missing Material placeholder for unknown microblock materials
- Fixed: microblocks turning into Blood Rune slabs
- Closes GTNH#14921
- #46 Added null check in TMultiPart.sendDescUpdate to skip sending updates when tile() is null, protecting against NPE during chunk unload and wireless redstone frequency updates. - @alppp
- Fixed: null pointer crash on chunk unload in sendDescUpdate
- #44 Fixed world client reference leak in MultipartRenderer to properly clear references after rendering. - @Alexdoru
- Fixed: world client memory leak in renderer
- #43 Fixed world client reference leak in ControlKeyModifier and MultipartMod handler keybind processing. - @Alexdoru
- Fixed: world client memory leak in keybind handler
- #41 Improved world server lifecycle management in MultipartMod handler to properly null out references and prevent memory leaks. - @Alexdoru
- Fixed: world server memory leak
Contributors
Everyone who authored, reviewed or co-authored a change on this page, with how many of them:
@boubou19 (4), @Alexdoru (3), @RecursivePineapple (3), @Caedis (2), @Cardinalstars (2), @DarkShadow44 (2), @mitchej123 (2), @OvermindDL1 (2), @alppp (1), @Dream-Master (1), @FourIsTheNumber (1), @Guvante (1), @Luca-Guettinger (1), @Nikolay-Sitnikov (1), @Pxx500 (1), @Ressed (1), @UltraProdigy (1)