lots more status

This commit is contained in:
Leijurv
2018-11-18 21:56:46 -08:00
parent 2e180e81ed
commit 0dc67593bb
4 changed files with 86 additions and 2 deletions
+3
View File
@@ -22,6 +22,7 @@ import baritone.api.behavior.IMemoryBehavior;
import baritone.api.behavior.IPathingBehavior;
import baritone.api.cache.IWorldProvider;
import baritone.api.event.listener.IEventBus;
import baritone.api.pathing.calc.IPathingControlManager;
import baritone.api.process.ICustomGoalProcess;
import baritone.api.process.IFollowProcess;
import baritone.api.process.IGetToBlockProcess;
@@ -59,6 +60,8 @@ public interface IBaritone {
*/
IMineProcess getMineProcess();
IPathingControlManager getPathingControlManager();
/**
* @return The {@link IPathingBehavior} instance
* @see IPathingBehavior
+57 -1
View File
@@ -29,17 +29,59 @@ public class MessageStatus implements iMessage {
public final double x;
public final double y;
public final double z;
public final float yaw;
public final float pitch;
public final boolean onGround;
public final float health;
public final float saturation;
public final int foodLevel;
public final boolean hasCurrentSegment;
public final boolean hasNextSegment;
public final boolean calcInProgress;
public final double ticksRemainingInCurrent;
public final boolean calcFailedLastTick;
public final boolean safeToCancel;
public final String currentGoal;
public final String currentProcess;
public MessageStatus(DataInputStream in) throws IOException {
this.x = in.readDouble();
this.y = in.readDouble();
this.z = in.readDouble();
this.yaw = in.readFloat();
this.pitch = in.readFloat();
this.onGround = in.readBoolean();
this.health = in.readFloat();
this.saturation = in.readFloat();
this.foodLevel = in.readInt();
this.hasCurrentSegment = in.readBoolean();
this.hasNextSegment = in.readBoolean();
this.calcInProgress = in.readBoolean();
this.ticksRemainingInCurrent = in.readDouble();
this.calcFailedLastTick = in.readBoolean();
this.safeToCancel = in.readBoolean();
this.currentGoal = in.readUTF();
this.currentProcess = in.readUTF();
}
public MessageStatus(double x, double y, double z) {
public MessageStatus(double x, double y, double z, float yaw, float pitch, boolean onGround, float health, float saturation, int foodLevel, boolean hasCurrentSegment, boolean hasNextSegment, boolean calcInProgress, double ticksRemainingInCurrent, boolean calcFailedLastTick, boolean safeToCancel, String currentGoal, String currentProcess) {
this.x = x;
this.y = y;
this.z = z;
this.yaw = yaw;
this.pitch = pitch;
this.onGround = onGround;
this.health = health;
this.saturation = saturation;
this.foodLevel = foodLevel;
this.hasCurrentSegment = hasCurrentSegment;
this.hasNextSegment = hasNextSegment;
this.calcInProgress = calcInProgress;
this.ticksRemainingInCurrent = ticksRemainingInCurrent;
this.calcFailedLastTick = calcFailedLastTick;
this.safeToCancel = safeToCancel;
this.currentGoal = currentGoal;
this.currentProcess = currentProcess;
}
@Override
@@ -47,6 +89,20 @@ public class MessageStatus implements iMessage {
out.writeDouble(x);
out.writeDouble(y);
out.writeDouble(z);
out.writeFloat(yaw);
out.writeFloat(pitch);
out.writeBoolean(onGround);
out.writeFloat(health);
out.writeFloat(saturation);
out.writeInt(foodLevel);
out.writeBoolean(hasCurrentSegment);
out.writeBoolean(hasNextSegment);
out.writeBoolean(calcInProgress);
out.writeDouble(ticksRemainingInCurrent);
out.writeBoolean(calcFailedLastTick);
out.writeBoolean(safeToCancel);
out.writeUTF(currentGoal);
out.writeUTF(currentProcess);
}
@Override
+1
View File
@@ -139,6 +139,7 @@ public class Baritone implements IBaritone {
this.gameEventHandler.registerEventListener(behavior);
}
@Override
public PathingControlManager getPathingControlManager() {
return this.pathingControlManager;
}
@@ -20,6 +20,7 @@ package baritone.behavior;
import baritone.Baritone;
import baritone.api.event.events.ChatEvent;
import baritone.api.event.events.TickEvent;
import baritone.api.process.IBaritoneProcess;
import baritone.utils.Helper;
import comms.BufferedConnection;
import comms.IConnection;
@@ -43,10 +44,33 @@ public class ControllerBehavior extends Behavior implements IMessageListener {
if (event.getType() == TickEvent.Type.OUT) {
return;
}
trySend(new MessageStatus(ctx.player().posX, ctx.player().posY, ctx.player().posZ));
trySend(buildStatus());
readAndHandle();
}
public MessageStatus buildStatus() {
// TODO inventory
return new MessageStatus(
ctx.player().posX,
ctx.player().posY,
ctx.player().posZ,
ctx.player().rotationYaw,
ctx.player().rotationPitch,
ctx.player().onGround,
ctx.player().getHealth(),
ctx.player().getFoodStats().getSaturationLevel(),
ctx.player().getFoodStats().getFoodLevel(),
baritone.getPathingBehavior().getCurrent() != null,
baritone.getPathingBehavior().getNext() != null,
baritone.getPathingBehavior().getInProgress().isPresent(),
baritone.getPathingBehavior().ticksRemainingInSegment().orElse(0D),
baritone.getPathingBehavior().calcFailedLastTick(),
baritone.getPathingBehavior().isSafeToCancel(),
baritone.getPathingBehavior().getGoal() + "",
baritone.getPathingControlManager().mostRecentInControl().map(IBaritoneProcess::displayName).orElse("")
);
}
private void readAndHandle() {
if (conn == null) {
return;