aboutsummaryrefslogtreecommitdiff
path: root/lua/pets
diff options
context:
space:
mode:
authorGiuseppe Gadola <giusgadola@gmail.com>2023-02-08 15:37:05 +0100
committerGiuseppe Gadola <giusgadola@gmail.com>2023-02-10 16:05:59 +0100
commitcf2ccf182c0a09ad2221edaf134a9ce890644a0b (patch)
tree8d9d57737078bce7314c17d84302a73398f2bee0 /lua/pets
parentrefactor: removed fps option (diff)
refactor: going with OOP approach
- creating a pet metatable/class - storing all the pets in a table with 'pet' objects
Diffstat (limited to 'lua/pets')
-rw-r--r--lua/pets/commands.lua4
-rw-r--r--lua/pets/pet.lua19
2 files changed, 23 insertions, 0 deletions
diff --git a/lua/pets/commands.lua b/lua/pets/commands.lua
index a211d2d..80709fd 100644
--- a/lua/pets/commands.lua
+++ b/lua/pets/commands.lua
@@ -4,6 +4,10 @@ vim.api.nvim_create_user_command("Pets", function()
pets.show()
end, {}) -- use nargs = 1 to accept arguments
+vim.api.nvim_create_user_command("PetsNew", function(input)
+ pets.create_pet("Giulio", "cat", "brown") -- TODO: use input.args as name
+end, { nargs = 1 }) -- use nargs = 1 to accept arguments
+
vim.api.nvim_create_user_command("PetsCloseAll", function()
pets.closeAll()
end, {})
diff --git a/lua/pets/pet.lua b/lua/pets/pet.lua
new file mode 100644
index 0000000..4179b38
--- /dev/null
+++ b/lua/pets/pet.lua
@@ -0,0 +1,19 @@
+local M = {}
+M.Pet = {}
+M.Pet.__index = M.Pet
+
+function M.Pet.new(name, type, style)
+ local instance = setmetatable({}, M.Pet)
+ instance.name = name
+ instance.type = type
+ instance.style = style
+ local wd = "/mnt/shared/coding/lua/plugins/pets.nvim/media/" -- TODO: adapt to use the correct path when plugin is installed
+ instance.sourcedir = wd .. type .. "/" .. style .. "/"
+ return instance
+end
+
+function M.Pet:animate(bufnr)
+ require("pets.animations").animate(bufnr, self.sourcedir)
+end
+
+return M