diff --git a/.gitea/workflows/java.yml b/.gitea/workflows/java.yml index 8fc764a..2dd136f 100644 --- a/.gitea/workflows/java.yml +++ b/.gitea/workflows/java.yml @@ -25,4 +25,5 @@ jobs: - name: Upload artifact uses: actions/upload-artifact@v3 with: + name: build path: build/libs/* \ No newline at end of file diff --git a/src/main/java/ru/themixray/repeating_mod/Main.java b/src/main/java/ru/themixray/repeating_mod/Main.java index 3079d38..17cf367 100644 --- a/src/main/java/ru/themixray/repeating_mod/Main.java +++ b/src/main/java/ru/themixray/repeating_mod/Main.java @@ -54,7 +54,7 @@ public class Main implements ClientModInitializer { private static KeyBinding toggle_replay_key; private static KeyBinding toggle_record_key; - public long record_pos_delay = 20; + public long record_pos_delay = -1; public static Random rand = new Random(); @@ -173,7 +173,7 @@ public class Main implements ClientModInitializer { now_record = record_list.newRecord(); Vec3d start_pos = client.player.getPos(); - now_record.addEvent(new MoveEvent(start_pos,client.player.getHeadYaw(),client.player.getPitch())); + recordTick(new MoveEvent(start_pos,client.player.getHeadYaw(),client.player.getPitch())); now_record.setStartRecordPos(start_pos); if (record_pos_delay > 0) { @@ -182,7 +182,7 @@ public class Main implements ClientModInitializer { record_pos_delay) { @Override public void run() { - now_record.addEvent(new MoveEvent(client.player.getPos(), + recordTick(new MoveEvent(client.player.getPos(), client.player.getHeadYaw(), client.player.getPitch())); } }; diff --git a/src/main/java/ru/themixray/repeating_mod/event/events/MoveEvent.java b/src/main/java/ru/themixray/repeating_mod/event/events/MoveEvent.java index 97054ca..9506eae 100644 --- a/src/main/java/ru/themixray/repeating_mod/event/events/MoveEvent.java +++ b/src/main/java/ru/themixray/repeating_mod/event/events/MoveEvent.java @@ -10,6 +10,8 @@ public class MoveEvent extends RecordEvent { public float yaw; public float pitch; + public static final float MOVE_THRESHOLD = 0.001f; + public static MoveEvent deserialize(String[] a) { return new MoveEvent(new Vec3d( Double.parseDouble(a[0]), @@ -29,9 +31,13 @@ public class MoveEvent extends RecordEvent { if (Main.client.player != null) { Vec3d p = Main.client.player.getPos(); Vec3d v = new Vec3d(vec.getX() - p.getX(), vec.getY() - p.getY(), vec.getZ() - p.getZ()); - Main.client.player.move(MovementType.SELF, v); - Main.client.player.setYaw(yaw); - Main.client.player.setPitch(pitch); + if (Math.abs(v.x) > MOVE_THRESHOLD || Math.abs(v.y) > MOVE_THRESHOLD || Math.abs(v.z) > MOVE_THRESHOLD) + Main.client.player.move(MovementType.SELF, v); + + if (Math.abs(Main.client.player.getYaw() - yaw) > MOVE_THRESHOLD) + Main.client.player.setYaw(yaw); + if (Math.abs(Main.client.player.getPitch() - pitch) > MOVE_THRESHOLD) + Main.client.player.setPitch(pitch); } }