Change ground marker plugin to use selected region tile coords instead of basing them off of mouse location
This commit is contained in:
@@ -107,6 +107,8 @@ public interface Client extends GameEngine
|
|||||||
|
|
||||||
int getMouseCurrentButton();
|
int getMouseCurrentButton();
|
||||||
|
|
||||||
|
Tile getSelectedRegionTile();
|
||||||
|
|
||||||
boolean isDraggingWidget();
|
boolean isDraggingWidget();
|
||||||
|
|
||||||
Widget getDraggedWidget();
|
Widget getDraggedWidget();
|
||||||
|
|||||||
@@ -30,7 +30,6 @@ import com.google.common.eventbus.Subscribe;
|
|||||||
import com.google.gson.Gson;
|
import com.google.gson.Gson;
|
||||||
import com.google.gson.reflect.TypeToken;
|
import com.google.gson.reflect.TypeToken;
|
||||||
import com.google.inject.Provides;
|
import com.google.inject.Provides;
|
||||||
import java.awt.Polygon;
|
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.Arrays;
|
import java.util.Arrays;
|
||||||
import java.util.Collection;
|
import java.util.Collection;
|
||||||
@@ -43,13 +42,9 @@ import lombok.Setter;
|
|||||||
import lombok.extern.slf4j.Slf4j;
|
import lombok.extern.slf4j.Slf4j;
|
||||||
import net.runelite.api.Client;
|
import net.runelite.api.Client;
|
||||||
import static net.runelite.api.Constants.CHUNK_SIZE;
|
import static net.runelite.api.Constants.CHUNK_SIZE;
|
||||||
import static net.runelite.api.Constants.REGION_SIZE;
|
|
||||||
import net.runelite.api.GameState;
|
import net.runelite.api.GameState;
|
||||||
import net.runelite.api.MenuAction;
|
import net.runelite.api.MenuAction;
|
||||||
import net.runelite.api.MenuEntry;
|
import net.runelite.api.MenuEntry;
|
||||||
import net.runelite.api.Perspective;
|
|
||||||
import net.runelite.api.Point;
|
|
||||||
import net.runelite.api.Region;
|
|
||||||
import net.runelite.api.Tile;
|
import net.runelite.api.Tile;
|
||||||
import net.runelite.api.coords.LocalPoint;
|
import net.runelite.api.coords.LocalPoint;
|
||||||
import net.runelite.api.coords.WorldPoint;
|
import net.runelite.api.coords.WorldPoint;
|
||||||
@@ -284,19 +279,8 @@ public class GroundMarkerPlugin extends Plugin
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
MenuEntry[] menuEntries = client.getMenuEntries();
|
Tile target = client.getSelectedRegionTile();
|
||||||
|
markTile(target.getLocalLocation());
|
||||||
// get tile coordinates off of walk here entry
|
|
||||||
for (int i = 0; i < menuEntries.length; i++)
|
|
||||||
{
|
|
||||||
MenuEntry menuEntry = menuEntries[i];
|
|
||||||
if (menuEntry.getOption().equals(WALK_HERE))
|
|
||||||
{
|
|
||||||
Point target = new Point(menuEntry.getParam0(), menuEntry.getParam1());
|
|
||||||
markTile(target);
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@@ -317,10 +301,8 @@ public class GroundMarkerPlugin extends Plugin
|
|||||||
return overlay;
|
return overlay;
|
||||||
}
|
}
|
||||||
|
|
||||||
protected void markTile(Point ptMouse)
|
protected void markTile(LocalPoint localPoint)
|
||||||
{
|
{
|
||||||
LocalPoint localPoint = getTile(ptMouse);
|
|
||||||
|
|
||||||
if (localPoint == null)
|
if (localPoint == null)
|
||||||
{
|
{
|
||||||
return;
|
return;
|
||||||
@@ -380,46 +362,4 @@ public class GroundMarkerPlugin extends Plugin
|
|||||||
|
|
||||||
loadPoints();
|
loadPoints();
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* Find the tile which the given mouse point is in
|
|
||||||
* @param mouse
|
|
||||||
* @return
|
|
||||||
*/
|
|
||||||
private LocalPoint getTile(Point mouse)
|
|
||||||
{
|
|
||||||
Region region = client.getRegion();
|
|
||||||
Tile[][][] tiles = region.getTiles();
|
|
||||||
int z = client.getPlane();
|
|
||||||
|
|
||||||
java.awt.Point gameMouse = new java.awt.Point(mouse.getX(), mouse.getY());
|
|
||||||
|
|
||||||
for (int x = 0; x < REGION_SIZE; ++x)
|
|
||||||
{
|
|
||||||
for (int y = 0; y < REGION_SIZE; ++y)
|
|
||||||
{
|
|
||||||
Tile tile = tiles[z][x][y];
|
|
||||||
|
|
||||||
if (tile == null)
|
|
||||||
{
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
|
|
||||||
LocalPoint local = tile.getLocalLocation();
|
|
||||||
Polygon poly = Perspective.getCanvasTilePoly(client, local);
|
|
||||||
|
|
||||||
if (poly == null)
|
|
||||||
{
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (poly.contains(gameMouse))
|
|
||||||
{
|
|
||||||
return local;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
return null;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
@@ -54,6 +54,7 @@ import net.runelite.api.Projectile;
|
|||||||
import net.runelite.api.Setting;
|
import net.runelite.api.Setting;
|
||||||
import net.runelite.api.Skill;
|
import net.runelite.api.Skill;
|
||||||
import net.runelite.api.SpritePixels;
|
import net.runelite.api.SpritePixels;
|
||||||
|
import net.runelite.api.Tile;
|
||||||
import net.runelite.api.Varbits;
|
import net.runelite.api.Varbits;
|
||||||
import net.runelite.api.WidgetNode;
|
import net.runelite.api.WidgetNode;
|
||||||
import net.runelite.api.coords.LocalPoint;
|
import net.runelite.api.coords.LocalPoint;
|
||||||
@@ -158,6 +159,21 @@ public abstract class RSClientMixin implements RSClient
|
|||||||
interpolateObjectAnimations = interpolate;
|
interpolateObjectAnimations = interpolate;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Inject
|
||||||
|
@Override
|
||||||
|
public Tile getSelectedRegionTile()
|
||||||
|
{
|
||||||
|
int tileX = getSelectedRegionTileX();
|
||||||
|
int tileY = getSelectedRegionTileY();
|
||||||
|
|
||||||
|
if (tileX == -1 || tileY == -1)
|
||||||
|
{
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
return getRegion().getTiles()[getPlane()][tileX][tileY];
|
||||||
|
}
|
||||||
|
|
||||||
@Inject
|
@Inject
|
||||||
@Override
|
@Override
|
||||||
public List<Player> getPlayers()
|
public List<Player> getPlayers()
|
||||||
|
|||||||
@@ -116,6 +116,12 @@ public interface RSClient extends RSGameEngine, Client
|
|||||||
@Override
|
@Override
|
||||||
int getMouseCurrentButton();
|
int getMouseCurrentButton();
|
||||||
|
|
||||||
|
@Import("selectedRegionTileX")
|
||||||
|
int getSelectedRegionTileX();
|
||||||
|
|
||||||
|
@Import("selectedRegionTileY")
|
||||||
|
int getSelectedRegionTileY();
|
||||||
|
|
||||||
@Import("draggingWidget")
|
@Import("draggingWidget")
|
||||||
@Override
|
@Override
|
||||||
boolean isDraggingWidget();
|
boolean isDraggingWidget();
|
||||||
|
|||||||
Reference in New Issue
Block a user