follow offset distance and direction
This commit is contained in:
parent
583a5046ef
commit
b3654492be
@ -358,6 +358,23 @@ public class Settings {
|
|||||||
*/
|
*/
|
||||||
public Setting<Boolean> internalMiningAirException = new Setting<>(true);
|
public Setting<Boolean> internalMiningAirException = new Setting<>(true);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* The actual GoalNear is set this distance away from the entity you're following
|
||||||
|
* <p>
|
||||||
|
* For example, set followOffsetDistance to 5 and followRadius to 0 to always stay precisely 5 blocks north of your follow target.
|
||||||
|
*/
|
||||||
|
public Setting<Double> followOffsetDistance = new Setting<>(0D);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* The actual GoalNear is set in this direction from the entity you're following
|
||||||
|
*/
|
||||||
|
public Setting<Float> followOffsetDirection = new Setting<>(0F);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* The radius (for the GoalNear) of how close to your target position you actually have to be
|
||||||
|
*/
|
||||||
|
public Setting<Integer> followRadius = new Setting<>(3);
|
||||||
|
|
||||||
public final Map<String, Setting<?>> byLowerName;
|
public final Map<String, Setting<?>> byLowerName;
|
||||||
public final List<Setting<?>> allSettings;
|
public final List<Setting<?>> allSettings;
|
||||||
|
|
||||||
|
@ -17,9 +17,12 @@
|
|||||||
|
|
||||||
package baritone.behavior;
|
package baritone.behavior;
|
||||||
|
|
||||||
|
import baritone.Baritone;
|
||||||
import baritone.api.behavior.Behavior;
|
import baritone.api.behavior.Behavior;
|
||||||
import baritone.api.event.events.TickEvent;
|
import baritone.api.event.events.TickEvent;
|
||||||
import baritone.pathing.goals.GoalNear;
|
import baritone.pathing.goals.GoalNear;
|
||||||
|
import baritone.pathing.goals.GoalXZ;
|
||||||
|
import baritone.utils.Helper;
|
||||||
import net.minecraft.entity.Entity;
|
import net.minecraft.entity.Entity;
|
||||||
import net.minecraft.util.math.BlockPos;
|
import net.minecraft.util.math.BlockPos;
|
||||||
|
|
||||||
@ -28,7 +31,7 @@ import net.minecraft.util.math.BlockPos;
|
|||||||
*
|
*
|
||||||
* @author leijurv
|
* @author leijurv
|
||||||
*/
|
*/
|
||||||
public final class FollowBehavior extends Behavior {
|
public final class FollowBehavior extends Behavior implements Helper {
|
||||||
|
|
||||||
public static final FollowBehavior INSTANCE = new FollowBehavior();
|
public static final FollowBehavior INSTANCE = new FollowBehavior();
|
||||||
|
|
||||||
@ -45,7 +48,8 @@ public final class FollowBehavior extends Behavior {
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
// lol this is trashy but it works
|
// lol this is trashy but it works
|
||||||
PathingBehavior.INSTANCE.setGoal(new GoalNear(new BlockPos(following), 3));
|
GoalXZ g = GoalXZ.fromDirection(following.getPositionVector(), Baritone.settings().followOffsetDirection.get(), Baritone.settings().followOffsetDistance.get());
|
||||||
|
PathingBehavior.INSTANCE.setGoal(new GoalNear(new BlockPos(g.getX(), following.posY, g.getZ()), Baritone.settings().followRadius.get()));
|
||||||
PathingBehavior.INSTANCE.path();
|
PathingBehavior.INSTANCE.path();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -400,6 +400,9 @@ public class ExampleBaritoneControl extends Behavior implements Helper {
|
|||||||
if (setting.value.getClass() == Double.class) {
|
if (setting.value.getClass() == Double.class) {
|
||||||
setting.value = Double.parseDouble(data[1]);
|
setting.value = Double.parseDouble(data[1]);
|
||||||
}
|
}
|
||||||
|
if (setting.value.getClass() == Float.class) {
|
||||||
|
setting.value = Float.parseFloat(data[1]);
|
||||||
|
}
|
||||||
} catch (NumberFormatException e) {
|
} catch (NumberFormatException e) {
|
||||||
logDirect("Unable to parse " + data[1]);
|
logDirect("Unable to parse " + data[1]);
|
||||||
event.cancel();
|
event.cancel();
|
||||||
|
Loading…
Reference in New Issue
Block a user