diff options
| author | Giuseppe Gadola <giusgadola@gmail.com> | 2023-02-08 15:37:05 +0100 |
|---|---|---|
| committer | Giuseppe Gadola <giusgadola@gmail.com> | 2023-02-10 16:05:59 +0100 |
| commit | cf2ccf182c0a09ad2221edaf134a9ce890644a0b (patch) | |
| tree | 8d9d57737078bce7314c17d84302a73398f2bee0 /lua/pets | |
| parent | refactor: 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.lua | 4 | ||||
| -rw-r--r-- | lua/pets/pet.lua | 19 |
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 |