driftnet: Hightlight Annette when no nets in inventory
This commit is contained in:
committed by
Jordan Atwood
parent
aa0b9fb341
commit
bed1bfcd79
@@ -94,4 +94,26 @@ public interface DriftNetConfig extends Config
|
|||||||
{
|
{
|
||||||
return Color.CYAN;
|
return Color.CYAN;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ConfigItem(
|
||||||
|
keyName = "tagAnnette",
|
||||||
|
name = "Tag Annette when no nets in inventory",
|
||||||
|
description = "Tag Annette when no nets in inventory",
|
||||||
|
position = 6
|
||||||
|
)
|
||||||
|
default boolean tagAnnetteWhenNoNets()
|
||||||
|
{
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
@ConfigItem(
|
||||||
|
keyName = "annetteTagColor",
|
||||||
|
name = "Annette tag color",
|
||||||
|
description = "Color of Annette tag",
|
||||||
|
position = 7
|
||||||
|
)
|
||||||
|
default Color annetteTagColor()
|
||||||
|
{
|
||||||
|
return Color.RED;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -28,6 +28,7 @@ import java.awt.Dimension;
|
|||||||
import java.awt.Graphics2D;
|
import java.awt.Graphics2D;
|
||||||
import java.awt.Shape;
|
import java.awt.Shape;
|
||||||
import javax.inject.Inject;
|
import javax.inject.Inject;
|
||||||
|
import net.runelite.api.GameObject;
|
||||||
import net.runelite.api.NPC;
|
import net.runelite.api.NPC;
|
||||||
import net.runelite.api.Point;
|
import net.runelite.api.Point;
|
||||||
import net.runelite.client.ui.overlay.Overlay;
|
import net.runelite.client.ui.overlay.Overlay;
|
||||||
@@ -67,6 +68,10 @@ class DriftNetOverlay extends Overlay
|
|||||||
{
|
{
|
||||||
renderNets(graphics);
|
renderNets(graphics);
|
||||||
}
|
}
|
||||||
|
if (config.tagAnnetteWhenNoNets())
|
||||||
|
{
|
||||||
|
renderAnnette(graphics);
|
||||||
|
}
|
||||||
|
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
@@ -101,4 +106,13 @@ class DriftNetOverlay extends Overlay
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private void renderAnnette(Graphics2D graphics)
|
||||||
|
{
|
||||||
|
GameObject annette = plugin.getAnnette();
|
||||||
|
if (annette != null && !plugin.isDriftNetsInInventory())
|
||||||
|
{
|
||||||
|
OverlayUtil.renderPolygon(graphics, annette.getConvexHull(), config.annetteTagColor());
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -39,9 +39,13 @@ import net.runelite.api.ChatMessageType;
|
|||||||
import net.runelite.api.Client;
|
import net.runelite.api.Client;
|
||||||
import net.runelite.api.GameObject;
|
import net.runelite.api.GameObject;
|
||||||
import net.runelite.api.GameState;
|
import net.runelite.api.GameState;
|
||||||
|
import net.runelite.api.InventoryID;
|
||||||
|
import net.runelite.api.ItemContainer;
|
||||||
|
import net.runelite.api.ItemID;
|
||||||
import net.runelite.api.NPC;
|
import net.runelite.api.NPC;
|
||||||
import net.runelite.api.NpcID;
|
import net.runelite.api.NpcID;
|
||||||
import net.runelite.api.NullObjectID;
|
import net.runelite.api.NullObjectID;
|
||||||
|
import net.runelite.api.ObjectID;
|
||||||
import net.runelite.api.Player;
|
import net.runelite.api.Player;
|
||||||
import net.runelite.api.Varbits;
|
import net.runelite.api.Varbits;
|
||||||
import net.runelite.api.coords.WorldPoint;
|
import net.runelite.api.coords.WorldPoint;
|
||||||
@@ -51,6 +55,7 @@ import net.runelite.api.events.GameObjectSpawned;
|
|||||||
import net.runelite.api.events.GameStateChanged;
|
import net.runelite.api.events.GameStateChanged;
|
||||||
import net.runelite.api.events.GameTick;
|
import net.runelite.api.events.GameTick;
|
||||||
import net.runelite.api.events.InteractingChanged;
|
import net.runelite.api.events.InteractingChanged;
|
||||||
|
import net.runelite.api.events.ItemContainerChanged;
|
||||||
import net.runelite.api.events.NpcDespawned;
|
import net.runelite.api.events.NpcDespawned;
|
||||||
import net.runelite.api.events.NpcSpawned;
|
import net.runelite.api.events.NpcSpawned;
|
||||||
import net.runelite.api.events.VarbitChanged;
|
import net.runelite.api.events.VarbitChanged;
|
||||||
@@ -101,6 +106,12 @@ public class DriftNetPlugin extends Plugin
|
|||||||
private boolean inDriftNetArea;
|
private boolean inDriftNetArea;
|
||||||
private boolean armInteraction;
|
private boolean armInteraction;
|
||||||
|
|
||||||
|
@Getter
|
||||||
|
private boolean driftNetsInInventory;
|
||||||
|
|
||||||
|
@Getter
|
||||||
|
private GameObject annette;
|
||||||
|
|
||||||
@Provides
|
@Provides
|
||||||
DriftNetConfig provideConfig(ConfigManager configManager)
|
DriftNetConfig provideConfig(ConfigManager configManager)
|
||||||
{
|
{
|
||||||
@@ -132,6 +143,10 @@ public class DriftNetPlugin extends Plugin
|
|||||||
@Subscribe
|
@Subscribe
|
||||||
public void onGameStateChanged(GameStateChanged event)
|
public void onGameStateChanged(GameStateChanged event)
|
||||||
{
|
{
|
||||||
|
if (event.getGameState() != GameState.LOGGED_IN)
|
||||||
|
{
|
||||||
|
annette = null;
|
||||||
|
}
|
||||||
switch (event.getGameState())
|
switch (event.getGameState())
|
||||||
{
|
{
|
||||||
case LOGIN_SCREEN:
|
case LOGIN_SCREEN:
|
||||||
@@ -262,6 +277,11 @@ public class DriftNetPlugin extends Plugin
|
|||||||
public void onGameObjectSpawned(GameObjectSpawned event)
|
public void onGameObjectSpawned(GameObjectSpawned event)
|
||||||
{
|
{
|
||||||
GameObject object = event.getGameObject();
|
GameObject object = event.getGameObject();
|
||||||
|
if (object.getId() == ObjectID.ANNETTE)
|
||||||
|
{
|
||||||
|
annette = object;
|
||||||
|
}
|
||||||
|
|
||||||
for (DriftNet net : NETS)
|
for (DriftNet net : NETS)
|
||||||
{
|
{
|
||||||
if (net.getObjectId() == object.getId())
|
if (net.getObjectId() == object.getId())
|
||||||
@@ -275,6 +295,11 @@ public class DriftNetPlugin extends Plugin
|
|||||||
public void onGameObjectDespawned(GameObjectDespawned event)
|
public void onGameObjectDespawned(GameObjectDespawned event)
|
||||||
{
|
{
|
||||||
GameObject object = event.getGameObject();
|
GameObject object = event.getGameObject();
|
||||||
|
if (object == annette)
|
||||||
|
{
|
||||||
|
annette = null;
|
||||||
|
}
|
||||||
|
|
||||||
for (DriftNet net : NETS)
|
for (DriftNet net : NETS)
|
||||||
{
|
{
|
||||||
if (net.getObjectId() == object.getId())
|
if (net.getObjectId() == object.getId())
|
||||||
@@ -284,6 +309,18 @@ public class DriftNetPlugin extends Plugin
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Subscribe
|
||||||
|
public void onItemContainerChanged(final ItemContainerChanged event)
|
||||||
|
{
|
||||||
|
final ItemContainer itemContainer = event.getItemContainer();
|
||||||
|
if (itemContainer != client.getItemContainer(InventoryID.INVENTORY))
|
||||||
|
{
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
driftNetsInInventory = itemContainer.contains(ItemID.DRIFT_NET);
|
||||||
|
}
|
||||||
|
|
||||||
private boolean checkArea()
|
private boolean checkArea()
|
||||||
{
|
{
|
||||||
final Player localPlayer = client.getLocalPlayer();
|
final Player localPlayer = client.getLocalPlayer();
|
||||||
|
|||||||
Reference in New Issue
Block a user