ms -> ticks
This commit is contained in:
parent
51b68dd48f
commit
7dfbbdc959
11 changed files with 245 additions and 77 deletions
24
src/main/java/themixray/repeating/mod/mixin/ClientMixin.java
Normal file
24
src/main/java/themixray/repeating/mod/mixin/ClientMixin.java
Normal file
|
@ -0,0 +1,24 @@
|
|||
package themixray.repeating.mod.mixin;
|
||||
|
||||
import net.minecraft.client.MinecraftClient;
|
||||
import org.spongepowered.asm.mixin.Mixin;
|
||||
import org.spongepowered.asm.mixin.injection.At;
|
||||
import org.spongepowered.asm.mixin.injection.Inject;
|
||||
import org.spongepowered.asm.mixin.injection.callback.CallbackInfo;
|
||||
import themixray.repeating.mod.RepeatingMod;
|
||||
import themixray.repeating.mod.TickTask;
|
||||
|
||||
@Mixin(MinecraftClient.class)
|
||||
public abstract class ClientMixin {
|
||||
@Inject(at = @At(value = "HEAD"), method = "tick")
|
||||
private void onTickHead(CallbackInfo ci) {
|
||||
if (RepeatingMod.me.is_recording)
|
||||
RepeatingMod.me.recordAllInput();
|
||||
TickTask.tickTasks(TickTask.TickAt.CLIENT_HEAD);
|
||||
}
|
||||
|
||||
@Inject(at = @At(value = "TAIL"), method = "tick")
|
||||
private void onTickTail(CallbackInfo ci) {
|
||||
TickTask.tickTasks(TickTask.TickAt.CLIENT_TAIL);
|
||||
}
|
||||
}
|
36
src/main/java/themixray/repeating/mod/mixin/EntityMixin.java
Normal file
36
src/main/java/themixray/repeating/mod/mixin/EntityMixin.java
Normal file
|
@ -0,0 +1,36 @@
|
|||
package themixray.repeating.mod.mixin;
|
||||
|
||||
import net.fabricmc.fabric.api.event.player.PlayerBlockBreakEvents;
|
||||
import net.fabricmc.fabric.api.event.player.UseBlockCallback;
|
||||
import net.minecraft.client.network.ClientPlayerEntity;
|
||||
import net.minecraft.entity.Entity;
|
||||
import net.minecraft.util.ActionResult;
|
||||
import net.minecraft.util.hit.HitResult;
|
||||
import org.spongepowered.asm.mixin.Mixin;
|
||||
import org.spongepowered.asm.mixin.Shadow;
|
||||
import org.spongepowered.asm.mixin.injection.At;
|
||||
import org.spongepowered.asm.mixin.injection.Inject;
|
||||
import org.spongepowered.asm.mixin.injection.callback.CallbackInfo;
|
||||
import themixray.repeating.mod.RepeatingMod;
|
||||
import themixray.repeating.mod.TickTask;
|
||||
|
||||
import java.util.UUID;
|
||||
|
||||
@Mixin(Entity.class)
|
||||
public abstract class EntityMixin {
|
||||
@Shadow public abstract UUID getUuid();
|
||||
|
||||
@Inject(at = @At(value = "HEAD"), method = "setSprinting", cancellable = true)
|
||||
private void onSprint(boolean sprinting,CallbackInfo ci) {
|
||||
if (getUuid().equals(RepeatingMod.client.player.getUuid())) {
|
||||
if (RepeatingMod.me.is_replaying) {
|
||||
if (RepeatingMod.input_replay != null &&
|
||||
RepeatingMod.input_replay.sprinting != null &&
|
||||
RepeatingMod.input_replay.sprinting != sprinting) {
|
||||
ci.cancel();
|
||||
return;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
|
@ -12,6 +12,8 @@ import org.spongepowered.asm.mixin.injection.callback.CallbackInfo;
|
|||
import themixray.repeating.mod.RepeatingMod;
|
||||
import themixray.repeating.mod.TickTask;
|
||||
|
||||
import java.util.ArrayList;
|
||||
|
||||
@Mixin(ClientPlayerEntity.class)
|
||||
public abstract class MovementMixin {
|
||||
|
||||
|
@ -30,36 +32,13 @@ public abstract class MovementMixin {
|
|||
});
|
||||
}
|
||||
|
||||
@Inject(at = @At(value = "HEAD"), method = "tick")
|
||||
private void onTickHead(CallbackInfo ci) {
|
||||
for (TickTask t:TickTask.ticks)
|
||||
if (t.getAt() == TickTask.TickAt.HEAD)
|
||||
t.tick();
|
||||
@Inject(at = @At(value = "HEAD"), method = "tickMovement")
|
||||
private void onMoveHead(CallbackInfo ci) {
|
||||
TickTask.tickTasks(TickTask.TickAt.MOVEMENT_HEAD);
|
||||
}
|
||||
|
||||
@Inject(at = @At(value = "TAIL"), method = "tick")
|
||||
private void onTickTail(CallbackInfo ci) {
|
||||
for (TickTask t:TickTask.ticks)
|
||||
if (t.getAt() == TickTask.TickAt.TAIL)
|
||||
t.tick();
|
||||
}
|
||||
|
||||
@Inject(at = @At(value = "HEAD"), method = "tickMovement")
|
||||
private void onMove(CallbackInfo ci) {
|
||||
if (RepeatingMod.me.is_recording) {
|
||||
RepeatingMod.me.recordAllInput();
|
||||
}
|
||||
}
|
||||
|
||||
@Inject(at = @At(value = "HEAD"), method = "setSprinting", cancellable = true)
|
||||
private void onSprint(boolean sprinting,CallbackInfo ci) {
|
||||
if (RepeatingMod.me.is_replaying) {
|
||||
if (RepeatingMod.input_replay != null &&
|
||||
RepeatingMod.input_replay.sprinting != null &&
|
||||
RepeatingMod.input_replay.sprinting != sprinting) {
|
||||
ci.cancel();
|
||||
return;
|
||||
}
|
||||
}
|
||||
private void onMoveTail(CallbackInfo ci) {
|
||||
TickTask.tickTasks(TickTask.TickAt.MOVEMENT_TAIL);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -7,15 +7,17 @@ import org.spongepowered.asm.mixin.injection.At;
|
|||
import org.spongepowered.asm.mixin.injection.Inject;
|
||||
import org.spongepowered.asm.mixin.injection.callback.CallbackInfo;
|
||||
import themixray.repeating.mod.RepeatingMod;
|
||||
import themixray.repeating.mod.TickTask;
|
||||
|
||||
@Mixin(GameRenderer.class)
|
||||
public abstract class RendererMixin {
|
||||
@Inject(at = @At(value = "HEAD"), method = "tick")
|
||||
private void onTickHead(CallbackInfo ci) {
|
||||
TickTask.tickTasks(TickTask.TickAt.RENDER_HEAD);
|
||||
}
|
||||
|
||||
@Inject(at = @At(value = "TAIL"), method = "tick")
|
||||
private void onTickTail(CallbackInfo ci) {
|
||||
if (RepeatingMod.me.is_replaying) {
|
||||
if (RepeatingMod.input_replay != null) {
|
||||
RepeatingMod.me.recordCameraInput();
|
||||
}
|
||||
}
|
||||
TickTask.tickTasks(TickTask.TickAt.RENDER_TAIL);
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue