diff options
author | Glease <4586901+Glease@users.noreply.github.com> | 2020-10-28 22:34:56 +0800 |
---|---|---|
committer | Glease <4586901+Glease@users.noreply.github.com> | 2020-10-28 22:34:56 +0800 |
commit | 388f542576c2652971c24e9d92922ca94ce256cb (patch) | |
tree | a2af71448838fc154321407866399da89415420b /src/main | |
parent | dd079f38ae168b875626d45683756f4d2eeb13bd (diff) | |
download | GT5-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.java | 14 |
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); } } |