Advertisement
zbx1425

Untitled

Aug 13th, 2022 (edited)
990
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 1.12 KB | None | 0 0
  1. import org.spongepowered.asm.mixin.Mixin;
  2. import org.spongepowered.asm.mixin.injection.At;
  3. import org.spongepowered.asm.mixin.injection.ModifyVariable;
  4. import org.spongepowered.asm.mixin.injection.Redirect;
  5.  
  6. import java.util.concurrent.ThreadLocalRandom;
  7.  
  8. @Mixin(value = mtr.data.TrainServer.class, remap = false)
  9. public class TrainServerMixin {
  10.  
  11.     private long lastSimulateTrainMillis = 0;
  12.     private float realTicksElapsed = 1;
  13.  
  14.     @ModifyVariable(method = "simulateTrain", at = @At("HEAD"), ordinal = 0, argsOnly = true)
  15.     public float injectSimulateTrain(float ticksElapsed) {
  16.         if (lastSimulateTrainMillis == 0) {
  17.             realTicksElapsed = 1;
  18.         } else {
  19.             realTicksElapsed = (System.currentTimeMillis() - lastSimulateTrainMillis) / 50f;
  20.         }
  21.         lastSimulateTrainMillis = System.currentTimeMillis();
  22.         return realTicksElapsed;
  23.     }
  24.  
  25.     @Redirect(method = "checkBlock", at = @At(value = "INVOKE", target = "Ljava/lang/Math;floor(D)D"))
  26.     public double redirectCheckBlockSpeedFloor(double speed) {
  27.         return Math.floor(speed * realTicksElapsed);
  28.     }
  29. }
  30.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement