Added ground item ticks (#726)

* Added ground item ticks

Signed-off-by: James Munson <jmunson@openpoll.io>

* update config

Signed-off-by: James Munson <jmunson@openpoll.io>
This commit is contained in:
James
2019-06-24 03:50:03 -07:00
committed by Kyleeld
parent 32c791610a
commit 3a44470e31
4 changed files with 33 additions and 0 deletions

View File

@@ -46,6 +46,7 @@ class GroundItem
private int offset; private int offset;
private boolean tradeable; private boolean tradeable;
private boolean isMine; private boolean isMine;
private int ticks;
private int durationMillis; private int durationMillis;
private boolean isAlwaysPrivate; private boolean isAlwaysPrivate;
private boolean isOwnedByPlayer; private boolean isOwnedByPlayer;

View File

@@ -606,4 +606,16 @@ public interface GroundItemsConfig extends Config
{ {
return false; return false;
} }
@ConfigItem(
keyName = "showTimer",
name = "Show ground item tick countdown timer",
description = "Shows how many ticks left until disappearing.",
position = 48,
parent = "miscStub"
)
default boolean showTimer()
{
return false;
}
} }

View File

@@ -277,6 +277,13 @@ public class GroundItemsOverlay extends Overlay
} }
} }
if (item.getTicks() > 0 && config.showTimer())
{
itemStringBuilder
.append(" - ")
.append(item.getTicks());
}
final String itemString = itemStringBuilder.toString(); final String itemString = itemStringBuilder.toString();
itemStringBuilder.setLength(0); itemStringBuilder.setLength(0);

View File

@@ -69,6 +69,7 @@ import net.runelite.api.events.ItemDespawned;
import net.runelite.api.events.ItemQuantityChanged; import net.runelite.api.events.ItemQuantityChanged;
import net.runelite.api.events.ItemSpawned; import net.runelite.api.events.ItemSpawned;
import net.runelite.api.events.MenuEntryAdded; import net.runelite.api.events.MenuEntryAdded;
import net.runelite.api.events.GameTick;
import net.runelite.client.Notifier; import net.runelite.client.Notifier;
import net.runelite.client.config.ConfigManager; import net.runelite.client.config.ConfigManager;
import net.runelite.client.eventbus.Subscribe; import net.runelite.client.eventbus.Subscribe;
@@ -204,6 +205,16 @@ public class GroundItemsPlugin extends Plugin
collectedGroundItems.clear(); collectedGroundItems.clear();
} }
@Subscribe
public void onGameTick(GameTick event)
{
for (GroundItem item : collectedGroundItems.values())
{
if (item.getTicks() == -1) continue;
item.setTicks(item.getTicks() - 1);
}
}
@Subscribe @Subscribe
public void onConfigChanged(ConfigChanged event) public void onConfigChanged(ConfigChanged event)
{ {
@@ -461,6 +472,7 @@ public class GroundItemsPlugin extends Plugin
if (groundItem != null) if (groundItem != null)
{ {
groundItem.setMine(true); groundItem.setMine(true);
groundItem.setTicks(200);
boolean shouldNotify = config.onlyShowLoot() && config.highlightedColor().equals(getHighlighted( boolean shouldNotify = config.onlyShowLoot() && config.highlightedColor().equals(getHighlighted(
groundItem.getName(), groundItem.getName(),
@@ -511,6 +523,7 @@ public class GroundItemsPlugin extends Plugin
.durationMillis(durationMillis) .durationMillis(durationMillis)
.isAlwaysPrivate(client.isInInstancedRegion() || (!itemComposition.isTradeable() && realItemId != COINS)) .isAlwaysPrivate(client.isInInstancedRegion() || (!itemComposition.isTradeable() && realItemId != COINS))
.isOwnedByPlayer(tile.getWorldLocation().equals(playerLocation)) .isOwnedByPlayer(tile.getWorldLocation().equals(playerLocation))
.ticks(tile.getWorldLocation().equals(client.getLocalPlayer().getWorldLocation()) ? 200 : 100)
.build(); .build();