Added HAV0X Break

This commit is contained in:
B2H990 2021-05-16 11:52:59 -04:00
parent b3ff950abc
commit 7ad28944a4
2 changed files with 48 additions and 0 deletions

View File

@ -134,6 +134,12 @@ public final class NukerModule extends Module {
} else {
if (this.currentPos != null) {
if (this.rotationTask.isOnline()) {
if (SpeedMineModule.autoPos != null) {
if (this.currentPos.equals(SpeedMineModule.autoPos)) {
return;
}
}
if (this.canBreak(this.currentPos)) {
mc.playerController.onPlayerDamageBlock(this.currentPos, mc.player.getHorizontalFacing());
mc.player.swingArm(EnumHand.MAIN_HAND);
@ -180,6 +186,9 @@ public final class NukerModule extends Module {
for (int revX = 0; revX <= 1; revX++, x = -x) {
for (int revZ = 0; revZ <= 1; revZ++, z = -z) {
final BlockPos pos = new BlockPos(mc.player.posX + x, mc.player.posY + y, mc.player.posZ + z);
if (pos.equals(SpeedMineModule.autoPos)) {
continue;
}
if ((mc.world.getBlockState(pos).getBlock() != Blocks.AIR &&
!(mc.world.getBlockState(pos).getBlock() instanceof BlockLiquid)) &&
this.canBreak(pos)) {
@ -203,6 +212,9 @@ public final class NukerModule extends Module {
for (float z = maxDist; z >= -maxDist; z--) {
final BlockPos pos = new BlockPos(mc.player.posX + x, mc.player.posY + y, mc.player.posZ + z);
final double dist = mc.player.getDistance(pos.getX(), pos.getY(), pos.getZ());
if (pos.equals(SpeedMineModule.autoPos)) {
continue;
}
if (dist <= maxDist && (mc.world.getBlockState(pos).getBlock() != Blocks.AIR && !(mc.world.getBlockState(pos).getBlock() instanceof BlockLiquid)) && canBreak(pos)) {
if (selection) {
if ((this.selected == null) || !mc.world.getBlockState(pos).getBlock().equals(this.selected)) {

View File

@ -1,11 +1,16 @@
package me.rigamortis.seppuku.impl.module.world;
import java.awt.*;
import me.rigamortis.seppuku.Seppuku;
import me.rigamortis.seppuku.api.event.EventStageable;
import me.rigamortis.seppuku.api.event.player.EventClickBlock;
import me.rigamortis.seppuku.api.event.player.EventPlayerDamageBlock;
import me.rigamortis.seppuku.api.event.player.EventPlayerUpdate;
import me.rigamortis.seppuku.api.event.player.EventResetBlockRemoving;
import me.rigamortis.seppuku.api.event.render.EventRender3D;
import me.rigamortis.seppuku.api.module.Module;
import me.rigamortis.seppuku.api.util.ColorUtil;
import me.rigamortis.seppuku.api.util.RenderUtil;
import me.rigamortis.seppuku.api.value.Value;
import net.minecraft.block.Block;
import net.minecraft.block.state.IBlockState;
@ -14,6 +19,7 @@ import net.minecraft.init.Blocks;
import net.minecraft.network.play.client.CPacketPlayerDigging;
import net.minecraft.util.EnumFacing;
import net.minecraft.util.EnumHand;
import net.minecraft.util.math.AxisAlignedBB;
import net.minecraft.util.math.BlockPos;
import team.stiff.pomelo.impl.annotated.handler.annotation.Listener;
@ -30,11 +36,15 @@ public final class SpeedMineModule extends Module {
}
public BlockPos seqPos;
public static BlockPos autoPos;
public EnumFacing seqDir;
final Minecraft mc = Minecraft.getMinecraft();
public final Value<Boolean> reset = new Value<Boolean>("Reset", new String[]{"Res"}, "Stops current block destroy damage from resetting if enabled.", true);
public final Value<Boolean> doubleBreak = new Value<Boolean>("DoubleBreak", new String[]{"DoubleBreak", "Double", "DB"}, "Mining a block will also mine the block above it, if enabled.", false);
public final Value<Boolean> auto = new Value<Boolean>("Auto", new String[]{"Res"}, "Auto sets the current mode to allow for multimining", true);
public SpeedMineModule() {
super("SpeedMine", new String[]{"FastMine"}, "Allows you to break blocks faster", "NONE", -1, ModuleType.WORLD);
@ -76,6 +86,25 @@ public final class SpeedMineModule extends Module {
}
}
@Listener
public void onRender(EventRender3D event) {
if (!auto.getValue()) return;
if (autoPos != null && mc.world.getBlockState(autoPos).getBlock() != Blocks.AIR) {
RenderUtil.begin3D();
final AxisAlignedBB bb = new AxisAlignedBB(
autoPos.getX() - mc.getRenderManager().viewerPosX,
autoPos.getY() - mc.getRenderManager().viewerPosY,
autoPos.getZ() - mc.getRenderManager().viewerPosZ,
autoPos.getX() + 1 - mc.getRenderManager().viewerPosX,
autoPos.getY() + 1 - mc.getRenderManager().viewerPosY,
autoPos.getZ() + 1 - mc.getRenderManager().viewerPosZ
);
RenderUtil.drawBoundingBox(bb, 2f, new Color(255,255,255).getRGB());
RenderUtil.end3D();
}
}
@Listener
public void damageBlock(EventPlayerDamageBlock event) {
if (canBreak(event.getPos())) {
@ -94,6 +123,9 @@ public final class SpeedMineModule extends Module {
case DAMAGE:
if (mc.playerController.curBlockDamageMP >= 0.7f) {
mc.playerController.curBlockDamageMP = 1.0f;
if (auto.getValue()) {
mode.setValue(Mode.INSTANT);
}
}
break;
case INSTANT:
@ -102,6 +134,10 @@ public final class SpeedMineModule extends Module {
mc.player.connection.sendPacket(new CPacketPlayerDigging(CPacketPlayerDigging.Action.STOP_DESTROY_BLOCK, event.getPos(), event.getFace()));
mc.playerController.onPlayerDestroyBlock(event.getPos());
mc.world.setBlockToAir(event.getPos());
if (auto.getValue()) {
autoPos = event.getPos();
mode.setValue(Mode.DAMAGE);
}
break;
case SEQUENTIAL:
mc.player.swingArm(EnumHand.MAIN_HAND);