diff options
| author | Kyle Mendes <pink@hey.com> | 2023-02-16 14:33:05 -0500 |
|---|---|---|
| committer | Kyle Mendes <pink@hey.com> | 2023-02-16 14:33:05 -0500 |
| commit | 1edd15c5045ccdf84dd57a3de199e008cda52f34 (patch) | |
| tree | eee06deb1255e80f4a233cd2a65c6ba6a57f35a5 /lua/pets.lua | |
| parent | docs(help): auto generate docs (diff) | |
Adding statefulness when toggling settings
Diffstat (limited to 'lua/pets.lua')
| -rw-r--r-- | lua/pets.lua | 23 |
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 |