Pause Functionality.

Keith-Smith [11-14-19 - 21:48]
Pause Functionality.

Initial version of Pause functionality.
User "/farm pause" to pause and unpause. Seconds should be offset for the gold per second method as well in Farmer.lua
Filename
FarmManager.lua
modules/FtFarmer.lua
diff --git a/FarmManager.lua b/FarmManager.lua
index 9e389fd..7deefb8 100644
--- a/FarmManager.lua
+++ b/FarmManager.lua
@@ -63,6 +63,10 @@ function FarmManager.Start()
 	d("Farm Manager starting")
 end

+function FarmingManager.Pause()
+	FarmingManager.farmer:Pause()
+end
+
 function FarmManager.Stop()
 	EVENT_MANAGER:UnregisterForEvent(FarmManager.name, EVENT_LOOT_RECEIVED)
 	d("Farm Manager stopping")
@@ -90,6 +94,7 @@ FarmManager.commands = {
 	["show"] = FarmManager.Show,
 	["hide"] = FarmManager.Hide,
 	["start"] = FarmManager.Start,
+	["pause"] = FarmingManager.Pause,
 	["stop"] = FarmManager.Stop,
 	["reset"] = FarmManager.Reset
 }
diff --git a/modules/FtFarmer.lua b/modules/FtFarmer.lua
index 35ab83b..9897ae2 100644
--- a/modules/FtFarmer.lua
+++ b/modules/FtFarmer.lua
@@ -51,12 +51,36 @@ function FtFarmer:Init(memberName)
     self.totalValueDeposited = 0
     self.events = {}
     self.bag = BAG_DELETE
+
+    self.secondsPaused = 0
+    self.paused = false
+    self.pausedTime = 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
+        d('Unpausing Farming Manager')
+    else
+        self.paused = true
+        self.pausedTime = GetGameTimeMilliseconds()
+        d('Pausing Farming Manager')
+
+    end
 end

-function FtFarmer:Farm(itemLink, quantity)
-    local item = self.itemsFarmed:Add(itemLink, quantity)
-    self.totalValueFarmed = self.totalValueFarmed + (item.value * quantity)
-    fm.window:OnItemFarmed(item, ACTION_FARM)
+function Farmer:Farm(itemLink, quantity)
+    if self.paused == false then
+        local item = self.itemsFarmed:Add(itemLink, quantity)
+        self.totalValueFarmed = self.totalValueFarmed + (item.value * quantity)
+        fm.window:OnItemFarmed(item, ACTION_FARM)
+    else
+        d('we are paused')
+    end
 end

 function FtFarmer:ItemFilter(itemData)
@@ -107,7 +131,7 @@ end

 function FtFarmer:GetGoldPerSecond()
     if self.itemsFarmed.totalValue == 0 then return 0 end
-    return self.itemsFarmed.totalValue / (GetTimeStamp() - self.timeStarted)
+    return self.itemsFarmed.totalValue / (GetTimeStamp() - self.timeStarted  - self.secondsPaused)
 end

 function FtFarmer:Reset()