aboutsummaryrefslogtreecommitdiff
path: root/lua/pets.lua
diff options
context:
space:
mode:
authorKyle Mendes <pink@hey.com>2023-02-16 14:33:05 -0500
committerKyle Mendes <pink@hey.com>2023-02-16 14:33:05 -0500
commit1edd15c5045ccdf84dd57a3de199e008cda52f34 (patch)
treeeee06deb1255e80f4a233cd2a65c6ba6a57f35a5 /lua/pets.lua
parentdocs(help): auto generate docs (diff)
Adding statefulness when toggling settings
Diffstat (limited to 'lua/pets.lua')
-rw-r--r--lua/pets.lua23
1 files changed, 19 insertions, 4 deletions
diff --git a/lua/pets.lua b/lua/pets.lua
index ac53551..282a147 100644
--- a/lua/pets.lua
+++ b/lua/pets.lua
@@ -1,6 +1,10 @@
local M = {}
local utils = require("pets.utils")
+local paused = false
+local hidden = false
+local sleeping = false
+
M.options = {
row = 1, -- the row (height) to display the pet at
col = 0, -- the column to display the pet at (set to high numeber to have it stay stil at the right)
@@ -56,7 +60,12 @@ function M.create_pet(name, type, style)
utils.warning('Name "' .. name .. '" already in use')
return
end
- local pet = require("pets.pet").Pet.new(name, type, style, M.options)
+ local state = {
+ paused = paused,
+ hidden = hidden,
+ sleeping = sleeping,
+ }
+ local pet = require("pets.pet").Pet.new(name, type, style, M.options, state)
pet:animate()
M.pets[pet.name] = pet
end
@@ -89,20 +98,26 @@ function M.list()
end
function M.toggle_pause()
+ paused = not paused
for _, pet in pairs(M.pets) do
- pet:toggle_pause()
+ pet:set_paused(paused)
end
end
function M.toggle_hide()
+ hidden = not hidden
+ if hidden then -- Hiding relies on the pets being paused as well
+ paused = true
+ end
for _, pet in pairs(M.pets) do
- pet:toggle_hide()
+ pet:set_hidden(hidden)
end
end
function M.toggle_sleep()
+ sleeping = not sleeping
for _, pet in pairs(M.pets) do
- pet:toggle_sleep()
+ pet:set_sleep(sleeping)
end
end