Skip to content

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)