diff --git a/HarvestRoute.lua b/HarvestRoute.lua
index 352a67a..55a0c17 100644
--- a/HarvestRoute.lua
+++ b/HarvestRoute.lua
@@ -1,7 +1,7 @@
HarvestRoute = {}
HarvestRoute.name = "HarvestRoute"
HarvestRoute.displayName = 'HarvestRoute for Harvestmap'
-HarvestRoute.version = "1.0.4"
+HarvestRoute.version = "1.0.5"
HarvestRoute.author = "generic"
HarvestRoute.settingsVersion = 2
HarvestRoute.savedVars = {}
@@ -30,6 +30,7 @@ local isActive = false
local isTrackerVisible = false
local currentZoneId = nil
local lastNodeId = nil
+local lastNodeAddedToPath = nil
local lastPathIndex = nil
local closesPathNodeId = nil
local closestOutOfPathId = nil
@@ -248,28 +249,42 @@ end
function HarvestRoute:OnUpdate (time)
if isActive then
playerX, playerY, playerZ = Harvest.GetPlayer3DPosition()
- local nodeId, nodeDistance = HarvestRoute:GetClosestNode()
+ local nodeId, nodeDistance, nodePinType = HarvestRoute:GetClosestNode()
if nodeId then
- if nodeId ~= lastNodeId and (nodeDistance < HarvestRoute.savedVars.trackerRange) then
- lastNodeId = nodeId
+ if nodePinType ~= Harvest.UNKNOWN and nodeId ~= lastNodeId and (nodeDistance < HarvestRoute.savedVars.trackerRange) then
HarvestRoute:debug('node in range: '..nodeId)
local x, y = MapCache:GetLocal(nodeId)
if Farm.path then
local index = Farm.path:GetIndex(nodeId)
if index then
- HarvestRoute:debug('path node '..nodeId..' ')
- pathNodeId = nodeId
- lastPathIndex = index
+
+ -- check if we are far enough away from the last inserted node before switching
+ local switchToPathNode = true
+ if lastNodeAddedToPath then
+ dx = MapCache.worldX[nodeId] - MapCache.worldX[lastNodeAddedToPath]
+ dy = MapCache.worldY[nodeId] - MapCache.worldY[lastNodeAddedToPath]
+ distance = dx * dx + dy * dy
+ checkDistance = HarvestRoute.savedVars.trackerRange * HarvestRoute.savedVars.trackerRange
+ if (checkDistance > distance) then
+ switchToPathNode = false
+ end
+ end
+
+ if switchToPathNode then
+ HarvestRoute:debug('path node '..nodeId..' ')
+ pathNodeId = nodeId
+ lastPathIndex = index
+ end
else
if pathNodeId then
HarvestRoute:debug('insert '..nodeId..' after path node '..pathNodeId..' ')
Farm.path:InsertAfter(pathNodeId, nodeId)
pathNodeId = nodeId
+ lastNodeAddedToPath = nodeId
lastPathIndex = Farm.path:GetIndex(nodeId)
Harvest.farm.display:Refresh(Farm.path, Harvest.farm.display.selectedPins, Harvest.farm.display.selectedMapCache)
Harvest.farm.editor.statusLabel:SetText(Harvest.farm.editor.textConstructor())
- --Harvest.callbackManager:FireCallbacks(Harvest.events.TOUR_CHANGED, Farm.path)
-- if we are farming, update the next pin so we can actually finish the loop if we want to
if Farm.helper:IsRunning() then
Farm.helper.nextPathIndex = lastPathIndex
@@ -289,6 +304,7 @@ function HarvestRoute:OnUpdate (time)
pathNodes = {}
end
end
+ lastNodeId = nodeId
end --nodeDistance
HarvestRoute:UpdateTracker()
end --nodeId
@@ -334,6 +350,7 @@ function HarvestRoute:GetClosestNode()
distance = dx * dx + dy * dy
if distance < bestDistance then
bestNodeId = nodeId
+ bestNodePinType = pinTypeId
bestDistance = distance
end
inPath = nil
@@ -366,7 +383,7 @@ function HarvestRoute:GetClosestNode()
end
if bestNodeId then
realDistance = bestDistance ^ 0.5
- return bestNodeId, realDistance
+ return bestNodeId, realDistance, bestNodePinType
end
end
return nil, nil
diff --git a/Localization/fr.lua b/Localization/fr.lua
index 85b7c80..d8a5db5 100644
--- a/Localization/fr.lua
+++ b/Localization/fr.lua
@@ -1 +1,29 @@
-HarvestRoute.localizedStrings = {}
\ No newline at end of file
+-- translations by XXXspartiateXXX
+HarvestRoute.localizedStrings = {
+ -- description du haut
+ ["addonsettingstext"] = "HarvestRoute Tracker de parcours utilise une distance distincte pour la détection des nœuds. Habituellement, cela devrait être considérablement inférieur à la distance de détection normale pour s'assurer que vous avez réellement marché très près d'un nœud à ajouter.",
+ ["routenodes"] = "Nœuds visités et aide à la récolte",
+ ["routerangemultiplier"] = "Distance de visite des nœuds",
+ ["routerangemultipliertooltip"] = "Les nœuds situés à moins de X mètres seront considérés comme visités par le tracker de parcours.",
+ ["enabletrackerwindow"] = "Activer la fenêtre du Tracker",
+ ["enabletrackerwindowtooltip"] = "Affiche les informations sur la visite, la ressource la plus proche et le dernier nœud de la visite.",
+ ["showtrackerwindow"] = "Toujours afficher la fenêtre du Tracker",
+ ["showtrackerwindowtooltip"] = "Lorsque cette option est désactivée, la fenêtre du tracker ne s'affichera qu'une fois que vous aurez activé le tracker.",
+
+ ["trackeractive"] = "|C7FCF7FLe tracker est activé|r",
+ ["trackerinactive"] = "|CFF7F7FLe tracker est désactivé|r",
+ ["pathinfomissing"] = "|CFF7F7FPas de tour actif|r",
+ ["pathinfotitle"] = "Parcours actuel:",
+ ["pathinfo"] = "<<1>> Nœuds|CA0A0A0(<<2>> m longueur)|r",
+ ["nearestnodetitle"] = "Ressource la plus proche:",
+ ["nearestnodetooltip"] = "Indique la ressource la plus proche de votre position, qui n'est pas incluse dans le parcours en cours.",
+ ["lastpathnodetitle"] = "Dernière ressource du parcours:",
+ ["lastpathnodetooltip"] = "Indique que les nouveaux nœuds seront insérés après ce dernier nœud inclus dans le parcours en cours.",
+ ["nodeinfounknown"] = "|CA0A0A0Aucun nœud à moins de 50 m|r",
+ ["nodeinfo"] = [[<<1>> |CA0A0A0(<<2>> m)|r]],
+
+
+ ["tourtrackerdescription"] = [[Activer le tracker insérera de nouveaux nœuds automatiquement après le dernier collecté inclus dans votre parcours. Sans parcours actif, il en sera crée un nouveau après avoir visité 3 nœuds connus au minimum. Les icônes doivent être non masquées.]] ,
+ ["buttonstarttracker"] = "Activer le tracker",
+ ["buttonstoptracker"] = "Désactiver le tracker",
+}