From e408dd45e576e92d3f7d8d35b7e552c9bac23687 Mon Sep 17 00:00:00 2001 From: ancientmarinerdev Date: Fri, 9 Dec 2022 19:30:06 +0000 Subject: [PATCH 1/3] Remove easter egg taking 3% of processing --- mods/ENTITIES/mcl_mobs/api.lua | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/mods/ENTITIES/mcl_mobs/api.lua b/mods/ENTITIES/mcl_mobs/api.lua index 4fb89dfa6..04c834ec3 100644 --- a/mods/ENTITIES/mcl_mobs/api.lua +++ b/mods/ENTITIES/mcl_mobs/api.lua @@ -471,7 +471,7 @@ local set_yaw = function(self, yaw, delay, dtime) if self.shaking and dtime then yaw = yaw + (random() * 2 - 1) * 5 * dtime end - update_roll(self) + --update_roll(self) return yaw end @@ -822,7 +822,7 @@ local update_tag = function(self) nametag = tag, }) - update_roll(self) + --update_roll(self) end -- drop items @@ -4457,7 +4457,7 @@ local mob_step = function(self, dtime) yaw = yaw + (random() * 2 - 1) * 5 * dtime end self.object:set_yaw(yaw) - update_roll(self) + --update_roll(self) end -- end rotation From f7f0a2be8b9ab7a387fec84c2b4c81ce77b305c0 Mon Sep 17 00:00:00 2001 From: ancientmarinerdev Date: Fri, 9 Dec 2022 22:59:58 +0000 Subject: [PATCH 2/3] Raids performance optimisation. Check for village less and over less distance. --- mods/CORE/mcl_events/init.lua | 4 ++++ mods/ENVIRONMENT/mcl_raids/init.lua | 4 +++- mods/ENVIRONMENT/mcl_zombie_sieges/init.lua | 21 +++++++++++++++------ 3 files changed, 22 insertions(+), 7 deletions(-) diff --git a/mods/CORE/mcl_events/init.lua b/mods/CORE/mcl_events/init.lua index 5ec2577a9..625076bae 100644 --- a/mods/CORE/mcl_events/init.lua +++ b/mods/CORE/mcl_events/init.lua @@ -102,6 +102,7 @@ function check_events(dtime) for _,e in pairs(mcl_events.registered_events) do local pp = e.cond_start() if pp then + --minetest.log("It's gonna start the raid maybe") for _,p in pairs(pp) do local start = true if e.exclusive_to_area then @@ -110,11 +111,14 @@ function check_events(dtime) end end if start then + --minetest.log("It's gonna start the raid definitely") start_event(p,e) elseif DBG then mcl_log("[mcl_events] Event "..e.readable_name.." already active at "..minetest.pos_to_string(vector.round(p.pos))) end end + else + --minetest.log("Do not start this raid") end end for idx,ae in pairs(active_events) do diff --git a/mods/ENVIRONMENT/mcl_raids/init.lua b/mods/ENVIRONMENT/mcl_raids/init.lua index 5a4575670..3c9c05157 100644 --- a/mods/ENVIRONMENT/mcl_raids/init.lua +++ b/mods/ENVIRONMENT/mcl_raids/init.lua @@ -217,7 +217,7 @@ function mcl_raids.find_villager(pos) end function mcl_raids.find_bed(pos) - return minetest.find_node_near(pos,128,{"mcl_beds:bed_red_bottom"}) + return minetest.find_node_near(pos,32,{"mcl_beds:bed_red_bottom"}) end function mcl_raids.find_village(pos) @@ -292,11 +292,13 @@ mcl_events.register_event("raid",{ exclusive_to_area = 128, enable_bossbar = true, cond_start = function(self) + --minetest.log("Cond start raid") local r = {} for _,p in pairs(minetest.get_connected_players()) do if mcl_potions.player_has_effect(p,"bad_omen") then local raid_pos = mcl_raids.find_village(p:get_pos()) if raid_pos then + --minetest.log("We have a raid position. Start raid") table.insert(r,{ player = p:get_player_name(), pos = raid_pos }) end end diff --git a/mods/ENVIRONMENT/mcl_zombie_sieges/init.lua b/mods/ENVIRONMENT/mcl_zombie_sieges/init.lua index 8a43b0e7e..3551d4734 100644 --- a/mods/ENVIRONMENT/mcl_zombie_sieges/init.lua +++ b/mods/ENVIRONMENT/mcl_zombie_sieges/init.lua @@ -26,15 +26,24 @@ mcl_events.register_event("zombie_siege",{ exclusive_to_area = 128, enable_bossbar = false, cond_start = function(self) + --minetest.log("Cond start zs") + local r = {} + + local t = minetest.get_timeofday() local pr = PseudoRandom(minetest.get_day_count()) local rnd = pr:next(1,10) - local t = minetest.get_timeofday() - local r = {} - for _,p in pairs(minetest.get_connected_players()) do - local village = mcl_raids.find_village(p:get_pos()) - if t < 0.04 and village and rnd == 1 then - table.insert(r,{ player = p:get_player_name(), pos = village}) + + if t < 0.04 and rnd == 1 then + --minetest.log("Well, it's siege time") + for _,p in pairs(minetest.get_connected_players()) do + local village = mcl_raids.find_village(p:get_pos()) + if village then + --minetest.log("Found village") + table.insert(r,{ player = p:get_player_name(), pos = village}) + end end + else + --minetest.log("Not night for a siege, or not success") end if #r > 0 then return r end end, From 9b94a752bd676b3060b83503a13a5508c6e224e2 Mon Sep 17 00:00:00 2001 From: ancientmarinerdev Date: Sun, 11 Dec 2022 20:22:06 +0000 Subject: [PATCH 3/3] Fixed bug that crashes zombie siege in context where z cannot spawn --- mods/ENVIRONMENT/mcl_zombie_sieges/init.lua | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/mods/ENVIRONMENT/mcl_zombie_sieges/init.lua b/mods/ENVIRONMENT/mcl_zombie_sieges/init.lua index 3551d4734..07db4bc7a 100644 --- a/mods/ENVIRONMENT/mcl_zombie_sieges/init.lua +++ b/mods/ENVIRONMENT/mcl_zombie_sieges/init.lua @@ -10,10 +10,14 @@ local function spawn_zombies(self) local p = vector.offset(nn[i%#nn],0,1,0) if check_spawn_pos(p) then local m = mcl_mobs.spawn(p,"mobs_mc:zombie") - local l = m:get_luaentity() - mcl_mobs:gopath(m:get_luaentity(),self.pos) - table.insert(self.mobs,m) - self.health_max = self.health_max + l.health + if m then + local l = m:get_luaentity() + mcl_mobs:gopath(m:get_luaentity(), self.pos) + table.insert(self.mobs, m) + self.health_max = self.health_max + l.health + else + --minetest.log("Failed to spawn zombie at location: " .. minetest.pos_to_string(p)) + end end end end