Skip to content

Commit

Permalink
Visitors Macro:
Browse files Browse the repository at this point in the history
 = Possible fix for no visitors in queue infinite loop. Can't rly reproduce it

Pests Destroyer:
 + Antistuck also uses space and shift if possible
 = Adjustments for detection of blocks in front
  • Loading branch information
May2Beez committed Feb 28, 2024
1 parent a4194a2 commit f83ec91
Show file tree
Hide file tree
Showing 4 changed files with 30 additions and 10 deletions.
2 changes: 1 addition & 1 deletion gradle.properties
Original file line number Diff line number Diff line change
Expand Up @@ -4,5 +4,5 @@ baseGroup=com.jelly.farmhelperv2
mcVersion=1.8.9
modid=farmhelperv2
modName=FarmHelper
version=2.4.5-pre15
version=2.4.5-pre16
shouldRelease=true
Original file line number Diff line number Diff line change
Expand Up @@ -225,6 +225,7 @@ public boolean canEnableMacro() {

public boolean canEnableMacro(boolean manually) {
if (!isToggled()) return false;
if (isRunning()) return false;
if (!GameStateHandler.getInstance().inGarden()) return false;
if (!MacroHandler.getInstance().isMacroToggled() && !manually) return false;
if (enabled || preparing) return false;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -109,6 +109,15 @@ public boolean shouldStartAtMacroStart() {

@Override
public void start() {
if (visitors.isEmpty()) {
LogUtils.sendWarning("[Visitors Macro] No visitors in queue, disabling...");
if (enabled) {
setMainState(MainState.END);
return;
}
stop();
return;
}
MacroHandler.getInstance().getCurrentMacro().ifPresent(macro -> macro.getRotation().reset());
mainState = MainState.NONE;
compactorsDisabled = false;
Expand Down Expand Up @@ -210,6 +219,7 @@ public void onTickAFKMode(TickEvent.ClientTickEvent event) {

public boolean canEnableMacro(boolean manual, boolean withError) {
if (!isToggled()) return false;
if (isRunning()) return false;
if (!GameStateHandler.getInstance().inGarden()) return false;
if (mc.thePlayer == null || mc.theWorld == null) return false;
if (FeatureManager.getInstance().isAnyOtherFeatureEnabled(this, PestsDestroyer.getInstance())) return false;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -127,7 +127,7 @@ public void findPath(Vec3 pos, boolean follow, boolean smooth) {
finalRoute = smoothPath(finalRoute);
}
this.path.clear();
this.path.addAll(finalRoute.stream().map(vec3 -> vec3.addVector(0.5f, 0.05, 0.5)).collect(Collectors.toCollection(CopyOnWriteArrayList::new)));
this.path.addAll(finalRoute.stream().map(vec3 -> vec3.addVector(0.5f, 0.15, 0.5)).collect(Collectors.toCollection(CopyOnWriteArrayList::new)));
state = State.PATHING;
LogUtils.sendDebug("Path smoothing took " + (System.currentTimeMillis() - startTime) + "ms");
if (timeoutTask != null) {
Expand Down Expand Up @@ -193,9 +193,9 @@ private List<Vec3> smoothPath(List<Vec3> path) {
Vec3 lastValid = path.get(lowerIndex + 1);
for (int upperIndex = lowerIndex + 2; upperIndex < path.size(); upperIndex++) {
Vec3 end = path.get(upperIndex);
if (traversable(start, end) &&
if (traversable(start.addVector(0, 0.1, 0), end.addVector(0, 0.1, 0)) &&
traversable(start.addVector(0, 0.9, 0), end.addVector(0, 0.9, 0)) &&
traversable(start.addVector(0, 1, 0), end.addVector(0, 1, 0)) &&
traversable(start.addVector(0, 1.1, 0), end.addVector(0, 1.1, 0)) &&
traversable(start.addVector(0, 1.9, 0), end.addVector(0, 1.9, 0))) {
lastValid = end;
}
Expand Down Expand Up @@ -350,9 +350,9 @@ public void onTickNeededYaw(TickEvent.ClientTickEvent event) {
float rotationToEscape;
for (rotationToEscape = 0; rotationToEscape < 360; rotationToEscape += 20) {
Vec3 escape = current.addVector(Math.cos(Math.toRadians(rotationToEscape)), 0, Math.sin(Math.toRadians(rotationToEscape)));
if (traversable(current, escape) &&
if (traversable(current.addVector(0, 0.1, 0), escape.addVector(0, 0.1, 0)) &&
traversable(current.addVector(0, 0.9, 0), escape.addVector(0, 0.9, 0)) &&
traversable(current.addVector(0, 1., 0), escape.addVector(0, 1., 0)) &&
traversable(current.addVector(0, 1.1, 0), escape.addVector(0, 1.1, 0)) &&
traversable(current.addVector(0, 1.9, 0), escape.addVector(0, 1.9, 0))) {
break;
}
Expand All @@ -362,6 +362,15 @@ public void onTickNeededYaw(TickEvent.ClientTickEvent event) {
List<KeyBinding> keyBindings = new ArrayList<>(KeyBindUtils.getNeededKeyPresses(neededYaw));
keyBindings.add(mc.gameSettings.keyBindUseItem.isKeyDown() ? mc.gameSettings.keyBindUseItem : null);
keyBindings.add(mc.gameSettings.keyBindAttack.isKeyDown() ? mc.gameSettings.keyBindAttack : null);
Vec3 above = current.addVector(0, mc.thePlayer.height + 0.5f, 0);
Vec3 below = current.addVector(0, -0.5f, 0);
MovingObjectPosition traceAbove = mc.theWorld.rayTraceBlocks(current, above, false, true, false);
MovingObjectPosition traceBelow = mc.theWorld.rayTraceBlocks(current, below, false, true, false);
if (traceBelow == null || traceBelow.typeOfHit != MovingObjectPosition.MovingObjectType.BLOCK) {
keyBindings.add(mc.gameSettings.keyBindSneak);
} else if (traceAbove == null || traceAbove.typeOfHit != MovingObjectPosition.MovingObjectType.BLOCK) {
keyBindings.add(mc.gameSettings.keyBindJump);
}
KeyBindUtils.holdThese(keyBindings.toArray(new KeyBinding[0]));
} else {
KeyBindUtils.holdThese(mc.gameSettings.keyBindForward, mc.gameSettings.keyBindUseItem.isKeyDown() ? mc.gameSettings.keyBindUseItem : null, mc.gameSettings.keyBindAttack.isKeyDown() ? mc.gameSettings.keyBindAttack : null);
Expand Down Expand Up @@ -517,15 +526,15 @@ public VerticalDirection shouldChangeHeight(double relativeDistanceX, double rel
return VerticalDirection.NONE;
}
Vec3 directionGoing = AngleUtils.getVectorForRotation(0, neededYaw);
Vec3 target = mc.thePlayer.getPositionVector().addVector(directionGoing.xCoord * 0.3, 0.1, directionGoing.zCoord * 0.3);
Vec3 target = mc.thePlayer.getPositionVector().addVector(directionGoing.xCoord * 0.3, -0.1, directionGoing.zCoord * 0.3);
MovingObjectPosition trace = mc.theWorld.rayTraceBlocks(mc.thePlayer.getPositionVector(), target, false, true, false);
if (trace != null && trace.typeOfHit == MovingObjectPosition.MovingObjectType.BLOCK) {
BlockPos blockPos = trace.getBlockPos();
if (BlockUtils.hasCollision(blockPos)) {
return VerticalDirection.HIGHER;
}
}
Vec3 targetUp = mc.thePlayer.getPositionVector().addVector(directionGoing.xCoord * 0.3, mc.thePlayer.height - 0.1, directionGoing.zCoord * 0.3);
Vec3 targetUp = mc.thePlayer.getPositionVector().addVector(directionGoing.xCoord * 0.3, mc.thePlayer.height + 0.1, directionGoing.zCoord * 0.3);
MovingObjectPosition traceUp = mc.theWorld.rayTraceBlocks(mc.thePlayer.getPositionVector(), targetUp, false, true, false);
if (traceUp != null && traceUp.typeOfHit == MovingObjectPosition.MovingObjectType.BLOCK) {
BlockPos blockPos = traceUp.getBlockPos();
Expand Down Expand Up @@ -621,8 +630,8 @@ public void onDraw(RenderWorldLastEvent event) {
}
if (!FarmHelperConfig.debugMode) return;
Vec3 directionGoing = AngleUtils.getVectorForRotation(0, neededYaw);
Vec3 target = mc.thePlayer.getPositionVector().addVector(directionGoing.xCoord * 0.3, 0.1, directionGoing.zCoord * 0.3);
Vec3 targetUp = mc.thePlayer.getPositionVector().addVector(directionGoing.xCoord * 0.3, mc.thePlayer.height - 0.1, directionGoing.zCoord * 0.3);
Vec3 target = mc.thePlayer.getPositionVector().addVector(directionGoing.xCoord * 0.3, -0.1, directionGoing.zCoord * 0.3);
Vec3 targetUp = mc.thePlayer.getPositionVector().addVector(directionGoing.xCoord * 0.3, mc.thePlayer.height + 0.1, directionGoing.zCoord * 0.3);
MovingObjectPosition trace = mc.theWorld.rayTraceBlocks(mc.thePlayer.getPositionVector(), target, false, true, false);
MovingObjectPosition traceUp = mc.theWorld.rayTraceBlocks(mc.thePlayer.getPositionVector(), targetUp, false, true, false);
if (trace != null && trace.typeOfHit == MovingObjectPosition.MovingObjectType.BLOCK) {
Expand Down

0 comments on commit f83ec91

Please sign in to comment.