From d0f7aa04e6c34335823735d298d43334364c50d9 Mon Sep 17 00:00:00 2001 From: htmlcsjs <46023024+htmlcsjs@users.noreply.github.com> Date: Sun, 28 Apr 2024 19:18:06 +0100 Subject: [PATCH 1/6] Initial implementation --- .../metatileentities/MetaTileEntities.java | 3 + .../MetaTileEntityPassthroughHatchLaser.java | 98 +++++++++++++++++++ .../resources/assets/gregtech/lang/en_us.lang | 2 + 3 files changed, 103 insertions(+) create mode 100644 src/main/java/gregtech/common/metatileentities/multi/multiblockpart/MetaTileEntityPassthroughHatchLaser.java diff --git a/src/main/java/gregtech/common/metatileentities/MetaTileEntities.java b/src/main/java/gregtech/common/metatileentities/MetaTileEntities.java index 2da6fd0d304..62f66cde0ca 100644 --- a/src/main/java/gregtech/common/metatileentities/MetaTileEntities.java +++ b/src/main/java/gregtech/common/metatileentities/MetaTileEntities.java @@ -77,6 +77,8 @@ import gregtech.common.metatileentities.multi.multiblockpart.MetaTileEntityOpticalDataHatch; import gregtech.common.metatileentities.multi.multiblockpart.MetaTileEntityPassthroughHatchFluid; import gregtech.common.metatileentities.multi.multiblockpart.MetaTileEntityPassthroughHatchItem; +import gregtech.common.metatileentities.multi.multiblockpart.MetaTileEntityPassthroughHatchLaser; +import gregtech.common.metatileentities.multi.multiblockpart.MetaTileEntityPassthroughHatchLaser; import gregtech.common.metatileentities.multi.multiblockpart.MetaTileEntityReservoirHatch; import gregtech.common.metatileentities.multi.multiblockpart.MetaTileEntityRotorHolder; import gregtech.common.metatileentities.multi.multiblockpart.MetaTileEntitySubstationEnergyHatch; @@ -233,6 +235,7 @@ private MetaTileEntities() {} public static MetaTileEntityLaserHatch[] LASER_OUTPUT_HATCH_256 = new MetaTileEntityLaserHatch[GTValues.V.length - 1]; public static MetaTileEntityLaserHatch[] LASER_OUTPUT_HATCH_1024 = new MetaTileEntityLaserHatch[GTValues.V.length - 1]; public static MetaTileEntityLaserHatch[] LASER_OUTPUT_HATCH_4096 = new MetaTileEntityLaserHatch[GTValues.V.length - 1]; + public static MetaTileEntityPassthroughHatchLaser PASSTHROUGH_HATCH_LASER; public static MetaTileEntityComputationHatch COMPUTATION_HATCH_RECEIVER; public static MetaTileEntityComputationHatch COMPUTATION_HATCH_TRANSMITTER; public static MetaTileEntityObjectHolder OBJECT_HOLDER; diff --git a/src/main/java/gregtech/common/metatileentities/multi/multiblockpart/MetaTileEntityPassthroughHatchLaser.java b/src/main/java/gregtech/common/metatileentities/multi/multiblockpart/MetaTileEntityPassthroughHatchLaser.java new file mode 100644 index 00000000000..afc6c9a1d9c --- /dev/null +++ b/src/main/java/gregtech/common/metatileentities/multi/multiblockpart/MetaTileEntityPassthroughHatchLaser.java @@ -0,0 +1,98 @@ +package gregtech.common.metatileentities.multi.multiblockpart; + +import codechicken.lib.render.CCRenderState; +import codechicken.lib.render.pipeline.IVertexOperation; +import codechicken.lib.vec.Matrix4; + +import gregtech.api.GTValues; +import gregtech.api.capability.GregtechTileCapabilities; +import gregtech.api.capability.IControllable; +import gregtech.api.capability.IEnergyContainer; +import gregtech.api.capability.ILaserContainer; +import gregtech.api.metatileentity.MetaTileEntity; +import gregtech.api.metatileentity.interfaces.IGregTechTileEntity; +import gregtech.api.metatileentity.multiblock.IMultiblockAbilityPart; +import gregtech.api.metatileentity.multiblock.IPassthroughHatch; +import gregtech.api.metatileentity.multiblock.MultiblockAbility; + +import gregtech.client.renderer.texture.Textures; +import gregtech.client.utils.PipelineUtil; + +import net.minecraft.client.resources.I18n; +import net.minecraft.item.ItemStack; +import net.minecraft.tileentity.TileEntity; +import net.minecraft.util.EnumFacing; +import net.minecraft.util.ResourceLocation; + +import net.minecraft.world.World; + +import net.minecraftforge.common.capabilities.Capability; + +import org.jetbrains.annotations.NotNull; +import org.jetbrains.annotations.Nullable; + +import java.util.List; + +public class MetaTileEntityPassthroughHatchLaser extends MetaTileEntityMultiblockPart implements IPassthroughHatch, + IMultiblockAbilityPart { + + public MetaTileEntityPassthroughHatchLaser(ResourceLocation metaTileEntityId, int tier) { + super(metaTileEntityId, tier); + } + + @Override + public T getCapability(Capability capability, EnumFacing side) { + if (capability == GregtechTileCapabilities.CAPABILITY_LASER && side == getFrontFacing().getOpposite()) { + World world = getWorld(); + if (world != null && !world.isRemote) { + TileEntity te = world.getTileEntity(getPos().offset(getFrontFacing())); + if (te != null) { + return GregtechTileCapabilities.CAPABILITY_LASER.cast(te.getCapability(GregtechTileCapabilities.CAPABILITY_LASER, getFrontFacing().getOpposite())); + } + } + } + return super.getCapability(capability, side); + } + + @Override + public MetaTileEntity createMetaTileEntity(IGregTechTileEntity tileEntity) { + return new MetaTileEntityPassthroughHatchLaser(metaTileEntityId, getTier()); + } + + + @Override + public MultiblockAbility getAbility() { + return MultiblockAbility.PASSTHROUGH_HATCH; + } + + @Override + public void registerAbilities(@NotNull List abilityList) { + abilityList.add(this); + } + + @Override + public @NotNull Class getPassthroughType() { + return ILaserContainer.class; + } + + @Override + public void addInformation(ItemStack stack, @Nullable World world, @NotNull List tooltip, + boolean advanced) { + tooltip.add(I18n.format("gregtech.machine.laser_hatch.tooltip2")); + tooltip.add(I18n.format("gregtech.universal.enabled")); + } + + @Override + public void addToolUsages(ItemStack stack, @Nullable World world, List tooltip, boolean advanced) { + tooltip.add(I18n.format("gregtech.tool_action.screwdriver.access_covers")); + tooltip.add(I18n.format("gregtech.tool_action.wrench.set_facing")); + super.addToolUsages(stack, world, tooltip, advanced); + } + + @Override + public void renderMetaTileEntity(CCRenderState renderState, Matrix4 translation, IVertexOperation[] pipeline) { + super.renderMetaTileEntity(renderState, translation, pipeline); + Textures.LASER_SOURCE.renderSided(getFrontFacing(), renderState, translation, pipeline); + Textures.LASER_TARGET.renderSided(getFrontFacing().getOpposite(), renderState, translation, pipeline); + } +} diff --git a/src/main/resources/assets/gregtech/lang/en_us.lang b/src/main/resources/assets/gregtech/lang/en_us.lang index 0a4692bd420..5c8a4c894d5 100644 --- a/src/main/resources/assets/gregtech/lang/en_us.lang +++ b/src/main/resources/assets/gregtech/lang/en_us.lang @@ -5406,6 +5406,8 @@ gregtech.machine.passthrough_hatch_item.name=Item Passthrough Hatch gregtech.machine.passthrough_hatch_item.tooltip=Sends Items from one Side to the other gregtech.machine.passthrough_hatch_fluid.name=Fluid Passthrough Hatch gregtech.machine.passthrough_hatch_fluid.tooltip=Sends Fluids from one Side to the other +gregtech.machine.passthrough_hatch_laser.name=Laser Passthrough Hatch +gregtech.machine.passthrough_hatch_laser.tooltip=Sends Laser Power from one Side to the other gregtech.machine.reservoir_hatch.name=Reservoir Hatch gregtech.machine.reservoir_hatch.tooltip=Not a Sink From dcc6894286a1611ba5e5c6e9783fb8a04a6b286a Mon Sep 17 00:00:00 2001 From: htmlcsjs <46023024+htmlcsjs@users.noreply.github.com> Date: Mon, 17 Feb 2025 20:10:31 +0000 Subject: [PATCH 2/6] Fix typo in registering LaserPipeBlocks from the original PR --- src/main/java/gregtech/common/blocks/MetaBlocks.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/java/gregtech/common/blocks/MetaBlocks.java b/src/main/java/gregtech/common/blocks/MetaBlocks.java index ed353717832..dd89a94598c 100644 --- a/src/main/java/gregtech/common/blocks/MetaBlocks.java +++ b/src/main/java/gregtech/common/blocks/MetaBlocks.java @@ -118,7 +118,7 @@ private MetaBlocks() {} public static final Map FLUID_PIPES = new Object2ObjectOpenHashMap<>(); public static final Map ITEM_PIPES = new Object2ObjectOpenHashMap<>(); public static final BlockOpticalPipe[] OPTICAL_PIPES = new BlockOpticalPipe[OpticalPipeType.values().length]; - public static final BlockLaserPipe[] LASER_PIPES = new BlockLaserPipe[OpticalPipeType.values().length]; + public static final BlockLaserPipe[] LASER_PIPES = new BlockLaserPipe[LaserPipeType.values().length]; public static BlockLongDistancePipe LD_ITEM_PIPE; public static BlockLongDistancePipe LD_FLUID_PIPE; From 05d9223553e25b2669e412306e84d182f0b8c127 Mon Sep 17 00:00:00 2001 From: htmlcsjs <46023024+htmlcsjs@users.noreply.github.com> Date: Mon, 17 Feb 2025 20:16:16 +0000 Subject: [PATCH 3/6] recipe + spotless --- .../MetaTileEntityPassthroughHatchLaser.java | 20 ++++++------------- .../MetaTileEntityMachineRecipeLoader.java | 13 ++++++++++-- 2 files changed, 17 insertions(+), 16 deletions(-) diff --git a/src/main/java/gregtech/common/metatileentities/multi/multiblockpart/MetaTileEntityPassthroughHatchLaser.java b/src/main/java/gregtech/common/metatileentities/multi/multiblockpart/MetaTileEntityPassthroughHatchLaser.java index afc6c9a1d9c..4e7194ce8bd 100644 --- a/src/main/java/gregtech/common/metatileentities/multi/multiblockpart/MetaTileEntityPassthroughHatchLaser.java +++ b/src/main/java/gregtech/common/metatileentities/multi/multiblockpart/MetaTileEntityPassthroughHatchLaser.java @@ -1,40 +1,32 @@ package gregtech.common.metatileentities.multi.multiblockpart; -import codechicken.lib.render.CCRenderState; -import codechicken.lib.render.pipeline.IVertexOperation; -import codechicken.lib.vec.Matrix4; - -import gregtech.api.GTValues; import gregtech.api.capability.GregtechTileCapabilities; -import gregtech.api.capability.IControllable; -import gregtech.api.capability.IEnergyContainer; import gregtech.api.capability.ILaserContainer; import gregtech.api.metatileentity.MetaTileEntity; import gregtech.api.metatileentity.interfaces.IGregTechTileEntity; import gregtech.api.metatileentity.multiblock.IMultiblockAbilityPart; import gregtech.api.metatileentity.multiblock.IPassthroughHatch; import gregtech.api.metatileentity.multiblock.MultiblockAbility; - import gregtech.client.renderer.texture.Textures; -import gregtech.client.utils.PipelineUtil; import net.minecraft.client.resources.I18n; import net.minecraft.item.ItemStack; import net.minecraft.tileentity.TileEntity; import net.minecraft.util.EnumFacing; import net.minecraft.util.ResourceLocation; - import net.minecraft.world.World; - import net.minecraftforge.common.capabilities.Capability; +import codechicken.lib.render.CCRenderState; +import codechicken.lib.render.pipeline.IVertexOperation; +import codechicken.lib.vec.Matrix4; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; import java.util.List; public class MetaTileEntityPassthroughHatchLaser extends MetaTileEntityMultiblockPart implements IPassthroughHatch, - IMultiblockAbilityPart { + IMultiblockAbilityPart { public MetaTileEntityPassthroughHatchLaser(ResourceLocation metaTileEntityId, int tier) { super(metaTileEntityId, tier); @@ -47,7 +39,8 @@ public T getCapability(Capability capability, EnumFacing side) { if (world != null && !world.isRemote) { TileEntity te = world.getTileEntity(getPos().offset(getFrontFacing())); if (te != null) { - return GregtechTileCapabilities.CAPABILITY_LASER.cast(te.getCapability(GregtechTileCapabilities.CAPABILITY_LASER, getFrontFacing().getOpposite())); + return GregtechTileCapabilities.CAPABILITY_LASER.cast(te + .getCapability(GregtechTileCapabilities.CAPABILITY_LASER, getFrontFacing().getOpposite())); } } } @@ -59,7 +52,6 @@ public MetaTileEntity createMetaTileEntity(IGregTechTileEntity tileEntity) { return new MetaTileEntityPassthroughHatchLaser(metaTileEntityId, getTier()); } - @Override public MultiblockAbility getAbility() { return MultiblockAbility.PASSTHROUGH_HATCH; diff --git a/src/main/java/gregtech/loaders/recipe/MetaTileEntityMachineRecipeLoader.java b/src/main/java/gregtech/loaders/recipe/MetaTileEntityMachineRecipeLoader.java index d5bedf439e2..21364d66616 100644 --- a/src/main/java/gregtech/loaders/recipe/MetaTileEntityMachineRecipeLoader.java +++ b/src/main/java/gregtech/loaders/recipe/MetaTileEntityMachineRecipeLoader.java @@ -10,6 +10,7 @@ import gregtech.api.unification.stack.UnificationEntry; import gregtech.api.util.GTUtility; import gregtech.api.util.Mods; +import gregtech.common.pipelike.laser.LaserPipeType; import net.minecraft.init.Blocks; import net.minecraft.item.ItemStack; @@ -20,8 +21,7 @@ import static gregtech.api.unification.material.MarkerMaterials.Tier; import static gregtech.api.unification.material.Materials.*; import static gregtech.api.unification.ore.OrePrefix.*; -import static gregtech.common.blocks.MetaBlocks.LD_FLUID_PIPE; -import static gregtech.common.blocks.MetaBlocks.LD_ITEM_PIPE; +import static gregtech.common.blocks.MetaBlocks.*; import static gregtech.common.items.MetaItems.*; import static gregtech.common.metatileentities.MetaTileEntities.*; @@ -1376,6 +1376,15 @@ private static int getFluidAmount(int offsetTier) { // TODO clean this up with a CraftingComponent rework private static void registerLaserRecipes() { + // Laser Passthrough Hatch + ASSEMBLER_RECIPES.recipeBuilder() + .input(HULL[IV]) + .input(LASER_PIPES[LaserPipeType.NORMAL.ordinal()]) + .input(lens, Diamond) + .circuitMeta(4) + .output(PASSTHROUGH_HATCH_LASER) + .duration(300).EUt(VA[IV]).buildAndRegister(); + // 256A Laser Source Hatches ASSEMBLER_RECIPES.recipeBuilder() .input(HULL[IV]) From 888d0a923ecb0d6c6ef124f6f71ce090b814e5c1 Mon Sep 17 00:00:00 2001 From: htmlcsjs <46023024+htmlcsjs@users.noreply.github.com> Date: Sun, 11 May 2025 18:56:15 +0100 Subject: [PATCH 4/6] top for i/o side and fix openGUIOnRightClick --- .../MetaTileEntityPassthroughHatchLaser.java | 5 ++ .../theoneprobe/TheOneProbeModule.java | 1 + .../LaserPassthroughInfoProvider.java | 46 +++++++++++++++++++ .../resources/assets/gregtech/lang/en_us.lang | 3 ++ 4 files changed, 55 insertions(+) create mode 100644 src/main/java/gregtech/integration/theoneprobe/provider/LaserPassthroughInfoProvider.java diff --git a/src/main/java/gregtech/common/metatileentities/multi/multiblockpart/MetaTileEntityPassthroughHatchLaser.java b/src/main/java/gregtech/common/metatileentities/multi/multiblockpart/MetaTileEntityPassthroughHatchLaser.java index 4e7194ce8bd..9d2d2460528 100644 --- a/src/main/java/gregtech/common/metatileentities/multi/multiblockpart/MetaTileEntityPassthroughHatchLaser.java +++ b/src/main/java/gregtech/common/metatileentities/multi/multiblockpart/MetaTileEntityPassthroughHatchLaser.java @@ -67,6 +67,11 @@ public void registerAbilities(@NotNull List abilityList) { return ILaserContainer.class; } + @Override + protected boolean openGUIOnRightClick() { + return false; + } + @Override public void addInformation(ItemStack stack, @Nullable World world, @NotNull List tooltip, boolean advanced) { diff --git a/src/main/java/gregtech/integration/theoneprobe/TheOneProbeModule.java b/src/main/java/gregtech/integration/theoneprobe/TheOneProbeModule.java index 0e26ab8f899..f20f495af01 100644 --- a/src/main/java/gregtech/integration/theoneprobe/TheOneProbeModule.java +++ b/src/main/java/gregtech/integration/theoneprobe/TheOneProbeModule.java @@ -47,6 +47,7 @@ public void init(FMLInitializationEvent event) { oneProbe.registerProvider(new ActiveTransformerInfoProvider()); oneProbe.registerProvider(new BatteryBufferInfoProvider()); oneProbe.registerProvider(new AEMultiblockHatchProvider()); + oneProbe.registerProvider(new LaserPassthroughInfoProvider()); // Dev environment debug providers oneProbe.registerProvider(new DebugPipeNetInfoProvider()); diff --git a/src/main/java/gregtech/integration/theoneprobe/provider/LaserPassthroughInfoProvider.java b/src/main/java/gregtech/integration/theoneprobe/provider/LaserPassthroughInfoProvider.java new file mode 100644 index 00000000000..1b3b3c31a8a --- /dev/null +++ b/src/main/java/gregtech/integration/theoneprobe/provider/LaserPassthroughInfoProvider.java @@ -0,0 +1,46 @@ +package gregtech.integration.theoneprobe.provider; + +import gregtech.api.metatileentity.MetaTileEntity; +import gregtech.api.metatileentity.interfaces.IGregTechTileEntity; +import gregtech.common.metatileentities.multi.multiblockpart.MetaTileEntityPassthroughHatchLaser; + +import net.minecraft.block.state.IBlockState; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.tileentity.TileEntity; +import net.minecraft.util.math.BlockPos; +import net.minecraft.util.text.TextFormatting; +import net.minecraft.world.World; + +import mcjty.theoneprobe.api.IProbeHitData; +import mcjty.theoneprobe.api.IProbeInfo; +import mcjty.theoneprobe.api.IProbeInfoProvider; +import mcjty.theoneprobe.api.ProbeMode; +import mcjty.theoneprobe.api.TextStyleClass; + +public class LaserPassthroughInfoProvider implements IProbeInfoProvider { + + @Override + public String getID() { + return "gregtech:laser_passthrough_info_provider"; + } + + @Override + public void addProbeInfo(ProbeMode probeMode, IProbeInfo probeInfo, EntityPlayer entityPlayer, World world, + IBlockState blockState, IProbeHitData probeHitData) { + BlockPos pos = probeHitData.getPos(); + + TileEntity tileEntity = world.getTileEntity(pos); + if (tileEntity instanceof IGregTechTileEntity gtte) { + MetaTileEntity metaTileEntity = gtte.getMetaTileEntity(); + if (metaTileEntity instanceof MetaTileEntityPassthroughHatchLaser passthroughHatch) { + if (passthroughHatch.getFrontFacing().getOpposite() == probeHitData.getSideHit()) { + probeInfo.text(TextStyleClass.INFO + TextFormatting.GOLD.toString() + + "{*gregtech.top.passthrough.laser.input*}"); + } else if (passthroughHatch.getFrontFacing() == probeHitData.getSideHit()) { + probeInfo.text(TextStyleClass.INFO + TextFormatting.BLUE.toString() + + "{*gregtech.top.passthrough.laser.output*}"); + } + } + } + } +} diff --git a/src/main/resources/assets/gregtech/lang/en_us.lang b/src/main/resources/assets/gregtech/lang/en_us.lang index 5c8a4c894d5..ffb9e3e4334 100644 --- a/src/main/resources/assets/gregtech/lang/en_us.lang +++ b/src/main/resources/assets/gregtech/lang/en_us.lang @@ -117,6 +117,9 @@ gregtech.top.ld_pipe_output=Output gregtech.top.ld_pipe_input_endpoint=Input Endpoint: gregtech.top.ld_pipe_output_endpoint=Output Endpoint: +gregtech.top.passthrough.laser.output=Output side +gregtech.top.passthrough.laser.input=Input side + option.gregtech.block_ore=Ore Blocks option.gregtech.controllable=Controllable Machines option.gregtech.converter=Energy Converters From afd6ecf7d875a7638cbba659e060402137261096 Mon Sep 17 00:00:00 2001 From: htmlcsjs <46023024+htmlcsjs@users.noreply.github.com> Date: Sat, 17 May 2025 19:52:13 +0100 Subject: [PATCH 5/6] fix lasers breaking when rotated --- .../MetaTileEntityPassthroughHatchLaser.java | 21 +++++++++++++++++++ 1 file changed, 21 insertions(+) diff --git a/src/main/java/gregtech/common/metatileentities/multi/multiblockpart/MetaTileEntityPassthroughHatchLaser.java b/src/main/java/gregtech/common/metatileentities/multi/multiblockpart/MetaTileEntityPassthroughHatchLaser.java index 9d2d2460528..939448f2ed3 100644 --- a/src/main/java/gregtech/common/metatileentities/multi/multiblockpart/MetaTileEntityPassthroughHatchLaser.java +++ b/src/main/java/gregtech/common/metatileentities/multi/multiblockpart/MetaTileEntityPassthroughHatchLaser.java @@ -8,12 +8,15 @@ import gregtech.api.metatileentity.multiblock.IPassthroughHatch; import gregtech.api.metatileentity.multiblock.MultiblockAbility; import gregtech.client.renderer.texture.Textures; +import gregtech.common.pipelike.laser.net.WorldLaserPipeNet; +import gregtech.common.pipelike.laser.tile.TileEntityLaserPipe; import net.minecraft.client.resources.I18n; import net.minecraft.item.ItemStack; import net.minecraft.tileentity.TileEntity; import net.minecraft.util.EnumFacing; import net.minecraft.util.ResourceLocation; +import net.minecraft.util.math.BlockPos; import net.minecraft.world.World; import net.minecraftforge.common.capabilities.Capability; @@ -47,6 +50,24 @@ public T getCapability(Capability capability, EnumFacing side) { return super.getCapability(capability, side); } + @Override + public void setFrontFacing(EnumFacing frontFacing) { + super.setFrontFacing(frontFacing); + var worldNet = WorldLaserPipeNet.getWorldPipeNet(getWorld()); + var pos = new BlockPos.MutableBlockPos(); + for (var facing : EnumFacing.VALUES) { + TileEntity te = getNeighbor(facing); + if (te instanceof TileEntityLaserPipe) { + pos.setPos(getPos()); + pos.move(facing); + var net = worldNet.getNetFromPos(pos); + if (net != null) { + net.onPipeConnectionsUpdate(); + } + } + } + } + @Override public MetaTileEntity createMetaTileEntity(IGregTechTileEntity tileEntity) { return new MetaTileEntityPassthroughHatchLaser(metaTileEntityId, getTier()); From 33aa017b290a40fe05b45f5795956eb9be70aefa Mon Sep 17 00:00:00 2001 From: htmlcsjs <46023024+htmlcsjs@users.noreply.github.com> Date: Sat, 17 May 2025 20:20:44 +0100 Subject: [PATCH 6/6] shuffle IDs around for more passthrough hatches + fixes after rebase --- .../metatileentities/MetaTileEntities.java | 1 - .../MetaTileEntityRegistration.java | 68 ++++++++++--------- .../MetaTileEntityPassthroughHatchLaser.java | 5 +- .../datafix/impl/V2PostMTEReallocFixer.java | 56 +++++++-------- 4 files changed, 67 insertions(+), 63 deletions(-) diff --git a/src/main/java/gregtech/common/metatileentities/MetaTileEntities.java b/src/main/java/gregtech/common/metatileentities/MetaTileEntities.java index 62f66cde0ca..05849d264ce 100644 --- a/src/main/java/gregtech/common/metatileentities/MetaTileEntities.java +++ b/src/main/java/gregtech/common/metatileentities/MetaTileEntities.java @@ -78,7 +78,6 @@ import gregtech.common.metatileentities.multi.multiblockpart.MetaTileEntityPassthroughHatchFluid; import gregtech.common.metatileentities.multi.multiblockpart.MetaTileEntityPassthroughHatchItem; import gregtech.common.metatileentities.multi.multiblockpart.MetaTileEntityPassthroughHatchLaser; -import gregtech.common.metatileentities.multi.multiblockpart.MetaTileEntityPassthroughHatchLaser; import gregtech.common.metatileentities.multi.multiblockpart.MetaTileEntityReservoirHatch; import gregtech.common.metatileentities.multi.multiblockpart.MetaTileEntityRotorHolder; import gregtech.common.metatileentities.multi.multiblockpart.MetaTileEntitySubstationEnergyHatch; diff --git a/src/main/java/gregtech/common/metatileentities/MetaTileEntityRegistration.java b/src/main/java/gregtech/common/metatileentities/MetaTileEntityRegistration.java index 55cd52e5cd4..384a046e9af 100644 --- a/src/main/java/gregtech/common/metatileentities/MetaTileEntityRegistration.java +++ b/src/main/java/gregtech/common/metatileentities/MetaTileEntityRegistration.java @@ -80,6 +80,7 @@ import gregtech.common.metatileentities.multi.multiblockpart.MetaTileEntityOpticalDataHatch; import gregtech.common.metatileentities.multi.multiblockpart.MetaTileEntityPassthroughHatchFluid; import gregtech.common.metatileentities.multi.multiblockpart.MetaTileEntityPassthroughHatchItem; +import gregtech.common.metatileentities.multi.multiblockpart.MetaTileEntityPassthroughHatchLaser; import gregtech.common.metatileentities.multi.multiblockpart.MetaTileEntityReservoirHatch; import gregtech.common.metatileentities.multi.multiblockpart.MetaTileEntityRotorHolder; import gregtech.common.metatileentities.multi.multiblockpart.MetaTileEntitySubstationEnergyHatch; @@ -995,78 +996,81 @@ private static void multiblockParts() { MetaTileEntities.CLEANING_MAINTENANCE_HATCH = MetaTileEntities.registerMetaTileEntity(11483, new MetaTileEntityCleaningMaintenanceHatch(gregtechId("maintenance_hatch_cleanroom_auto"))); - // Misc Hatches: ID 11495-11524 - MetaTileEntities.MACHINE_HATCH = MetaTileEntities.registerMetaTileEntity(11495, - new MetaTileEntityMachineHatch(gregtechId("machine_hatch"), 5)); - + // Passthrough Hatches: ID 11496-11512 MetaTileEntities.PASSTHROUGH_HATCH_ITEM = MetaTileEntities.registerMetaTileEntity(11496, new MetaTileEntityPassthroughHatchItem(gregtechId("passthrough_hatch_item"), 3)); MetaTileEntities.PASSTHROUGH_HATCH_FLUID = MetaTileEntities.registerMetaTileEntity(11497, new MetaTileEntityPassthroughHatchFluid(gregtechId("passthrough_hatch_fluid"), 3)); + MetaTileEntities.PASSTHROUGH_HATCH_LASER = MetaTileEntities.registerMetaTileEntity(11498, + new MetaTileEntityPassthroughHatchLaser(gregtechId("passthrough_hatch_laser"), 5)); + + // Misc Hatches: ID 11513-11549 + MetaTileEntities.MACHINE_HATCH = MetaTileEntities.registerMetaTileEntity(11513, + new MetaTileEntityMachineHatch(gregtechId("machine_hatch"), 5)); - MetaTileEntities.DATA_ACCESS_HATCH = MetaTileEntities.registerMetaTileEntity(11498, + MetaTileEntities.DATA_ACCESS_HATCH = MetaTileEntities.registerMetaTileEntity(11514, new MetaTileEntityDataAccessHatch(gregtechId("data_access_hatch"), GTValues.EV, false)); - MetaTileEntities.ADVANCED_DATA_ACCESS_HATCH = MetaTileEntities.registerMetaTileEntity(11499, + MetaTileEntities.ADVANCED_DATA_ACCESS_HATCH = MetaTileEntities.registerMetaTileEntity(11515, new MetaTileEntityDataAccessHatch(gregtechId("data_access_hatch.advanced"), GTValues.LuV, false)); - MetaTileEntities.CREATIVE_DATA_HATCH = MetaTileEntities.registerMetaTileEntity(11500, + MetaTileEntities.CREATIVE_DATA_HATCH = MetaTileEntities.registerMetaTileEntity(11516, new MetaTileEntityDataAccessHatch(gregtechId("data_access_hatch.creative"), GTValues.MAX, true)); - MetaTileEntities.OPTICAL_DATA_HATCH_RECEIVER = MetaTileEntities.registerMetaTileEntity(11501, + MetaTileEntities.OPTICAL_DATA_HATCH_RECEIVER = MetaTileEntities.registerMetaTileEntity(11517, new MetaTileEntityOpticalDataHatch(gregtechId("data_access_hatch.optical.receiver"), false)); - MetaTileEntities.OPTICAL_DATA_HATCH_TRANSMITTER = MetaTileEntities.registerMetaTileEntity(11502, + MetaTileEntities.OPTICAL_DATA_HATCH_TRANSMITTER = MetaTileEntities.registerMetaTileEntity(11518, new MetaTileEntityOpticalDataHatch(gregtechId("data_access_hatch.optical.transmitter"), true)); - MetaTileEntities.COMPUTATION_HATCH_RECEIVER = MetaTileEntities.registerMetaTileEntity(11503, + MetaTileEntities.COMPUTATION_HATCH_RECEIVER = MetaTileEntities.registerMetaTileEntity(11519, new MetaTileEntityComputationHatch(gregtechId("computation_hatch.receiver"), false)); - MetaTileEntities.COMPUTATION_HATCH_TRANSMITTER = MetaTileEntities.registerMetaTileEntity(11504, + MetaTileEntities.COMPUTATION_HATCH_TRANSMITTER = MetaTileEntities.registerMetaTileEntity(11520, new MetaTileEntityComputationHatch(gregtechId("computation_hatch.transmitter"), true)); - MetaTileEntities.RESERVOIR_HATCH = MetaTileEntities.registerMetaTileEntity(11505, + MetaTileEntities.RESERVOIR_HATCH = MetaTileEntities.registerMetaTileEntity(11521, new MetaTileEntityReservoirHatch(gregtechId("reservoir_hatch"))); - MetaTileEntities.PUMP_OUTPUT_HATCH = MetaTileEntities.registerMetaTileEntity(11506, + MetaTileEntities.PUMP_OUTPUT_HATCH = MetaTileEntities.registerMetaTileEntity(11522, new MetaTileEntityPumpHatch(gregtechId("pump_hatch"))); - MetaTileEntities.STEAM_EXPORT_BUS = MetaTileEntities.registerMetaTileEntity(11507, + MetaTileEntities.STEAM_EXPORT_BUS = MetaTileEntities.registerMetaTileEntity(11523, new MetaTileEntitySteamItemBus(gregtechId("steam_export_bus"), true)); - MetaTileEntities.STEAM_IMPORT_BUS = MetaTileEntities.registerMetaTileEntity(11508, + MetaTileEntities.STEAM_IMPORT_BUS = MetaTileEntities.registerMetaTileEntity(11524, new MetaTileEntitySteamItemBus(gregtechId("steam_import_bus"), false)); - MetaTileEntities.STEAM_HATCH = MetaTileEntities.registerMetaTileEntity(11509, + MetaTileEntities.STEAM_HATCH = MetaTileEntities.registerMetaTileEntity(11525, new MetaTileEntitySteamHatch(gregtechId("steam_hatch"))); - MetaTileEntities.OBJECT_HOLDER = MetaTileEntities.registerMetaTileEntity(11510, + MetaTileEntities.OBJECT_HOLDER = MetaTileEntities.registerMetaTileEntity(11526, new MetaTileEntityObjectHolder(gregtechId("research_station.object_holder"))); - MetaTileEntities.HPCA_EMPTY_COMPONENT = MetaTileEntities.registerMetaTileEntity(11511, + MetaTileEntities.HPCA_EMPTY_COMPONENT = MetaTileEntities.registerMetaTileEntity(11527, new MetaTileEntityHPCAEmpty(gregtechId("hpca.empty_component"))); - MetaTileEntities.HPCA_COMPUTATION_COMPONENT = MetaTileEntities.registerMetaTileEntity(11512, + MetaTileEntities.HPCA_COMPUTATION_COMPONENT = MetaTileEntities.registerMetaTileEntity(11528, new MetaTileEntityHPCAComputation(gregtechId("hpca.computation_component"), false)); - MetaTileEntities.HPCA_ADVANCED_COMPUTATION_COMPONENT = MetaTileEntities.registerMetaTileEntity(11513, + MetaTileEntities.HPCA_ADVANCED_COMPUTATION_COMPONENT = MetaTileEntities.registerMetaTileEntity(11529, new MetaTileEntityHPCAComputation(gregtechId("hpca.advanced_computation_component"), true)); - MetaTileEntities.HPCA_HEAT_SINK_COMPONENT = MetaTileEntities.registerMetaTileEntity(11514, + MetaTileEntities.HPCA_HEAT_SINK_COMPONENT = MetaTileEntities.registerMetaTileEntity(11530, new MetaTileEntityHPCACooler(gregtechId("hpca.heat_sink_component"), false)); - MetaTileEntities.HPCA_ACTIVE_COOLER_COMPONENT = MetaTileEntities.registerMetaTileEntity(11515, + MetaTileEntities.HPCA_ACTIVE_COOLER_COMPONENT = MetaTileEntities.registerMetaTileEntity(11531, new MetaTileEntityHPCACooler(gregtechId("hpca.active_cooler_component"), true)); - MetaTileEntities.HPCA_BRIDGE_COMPONENT = MetaTileEntities.registerMetaTileEntity(11516, + MetaTileEntities.HPCA_BRIDGE_COMPONENT = MetaTileEntities.registerMetaTileEntity(11532, new MetaTileEntityHPCABridge(gregtechId("hpca.bridge_component"))); - MetaTileEntities.WOODEN_TANK_VALVE = MetaTileEntities.registerMetaTileEntity(11523, + MetaTileEntities.WOODEN_TANK_VALVE = MetaTileEntities.registerMetaTileEntity(11539, new MetaTileEntityTankValve(gregtechId("tank_valve.wood"), false)); - MetaTileEntities.STEEL_TANK_VALVE = MetaTileEntities.registerMetaTileEntity(11524, + MetaTileEntities.STEEL_TANK_VALVE = MetaTileEntities.registerMetaTileEntity(11540, new MetaTileEntityTankValve(gregtechId("tank_valve.steel"), true)); - // ME Hatches, IDs 11525-11539 + // ME Hatches, IDs 11541-11549 if (Mods.AppliedEnergistics2.isModLoaded()) { - MetaTileEntities.ITEM_IMPORT_BUS_ME = MetaTileEntities.registerMetaTileEntity(11525, + MetaTileEntities.ITEM_IMPORT_BUS_ME = MetaTileEntities.registerMetaTileEntity(11541, new MetaTileEntityMEInputBus(gregtechId("me_import_item_bus"))); - MetaTileEntities.FLUID_IMPORT_HATCH_ME = MetaTileEntities.registerMetaTileEntity(11526, + MetaTileEntities.FLUID_IMPORT_HATCH_ME = MetaTileEntities.registerMetaTileEntity(11542, new MetaTileEntityMEInputHatch(gregtechId("me_import_fluid_hatch"))); - MetaTileEntities.STOCKING_BUS_ME = MetaTileEntities.registerMetaTileEntity(11527, + MetaTileEntities.STOCKING_BUS_ME = MetaTileEntities.registerMetaTileEntity(11543, new MetaTileEntityMEStockingBus(gregtechId("me_stocking_item_bus"))); - MetaTileEntities.STOCKING_HATCH_ME = MetaTileEntities.registerMetaTileEntity(11528, + MetaTileEntities.STOCKING_HATCH_ME = MetaTileEntities.registerMetaTileEntity(11544, new MetaTileEntityMEStockingHatch(gregtechId("me_stocking_fluid_hatch"))); // slots left for CRIB and CRIBuffer in the future for nicer sorting order - MetaTileEntities.ITEM_EXPORT_BUS_ME = MetaTileEntities.registerMetaTileEntity(11532, + MetaTileEntities.ITEM_EXPORT_BUS_ME = MetaTileEntities.registerMetaTileEntity(11548, new MetaTileEntityMEOutputBus(gregtechId("me_export_item_bus"))); - MetaTileEntities.FLUID_EXPORT_HATCH_ME = MetaTileEntities.registerMetaTileEntity(11533, + MetaTileEntities.FLUID_EXPORT_HATCH_ME = MetaTileEntities.registerMetaTileEntity(11549, new MetaTileEntityMEOutputHatch(gregtechId("me_export_fluid_hatch"))); } } diff --git a/src/main/java/gregtech/common/metatileentities/multi/multiblockpart/MetaTileEntityPassthroughHatchLaser.java b/src/main/java/gregtech/common/metatileentities/multi/multiblockpart/MetaTileEntityPassthroughHatchLaser.java index 939448f2ed3..45708c758c7 100644 --- a/src/main/java/gregtech/common/metatileentities/multi/multiblockpart/MetaTileEntityPassthroughHatchLaser.java +++ b/src/main/java/gregtech/common/metatileentities/multi/multiblockpart/MetaTileEntityPassthroughHatchLaser.java @@ -4,6 +4,7 @@ import gregtech.api.capability.ILaserContainer; import gregtech.api.metatileentity.MetaTileEntity; import gregtech.api.metatileentity.interfaces.IGregTechTileEntity; +import gregtech.api.metatileentity.multiblock.AbilityInstances; import gregtech.api.metatileentity.multiblock.IMultiblockAbilityPart; import gregtech.api.metatileentity.multiblock.IPassthroughHatch; import gregtech.api.metatileentity.multiblock.MultiblockAbility; @@ -79,8 +80,8 @@ public MultiblockAbility getAbility() { } @Override - public void registerAbilities(@NotNull List abilityList) { - abilityList.add(this); + public void registerAbilities(@NotNull AbilityInstances abilityInstances) { + abilityInstances.add(this); } @Override diff --git a/src/main/java/gregtech/datafix/impl/V2PostMTEReallocFixer.java b/src/main/java/gregtech/datafix/impl/V2PostMTEReallocFixer.java index d8fcf80ac4b..94d4bad8cef 100644 --- a/src/main/java/gregtech/datafix/impl/V2PostMTEReallocFixer.java +++ b/src/main/java/gregtech/datafix/impl/V2PostMTEReallocFixer.java @@ -78,46 +78,46 @@ public static void apply(@NotNull MTEDataMigrator dataMigrator) { } dataMigrator.migrateMTEMeta(MODID, 1401, 11483); // PA hatch - dataMigrator.migrateMTEMeta(MODID, 1398, 11495); + dataMigrator.migrateMTEMeta(MODID, 1398, 11513); // Passthrough hatches dataMigrator.migrateMTEMeta(MODID, 1402, 11496); dataMigrator.migrateMTEMeta(MODID, 1403, 11497); // data hatches - dataMigrator.migrateMTEMeta(MODID, 1404, 11498); - dataMigrator.migrateMTEMeta(MODID, 1405, 11499); - dataMigrator.migrateMTEMeta(MODID, 1406, 11500); + dataMigrator.migrateMTEMeta(MODID, 1404, 11514); + dataMigrator.migrateMTEMeta(MODID, 1405, 11515); + dataMigrator.migrateMTEMeta(MODID, 1406, 11516); // computation hatches - dataMigrator.migrateMTEMeta(MODID, 1407, 11501); - dataMigrator.migrateMTEMeta(MODID, 1408, 11502); - dataMigrator.migrateMTEMeta(MODID, 1409, 11503); - dataMigrator.migrateMTEMeta(MODID, 1410, 11504); + dataMigrator.migrateMTEMeta(MODID, 1407, 11517); + dataMigrator.migrateMTEMeta(MODID, 1408, 11518); + dataMigrator.migrateMTEMeta(MODID, 1409, 11519); + dataMigrator.migrateMTEMeta(MODID, 1410, 11520); // reservoir hatch - dataMigrator.migrateMTEMeta(MODID, 1418, 11505); + dataMigrator.migrateMTEMeta(MODID, 1418, 11521); // primitive pump hatch - dataMigrator.migrateMTEMeta(MODID, 1649, 11506); + dataMigrator.migrateMTEMeta(MODID, 1649, 11522); // steam hatches - dataMigrator.migrateMTEMeta(MODID, 1651, 11507); - dataMigrator.migrateMTEMeta(MODID, 1652, 11508); - dataMigrator.migrateMTEMeta(MODID, 1653, 11509); + dataMigrator.migrateMTEMeta(MODID, 1651, 11523); + dataMigrator.migrateMTEMeta(MODID, 1652, 11524); + dataMigrator.migrateMTEMeta(MODID, 1653, 11525); // object holder - dataMigrator.migrateMTEMeta(MODID, 1411, 11510); + dataMigrator.migrateMTEMeta(MODID, 1411, 11526); // hpca components - dataMigrator.migrateMTEMeta(MODID, 1412, 11511); - dataMigrator.migrateMTEMeta(MODID, 1413, 11512); - dataMigrator.migrateMTEMeta(MODID, 1414, 11513); - dataMigrator.migrateMTEMeta(MODID, 1415, 11514); - dataMigrator.migrateMTEMeta(MODID, 1416, 11515); - dataMigrator.migrateMTEMeta(MODID, 1417, 11516); + dataMigrator.migrateMTEMeta(MODID, 1412, 11527); + dataMigrator.migrateMTEMeta(MODID, 1413, 11528); + dataMigrator.migrateMTEMeta(MODID, 1414, 11529); + dataMigrator.migrateMTEMeta(MODID, 1415, 11530); + dataMigrator.migrateMTEMeta(MODID, 1416, 11531); + dataMigrator.migrateMTEMeta(MODID, 1417, 11532); // tank valves - dataMigrator.migrateMTEMeta(MODID, 1596, 11523); - dataMigrator.migrateMTEMeta(MODID, 1598, 11524); + dataMigrator.migrateMTEMeta(MODID, 1596, 11539); + dataMigrator.migrateMTEMeta(MODID, 1598, 11540); // AE2 hatches - dataMigrator.migrateMTEMeta(MODID, 1745, 11533); - dataMigrator.migrateMTEMeta(MODID, 1746, 11532); - dataMigrator.migrateMTEMeta(MODID, 1747, 11526); - dataMigrator.migrateMTEMeta(MODID, 1748, 11525); - dataMigrator.migrateMTEMeta(MODID, 1752, 11527); - dataMigrator.migrateMTEMeta(MODID, 1753, 11528); + dataMigrator.migrateMTEMeta(MODID, 1745, 11549); + dataMigrator.migrateMTEMeta(MODID, 1746, 11548); + dataMigrator.migrateMTEMeta(MODID, 1747, 11542); + dataMigrator.migrateMTEMeta(MODID, 1748, 11542); + dataMigrator.migrateMTEMeta(MODID, 1752, 11543); + dataMigrator.migrateMTEMeta(MODID, 1753, 11544); // transformers for (int i = 0; i < TRANSFORMER.length; i++) { dataMigrator.migrateMTEMeta(MODID, 1270 + i, 5000 + i);