aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/gregtech/common/tileentities
diff options
context:
space:
mode:
authorGlease <4586901+Glease@users.noreply.github.com>2021-11-14 04:58:42 +0800
committerGlease <4586901+Glease@users.noreply.github.com>2021-11-14 04:58:42 +0800
commitb0f94478bab78c4a72d79170908178c85448d0d6 (patch)
tree2a9638b4ffa1587ffb0b91d9aae49dea8873db11 /src/main/java/gregtech/common/tileentities
parentac53af71fbb4f0fd4e992138fcc8af3e34191407 (diff)
downloadGT5-Unofficial-b0f94478bab78c4a72d79170908178c85448d0d6.tar.gz
GT5-Unofficial-b0f94478bab78c4a72d79170908178c85448d0d6.tar.bz2
GT5-Unofficial-b0f94478bab78c4a72d79170908178c85448d0d6.zip
Require each LDP endpoints to be at least 64 blocks away
Diffstat (limited to 'src/main/java/gregtech/common/tileentities')
-rw-r--r--src/main/java/gregtech/common/tileentities/machines/long_distance/GT_MetaTileEntity_LongDistancePipelineBase.java21
1 files changed, 17 insertions, 4 deletions
diff --git a/src/main/java/gregtech/common/tileentities/machines/long_distance/GT_MetaTileEntity_LongDistancePipelineBase.java b/src/main/java/gregtech/common/tileentities/machines/long_distance/GT_MetaTileEntity_LongDistancePipelineBase.java
index 64651a3fc4..14663f7d68 100644
--- a/src/main/java/gregtech/common/tileentities/machines/long_distance/GT_MetaTileEntity_LongDistancePipelineBase.java
+++ b/src/main/java/gregtech/common/tileentities/machines/long_distance/GT_MetaTileEntity_LongDistancePipelineBase.java
@@ -46,6 +46,7 @@ import java.util.LinkedList;
import java.util.Queue;
public abstract class GT_MetaTileEntity_LongDistancePipelineBase extends GT_MetaTileEntity_BasicHull_NonElectric {
+ public static int minimalDistancePoints = 64;
protected GT_MetaTileEntity_LongDistancePipelineBase mTarget = null, mSender = null;
protected ChunkCoordinates mTargetPos = null;
@@ -77,6 +78,8 @@ public abstract class GT_MetaTileEntity_LongDistancePipelineBase extends GT_Meta
aNBT.getInteger("target.y"),
aNBT.getInteger("target.z")
);
+ if (getDistanceToSelf(mTargetPos) < minimalDistancePoints)
+ mTargetPos = null;
}
}
@@ -210,9 +213,13 @@ public abstract class GT_MetaTileEntity_LongDistancePipelineBase extends GT_Meta
tGtTile.getFacingOffset((BaseMetaTileEntity)tTileEntity, ((BaseMetaTileEntity) tTileEntity).getFrontFacing())
)) {
// If it's the same class, and we've scanned a wire in front of it (the input side), we've found our target
- mTarget = tGtTile;
- mTargetPos = tGtTile.getCoords();
- return;
+ // still need to check if it's distant enough
+ int distance = getDistanceToSelf(aCoords);
+ if (distance > minimalDistancePoints) {
+ mTarget = tGtTile;
+ mTargetPos = tGtTile.getCoords();
+ return;
+ }
}
// Remove this block from the visited because we might end up back here from another wire that IS connected to the
@@ -224,7 +231,13 @@ public abstract class GT_MetaTileEntity_LongDistancePipelineBase extends GT_Meta
}
}
-
+
+ protected int getDistanceToSelf(ChunkCoordinates aCoords) {
+ return Math.abs(getBaseMetaTileEntity().getXCoord() - aCoords.posX) +
+ Math.abs(getBaseMetaTileEntity().getYCoord() - aCoords.posY) / 2 +
+ Math.abs(getBaseMetaTileEntity().getZCoord() - aCoords.posZ);
+ }
+
public ChunkCoordinates getFacingOffset(IGregTechTileEntity gt_tile, byte aSide) {
return new ChunkCoordinates(
gt_tile.getOffsetX(aSide, 1), gt_tile.getOffsetY(aSide, 1), gt_tile.getOffsetZ(aSide, 1)