From 86295f12969601bf7833589f1217c1e09c3de055 Mon Sep 17 00:00:00 2001 From: runs Date: Sun, 25 Jul 2021 21:47:36 +0200 Subject: [PATCH] added the remove_list setting to delete already existing entities in the game --- README.md | 2 -- petz/api/api_init_prop.lua | 13 +++++++++++++ petz/init.lua | 16 ++++++++++++++++ petz/models/petz_wagon.b3d | Bin 35439 -> 35439 bytes petz/petz.conf | 4 ++++ petz/settings.lua | 8 +++++++- petz/textures/pet_wagon_chest.png | Bin 0 -> 1030 bytes petz/textures/petz_wagon.png | Bin 2665 -> 5087 bytes 8 files changed, 40 insertions(+), 3 deletions(-) create mode 100644 petz/textures/pet_wagon_chest.png diff --git a/README.md b/README.md index 5f1fb14..d0bb794 100644 --- a/README.md +++ b/README.md @@ -13,5 +13,3 @@ Cute kawaii mobs for Minetest. There are in a separate github repository: [Petz RAW](https://github.com/runsy/petz_raw) - - diff --git a/petz/api/api_init_prop.lua b/petz/api/api_init_prop.lua index ca2ecbd..2363085 100644 --- a/petz/api/api_init_prop.lua +++ b/petz/api/api_init_prop.lua @@ -261,6 +261,19 @@ function petz.set_initial_properties(self, staticdata, dtime_s) --2. ALREADY EXISTING MOBS -- elseif not captured_mob then + --Check if the petz was removed from the petz list in the settings + local remove_petz = true + for key, value in pairs(petz.settings["petz_list"]) do + if value == self.type then + minetest.chat_send_all(value) + remove_petz = false + break + end + end + if remove_petz then + self.object:remove() + return + end petz.load_vars(self) --Load memory variables -- --3. CAPTURED MOBS diff --git a/petz/init.lua b/petz/init.lua index 4dc663a..298036c 100644 --- a/petz/init.lua +++ b/petz/init.lua @@ -42,6 +42,22 @@ petz.file_exists = function(name) end end +if petz.settings["remove_list"] then + for i = 1, #petz.settings["remove_list"] do + local file_name = modpath .. "/petz/"..petz.settings["remove_list"][i].."_mobkit"..".lua" + if petz.file_exists(file_name) then + assert(loadfile(file_name))(S) + end + --Override the petz_list + for j = 1, #petz.settings["petz_list"] do --load all the petz.lua files + if petz.settings["remove_list"][i] == petz.settings["petz_list"][j] then + table.remove(petz.settings["petz_list"], j) + --mokapi.remove_table_by_key(petz.settings["petz_list"], j) + end + end + end +end + for i = 1, #petz.settings["petz_list"] do --load all the petz.lua files local file_name = modpath .. "/petz/"..petz.settings["petz_list"][i].."_mobkit"..".lua" if petz.file_exists(file_name) then diff --git a/petz/models/petz_wagon.b3d b/petz/models/petz_wagon.b3d index d5559ea7d2ef61495176400b7e971ff58278a4ce..f795ecd39c0e713490fdcdf98fe709c10067b5c6 100644 GIT binary patch delta 4976 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 diff --git a/petz/petz.conf b/petz/petz.conf index 522ac76..fed7117 100644 --- a/petz/petz.conf +++ b/petz/petz.conf @@ -3,6 +3,10 @@ petz_list = kitty,puppy,ducky,lamb,lion,calf,panda,grizzly,pony,parrot,chicken,piggy,wolf,elephant,elephant_female,pigeon,moth,camel,clownfish,bat,silkworm,chimp,hamster,dolphin,tropicalfish,beaver,turtle,frog,toucan,bee,queen_bee,mr_pumpkin,foxy,penguin,polar_bear,santa_killer,werewolf,tarantula,butterfly,rat,goat,squirrel,leopard,snow_leopard,ant,warrior_ant,queen_ant,rooster,hen,bunny +#This list is to remove already existing entities in the game +##Note that overrides the petz_list +remove_list = + ##Tamagochi Mode (Take care of your pet: fed it...) tamagochi_mode = true ##check_time: default 2400 diff --git a/petz/settings.lua b/petz/settings.lua index 77f450b..77ffa4b 100644 --- a/petz/settings.lua +++ b/petz/settings.lua @@ -12,6 +12,12 @@ local settings_def = { default = "", }, { + name = "remove_list", + type = "string", + split = true, + default = "", + }, + { name = "disable_monsters", type = "boolean", default = false, @@ -441,7 +447,7 @@ for key, value in ipairs(settings_def) do value.default = '' end local str = user:get(value.name) or settings:get(value.name, value.default) - if value.split then + if str and value.split then str = string.split(str) end petz.settings[value.name] = str diff --git a/petz/textures/pet_wagon_chest.png b/petz/textures/pet_wagon_chest.png new file mode 100644 index 0000000000000000000000000000000000000000..f50cab4cd935e609c2e85dcb670be201030c95d4 GIT binary patch literal 1030 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 CfS{iM delta 2594 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 Ef*Kgw5dZ)H