project: Mixins
This commit is contained in:
@@ -1548,9 +1548,9 @@ public abstract class RSClientMixin implements RSClient
|
||||
return WorldType.fromMask(flags);
|
||||
}
|
||||
|
||||
@Inject
|
||||
@MethodHook("openMenu")
|
||||
public void menuOpened(int x, int y)
|
||||
@Copy("openMenu")
|
||||
@Replace("openMenu")
|
||||
public void copy$openMenu(int x, int y)
|
||||
{
|
||||
final MenuOpened event = new MenuOpened();
|
||||
event.setMenuEntries(getMenuEntries());
|
||||
@@ -1560,6 +1560,10 @@ public abstract class RSClientMixin implements RSClient
|
||||
{
|
||||
setMenuEntries(event.getMenuEntries());
|
||||
}
|
||||
|
||||
copy$openMenu(x, y);
|
||||
|
||||
client.getScene().menuOpen(client.getPlane(), x - client.getViewportXOffset(), y - client.getViewportYOffset(), false);
|
||||
}
|
||||
|
||||
@Inject
|
||||
@@ -2435,8 +2439,7 @@ public abstract class RSClientMixin implements RSClient
|
||||
@Inject
|
||||
public void setUnlockedFps(boolean unlocked)
|
||||
{
|
||||
// unlockedFps = unlocked;
|
||||
unlockedFps = false;
|
||||
unlockedFps = unlocked;
|
||||
|
||||
if (unlocked)
|
||||
{
|
||||
|
||||
@@ -48,15 +48,18 @@ public abstract class RSNanoClockMixin implements RSNanoClock
|
||||
else
|
||||
{
|
||||
long nanoTime = System.nanoTime();
|
||||
|
||||
if (nanoTime < getLastTimeNano())
|
||||
{
|
||||
setLastTimeNano(nanoTime);
|
||||
|
||||
return 1;
|
||||
}
|
||||
else
|
||||
{
|
||||
long cycleDuration = (long) cycleDurationMillis * 1000000L;
|
||||
long diff = nanoTime - getLastTimeNano();
|
||||
|
||||
int cycles = (int) (diff / cycleDuration);
|
||||
|
||||
setLastTimeNano(getLastTimeNano() + (long) cycles * cycleDuration);
|
||||
|
||||
@@ -122,28 +122,22 @@ public abstract class RSSceneMixin implements RSScene
|
||||
|
||||
final boolean isGpu = client.isGpu();
|
||||
final boolean checkClick = client.isCheckClick();
|
||||
if (!client.isMenuOpen())
|
||||
final boolean menuOpen = client.isMenuOpen();
|
||||
|
||||
if (!menuOpen && !checkClick)
|
||||
{
|
||||
// Force check click to update the selected tile
|
||||
client.setCheckClick(true);
|
||||
final int mouseX = client.getMouseX();
|
||||
final int mouseY = client.getMouseY();
|
||||
client.setMouseCanvasHoverPositionX(mouseX - client.getViewportXOffset());
|
||||
client.setMouseCanvasHoverPositionY(mouseY - client.getViewportYOffset());
|
||||
client.getScene().menuOpen(client.getPlane(), client.getMouseX() - client.getViewportXOffset(), client.getMouseY() - client.getViewportYOffset(), false);
|
||||
}
|
||||
|
||||
if (!isGpu)
|
||||
if (!isGpu && skyboxColor != 0)
|
||||
{
|
||||
if (skyboxColor != 0)
|
||||
{
|
||||
client.rasterizerFillRectangle(
|
||||
client.getViewportXOffset(),
|
||||
client.getViewportYOffset(),
|
||||
client.getViewportWidth(),
|
||||
client.getViewportHeight(),
|
||||
skyboxColor
|
||||
);
|
||||
}
|
||||
client.rasterizerFillRectangle(
|
||||
client.getViewportXOffset(),
|
||||
client.getViewportYOffset(),
|
||||
client.getViewportWidth(),
|
||||
client.getViewportHeight(),
|
||||
skyboxColor
|
||||
);
|
||||
}
|
||||
|
||||
final int maxX = getMaxX();
|
||||
@@ -305,7 +299,7 @@ public abstract class RSSceneMixin implements RSScene
|
||||
}
|
||||
}
|
||||
|
||||
if (!client.isMenuOpen())
|
||||
if (!menuOpen)
|
||||
{
|
||||
rl$hoverY = -1;
|
||||
rl$hoverX = -1;
|
||||
@@ -408,10 +402,6 @@ public abstract class RSSceneMixin implements RSScene
|
||||
client.setEntitiesAtMouseCount(0);
|
||||
}
|
||||
client.setCheckClick(false);
|
||||
if (!checkClick)
|
||||
{
|
||||
client.setViewportWalking(false);
|
||||
}
|
||||
client.getCallbacks().drawScene();
|
||||
|
||||
if (client.getDrawCallbacks() != null)
|
||||
@@ -497,12 +487,6 @@ public abstract class RSSceneMixin implements RSScene
|
||||
client.setEntitiesAtMouseCount(0);
|
||||
}
|
||||
client.setCheckClick(false);
|
||||
if (!checkClick)
|
||||
{
|
||||
// If checkClick was false, then the selected tile wouldn't have existed next tick,
|
||||
// so clear viewport walking in order to prevent it triggering a walk
|
||||
client.setViewportWalking(false);
|
||||
}
|
||||
client.getCallbacks().drawScene();
|
||||
if (client.getDrawCallbacks() != null)
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user