Skip to content

Commit 4e2ed5a

Browse files
committed
fix lasers breaking when rotated
1 parent 93665a5 commit 4e2ed5a

File tree

1 file changed

+21
-0
lines changed

1 file changed

+21
-0
lines changed

src/main/java/gregtech/common/metatileentities/multi/multiblockpart/MetaTileEntityPassthroughHatchLaser.java

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,12 +8,15 @@
88
import gregtech.api.metatileentity.multiblock.IPassthroughHatch;
99
import gregtech.api.metatileentity.multiblock.MultiblockAbility;
1010
import gregtech.client.renderer.texture.Textures;
11+
import gregtech.common.pipelike.laser.net.WorldLaserPipeNet;
12+
import gregtech.common.pipelike.laser.tile.TileEntityLaserPipe;
1113

1214
import net.minecraft.client.resources.I18n;
1315
import net.minecraft.item.ItemStack;
1416
import net.minecraft.tileentity.TileEntity;
1517
import net.minecraft.util.EnumFacing;
1618
import net.minecraft.util.ResourceLocation;
19+
import net.minecraft.util.math.BlockPos;
1720
import net.minecraft.world.World;
1821
import net.minecraftforge.common.capabilities.Capability;
1922

@@ -47,6 +50,24 @@ public <T> T getCapability(Capability<T> capability, EnumFacing side) {
4750
return super.getCapability(capability, side);
4851
}
4952

53+
@Override
54+
public void setFrontFacing(EnumFacing frontFacing) {
55+
super.setFrontFacing(frontFacing);
56+
var worldNet = WorldLaserPipeNet.getWorldPipeNet(getWorld());
57+
var pos = new BlockPos.MutableBlockPos();
58+
for (var facing : EnumFacing.VALUES) {
59+
TileEntity te = getNeighbor(facing);
60+
if (te instanceof TileEntityLaserPipe) {
61+
pos.setPos(getPos());
62+
pos.move(facing);
63+
var net = worldNet.getNetFromPos(pos);
64+
if (net != null) {
65+
net.onPipeConnectionsUpdate();
66+
}
67+
}
68+
}
69+
}
70+
5071
@Override
5172
public MetaTileEntity createMetaTileEntity(IGregTechTileEntity tileEntity) {
5273
return new MetaTileEntityPassthroughHatchLaser(metaTileEntityId, getTier());

0 commit comments

Comments
 (0)