147 lines
6.5 KiB
Java
147 lines
6.5 KiB
Java
package themixray.repeating.mod.event;
|
|
|
|
import themixray.repeating.mod.Main;
|
|
|
|
public class RecordInputEvent extends RecordEvent {
|
|
public Boolean sneaking;
|
|
public Boolean jumping;
|
|
public Boolean pressingForward;
|
|
public Boolean pressingBack;
|
|
public Boolean pressingLeft;
|
|
public Boolean pressingRight;
|
|
public Boolean sprinting;
|
|
|
|
public Float movementSideways;
|
|
public Float movementForward;
|
|
|
|
public float yaw;
|
|
public float head_yaw;
|
|
public float body_yaw;
|
|
public float pitch;
|
|
public float speed;
|
|
|
|
public static RecordInputEvent fromArgs(String[] a) {
|
|
return new RecordInputEvent(
|
|
(a[0].equals("n") ? null : a[0].equals("1")),
|
|
(a[1].equals("n") ? null : a[1].equals("1")),
|
|
(a[2].equals("n") ? null : Float.parseFloat(a[2])),
|
|
(a[3].equals("n") ? null : Float.parseFloat(a[3])),
|
|
(a[4].equals("n") ? null : a[4].equals("1")),
|
|
(a[5].equals("n") ? null : a[5].equals("1")),
|
|
(a[6].equals("n") ? null : a[6].equals("1")),
|
|
(a[7].equals("n") ? null : a[7].equals("1")),
|
|
Float.parseFloat(a[8]), Float.parseFloat(a[9]),
|
|
Float.parseFloat(a[10]),
|
|
(a[11].equals("n") ? null : a[11].equals("1")),
|
|
Float.parseFloat(a[12]),
|
|
Float.parseFloat(a[13]));
|
|
}
|
|
|
|
public RecordInputEvent(Boolean sneaking,
|
|
Boolean jumping,
|
|
Float movementSideways,
|
|
Float movementForward,
|
|
Boolean pressingForward,
|
|
Boolean pressingBack,
|
|
Boolean pressingLeft,
|
|
Boolean pressingRight,
|
|
float head_yaw,
|
|
float body_yaw,
|
|
float head_pitch,
|
|
Boolean sprinting,
|
|
float yaw,
|
|
float speed) {
|
|
this.sneaking = sneaking;
|
|
this.jumping = jumping;
|
|
this.movementSideways = movementSideways;
|
|
this.movementForward = movementForward;
|
|
this.pressingForward = pressingForward;
|
|
this.pressingBack = pressingBack;
|
|
this.pressingLeft = pressingLeft;
|
|
this.pressingRight = pressingRight;
|
|
this.head_yaw = head_yaw;
|
|
this.body_yaw = body_yaw;
|
|
this.pitch = head_pitch;
|
|
this.sprinting = sprinting;
|
|
this.yaw = yaw;
|
|
this.speed = speed;
|
|
}
|
|
|
|
public void fillEmpty(RecordInputEvent e) {
|
|
if (sneaking == null) sneaking = e.sneaking;
|
|
if (jumping == null) jumping = e.jumping;
|
|
if (movementSideways == null) movementSideways = e.movementSideways;
|
|
if (movementForward == null) movementForward = e.movementForward;
|
|
if (pressingForward == null) pressingForward = e.pressingForward;
|
|
if (pressingBack == null) pressingBack = e.pressingBack;
|
|
if (pressingLeft == null) pressingLeft = e.pressingLeft;
|
|
if (pressingRight == null) pressingRight = e.pressingRight;
|
|
if (sprinting == null) sprinting = e.sprinting;
|
|
}
|
|
|
|
public boolean isEmpty() {
|
|
return sneaking == null &&
|
|
jumping == null &&
|
|
movementSideways == null &&
|
|
movementForward == null &&
|
|
pressingForward == null &&
|
|
pressingBack == null &&
|
|
pressingLeft == null &&
|
|
pressingRight == null &&
|
|
sprinting == null;
|
|
}
|
|
|
|
public void replay() {
|
|
Main.input_replay = this;
|
|
}
|
|
|
|
public void inputCallback() {
|
|
if (sprinting != null && Main.client.player.isSprinting() != sprinting)
|
|
Main.client.player.setSprinting(sprinting);
|
|
if (Main.client.player.getYaw() != yaw)
|
|
Main.client.player.setYaw(yaw);
|
|
if (Main.client.player.getHeadYaw() != head_yaw)
|
|
Main.client.player.setHeadYaw(head_yaw);
|
|
if (Main.client.player.getBodyYaw() != body_yaw)
|
|
Main.client.player.setBodyYaw(body_yaw);
|
|
if (Main.client.player.getPitch() != pitch)
|
|
Main.client.player.setPitch(pitch);
|
|
if (Main.client.player.getMovementSpeed() != speed)
|
|
Main.client.player.setMovementSpeed(speed);
|
|
if (sneaking != null && Main.client.player.input.sneaking != sneaking)
|
|
Main.client.player.input.sneaking = sneaking;
|
|
if (jumping != null && Main.client.player.input.jumping != jumping)
|
|
Main.client.player.input.jumping = jumping;
|
|
if (movementSideways != null && Main.client.player.input.movementSideways != movementSideways)
|
|
Main.client.player.input.movementSideways = movementSideways;
|
|
if (movementForward != null && Main.client.player.input.movementForward != movementForward)
|
|
Main.client.player.input.movementForward = movementForward;
|
|
if (pressingForward != null && Main.client.player.input.pressingForward != pressingForward)
|
|
Main.client.player.input.pressingForward = pressingForward;
|
|
if (pressingBack != null && Main.client.player.input.pressingBack != pressingBack)
|
|
Main.client.player.input.pressingBack = pressingBack;
|
|
if (pressingLeft != null && Main.client.player.input.pressingLeft != pressingLeft)
|
|
Main.client.player.input.pressingLeft = pressingLeft;
|
|
if (pressingRight != null && Main.client.player.input.pressingRight != pressingRight)
|
|
Main.client.player.input.pressingRight = pressingRight;
|
|
}
|
|
|
|
public String serialize() {
|
|
return "p=" +
|
|
((sneaking == null) ? "n" : (sneaking ? "1" : "0")) + "&" +
|
|
((jumping == null) ? "n" : (jumping ? "1" : "0")) + "&" +
|
|
((movementSideways == null) ? "n" : movementSideways) + "&" +
|
|
((movementForward == null) ? "n" : movementForward) + "&" +
|
|
((pressingForward == null) ? "n" : (pressingForward ? "1" : "0")) + "&" +
|
|
((pressingBack == null) ? "n" : (pressingBack ? "1" : "0")) + "&" +
|
|
((pressingLeft == null) ? "n" : (pressingLeft ? "1" : "0")) + "&" +
|
|
((pressingRight == null) ? "n" : (pressingRight ? "1" : "0")) + "&" +
|
|
head_yaw + "&" + body_yaw + "&" + pitch + "&" +
|
|
((sprinting == null) ? "n" : (sprinting ? "1" : "0") +
|
|
"&" + yaw + "&" + speed);
|
|
}
|
|
|
|
public String getType() {
|
|
return "input";
|
|
}
|
|
}
|