MatterManipulator
62 merged pull requests.
New Features
- #79 Added edit transform functionality across all manipulator modes by extending ItemMatterManipulator with mode-specific transform windows (cable transform, cylinder transform, generic cube transform). - @Azusfin
- Added: transform editing UI for all modes, cable-specific transform window, cylinder-specific transform window, localization strings for new UI
- #78 Added
EnderStorageItemConsumer.javathat registers as a custom consumer inMMItemConsumer.java, providing special handling for Ender Storage items. - @Azusfin- Added: EnderStorageItemConsumer for flexible ender storage handling
- #76 Enhanced
AECellItemProvider.javato copy cell restriction settings. - @Azusfin- Added: AE cell restriction copying
- #75 Added Dynamism Tablet property detection to
BlockPropertyRegistry.java. - @Azusfin- Added: Dynamism Tablet copy support
- #74 Added Forestry wood type detection to
BlockPropertyRegistry.java. Wood type is extracted from NBT rather than metadata. - @vermz99- Added: Forestry wood tile entity support
- #73 Extended
ItemMatterManipulator.javawith transform editing in move mode. Added networking message inMessages.javato synchronize transform changes. UpdatedMMRenderer.javato enforce default transform when rendering paste region. - @Azusfin- Added: Transform editing in move mode, Swap Region button
- Closes GTNH#22047, GTNH#24653
- #72 Created new
ItemConsumerinterface and implementations (AECableItemConsumer,DefaultItemConsumer,IItemConsumer) inconsumers/package. RefactoredPendingBuild.javato use the new consumer system. Registered consumers can provide special handling for items not found in inventory. - @Azusfin- Added: ItemConsumer interface and system, AECableItemConsumer for flexible cable consumption
- Closes GTNH#24609
- #71 Enhanced
ComputerComponentItemProvider.javato add APU to fuzzy matching and implement special handling for loot floppy disks. - @Azusfin- Added: APU and loot floppy disk copy support
- Fixed: Matter Manipulator cannot copy APUs in Quantum Computer racks
- Closes GTNH#25995
- #69 Extended
PatternItemProvider.javato handle the new AE2 Ultimate Pattern item type. - @Azusfin- Added: AE2 Ultimate Pattern copy support
- Closes GTNH#25775
- #68 Enhanced
AECellItemProvider.javato handle fluid cells usingFluidStackdirectly. UpdatedGTAnalysisResult.javaandMMUtils.javato support fluid cell serialization. - @hinyb- Added: Fluid cell copy/paste support
- Fixed: Matter Manipulator crash with filtered ME Output Hatch fluid cells
- Closes GTNH#25866
- #66 Added
fluidTransferRatedetection support inBlockPropertyRegistry.javafor OC Transposer blocks. - @Azusfin- Added: OC Transposer copy support with fluid transfer rate detection
- #47 Added ComputerComponentItemProvider class to handle OC component duplication; treats addressed EEPROMs, HDDs, and floppies specially with size constraints. - @Vlamonster
- Added: OpenComputers component copying
- #44 Extended InteropConstants and MMState cable registry; added OC cable detection in MMUtils and Mods compatibility check. - @Luca-Guettinger
- Added: Open Computers cable support
- #40 Introduced SmartCopyIntegration and WirelessLinkFixer classes; extended MMState and PendingBuild to track and apply advanced copy transformations; requires AE2 PR #1205. - @Luca-Guettinger
- Added: wireless connector auto-linking, auto-proxy CRIB replacement, auto-P2P interface conversion
- #34 Added FMPPartTransforms class to handle FMP/Project Red rotation and placement logic; extended MultipartAnalysisResult to store additional metadata; updated MMRenderer for improved visualization. - @Luca-Guettinger
- Added: FMP/Project Red copy-paste support, rotation handling for multipart blocks, support block failure messages in survival
- #22 Added support for MEOutput cacheMode and checkMode; updated dependencies and gradle configuration for upstream GT5-Unofficial#5853. - @hinyb
- Added: MEOutput cacheMode support, MEOutput checkMode support
- #18 Added BlockSpec::toDisplayString() method and updated ItemMatterManipulator to use localized tooltip strings. - @Discreater
- Added: localized tooltip strings, BlockSpec::toDisplayString method
- #13 Refactored MTEMMUplink class (-52 lines, +13 lines) as part of post-feature-freeze merge. - @Dream-Master
New Content
- #65 Updated
MTEMMUplink.javatooltip generation andWirelessLinkFixer.java. Adjusted dependency versions. - @DylanTaylor1
Changes
- #64 Updated
WirelessLinkFixer.javato adapt to changes in AE2's wireless connector and hub implementation. - @Kogepan229 - #60 Enhanced
RenderHints.javaandStreamingVertexBuffer.javawith improved rendering logic. UpdatedMMRenderer.javaandMMState.javato prevent AE cable interaction crashes. Dependency updates independencies.gradle. - @RecursivePineapple- Added: Togglable dependency features
- Fixed: AE cable render crash
- #57 Migrated tessellator usage from CapturingTessellator to LocalTessellator; refactored BoxRenderer, RenderHints, and VertexBuffer classes; updated dependency versions; requires GTNHLib PR #393. - @sisyphussy
- #53 Adjusted GTAnalysisResult and MTEMMUplink to align with GT5u API changes; updated dependency version. - @Kogepan229
- #50 Updated InteropConstants, WirelessLinkFixer, WirelessBlockMover, and BlockPropertyRegistry to use AE2 wireless component APIs instead of AE2Stuff; adjusted dependencies and removed AE2Stuff references. - @Kogepan229
- Migration: Update code that references AE2Stuff wireless connector/hub APIs to use the new AE2 versions.
- #48 Introduced BlockPropertyRegistry to store OC TE block face/rotation properties. - @Vlamonster
- Added: OpenComputers orientation tracking
- #30 Bumped GT5-Unofficial dependency for GT5-Unofficial#5261 language file standardization. - @iouter
- #26 Added Textures class with OptionalResource support and updated MTEMMUplink to use the new texture API. - @leagris
- Added: Textures class with OptionalResource support
- #25 Bumped GT5-Unofficial dependency version for GT5-Unofficial#5781. - @boubou19
- #21 Updated BlockPropertyRegistry to adapt for GT5-Unofficial#5771 CAL changes. - @boubou19
- #19 Refactored chat messaging to use ChatComponentTranslation throughout analysis results and building classes, allowing client-side localization. - @Discreater
- Added: client-side chat localization
- Fixed: server-language forcing on clients
- #16 Updated dependencies and rendering code (BoxRenderer, QuadViewComparator, RenderHints) to use new quads API from GTNHLib#100. - @ah-OOG-ah
- #15 Language file update correcting grammar in en_US.lang. - @GTNH-Afx237v7
- Fixed: grammar in upgrade description
Bug Fixes
- #82 Updated AEAnalysisResult and AEPartData to track and enforce pattern capacity limits; added capacity validation in MMUtils. - @Azusfin
- Fixed: Matter Manipulator bypassing interface pattern capacity
- Closes Dupes-Exploits-GTNH#361
- #81 Modified AECellItemProvider to skip fuzzy mode configuration when fuzzy card is absent, resulting in cleaner NBT structures for empty cells. - @AnsonYeung
- Fixed: NBT pollution from unwanted fuzzy mode entries
- #80 Added server-side check in ItemMatterManipulator to validate uplink charging requests. - @Azusfin
- Fixed: missing server-side check for uplink charging
- #77 Improved error handling and upgrade installation logic in
MMUtils.javato properly handle creative mode and report missing upgrades. - @Azusfin- Fixed: AE upgrades not copied in creative mode, Missing upgrade error messages
- #67 Added an inventory adapter in
InventoryAdapter.javathat filters out the pattern slots in Arcane Assembler blocks, preventing them from being treated as normal inventory items. - @tiffit- Added: Arcane Assembler inventory adapter to ignore pattern slots
- Fixed: Matter Manipulator + Arcane Assembler duplication exploit
- Closes Dupes-Exploits-GTNH#326
- #63 Modified
PendingBuild.javaandPendingMove.javato send translation keys and arguments to the client for localization, rather than pre-translating on the server usingStatCollector. - @Eldrinn-Elantey- Fixed: Block warning messages not translating on dedicated servers
- #61 Modified
MMInventory.javato acceptIActionHostinstead of requiring a security terminal specifically. Renamed field inMMState.javato reflect the broader compatibility. - @LazyFlesh- Added: Wireless access point connectivity for AE2 interaction
- Fixed: Matter Manipulator cannot access AE2 through wireless access points
- Closes GTNH#25373
- #59 Fixed
FMPBlockMover.javaandStandardBlockMover.javato properly handle null tile entity assignment. ThesetTileEntity()method was silently failing on null input. - @Algent- Fixed: Container duplication with Matter Manipulator
- Closes Dupes-Exploits-GTNH#307
- #58 Refactored
AEPartData.javato usedownloadSettings()anduploadSettings()methods instead of manual NBT manipulation. This aligns Matter Manipulator's copying behavior with AE2's memory card system. - @Kogepan229- Added: AE2 part settings copy via memory card methods
- Fixed: Matter Manipulator not copying ME Level Emitter item/fluid amounts
- Closes GTNH#25115
- #56 Added bounds check in GTAnalysisResult.apply() and clears ghost circuit data in MMState when substituting CRIBs with proxies to prevent size mismatch. - @Luca-Guettinger
- Fixed: CRIB proxy ArrayIndexOutOfBoundsException
- Closes GTNH#25050
- #55 Updated dependencies.gradle to reference correct EnderIO version. - @dipo33
- Fixed: EnderIO dependency version
- #52 Updated GTAnalysisResult to use IFluidLockableMui2 API instead of deleted IFluidLockable. - @Luca-Guettinger
- Fixed: GT Pipe copying crash
- Closes GTNH#24736
- #51 Added block event posting in AbstractBuildable to trigger grief protection callbacks; applied to move and build modes. - @Lyfts
- Fixed: grief protection bypass
- Closes GTNH#22410
- #49 Added reflection-based fallback in GTAnalysisResult and MTEMMUplink to handle both public and protected MTEHatchEnergyMulti.Amperes field; updated GT5u dependency version. - @RecursivePineapple
- Fixed: energy tunnel hatch copying on older servers
- #46 Introduced CarpentersBlocksAnalysisResult to capture Carpenter's Block state and custom shapes; extended PendingBlock to apply this state on placement. - @Luca-Guettinger
- Added: Carpenter's Blocks state preservation
- Fixed: Carpenter's Blocks copying
- Closes GTNH#21078
- #43 Extended InventoryAdapter to handle Crafting Input Buffer's manual slot configuration. - @Luca-Guettinger
- Fixed: Crafting Input Buffer manual slot copying
- #42 Adjusted MMInventory fluid handling logic to properly iterate and fill stacked fluid cell containers. - @Luca-Guettinger
- Fixed: stacked fluid cell filling
- #41 Corrected packet handling in MMUtils; bug introduced in PR #19. - @Luca-Guettinger
- Fixed: plan creation disconnect
- Closes GTNH#24223
- #39 Extended BlockSpec to track slab variants; adjusted PendingBuild cost calculation to correctly count slab usage. - @Luca-Guettinger
- Fixed: slab consumption and copying
- Closes GTNH#22781
- #37 Refactored block movement system: replaced monolithic PendingMove with strategy pattern (BlockMover interface, FMPBlockMover, GTBlockMover, StandardBlockMover, WirelessBlockMover). Wireless components now use dedicated mover logic. - @Luca-Guettinger
- Added: BlockMover abstraction, FMPBlockMover, GTBlockMover, StandardBlockMover, WirelessBlockMover
- Fixed: wireless hub/connector relocation
- Closes GTNH#24269
- #36 Modified InventoryAnalysis and PendingBlock to properly notify AE2 of new hatch availability; likely triggers AE2's cache invalidation on block placement. - @Luca-Guettinger
- Fixed: AE2 hatch detection after MM replacement
- #33 Added AEPartData and enhanced AEAnalysisResult to properly handle and copy fluid configuration in dual interface blocks. - @Luca-Guettinger
- Added: AEPartData fluid handling, dual interface fluid support
- Fixed: fluid copying in dual interfaces, Level Emitter settings copying
- Closes GTNH#23587, GTNH#23621
- #31 Updated ItemMatterManipulator to save and restore default Minecraft NBT properties when changing manipulator modes. - @WhyDoLogic2
- Fixed: NBT data loss on mode change
- Closes GTNH#23997
- #28 Fixed GTAnalysisResult to adapt for latest GT5U integrated ore factory API changes. - @LazyFlesh
- Fixed: IOF rework crash
- Closes GTNH#23966
- #27 Reverted Textures class approach and kept QU icon containers local in MTEMMUplink to avoid extra client init path causing render crashes. - @UltraProdigy
- Removed: Textures class
- Fixed: client crash on UV quest tab click
- Closes GTNH#23925
- #17 Fixed block capturing logic in AbstractBuildable, PendingBlock, and PendingMove; removed BlockCaptureDrops mixin and related early capture mixin. - @RecursivePineapple
- Removed: BlockCaptureDrops mixin, MixinBlockDropCapturing
- Fixed: block capturing reliability
Performance
- #24 Performance optimization in DeMemberator ASM transformation reducing transforming time from 45.4ms to 9.5ms (0.85% to 0.19%). - @danyadev
Internal / Refactor
- #62 Updated
InteropConstants.javato use a centralizedisGTRenderer()method. This simplifies code and improves maintainability. - @RecursivePineapple- Removed: Inline renderer detection logic
- #29 Replaced direct NBT manipulation in GTAnalysisResult with public getter/setter methods for integrated ore factory. - @Alexdoru
- #20 Removed number formatting utility methods from MMUtils and updated callers to use GTNHLib implementation. - @Connor-Colenso
- Removed: MMUtils number formatting methods
Contributors
Everyone who authored, reviewed or co-authored a change on this page, with how many of them:
@RecursivePineapple (42), @Luca-Guettinger (13), @Azusfin (12), @Dream-Master (10), @UltraProdigy (6), @Kogepan229 (5), @boubou19 (3), @Alexdoru (2), @cubefury (2), @Discreater (2), @hinyb (2), @lc-1337 (2), @Ruling-0 (2), @Vlamonster (2), @ah-OOG-ah (1), @Algent (1), @Angry3vilbot (1), @AnsonYeung (1), @AshVz (1), @chrombread (1), @Connor-Colenso (1), @danyadev (1), @dipo33 (1), @DylanTaylor1 (1), @Eldrinn-Elantey (1), @glektarssza (1), @GTNH-Afx237v7 (1), @Guvante (1), @iouter (1), @koolkrafter5 (1), @kuba6000 (1), @LazyFlesh (1), @LazyFleshWasTaken (1), @leagris (1), @Lyfts (1), @Sanduhr32 (1), @sisyphussy (1), @TheYoingLad (1), @tiffit (1), @vermz99 (1), @WhyDoLogic (1), @WhyDoLogic2 (1)