Update FtFarmer.lua

Keith-Smith [11-14-19 - 22:16]
Update FtFarmer.lua

Fixed the farm per second issue.
Filename
modules/FtFarmer.lua
diff --git a/modules/FtFarmer.lua b/modules/FtFarmer.lua
index 9897ae2..73a8893 100644
--- a/modules/FtFarmer.lua
+++ b/modules/FtFarmer.lua
@@ -1,5 +1,5 @@
-FtFarmer = ZO_Object:Subclass()
-local fm = FarmManager
+Farmer = ZO_Object:Subclass()
+local fm = FarmingManager

 local function GetDisplayName(memberName)
     for guildIndex = 1, GetNumGuilds() do
@@ -35,13 +35,26 @@ local function GetEmptySlot(bagNumber)
     return dest
 end

-function FtFarmer:New(memberName)
+local function rPrint(s, l, i) -- recursive Print (structure, limit, indent)
+    l = (l) or 100; i = i or "";    -- default item limit, indent string
+    if (l<1) then print "ERROR: Item limit reached."; return l-1 end;
+    local ts = type(s);
+    if (ts ~= "table") then print (i,ts,s); return l-1 end
+    d(i,ts);           -- print "table"
+    for k,v in pairs(s) do  -- print "[KEY] VALUE"
+        l = rPrint(v, l, i.."\t["..tostring(k).."]");
+        if (l < 0) then break end
+    end
+    return l
+end
+
+function Farmer:New(memberName)
     local farmer = ZO_Object.New(self)
     farmer:Init(memberName)
     return farmer
 end

-function FtFarmer:Init(memberName)
+function Farmer:Init(memberName)
     self.name = memberName
     self.displayName = GetDisplayName(memberName)
     self.itemsFarmed = ItemList:New()
@@ -52,18 +65,21 @@ function FtFarmer:Init(memberName)
     self.events = {}
     self.bag = BAG_DELETE

-    self.secondsPaused = 0
     self.paused = false
     self.pausedTime = 0
-
+    self.secondsPaused = 0
 end

+
 function Farmer:Pause()
     if self.paused == true then
         self.paused = false
-        timePassed = ((GetGameTimeMilliseconds() - self.pausedTime) / 1000)
-        self.secondsPaused = self.pausedTime + timePassed
-        self.pausedTime = 0
+        local timePassed = ((GetGameTimeMilliseconds() - self.pausedTime) / 1000)
+        d('time passed')
+        d(timePassed)
+        d(self.pausedTime)
+        self.secondsPaused = self.secondsPaused + timePassed
+        d(self.secondsPaused)
         d('Unpausing Farming Manager')
     else
         self.paused = true
@@ -83,12 +99,12 @@ function Farmer:Farm(itemLink, quantity)
     end
 end

-function FtFarmer:ItemFilter(itemData)
+function Farmer:ItemFilter(itemData)
     local item = self.itemsFarmed.items[itemData.slotIndex]
     return item ~= nil
 end

-function FtFarmer:MoveItemsToBackpack()
+function Farmer:MoveItemsToBackpack()
     local srcBag = BAG_VIRTUAL
     local manager = InventoryManager:New()
     local bagCache = SHARED_INVENTORY:GenerateFullSlotData(nil, srcBag)
@@ -103,7 +119,7 @@ function FtFarmer:MoveItemsToBackpack()
     end
 end

-function FtFarmer:DepositItemsInBank()
+function Farmer:DepositItemsInBank()
     if self.bagId == BAG_DELETE then
         d("Must be at a bank to deposit")
         return
@@ -123,17 +139,21 @@ function FtFarmer:DepositItemsInBank()
     end
 end

-function FtFarmer:Deposit(itemLink, quantity)
+function Farmer:Deposit(itemLink, quantity)
     local item = self.itemsDeposited:Add(itemLink, quantity)
     self.totalValueDeposited = self.totalValueDeposited + (item.value * quantity)
     fm.window:OnItemFarmed(item, ACTION_DEPOSIT)
 end

-function FtFarmer:GetGoldPerSecond()
+function Farmer:GetGoldPerSecond()
     if self.itemsFarmed.totalValue == 0 then return 0 end
-    return self.itemsFarmed.totalValue / (GetTimeStamp() - self.timeStarted  - self.secondsPaused)
+    local timeDifInSecs = GetDiffBetweenTimeStamps(GetTimeStamp(), self.timeStarted)
+    d(timeDifInSecs)
+    d(self.secondsPaused)
+    return self.itemsFarmed.totalValue / (timeDifInSecs - self.secondsPaused)
+    -- return self.itemsFarmed.totalValue / ((GetTimeStamp() - self.timeStarted) - self.secondsPaused)
 end

-function FtFarmer:Reset()
+function Farmer:Reset()
     self:Init(self.name)
 end