diff options
| author | Moulberry <jjenour@student.unimelb.edu.au> | 2021-07-22 08:25:57 +0000 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2021-07-22 08:25:57 +0000 |
| commit | 47438cca0b864602b4faa3b56195aff4278b2094 (patch) | |
| tree | 48d091cdc34c31f2b3173f405a845d1b752a37fc /src/main/java/io/github/moulberry/notenoughupdates/miscfeatures/MiningStuff.java | |
| parent | c1c4562b42d53ec2e8885c48f97249d7768fe1c7 (diff) | |
| parent | cb3c51f303672d350354a32cf504a4a242f9f4aa (diff) | |
| download | notenoughupdates-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.java | 38 |
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) { |
