From cfa89a6ef706dcaefcbde04312dc6e46a29de5f4 Mon Sep 17 00:00:00 2001 From: flux <25628292+fluxionary@users.noreply.github.com> Date: Fri, 10 Jun 2022 15:26:25 -0700 Subject: [PATCH] make silkworm -> cocoon more reliable --- petz/api/api_silk.lua | 12 +++++++----- petz/petz.conf | 2 ++ petz/settings.lua | 2 ++ 3 files changed, 11 insertions(+), 5 deletions(-) diff --git a/petz/api/api_silk.lua b/petz/api/api_silk.lua index e8b1043..9a1d0f4 100644 --- a/petz/api/api_silk.lua +++ b/petz/api/api_silk.lua @@ -162,16 +162,18 @@ minetest.register_craft({ }) petz.init_convert_to_chrysalis = function(self) - minetest.after(math.random(1200, 1500), function() + minetest.after(math.random(petz.settings.silkworm_chrysalis_min_time, petz.settings.silkworm_chrysalis_max_time), function() if not(kitz.is_alive(self)) then return end local pos = self.object:get_pos() - if minetest.get_node(pos) and minetest.get_node(pos).name ~= "air" then - return + local air_pos = minetest.find_node_near(pos, 1, {"air"}, true) + if air_pos then + minetest.set_node(air_pos, {name= "petz:cocoon"}) + kitz.remove_mob(self) + else + petz.init_convert_to_chrysalis(self) end - minetest.set_node(pos, {name= "petz:cocoon"}) - kitz.remove_mob(self) end, self) end diff --git a/petz/petz.conf b/petz/petz.conf index 994f632..ac47606 100644 --- a/petz/petz.conf +++ b/petz/petz.conf @@ -421,6 +421,8 @@ silkworm_spawn_chance = 1.0 silkworm_spawn_nodes = default:pine_needles silkworm_spawn_biome = default silkworm_lay_egg_on_node = group:leaves +silkworm_chrysalis_min_time = 1200 +silkworm_chrysalis_max_time = 1500 #Chimp Specific chimp_follow = default:blueberries diff --git a/petz/settings.lua b/petz/settings.lua index e99f47e..b305079 100644 --- a/petz/settings.lua +++ b/petz/settings.lua @@ -548,5 +548,7 @@ for i = 1, #petz.settings["petz_list"] do --load the settings settings:get_bool(petz_type.."_create_dam", false) elseif petz_type == "silkworm" then petz.settings[petz_type.."_lay_egg_on_node"] = user:get(petz_type.."_lay_egg_on_node") or settings:get(petz_type.."_lay_egg_on_node") or "" + petz.settings[petz_type.."_chrysalis_min_time"] = tonumber(user:get(petz_type.."_chrysalis_min_time") or settings:get(petz_type.."_chrysalis_min_time")) or 1200 + petz.settings[petz_type.."_chrysalis_max_time"] = tonumber(user:get(petz_type.."_chrysalis_max_time") or settings:get(petz_type.."_chrysalis_min_time")) or 1500 end end