aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/io/github/moulberry/notenoughupdates/miscfeatures/MiningStuff.java
diff options
context:
space:
mode:
authorMoulberry <jjenour@student.unimelb.edu.au>2021-07-22 08:25:57 +0000
committerGitHub <noreply@github.com>2021-07-22 08:25:57 +0000
commit47438cca0b864602b4faa3b56195aff4278b2094 (patch)
tree48d091cdc34c31f2b3173f405a845d1b752a37fc /src/main/java/io/github/moulberry/notenoughupdates/miscfeatures/MiningStuff.java
parentc1c4562b42d53ec2e8885c48f97249d7768fe1c7 (diff)
parentcb3c51f303672d350354a32cf504a4a242f9f4aa (diff)
downloadnotenoughupdates-47438cca0b864602b4faa3b56195aff4278b2094.tar.gz
notenoughupdates-47438cca0b864602b4faa3b56195aff4278b2094.tar.bz2
notenoughupdates-47438cca0b864602b4faa3b56195aff4278b2094.zip
Merge pull request #210 from DoKM/master
DoKM fork merge
Diffstat (limited to 'src/main/java/io/github/moulberry/notenoughupdates/miscfeatures/MiningStuff.java')
-rw-r--r--src/main/java/io/github/moulberry/notenoughupdates/miscfeatures/MiningStuff.java38
1 files changed, 36 insertions, 2 deletions
diff --git a/src/main/java/io/github/moulberry/notenoughupdates/miscfeatures/MiningStuff.java b/src/main/java/io/github/moulberry/notenoughupdates/miscfeatures/MiningStuff.java
index 6f706b5c..cfd97d3f 100644
--- a/src/main/java/io/github/moulberry/notenoughupdates/miscfeatures/MiningStuff.java
+++ b/src/main/java/io/github/moulberry/notenoughupdates/miscfeatures/MiningStuff.java
@@ -6,6 +6,7 @@ import io.github.moulberry.notenoughupdates.overlays.MiningOverlay;
import io.github.moulberry.notenoughupdates.util.SBInfo;
import io.github.moulberry.notenoughupdates.util.SpecialColour;
import io.github.moulberry.notenoughupdates.util.Utils;
+import net.minecraft.block.BlockAir;
import net.minecraft.block.BlockStone;
import net.minecraft.block.state.IBlockState;
import net.minecraft.client.Minecraft;
@@ -23,10 +24,18 @@ import net.minecraftforge.client.event.RenderWorldLastEvent;
import net.minecraftforge.event.world.WorldEvent;
import net.minecraftforge.fml.common.eventhandler.SubscribeEvent;
+import java.util.Map;
+
public class MiningStuff {
private static BlockPos overlayLoc = null;
private static long titaniumNotifMillis = 0;
+ private static Minecraft mc;
+
+
+ public MiningStuff(){
+ mc = Minecraft.getMinecraft();
+ }
public static void processBlockChangePacket(S23PacketBlockChange packetIn) {
if(!NotEnoughUpdates.INSTANCE.config.mining.titaniumAlert) {
@@ -38,14 +47,19 @@ public class MiningStuff {
SBInfo.getInstance().getLocation().startsWith("mining_") &&
state.getBlock() == Blocks.stone && state.getValue(BlockStone.VARIANT) == BlockStone.EnumType.DIORITE_SMOOTH) {
- for(String s : MiningOverlay.commissionProgress.keySet()) {
+
+ for(Map.Entry<String, Float> entry : MiningOverlay.commissionProgress.entrySet()) {
+ String s = entry.getKey();
if(s.contains("Titanium")) {
+ if(entry.getValue() == 1f){
+ return;
+ }
BlockPos pos = packetIn.getBlockPosition();
IBlockState existingBlock = Minecraft.getMinecraft().theWorld.getBlockState(pos);
if(existingBlock == null) return;
if(existingBlock.getBlock() == Blocks.stone && existingBlock.getValue(BlockStone.VARIANT) == BlockStone.EnumType.DIORITE_SMOOTH) return;
-
+ if(!checkIfAnyIsAir(getAttachedBlocks(pos)) && NotEnoughUpdates.INSTANCE.config.mining.titaniumAlertMustBeVisible) return;
BlockPos player = Minecraft.getMinecraft().thePlayer.getPosition();
double distSq = pos.distanceSq(player);
@@ -59,6 +73,26 @@ public class MiningStuff {
}
}
+ private static BlockPos[] getAttachedBlocks(BlockPos block){
+ BlockPos[] blocks = new BlockPos[6];
+ blocks[0] = new BlockPos(block.getX()-1, block.getY(), block.getZ());
+ blocks[1] = new BlockPos(block.getX()+1, block.getY(), block.getZ());
+ blocks[2] = new BlockPos(block.getX(), block.getY()-1, block.getZ());
+ blocks[3] = new BlockPos(block.getX(), block.getY()+1, block.getZ());
+ blocks[4] = new BlockPos(block.getX(), block.getY(), block.getZ()-1);
+ blocks[5] = new BlockPos(block.getX(), block.getY(), block.getZ()+1);
+ return blocks;
+ }
+
+ private static boolean checkIfAnyIsAir(BlockPos[] blocks){
+ for (BlockPos block : blocks) {
+ if(mc.theWorld.getBlockState(block).getBlock() instanceof BlockAir){
+ return true;
+ }
+ }
+ return false;
+ }
+
@SubscribeEvent
public void onRenderOverlay(RenderGameOverlayEvent.Post event) {
if(!NotEnoughUpdates.INSTANCE.config.mining.titaniumAlert) {