From 6db600596267d2ecce4c0f4ab20df7a63bd80905 Mon Sep 17 00:00:00 2001 From: Alex 'mcmonkey' Goodwin Date: Mon, 9 Sep 2019 22:35:50 -0700 Subject: [PATCH] add better distance_margin tag+mech pair --- .../denizenscript/denizen/objects/NPCTag.java | 18 ++++++++++++++---- 1 file changed, 14 insertions(+), 4 deletions(-) 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 78f25cb543..a20232213f 100644 --- a/plugin/src/main/java/com/denizenscript/denizen/objects/NPCTag.java +++ b/plugin/src/main/java/com/denizenscript/denizen/objects/NPCTag.java @@ -6,7 +6,6 @@ import com.denizenscript.denizen.scripts.containers.core.InteractScriptHelper; import com.denizenscript.denizen.scripts.triggers.AbstractTrigger; import com.denizenscript.denizen.utilities.DenizenAPI; -import com.denizenscript.denizencore.utilities.Deprecations; import com.denizenscript.denizencore.utilities.debugging.Debug; import com.denizenscript.denizencore.objects.*; import com.denizenscript.denizen.flags.FlagManager; @@ -944,6 +943,17 @@ && isSpawned() && getEntity() instanceof Player) { } } + // <--[tag] + // @attribute + // @returns ElementTag(Decimal) + // @mechanism distance_margin + // @description + // Returns the NPC's current pathfinding distance margin. That is, how close it needs to get to its destination (in block-lengths). + // --> + if (attribute.startsWith("distance_margin")) { + return new ElementTag(getNavigator().getDefaultParameters().distanceMargin()).getAttribute(attribute.fulfill(1)); + } + // <--[tag] // @attribute // @returns ElementTag(Boolean) @@ -1502,14 +1512,14 @@ else if (!trait.isSneaking() && mechanism.getValue().asBoolean()) { // <--[mechanism] // @object NPCTag - // @name set_distance + // @name distance_margin // @input Element(Decimal) // @description // Sets the NPC's distance margin. // @tags - // TODO + // // --> - if (mechanism.matches("set_distance") && mechanism.requireDouble()) { + if ((mechanism.matches("distance_margin") || mechanism.matches("set_distance")) && mechanism.requireDouble()) { getNavigator().getDefaultParameters().distanceMargin(mechanism.getValue().asDouble()); }