project: Mixins
This commit is contained in:
@@ -282,6 +282,9 @@ public abstract class RSClientMixin implements RSClient
|
|||||||
@Inject
|
@Inject
|
||||||
public long lastNanoTime;
|
public long lastNanoTime;
|
||||||
|
|
||||||
|
@Inject
|
||||||
|
public long delayNanoTime;
|
||||||
|
|
||||||
@Inject
|
@Inject
|
||||||
private List<String> outdatedScripts = new ArrayList<>();
|
private List<String> outdatedScripts = new ArrayList<>();
|
||||||
|
|
||||||
@@ -2445,6 +2448,30 @@ public abstract class RSClientMixin implements RSClient
|
|||||||
{
|
{
|
||||||
posToCameraAngle(client.getMapAngle(), client.getCameraPitch());
|
posToCameraAngle(client.getMapAngle(), client.getCameraPitch());
|
||||||
}
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
delayNanoTime = 0L;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@Inject
|
||||||
|
public void setUnlockedFpsTarget(int var1)
|
||||||
|
{
|
||||||
|
if (var1 <= 0)
|
||||||
|
{
|
||||||
|
delayNanoTime = 0L;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
delayNanoTime = 1000000000L / (long) var1;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@Inject
|
||||||
|
@Override
|
||||||
|
public long getUnlockedFpsTarget()
|
||||||
|
{
|
||||||
|
return delayNanoTime;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Inject
|
@Inject
|
||||||
|
|||||||
@@ -25,6 +25,7 @@
|
|||||||
package net.runelite.mixins;
|
package net.runelite.mixins;
|
||||||
|
|
||||||
import net.runelite.api.mixins.Copy;
|
import net.runelite.api.mixins.Copy;
|
||||||
|
import net.runelite.api.mixins.Inject;
|
||||||
import net.runelite.api.mixins.Mixin;
|
import net.runelite.api.mixins.Mixin;
|
||||||
import net.runelite.api.mixins.Replace;
|
import net.runelite.api.mixins.Replace;
|
||||||
import net.runelite.api.mixins.Shadow;
|
import net.runelite.api.mixins.Shadow;
|
||||||
@@ -37,6 +38,9 @@ public abstract class RSNanoClockMixin implements RSNanoClock
|
|||||||
@Shadow("client")
|
@Shadow("client")
|
||||||
private static RSClient client;
|
private static RSClient client;
|
||||||
|
|
||||||
|
@Inject
|
||||||
|
private long tmpNanoTime;
|
||||||
|
|
||||||
@Copy("wait")
|
@Copy("wait")
|
||||||
@Replace("wait")
|
@Replace("wait")
|
||||||
public int copy$wait(int cycleDurationMillis, int var2)
|
public int copy$wait(int cycleDurationMillis, int var2)
|
||||||
@@ -49,16 +53,42 @@ public abstract class RSNanoClockMixin implements RSNanoClock
|
|||||||
{
|
{
|
||||||
long nanoTime = System.nanoTime();
|
long nanoTime = System.nanoTime();
|
||||||
|
|
||||||
if (nanoTime < getLastTimeNano())
|
if (nanoTime >= getLastTimeNano() && nanoTime >= tmpNanoTime)
|
||||||
{
|
{
|
||||||
setLastTimeNano(nanoTime);
|
long cycleDuration;
|
||||||
|
long diff;
|
||||||
|
|
||||||
return 1;
|
if (client.getUnlockedFpsTarget() > 0L)
|
||||||
|
{
|
||||||
|
cycleDuration = nanoTime - tmpNanoTime;
|
||||||
|
diff = client.getUnlockedFpsTarget() - cycleDuration;
|
||||||
|
diff /= 1000000L;
|
||||||
|
if (diff > 0L)
|
||||||
|
{
|
||||||
|
try
|
||||||
|
{
|
||||||
|
if (diff % 10L == 0L)
|
||||||
|
{
|
||||||
|
Thread.sleep(diff - 1L);
|
||||||
|
Thread.sleep(1L);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
long cycleDuration = (long) cycleDurationMillis * 1000000L;
|
Thread.sleep(diff);
|
||||||
long diff = nanoTime - getLastTimeNano();
|
}
|
||||||
|
}
|
||||||
|
catch (InterruptedException var22)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
nanoTime = System.nanoTime();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
tmpNanoTime = nanoTime;
|
||||||
|
|
||||||
|
cycleDuration = (long) cycleDurationMillis * 1000000L;
|
||||||
|
diff = nanoTime - getLastTimeNano();
|
||||||
|
|
||||||
int cycles = (int) (diff / cycleDuration);
|
int cycles = (int) (diff / cycleDuration);
|
||||||
|
|
||||||
@@ -71,6 +101,12 @@ public abstract class RSNanoClockMixin implements RSNanoClock
|
|||||||
|
|
||||||
return cycles;
|
return cycles;
|
||||||
}
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
setLastTimeNano(tmpNanoTime = nanoTime);
|
||||||
|
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1477,6 +1477,8 @@ public interface RSClient extends RSGameEngine, Client
|
|||||||
|
|
||||||
boolean isUnlockedFps();
|
boolean isUnlockedFps();
|
||||||
|
|
||||||
|
long getUnlockedFpsTarget();
|
||||||
|
|
||||||
void posToCameraAngle(int var0, int var1);
|
void posToCameraAngle(int var0, int var1);
|
||||||
|
|
||||||
@Import("objectSounds")
|
@Import("objectSounds")
|
||||||
|
|||||||
Reference in New Issue
Block a user