1.0.5 Bugfixes for disabled map pins and unknown pins, french translations by XXXspartiateXXX

generic [05-14-22 - 00:26]
1.0.5 Bugfixes for disabled map pins and unknown pins, french translations by XXXspartiateXXX
Filename
HarvestRoute.lua
Localization/fr.lua
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",
+}