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
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()