diff --git a/dependencies.gradle b/dependencies.gradle index 3aa2540..d60f806 100644 --- a/dependencies.gradle +++ b/dependencies.gradle @@ -3,7 +3,7 @@ dependencies { api('com.github.GTNewHorizons:StructureLib:1.4.2:dev') api('com.github.GTNewHorizons:GTNHLib:0.6.1:dev') - implementation("com.github.GTNewHorizons:GT5-Unofficial:5.09.51.67:dev") + implementation("com.github.GTNewHorizons:GT5-Unofficial:5.09.51.70:dev") compileOnly("com.github.GTNewHorizons:NotEnoughEnergistics:1.6.4:dev") runtimeOnlyNonPublishable("com.github.GTNewHorizons:StructureCompat:0.6.5:dev") diff --git a/src/main/java/blockrenderer6343/client/world/ObserverWorld.java b/src/main/java/blockrenderer6343/client/world/ObserverWorld.java index 479a9d5..e595277 100644 --- a/src/main/java/blockrenderer6343/client/world/ObserverWorld.java +++ b/src/main/java/blockrenderer6343/client/world/ObserverWorld.java @@ -20,6 +20,7 @@ import blockrenderer6343.BlockRenderer6343; import blockrenderer6343.client.utils.BRUtil; +import gregtech.api.interfaces.INEIPreviewModifier; import gregtech.api.interfaces.metatileentity.IMetaTileEntity; import gregtech.api.interfaces.tileentity.IGregTechTileEntity; import gregtech.api.threads.RunnableMachineUpdate; @@ -177,6 +178,9 @@ private int estimateTier(IConstructable multi) { do { holo.stackSize = tier + 1; hasChanged = false; + if (BlockRenderer6343.isGTLoaded && multi instanceof INEIPreviewModifier modifier) { + modifier.onPreviewConstruct(holo); + } multi.construct(holo, false); } while (tier++ < MAX_TRIES && hasChanged); diff --git a/src/main/java/blockrenderer6343/integration/gregtech/GTGuiMultiblockHandler.java b/src/main/java/blockrenderer6343/integration/gregtech/GTGuiMultiblockHandler.java index 6ddf954..d07c271 100644 --- a/src/main/java/blockrenderer6343/integration/gregtech/GTGuiMultiblockHandler.java +++ b/src/main/java/blockrenderer6343/integration/gregtech/GTGuiMultiblockHandler.java @@ -34,6 +34,7 @@ import blockrenderer6343.integration.nei.GuiMultiblockHandler; import blockrenderer6343.integration.nei.StructureHacks; import cpw.mods.fml.relauncher.ReflectionHelper; +import gregtech.api.interfaces.INEIPreviewModifier; import gregtech.api.interfaces.metatileentity.IMetaTileEntity; import gregtech.api.interfaces.tileentity.IGregTechTileEntity; import gregtech.api.interfaces.tileentity.ITurnable; @@ -173,6 +174,10 @@ protected void placeMultiblock() { ((ITurnable) tTileEntity).setFrontFacing(ForgeDirection.SOUTH); IMetaTileEntity mte = ((IGregTechTileEntity) tTileEntity).getMetaTileEntity(); + if (mte instanceof INEIPreviewModifier modifier) { + modifier.onPreviewConstruct(getBuildTriggerStack()); + } + if (mte instanceof ISurvivalConstructable survivalConstructable) { int iterations = 0; do { @@ -187,10 +192,15 @@ protected void placeMultiblock() { } else if (tTileEntity instanceof IConstructable iConstructable) { constructable = iConstructable; } + if (constructable != null) { constructable.construct(getBuildTriggerStack(), false); } + if (mte instanceof INEIPreviewModifier modifier) { + modifier.onPreviewStructureComplete(getBuildTriggerStack()); + } + if (!RunnableMachineUpdate.isCurrentThreadEnabled()) { RunnableMachineUpdate.setCurrentThreadEnabled(true); }