Something went wrong. Try again.
the game where you go into mines and start crafting! but for consoles (forked directly from smartcmd's github)
Something went wrong. Try again.
3.2 kB · 139 lines
C++
at main
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139#include "stdafx.h"#include "Timer.h"#include "..\Minecraft.World\System.h"
Timer::Timer(float ticksPerSecond){ // 4J - added initialisers lastTime = 0; ticks = 0; a = 0; timeScale = 1; passedTime = 0; accumMs = 0; adjustTime = 1.0;
this->ticksPerSecond = ticksPerSecond; lastMs = System::currentTimeMillis(); lastMsSysTime = System::nanoTime() / 1000000;}
void Timer::advanceTime(){ __int64 nowMs = System::currentTimeMillis(); __int64 passedMs = nowMs - lastMs; // 4J - Use high-resolution timer for 'now' in seconds double now = System::nanoTime() / 1000000000.0;
if (passedMs > 1000) { lastTime = now; } else if (passedMs < 0) { lastTime = now; } else { accumMs += passedMs; if (accumMs > 1000) { __int64 msSysTime = (__int64)(now * 1000.0); __int64 passedMsSysTime = msSysTime - lastMsSysTime;
double adjustTimeT = accumMs / (double) passedMsSysTime; adjustTime += (adjustTimeT - adjustTime) * 0.2f;
lastMsSysTime = msSysTime; accumMs = 0; } if (accumMs < 0) { lastMsSysTime = (__int64)(now * 1000.0); } } lastMs = nowMs;
double passedSeconds = (now - lastTime) * adjustTime; lastTime = now;
if (passedSeconds < 0) passedSeconds = 0; if (passedSeconds > 1) passedSeconds = 1;
passedTime = (float)( passedTime + (passedSeconds * timeScale * ticksPerSecond));
ticks = (int) passedTime; passedTime -= ticks;
if (ticks > MAX_TICKS_PER_UPDATE) ticks = MAX_TICKS_PER_UPDATE;
a = passedTime;}
void Timer::advanceTimeQuickly(){
double passedSeconds = (double) MAX_TICKS_PER_UPDATE / (double) ticksPerSecond;
passedTime = (float)(passedTime + (passedSeconds * timeScale * ticksPerSecond)); ticks = (int) passedTime; passedTime -= ticks; a = passedTime;
lastMs = System::currentTimeMillis(); lastMsSysTime = System::nanoTime() / 1000000;
}
void Timer::skipTime(){ __int64 nowMs = System::currentTimeMillis(); __int64 passedMs = nowMs - lastMs; __int64 msSysTime = System::nanoTime() / 1000000; double now = msSysTime / 1000.0;
if (passedMs > 1000) { lastTime = now; } else if (passedMs < 0) { lastTime = now; } else { accumMs += passedMs; if (accumMs > 1000) { __int64 passedMsSysTime = msSysTime - lastMsSysTime;
double adjustTimeT = accumMs / (double) passedMsSysTime; adjustTime += (adjustTimeT - adjustTime) * 0.2f;
lastMsSysTime = msSysTime; accumMs = 0; } if (accumMs < 0) { lastMsSysTime = msSysTime; } } lastMs = nowMs;
double passedSeconds = (now - lastTime) * adjustTime; lastTime = now;
if (passedSeconds < 0) passedSeconds = 0; if (passedSeconds > 1) passedSeconds = 1;
passedTime = (float)(passedTime + (passedSeconds * timeScale * ticksPerSecond));
ticks = (int) 0; if (ticks > MAX_TICKS_PER_UPDATE) ticks = MAX_TICKS_PER_UPDATE; passedTime -= ticks;
}