agility plugin: add trap obstacle overlay
Add an option to show an overlay over traps in agility courses
This commit is contained in:
@@ -82,7 +82,7 @@ public interface AgilityConfig extends Config
|
|||||||
|
|
||||||
@ConfigItem(
|
@ConfigItem(
|
||||||
keyName = "markHighlight",
|
keyName = "markHighlight",
|
||||||
name = "Mark highlight Color",
|
name = "Mark Highlight Color",
|
||||||
description = "Color of highlighted Marks of Grace",
|
description = "Color of highlighted Marks of Grace",
|
||||||
position = 5
|
position = 5
|
||||||
)
|
)
|
||||||
@@ -101,4 +101,26 @@ public interface AgilityConfig extends Config
|
|||||||
{
|
{
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ConfigItem(
|
||||||
|
keyName = "trapOverlay",
|
||||||
|
name = "Show Trap Overlay",
|
||||||
|
description = "Enable/disable the highlighting of traps on Agility courses",
|
||||||
|
position = 7
|
||||||
|
)
|
||||||
|
default boolean showTrapOverlay()
|
||||||
|
{
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
@ConfigItem(
|
||||||
|
keyName = "trapHighlight",
|
||||||
|
name = "Trap Overlay Color",
|
||||||
|
description = "Color of Agility trap overlay",
|
||||||
|
position = 8
|
||||||
|
)
|
||||||
|
default Color getTrapColor()
|
||||||
|
{
|
||||||
|
return Color.RED;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -69,7 +69,8 @@ public class AgilityOverlay extends Overlay
|
|||||||
final Tile markOfGrace = plugin.getMarkOfGrace();
|
final Tile markOfGrace = plugin.getMarkOfGrace();
|
||||||
plugin.getObstacles().forEach((object, tile) ->
|
plugin.getObstacles().forEach((object, tile) ->
|
||||||
{
|
{
|
||||||
if (Obstacles.SHORTCUT_OBSTACLE_IDS.contains(object.getId()) && !config.highlightShortcuts())
|
if (Obstacles.SHORTCUT_OBSTACLE_IDS.contains(object.getId()) && !config.highlightShortcuts() ||
|
||||||
|
Obstacles.TRAP_OBSTACLE_IDS.contains(object.getId()) && !config.showTrapOverlay())
|
||||||
{
|
{
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
@@ -77,6 +78,13 @@ public class AgilityOverlay extends Overlay
|
|||||||
if (tile.getPlane() == client.getPlane()
|
if (tile.getPlane() == client.getPlane()
|
||||||
&& object.getLocalLocation().distanceTo(playerLocation) < MAX_DISTANCE)
|
&& object.getLocalLocation().distanceTo(playerLocation) < MAX_DISTANCE)
|
||||||
{
|
{
|
||||||
|
// This assumes that the obstacle is not clickable.
|
||||||
|
if (Obstacles.TRAP_OBSTACLE_IDS.contains(object.getId()))
|
||||||
|
{
|
||||||
|
OverlayUtil.renderPolygon(graphics, object.getCanvasTilePoly(), config.getTrapColor());
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
Area objectClickbox = object.getClickbox();
|
Area objectClickbox = object.getClickbox();
|
||||||
if (objectClickbox != null)
|
if (objectClickbox != null)
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -286,7 +286,8 @@ public class AgilityPlugin extends Plugin
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (Obstacles.COURSE_OBSTACLE_IDS.contains(newObject.getId()) ||
|
if (Obstacles.COURSE_OBSTACLE_IDS.contains(newObject.getId()) ||
|
||||||
Obstacles.SHORTCUT_OBSTACLE_IDS.contains(newObject.getId()))
|
Obstacles.SHORTCUT_OBSTACLE_IDS.contains(newObject.getId()) ||
|
||||||
|
Obstacles.TRAP_OBSTACLE_IDS.contains(newObject.getId()))
|
||||||
{
|
{
|
||||||
obstacles.put(newObject, tile);
|
obstacles.put(newObject, tile);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -177,4 +177,9 @@ public class Obstacles
|
|||||||
// Revenant Caves
|
// Revenant Caves
|
||||||
PILLAR_31561
|
PILLAR_31561
|
||||||
);
|
);
|
||||||
|
|
||||||
|
public static final Set<Integer> TRAP_OBSTACLE_IDS = Sets.newHashSet(
|
||||||
|
// Agility pyramid
|
||||||
|
NULL_3550, NULL_10872, NULL_10873
|
||||||
|
);
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user