diff options
| author | Giuseppe Gadola <giusgadola@gmail.com> | 2023-03-14 08:52:18 +0100 |
|---|---|---|
| committer | Giuseppe Gadola <giusgadola@gmail.com> | 2023-03-14 08:52:18 +0100 |
| commit | 207bfb97158b578a6d10bff13e4feeb0882485e2 (patch) | |
| tree | c5c84ee4ae298b75acd4d707d65b15181dbbf6e9 /lua | |
| parent | feat(pets): add split_die animation for slime (diff) | |
feat(commands): added `PetsRemove` and `PetsRemoveAll`
Diffstat (limited to 'lua')
| -rw-r--r-- | lua/pets.lua | 16 | ||||
| -rw-r--r-- | lua/pets/commands.lua | 9 | ||||
| -rw-r--r-- | lua/pets/pet.lua | 5 |
3 files changed, 30 insertions, 0 deletions
diff --git a/lua/pets.lua b/lua/pets.lua index 6f04798..9ebc71a 100644 --- a/lua/pets.lua +++ b/lua/pets.lua @@ -80,6 +80,15 @@ function M.kill_pet(name) end end +function M.remove_pet(name) + if M.pets[name] ~= nil then + M.pets[name]:remove() + M.pets[name] = nil + else + utils.warning("Couldn't find a pet named \"" .. name .. '"') + end +end + function M.kill_all() for _, pet in pairs(M.pets) do pet:kill() @@ -87,6 +96,13 @@ function M.kill_all() M.pets = {} end +function M.remove_all() + for _, pet in pairs(M.pets) do + pet:remove() + end + M.pets = {} +end + function M.list() local empty = true for pet in pairs(M.pets) do diff --git a/lua/pets/commands.lua b/lua/pets/commands.lua index a240fc0..f521710 100644 --- a/lua/pets/commands.lua +++ b/lua/pets/commands.lua @@ -38,6 +38,9 @@ end, { nargs = 1, complete = utils.complete_typestyle }) vim.api.nvim_create_user_command("PetsKillAll", function() pets.kill_all() end, {}) +vim.api.nvim_create_user_command("PetsRemoveAll", function() + pets.remove_all() +end, {}) vim.api.nvim_create_user_command("PetsKill", function(input) pets.kill_pet(input.args) @@ -45,6 +48,12 @@ end, { nargs = 1, complete = utils.complete_name, }) +vim.api.nvim_create_user_command("PetsRemove", function(input) + pets.remove_pet(input.args) +end, { + nargs = 1, + complete = utils.complete_name, +}) vim.api.nvim_create_user_command("PetsList", function() pets.list() diff --git a/lua/pets/pet.lua b/lua/pets/pet.lua index 2cc6cfc..6540b1d 100644 --- a/lua/pets/pet.lua +++ b/lua/pets/pet.lua @@ -55,6 +55,11 @@ function M.Pet:kill() end end +function M.Pet:remove() + self.animation:stop() + self.popup:unmount() +end + function M.Pet:set_paused(paused) self.animation:set_state({ paused = paused, |