aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/gregtech/common/GT_Client.java
diff options
context:
space:
mode:
authorMartin Robertz <dream-master@gmx.net>2021-05-15 21:24:09 +0200
committerGitHub <noreply@github.com>2021-05-15 21:24:09 +0200
commit6feb32e8eecd39b8140df4dc3c0fafc989420bc0 (patch)
treeb7d05c815dc387aed400fc2896ae33833bd8a368 /src/main/java/gregtech/common/GT_Client.java
parentf81b0b4b5a0d2e74c9cbb420e74b9e217d0cc6ec (diff)
parent9239ed33b195a59561e9a74bd7063640a97ab514 (diff)
downloadGT5-Unofficial-6feb32e8eecd39b8140df4dc3c0fafc989420bc0.tar.gz
GT5-Unofficial-6feb32e8eecd39b8140df4dc3c0fafc989420bc0.tar.bz2
GT5-Unofficial-6feb32e8eecd39b8140df4dc3c0fafc989420bc0.zip
Merge pull request #533 from GTNewHorizons/update-fluid-display
Allow client to proactively request fluid display updates
Diffstat (limited to 'src/main/java/gregtech/common/GT_Client.java')
-rw-r--r--src/main/java/gregtech/common/GT_Client.java25
1 files changed, 25 insertions, 0 deletions
diff --git a/src/main/java/gregtech/common/GT_Client.java b/src/main/java/gregtech/common/GT_Client.java
index 6ce360c017..8a5b0a85be 100644
--- a/src/main/java/gregtech/common/GT_Client.java
+++ b/src/main/java/gregtech/common/GT_Client.java
@@ -13,13 +13,16 @@ import gregtech.GT_Mod;
import gregtech.api.GregTech_API;
import gregtech.api.enums.GT_Values;
import gregtech.api.enums.Materials;
+import gregtech.api.interfaces.IHasFluidDisplayItem;
import gregtech.api.interfaces.tileentity.ICoverable;
+import gregtech.api.interfaces.tileentity.IGregTechTileEntity;
import gregtech.api.interfaces.tileentity.ITurnable;
import gregtech.api.metatileentity.BaseMetaPipeEntity;
import gregtech.api.objects.GT_ItemStack;
import gregtech.api.util.*;
import gregtech.common.entities.GT_Entity_Arrow;
import gregtech.common.entities.GT_Entity_Arrow_Potion;
+import gregtech.common.net.MessageUpdateFluidDisplayItem;
import gregtech.common.render.*;
import ic2.api.tile.IWrenchable;
import net.minecraft.block.Block;
@@ -29,6 +32,7 @@ import net.minecraft.init.Blocks;
import net.minecraft.item.ItemStack;
import net.minecraft.stats.StatFileWriter;
import net.minecraft.tileentity.TileEntity;
+import net.minecraft.util.MovingObjectPosition;
import net.minecraft.world.ChunkCoordIntPair;
import net.minecraft.world.World;
import net.minecraftforge.client.event.DrawBlockHighlightEvent;
@@ -76,6 +80,9 @@ public class GT_Client extends GT_Proxy
/**This is the place to def the value used below**/
private long afterSomeTime;
private boolean mAnimationDirection;
+ private int mLastUpdatedBlockX;
+ private int mLastUpdatedBlockY;
+ private int mLastUpdatedBlockZ;
private boolean isFirstClientPlayerTick;
private String mMessage;
public GT_Client() {
@@ -406,6 +413,24 @@ public class GT_Client extends GT_Proxy
tKey = (GT_PlayedSound) i$.next();
}
if(!GregTech_API.mServerStarted) GregTech_API.mServerStarted = true;
+ if (GT_Values.updateFluidDisplayItems) {
+ MovingObjectPosition trace = Minecraft.getMinecraft().objectMouseOver;
+ if (trace.typeOfHit == MovingObjectPosition.MovingObjectType.BLOCK &&
+ (mLastUpdatedBlockX != trace.blockX &&
+ mLastUpdatedBlockY != trace.blockY &&
+ mLastUpdatedBlockZ != trace.blockZ || afterSomeTime % 10 == 0)) {
+ mLastUpdatedBlockX = trace.blockX;
+ mLastUpdatedBlockY = trace.blockY;
+ mLastUpdatedBlockZ = trace.blockZ;
+ TileEntity tileEntity = aEvent.player.worldObj.getTileEntity(trace.blockX, trace.blockY, trace.blockZ);
+ if (tileEntity instanceof IGregTechTileEntity) {
+ IGregTechTileEntity gtTile = (IGregTechTileEntity) tileEntity;
+ if (gtTile.getMetaTileEntity() instanceof IHasFluidDisplayItem) {
+ GT_Values.NW.sendToServer(new MessageUpdateFluidDisplayItem(trace.blockX, trace.blockY, trace.blockZ, gtTile.getWorld().provider.dimensionId));
+ }
+ }
+ }
+ }
}
}