aboutsummaryrefslogtreecommitdiff
path: root/src/main
diff options
context:
space:
mode:
authorGlease <4586901+Glease@users.noreply.github.com>2020-10-28 22:34:56 +0800
committerGlease <4586901+Glease@users.noreply.github.com>2020-10-28 22:34:56 +0800
commit388f542576c2652971c24e9d92922ca94ce256cb (patch)
treea2af71448838fc154321407866399da89415420b /src/main
parentdd079f38ae168b875626d45683756f4d2eeb13bd (diff)
downloadGT5-Unofficial-388f542576c2652971c24e9d92922ca94ce256cb.tar.gz
GT5-Unofficial-388f542576c2652971c24e9d92922ca94ce256cb.tar.bz2
GT5-Unofficial-388f542576c2652971c24e9d92922ca94ce256cb.zip
Fix ore not synced to client in some cases
Signed-off-by: Glease <4586901+Glease@users.noreply.github.com>
Diffstat (limited to 'src/main')
-rw-r--r--src/main/java/gregtech/common/blocks/GT_TileEntity_Ores.java14
1 files changed, 13 insertions, 1 deletions
diff --git a/src/main/java/gregtech/common/blocks/GT_TileEntity_Ores.java b/src/main/java/gregtech/common/blocks/GT_TileEntity_Ores.java
index 6c4a03420d..b7387f23af 100644
--- a/src/main/java/gregtech/common/blocks/GT_TileEntity_Ores.java
+++ b/src/main/java/gregtech/common/blocks/GT_TileEntity_Ores.java
@@ -132,7 +132,19 @@ public class GT_TileEntity_Ores extends TileEntity implements ITexturedTileEntit
public Packet getDescriptionPacket() {
if (!this.worldObj.isRemote) {
- if ((this.mBlocked == (GT_Utility.isOpaqueBlock(this.worldObj, this.xCoord + 1, this.yCoord, this.zCoord)) && (GT_Utility.isOpaqueBlock(this.worldObj, this.xCoord - 1, this.yCoord, this.zCoord)) && (GT_Utility.isOpaqueBlock(this.worldObj, this.xCoord, this.yCoord + 1, this.zCoord)) && (GT_Utility.isOpaqueBlock(this.worldObj, this.xCoord, this.yCoord - 1, this.zCoord)) && (GT_Utility.isOpaqueBlock(this.worldObj, this.xCoord, this.yCoord, this.zCoord + 1)) && (GT_Utility.isOpaqueBlock(this.worldObj, this.xCoord, this.yCoord, this.zCoord - 1)) ? 1 : 0) == 0) {
+ /**
+ * mBlocked == true means every surrounding block is solid, so this ore is hidden and no need to display it to client
+ * here we check if surrounding has changed. if yes then send a packet and update the state, otherwise do nothing.
+ */
+ if (this.mBlocked != (
+ GT_Utility.isOpaqueBlock(this.worldObj, this.xCoord + 1, this.yCoord, this.zCoord) &&
+ GT_Utility.isOpaqueBlock(this.worldObj, this.xCoord - 1, this.yCoord, this.zCoord) &&
+ GT_Utility.isOpaqueBlock(this.worldObj, this.xCoord, this.yCoord + 1, this.zCoord) &&
+ GT_Utility.isOpaqueBlock(this.worldObj, this.xCoord, this.yCoord - 1, this.zCoord) &&
+ GT_Utility.isOpaqueBlock(this.worldObj, this.xCoord, this.yCoord, this.zCoord + 1) &&
+ GT_Utility.isOpaqueBlock(this.worldObj, this.xCoord, this.yCoord, this.zCoord - 1)
+ )) {
+ this.mBlocked = !this.mBlocked;
GT_Values.NW.sendPacketToAllPlayersInRange(this.worldObj, new GT_Packet_Ores(this.xCoord, (short) this.yCoord, this.zCoord, this.mMetaData), this.xCoord, this.zCoord);
}
}