File tree Expand file tree Collapse file tree 3 files changed +50
-0
lines changed
java/com/lambda/mixin/render Expand file tree Collapse file tree 3 files changed +50
-0
lines changed Original file line number Diff line number Diff line change 1+ package com .lambda .mixin .render ;
2+
3+ import com .lambda .core .TimerManager ;
4+ import net .minecraft .client .render .RenderTickCounter ;
5+ import org .spongepowered .asm .mixin .Mixin ;
6+ import org .spongepowered .asm .mixin .Shadow ;
7+ import org .spongepowered .asm .mixin .injection .At ;
8+ import org .spongepowered .asm .mixin .injection .Inject ;
9+ import org .spongepowered .asm .mixin .injection .callback .CallbackInfoReturnable ;
10+
11+ @ Mixin (RenderTickCounter .class )
12+ public class RenderTickCounterMixin {
13+
14+ @ Shadow
15+ public float lastFrameDuration ;
16+ @ Shadow
17+ public float tickDelta ;
18+ @ Shadow
19+ private long prevTimeMillis ;
20+
21+ @ Inject (method = "beginRenderTick" , at = @ At ("HEAD" ), cancellable = true )
22+ private void beginRenderTick (long timeMillis , CallbackInfoReturnable <Integer > ci ) {
23+ lastFrameDuration = (timeMillis - prevTimeMillis ) / TimerManager .getTickLength ();
24+ prevTimeMillis = timeMillis ;
25+ tickDelta += lastFrameDuration ;
26+ int i = (int ) tickDelta ;
27+ tickDelta -= i ;
28+
29+ ci .setReturnValue (i );
30+ }
31+ }
Original file line number Diff line number Diff line change 1+ package com.lambda.core
2+
3+ import com.lambda.event.EventFlow.post
4+ import com.lambda.event.events.ClientEvent
5+ import com.lambda.event.events.TickEvent
6+ import com.lambda.event.listener.UnsafeListener.Companion.unsafeListener
7+
8+ object TimerManager {
9+ @JvmStatic var tickLength = 50f ; private set
10+
11+ init {
12+ unsafeListener<TickEvent .Post > {
13+ ClientEvent .Timer (1.0 ).post {
14+ tickLength = 50f / speed.toFloat()
15+ }
16+ }
17+ }
18+ }
Original file line number Diff line number Diff line change @@ -6,4 +6,5 @@ import com.lambda.event.Event
66abstract class ClientEvent : Event {
77 class Shutdown : ClientEvent ()
88 class Startup : ClientEvent ()
9+ class Timer (var speed : Double ) : Event
910}
You can’t perform that action at this time.
0 commit comments