mixins: Add setMinimapReceivesClicks

Lets plugins disable the implementation of checkIfMinimapClicked

This is useful for plugins that add custom menu entries, which otherwise
would trigger in addition to a minimap click
This commit is contained in:
swazrgb
2021-06-06 06:40:05 +02:00
committed by SwazRGB
parent 405ab68bf5
commit 904fcd253f
2 changed files with 27 additions and 0 deletions

View File

@@ -1404,6 +1404,8 @@ public interface Client extends GameEngine
*/
SpritePixels drawInstanceMap(int z);
void setMinimapReceivesClicks(boolean minimapReceivesClicks);
/**
* Executes a client script from the cache
* <p>

View File

@@ -25,8 +25,11 @@
package net.runelite.mixins;
import static net.runelite.api.Perspective.SCENE_SIZE;
import net.runelite.api.mixins.Copy;
import net.runelite.api.mixins.Inject;
import net.runelite.api.mixins.Mixin;
import net.runelite.api.mixins.Replace;
import net.runelite.api.widgets.Widget;
import net.runelite.rs.api.RSClient;
import net.runelite.rs.api.RSScene;
import net.runelite.rs.api.RSSpritePixels;
@@ -34,6 +37,28 @@ import net.runelite.rs.api.RSSpritePixels;
@Mixin(RSClient.class)
public abstract class MinimapMixin implements RSClient
{
@Inject
private static boolean rl$minimapReceivesClicks = true;
@Copy("checkIfMinimapClicked")
@Replace("checkIfMinimapClicked")
public static void copy$checkIfMinimapClicked(Widget var0, int var1, int var2)
{
if (!rl$minimapReceivesClicks)
{
return;
}
copy$checkIfMinimapClicked(var0, var1, var2);
}
@Inject
@Override
public void setMinimapReceivesClicks(boolean minimapReceivesClicks)
{
rl$minimapReceivesClicks = minimapReceivesClicks;
}
@Inject
@Override
public RSSpritePixels drawInstanceMap(int z)