/// <summary> /// Updates all fields of the Timer using the current time /// </summary> public virtual void UpdateTimer() { long l = JavaHelper.CurrentTimeMillis(); long l1 = l - LastSyncSysClock; long l2 = JavaHelper.NanoTime() / 0xf4240L; double d = (double)l2 / 1000D; if (l1 > 1000L) { LastHRTime = d; } else if (l1 < 0L) { LastHRTime = d; } else { Field_28132_i += l1; if (Field_28132_i > 1000L) { long l3 = l2 - LastSyncHRClock; double d2 = (double)Field_28132_i / (double)l3; TimeSyncAdjustment += (d2 - TimeSyncAdjustment) * 0.20000000298023224D; LastSyncHRClock = l2; Field_28132_i = 0L; } if (Field_28132_i < 0L) { LastSyncHRClock = l2; } } LastSyncSysClock = l; double d1 = (d - LastHRTime) * TimeSyncAdjustment; LastHRTime = d; if (d1 < 0.0F) { d1 = 0.0F; } if (d1 > 1.0D) { d1 = 1.0D; } ElapsedPartialTicks += (float)d1 * TimerSpeed * TicksPerSecond; ElapsedTicks = (int)ElapsedPartialTicks; ElapsedPartialTicks -= ElapsedTicks; if (ElapsedTicks > 10) { ElapsedTicks = 10; } RenderPartialTicks = ElapsedPartialTicks; }
public Timer(float par1) { TimerSpeed = 1.0F; ElapsedPartialTicks = 0.0F; TimeSyncAdjustment = 1.0D; TicksPerSecond = par1; LastSyncSysClock = JavaHelper.CurrentTimeMillis(); LastSyncHRClock = JavaHelper.NanoTime() / 0xf4240L; }