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;
|
||||
}
|
||||
|
||||
@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.Shape;
|
||||
import javax.inject.Inject;
|
||||
import net.runelite.api.GameObject;
|
||||
import net.runelite.api.NPC;
|
||||
import net.runelite.api.Point;
|
||||
import net.runelite.client.ui.overlay.Overlay;
|
||||
@@ -67,6 +68,10 @@ class DriftNetOverlay extends Overlay
|
||||
{
|
||||
renderNets(graphics);
|
||||
}
|
||||
if (config.tagAnnetteWhenNoNets())
|
||||
{
|
||||
renderAnnette(graphics);
|
||||
}
|
||||
|
||||
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.GameObject;
|
||||
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.NpcID;
|
||||
import net.runelite.api.NullObjectID;
|
||||
import net.runelite.api.ObjectID;
|
||||
import net.runelite.api.Player;
|
||||
import net.runelite.api.Varbits;
|
||||
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.GameTick;
|
||||
import net.runelite.api.events.InteractingChanged;
|
||||
import net.runelite.api.events.ItemContainerChanged;
|
||||
import net.runelite.api.events.NpcDespawned;
|
||||
import net.runelite.api.events.NpcSpawned;
|
||||
import net.runelite.api.events.VarbitChanged;
|
||||
@@ -101,6 +106,12 @@ public class DriftNetPlugin extends Plugin
|
||||
private boolean inDriftNetArea;
|
||||
private boolean armInteraction;
|
||||
|
||||
@Getter
|
||||
private boolean driftNetsInInventory;
|
||||
|
||||
@Getter
|
||||
private GameObject annette;
|
||||
|
||||
@Provides
|
||||
DriftNetConfig provideConfig(ConfigManager configManager)
|
||||
{
|
||||
@@ -132,6 +143,10 @@ public class DriftNetPlugin extends Plugin
|
||||
@Subscribe
|
||||
public void onGameStateChanged(GameStateChanged event)
|
||||
{
|
||||
if (event.getGameState() != GameState.LOGGED_IN)
|
||||
{
|
||||
annette = null;
|
||||
}
|
||||
switch (event.getGameState())
|
||||
{
|
||||
case LOGIN_SCREEN:
|
||||
@@ -262,6 +277,11 @@ public class DriftNetPlugin extends Plugin
|
||||
public void onGameObjectSpawned(GameObjectSpawned event)
|
||||
{
|
||||
GameObject object = event.getGameObject();
|
||||
if (object.getId() == ObjectID.ANNETTE)
|
||||
{
|
||||
annette = object;
|
||||
}
|
||||
|
||||
for (DriftNet net : NETS)
|
||||
{
|
||||
if (net.getObjectId() == object.getId())
|
||||
@@ -275,6 +295,11 @@ public class DriftNetPlugin extends Plugin
|
||||
public void onGameObjectDespawned(GameObjectDespawned event)
|
||||
{
|
||||
GameObject object = event.getGameObject();
|
||||
if (object == annette)
|
||||
{
|
||||
annette = null;
|
||||
}
|
||||
|
||||
for (DriftNet net : NETS)
|
||||
{
|
||||
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()
|
||||
{
|
||||
final Player localPlayer = client.getLocalPlayer();
|
||||
|
||||
Reference in New Issue
Block a user