From 1f4db2cd3a932caa0abfbc5e9b703d3ae1bcd8b4 Mon Sep 17 00:00:00 2001 From: Alex 'mcmonkey' Goodwin Date: Mon, 9 Sep 2019 22:36:51 -0700 Subject: [PATCH] add a path_distance_margin tag/mech pair --- .../denizenscript/denizen/objects/NPCTag.java | 24 +++++++++++++++++++ 1 file changed, 24 insertions(+) diff --git a/plugin/src/main/java/com/denizenscript/denizen/objects/NPCTag.java b/plugin/src/main/java/com/denizenscript/denizen/objects/NPCTag.java index a20232213f..a47f65aac5 100644 --- a/plugin/src/main/java/com/denizenscript/denizen/objects/NPCTag.java +++ b/plugin/src/main/java/com/denizenscript/denizen/objects/NPCTag.java @@ -954,6 +954,17 @@ && isSpawned() && getEntity() instanceof Player) { return new ElementTag(getNavigator().getDefaultParameters().distanceMargin()).getAttribute(attribute.fulfill(1)); } + // <--[tag] + // @attribute + // @returns ElementTag(Decimal) + // @mechanism path_distance_margin + // @description + // Returns the NPC's current pathfinding distance margin. That is, how close it needs to get to individual points along its path. + // --> + if (attribute.startsWith("path_distance_margin")) { + return new ElementTag(getNavigator().getDefaultParameters().pathDistanceMargin()).getAttribute(attribute.fulfill(1)); + } + // <--[tag] // @attribute // @returns ElementTag(Boolean) @@ -1523,6 +1534,19 @@ else if (!trait.isSneaking() && mechanism.getValue().asBoolean()) { getNavigator().getDefaultParameters().distanceMargin(mechanism.getValue().asDouble()); } + // <--[mechanism] + // @object NPCTag + // @name path_distance_margin + // @input Element(Decimal) + // @description + // Sets the NPC's path distance margin. + // @tags + // + // --> + if (mechanism.matches("path_distance_margin") && mechanism.requireDouble()) { + getNavigator().getDefaultParameters().pathDistanceMargin(mechanism.getValue().asDouble()); + } + // <--[mechanism] // @object NPCTag // @name name_visible