Refactor LootAssist
This commit is contained in:
@@ -5,7 +5,6 @@ import java.awt.Dimension;
|
|||||||
import java.awt.Graphics2D;
|
import java.awt.Graphics2D;
|
||||||
import java.awt.Polygon;
|
import java.awt.Polygon;
|
||||||
import java.text.DecimalFormat;
|
import java.text.DecimalFormat;
|
||||||
import java.util.HashMap;
|
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
import javax.inject.Inject;
|
import javax.inject.Inject;
|
||||||
import net.runelite.api.Client;
|
import net.runelite.api.Client;
|
||||||
@@ -21,16 +20,12 @@ import net.runelite.client.ui.overlay.OverlayUtil;
|
|||||||
|
|
||||||
public class LootAssistOverlay extends Overlay
|
public class LootAssistOverlay extends Overlay
|
||||||
{
|
{
|
||||||
|
|
||||||
|
|
||||||
private LootAssistPlugin plugin;
|
|
||||||
private Client client;
|
private Client client;
|
||||||
private DecimalFormat d = new DecimalFormat("##.#");
|
private DecimalFormat d = new DecimalFormat("##.#");
|
||||||
|
|
||||||
@Inject
|
@Inject
|
||||||
public LootAssistOverlay(Client client, LootAssistPlugin plugin)
|
public LootAssistOverlay(Client client)
|
||||||
{
|
{
|
||||||
this.plugin = plugin;
|
|
||||||
this.client = client;
|
this.client = client;
|
||||||
setLayer(OverlayLayer.ABOVE_SCENE);
|
setLayer(OverlayLayer.ABOVE_SCENE);
|
||||||
setPosition(OverlayPosition.DYNAMIC);
|
setPosition(OverlayPosition.DYNAMIC);
|
||||||
@@ -48,9 +43,7 @@ public class LootAssistOverlay extends Overlay
|
|||||||
int y;
|
int y;
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
|
|
||||||
x = LocalPoint.fromWorld(client, pile.getLocation()).getSceneX();
|
x = LocalPoint.fromWorld(client, pile.getLocation()).getSceneX();
|
||||||
|
|
||||||
y = LocalPoint.fromWorld(client, pile.getLocation()).getSceneY();
|
y = LocalPoint.fromWorld(client, pile.getLocation()).getSceneY();
|
||||||
}
|
}
|
||||||
catch (NullPointerException e)
|
catch (NullPointerException e)
|
||||||
@@ -73,32 +66,32 @@ public class LootAssistOverlay extends Overlay
|
|||||||
{
|
{
|
||||||
String nameOverlay = pile.getPlayerName();
|
String nameOverlay = pile.getPlayerName();
|
||||||
String timeOverlay = d.format((pile.getTimeAppearing() - System.currentTimeMillis()) / 1000f);
|
String timeOverlay = d.format((pile.getTimeAppearing() - System.currentTimeMillis()) / 1000f);
|
||||||
final Polygon poly = Perspective.getCanvasTilePoly(client,
|
final Polygon poly = Perspective.getCanvasTilePoly(client,
|
||||||
client.getScene().getTiles()[client.getPlane()][x][y].getLocalLocation());
|
client.getScene().getTiles()[client.getPlane()][x][y].getLocalLocation());
|
||||||
if (poly != null)
|
if (poly != null)
|
||||||
{
|
{
|
||||||
Point textLoc = Perspective.getCanvasTextLocation(client, graphics,
|
Point textLoc = Perspective.getCanvasTextLocation(client, graphics,
|
||||||
LocalPoint.fromWorld(client, pile.getLocation()),
|
LocalPoint.fromWorld(client, pile.getLocation()),
|
||||||
nameOverlay, graphics.getFontMetrics().getHeight() * 7);
|
nameOverlay, graphics.getFontMetrics().getHeight() * 7);
|
||||||
Point timeLoc = Perspective.getCanvasTextLocation(client, graphics,
|
Point timeLoc = Perspective.getCanvasTextLocation(client, graphics,
|
||||||
LocalPoint.fromWorld(client, pile.getLocation()),
|
LocalPoint.fromWorld(client, pile.getLocation()),
|
||||||
timeOverlay, graphics.getFontMetrics().getHeight());
|
timeOverlay, graphics.getFontMetrics().getHeight());
|
||||||
OverlayUtil.renderPolygon(graphics, poly, Color.WHITE);
|
OverlayUtil.renderPolygon(graphics, poly, Color.WHITE);
|
||||||
if (timeRemaining < 5)
|
if (timeRemaining < 5)
|
||||||
{
|
{
|
||||||
OverlayUtil.renderTextLocation(graphics, timeLoc, timeOverlay, Color.RED);
|
OverlayUtil.renderTextLocation(graphics, timeLoc, timeOverlay, Color.RED);
|
||||||
OverlayUtil.renderTextLocation(graphics, textLoc, nameOverlay, Color.RED);
|
OverlayUtil.renderTextLocation(graphics, textLoc, nameOverlay, Color.RED);
|
||||||
}
|
}
|
||||||
if (timeRemaining < 2)
|
if (timeRemaining < 2)
|
||||||
{
|
{
|
||||||
client.setHintArrow(WorldPoint.fromLocal(client,
|
client.setHintArrow(WorldPoint.fromLocal(client,
|
||||||
LocalPoint.fromWorld(client, pile.getLocation())));
|
LocalPoint.fromWorld(client, pile.getLocation())));
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
OverlayUtil.renderTextLocation(graphics, timeLoc, timeOverlay, Color.WHITE);
|
OverlayUtil.renderTextLocation(graphics, timeLoc, timeOverlay, Color.WHITE);
|
||||||
OverlayUtil.renderTextLocation(graphics, textLoc, nameOverlay, Color.WHITE);
|
OverlayUtil.renderTextLocation(graphics, textLoc, nameOverlay, Color.WHITE);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -2,13 +2,11 @@ package net.runelite.client.plugins.lootassist;
|
|||||||
|
|
||||||
import com.google.inject.Provides;
|
import com.google.inject.Provides;
|
||||||
import java.util.concurrent.ConcurrentHashMap;
|
import java.util.concurrent.ConcurrentHashMap;
|
||||||
import java.util.concurrent.CopyOnWriteArrayList;
|
|
||||||
import javax.inject.Inject;
|
import javax.inject.Inject;
|
||||||
import net.runelite.api.Actor;
|
import net.runelite.api.Actor;
|
||||||
import net.runelite.api.AnimationID;
|
import net.runelite.api.AnimationID;
|
||||||
import net.runelite.api.Client;
|
import net.runelite.api.Client;
|
||||||
import net.runelite.api.Player;
|
import net.runelite.api.Player;
|
||||||
import net.runelite.api.coords.LocalPoint;
|
|
||||||
import net.runelite.api.coords.WorldPoint;
|
import net.runelite.api.coords.WorldPoint;
|
||||||
import net.runelite.api.events.AnimationChanged;
|
import net.runelite.api.events.AnimationChanged;
|
||||||
import net.runelite.api.events.GameStateChanged;
|
import net.runelite.api.events.GameStateChanged;
|
||||||
@@ -28,21 +26,13 @@ import net.runelite.client.ui.overlay.OverlayManager;
|
|||||||
)
|
)
|
||||||
public class LootAssistPlugin extends Plugin
|
public class LootAssistPlugin extends Plugin
|
||||||
{
|
{
|
||||||
|
|
||||||
@Inject
|
|
||||||
private Client client;
|
|
||||||
|
|
||||||
@Inject
|
@Inject
|
||||||
OverlayManager overlayManager;
|
OverlayManager overlayManager;
|
||||||
|
|
||||||
@Inject
|
@Inject
|
||||||
LootAssistOverlay lootAssistOverlay;
|
LootAssistOverlay lootAssistOverlay;
|
||||||
|
|
||||||
@Inject
|
static ConcurrentHashMap<WorldPoint, LootPile> lootPiles = new ConcurrentHashMap<>();
|
||||||
private LootAssitConfig config;
|
|
||||||
|
|
||||||
|
|
||||||
public static ConcurrentHashMap<WorldPoint, LootPile> lootPiles = new ConcurrentHashMap<>();
|
|
||||||
|
|
||||||
@Provides
|
@Provides
|
||||||
LootAssitConfig getConfig(ConfigManager configManager)
|
LootAssitConfig getConfig(ConfigManager configManager)
|
||||||
|
|||||||
@@ -5,24 +5,28 @@ import lombok.Setter;
|
|||||||
import net.runelite.api.coords.LocalPoint;
|
import net.runelite.api.coords.LocalPoint;
|
||||||
import net.runelite.api.coords.WorldPoint;
|
import net.runelite.api.coords.WorldPoint;
|
||||||
|
|
||||||
public class LootPile
|
class LootPile
|
||||||
{
|
{
|
||||||
private static final long TIME_UNTIL_VISIBLE = 60000;
|
private static final long TIME_UNTIL_VISIBLE = 60000;
|
||||||
private final long timeCreated;
|
|
||||||
@Getter
|
@Getter
|
||||||
private final long timeAppearing;
|
private final long timeAppearing;
|
||||||
|
|
||||||
@Getter
|
@Getter
|
||||||
private final WorldPoint location;
|
private final WorldPoint location;
|
||||||
|
|
||||||
@Getter
|
@Getter
|
||||||
private final String playerName;
|
private final String playerName;
|
||||||
@Getter @Setter
|
|
||||||
|
@Getter
|
||||||
|
@Setter
|
||||||
private boolean beingRendered = false;
|
private boolean beingRendered = false;
|
||||||
|
|
||||||
public LootPile(WorldPoint location, String playerName)
|
LootPile(WorldPoint location, String playerName)
|
||||||
{
|
{
|
||||||
this.timeCreated = System.currentTimeMillis();
|
long timeCreated = System.currentTimeMillis();
|
||||||
this.location = location;
|
this.location = location;
|
||||||
this.playerName = playerName;
|
this.playerName = playerName;
|
||||||
this.timeAppearing = this.timeCreated + TIME_UNTIL_VISIBLE;
|
this.timeAppearing = timeCreated + TIME_UNTIL_VISIBLE;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user