Add color to the library customer based on player inventory (#7951)
This commit is contained in:
@@ -31,6 +31,7 @@ import java.awt.FontMetrics;
|
|||||||
import java.awt.Graphics2D;
|
import java.awt.Graphics2D;
|
||||||
import java.awt.Polygon;
|
import java.awt.Polygon;
|
||||||
import java.awt.geom.Rectangle2D;
|
import java.awt.geom.Rectangle2D;
|
||||||
|
import java.util.Arrays;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.Objects;
|
import java.util.Objects;
|
||||||
import java.util.Set;
|
import java.util.Set;
|
||||||
@@ -38,6 +39,8 @@ import java.util.stream.Collectors;
|
|||||||
import lombok.AccessLevel;
|
import lombok.AccessLevel;
|
||||||
import lombok.Setter;
|
import lombok.Setter;
|
||||||
import net.runelite.api.Client;
|
import net.runelite.api.Client;
|
||||||
|
import net.runelite.api.InventoryID;
|
||||||
|
import net.runelite.api.ItemContainer;
|
||||||
import net.runelite.api.Perspective;
|
import net.runelite.api.Perspective;
|
||||||
import static net.runelite.api.Perspective.getCanvasTilePoly;
|
import static net.runelite.api.Perspective.getCanvasTilePoly;
|
||||||
import net.runelite.api.Player;
|
import net.runelite.api.Player;
|
||||||
@@ -216,9 +219,13 @@ class KourendLibraryOverlay extends Overlay
|
|||||||
.forEach(n ->
|
.forEach(n ->
|
||||||
{
|
{
|
||||||
Book b = library.getCustomerBook();
|
Book b = library.getCustomerBook();
|
||||||
|
ItemContainer itemContainer = client.getItemContainer(InventoryID.INVENTORY);
|
||||||
|
boolean hasBookInInventory = itemContainer != null
|
||||||
|
&& b != null
|
||||||
|
&& Arrays.stream(itemContainer.getItems()).anyMatch(item -> item.getId() == b.getItem());
|
||||||
LocalPoint local = n.getLocalLocation();
|
LocalPoint local = n.getLocalLocation();
|
||||||
Polygon poly = getCanvasTilePoly(client, local);
|
Polygon poly = getCanvasTilePoly(client, local);
|
||||||
OverlayUtil.renderPolygon(g, poly, Color.WHITE);
|
OverlayUtil.renderPolygon(g, poly, hasBookInInventory ? Color.GREEN : Color.WHITE);
|
||||||
Point screen = Perspective.localToCanvas(client, local, client.getPlane(), n.getLogicalHeight());
|
Point screen = Perspective.localToCanvas(client, local, client.getPlane(), n.getLogicalHeight());
|
||||||
if (screen != null)
|
if (screen != null)
|
||||||
{
|
{
|
||||||
|
|||||||
Reference in New Issue
Block a user