From da6563a5b39b30502635e331c3c7bbfb9b22de4b Mon Sep 17 00:00:00 2001 From: cora Date: Thu, 26 May 2022 02:24:56 +0200 Subject: [PATCH 1/4] Spawn witch and black cat on witchhut generation --- .../mobs_mc/textures/mobs_mc_cat_black.png | Bin 606 -> 7117 bytes mods/MAPGEN/mcl_structures/init.lua | 19 ++++++++++++++++++ 2 files changed, 19 insertions(+) diff --git a/mods/ENTITIES/mobs_mc/textures/mobs_mc_cat_black.png b/mods/ENTITIES/mobs_mc/textures/mobs_mc_cat_black.png index d6e54c7a15637a4925a492b852e27071896479d3..a839a6ef37d345362f80c340f500ad42f999b393 100644 GIT binary patch literal 7117 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 N4tCCr+~r=8{{tPxBOw3) delta 593 zcmV-X0^yvTp|7~JQ?a{6I>Dwz63h9hm=DK=&ZDQ~A?EnA($MGIq0000JbW%=J0RR90 z|NsC0{{a90|Nj600002Xr|eb$00F^CL_t(|0i=|HuA49nMSrocxp+?Aw(kEwc6I`L zQz>2ddaR&E!ABPvx(q}VuwwaS1=d=}9^8CczTL44LU|H^02_JiiEXTkdx_^Sr1`SxpEV9>gof9wx2D4mDfHYKp3c8z>bw%Pm>rsNb)va)Ajf11V z3?M25d~z08dZ(Zw+5l)~&G!?6`4pE4>LpnA>%lr=`C$ZEg2_X{_heotsQyflWeJtU z9ODClSeMA^_Nl<11Y-^wO3agoukz8>ee?NC(cnH4uz#(h0)0W?ecR?QQK%jXAR?i1 zEs#9RW!BBJhCm|J<`fW;#I-JWWvaojC=xKp3qf#S!Dg4TO)ZwP)4Zns}MxBq0hK2qUo f-um`?gWLcBf)6=#*sJXE00000NkvXXu0mjfW9J&t diff --git a/mods/MAPGEN/mcl_structures/init.lua b/mods/MAPGEN/mcl_structures/init.lua index 9a1a73281..2b791aa91 100644 --- a/mods/MAPGEN/mcl_structures/init.lua +++ b/mods/MAPGEN/mcl_structures/init.lua @@ -280,6 +280,24 @@ function mcl_structures.generate_boulder(pos, rotation, pr) return minetest.place_schematic(newpos, path, rotation) -- don't serialize schematics for registered biome decorations, for MT 5.4.0, https://github.com/minetest/minetest/issues/10995 end +local function spawn_witch(p1,p2) + local c = minetest.find_node_near(p1,15,{"mcl_cauldrons:cauldron"}) + local nn = minetest.find_nodes_in_area(p1,p2,{"mcl_core:sprucewood"}) + if c then + for _,v in pairs(nn) do + local ap = vector.offset(v,0,1,0) + local an = minetest.get_node(ap) + if ap.y == c.y and an.name == "air" then + minetest.add_entity(ap,"mobs_mc:witch"):get_luaentity()._home = c + local cat = minetest.add_entity(ap,"mobs_mc:cat") + cat:set_properties({textures = {"mobs_mc_cat_black.png"}}) + cat:get_luaentity().owner = "witch" --so it's not claimable by players (unless they're named witch hehe) + return + end + end + end +end + local function hut_placement_callback(p1, p2, size, orientation, pr) if not p1 or not p2 then return end local legs = minetest.find_nodes_in_area(p1, p2, "mcl_core:tree") @@ -289,6 +307,7 @@ local function hut_placement_callback(p1, p2, size, orientation, pr) minetest.swap_node(legs[i], {name = "mcl_core:tree", param2 = 2}) end end + spawn_witch(p1,p2) end function mcl_structures.generate_witch_hut(pos, rotation, pr) From 2337e72a235157048976d0335d4634461594a2c0 Mon Sep 17 00:00:00 2001 From: cora Date: Thu, 26 May 2022 14:46:06 +0200 Subject: [PATCH 2/4] simplify spawn logic --- mods/MAPGEN/mcl_structures/init.lua | 21 +++++++++------------ 1 file changed, 9 insertions(+), 12 deletions(-) diff --git a/mods/MAPGEN/mcl_structures/init.lua b/mods/MAPGEN/mcl_structures/init.lua index 2b791aa91..322874d4c 100644 --- a/mods/MAPGEN/mcl_structures/init.lua +++ b/mods/MAPGEN/mcl_structures/init.lua @@ -282,19 +282,16 @@ end local function spawn_witch(p1,p2) local c = minetest.find_node_near(p1,15,{"mcl_cauldrons:cauldron"}) - local nn = minetest.find_nodes_in_area(p1,p2,{"mcl_core:sprucewood"}) if c then - for _,v in pairs(nn) do - local ap = vector.offset(v,0,1,0) - local an = minetest.get_node(ap) - if ap.y == c.y and an.name == "air" then - minetest.add_entity(ap,"mobs_mc:witch"):get_luaentity()._home = c - local cat = minetest.add_entity(ap,"mobs_mc:cat") - cat:set_properties({textures = {"mobs_mc_cat_black.png"}}) - cat:get_luaentity().owner = "witch" --so it's not claimable by players (unless they're named witch hehe) - return - end - end + local nn = minetest.find_nodes_in_area_under_air(vector.new(p1.x,c.y-1,p1.z),vector.new(p2.x,c.y-1,p2.z),{"mcl_core:sprucewood"}) + local witch = minetest.add_entity(vector.offset(nn[math.random(#nn)],0,1,0),"mobs_mc:witch"):get_luaentity() + local cat = minetest.add_entity(vector.offset(nn[math.random(#nn)],0,1,0),"mobs_mc:cat"):get_luaentity() + witch._home = c + witch.can_despawn = false + cat.object:set_properties({textures = {"mobs_mc_cat_black.png"}}) + cat.owner = "!witch!" --so it's not claimable by player + cat.can_despawn = false + return end end From 6b9cb0062d98a49432a8b3e86909f9769a69de90 Mon Sep 17 00:00:00 2001 From: cora Date: Thu, 26 May 2022 15:16:06 +0200 Subject: [PATCH 3/4] save home coords in cat entity as well --- mods/MAPGEN/mcl_structures/init.lua | 1 + 1 file changed, 1 insertion(+) diff --git a/mods/MAPGEN/mcl_structures/init.lua b/mods/MAPGEN/mcl_structures/init.lua index 322874d4c..5d3ecac6c 100644 --- a/mods/MAPGEN/mcl_structures/init.lua +++ b/mods/MAPGEN/mcl_structures/init.lua @@ -290,6 +290,7 @@ local function spawn_witch(p1,p2) witch.can_despawn = false cat.object:set_properties({textures = {"mobs_mc_cat_black.png"}}) cat.owner = "!witch!" --so it's not claimable by player + cat._home = c cat.can_despawn = false return end From e4a4648b25a790d64c73a3c06d1aa0ace9b2f9a5 Mon Sep 17 00:00:00 2001 From: cora Date: Thu, 26 May 2022 15:20:18 +0200 Subject: [PATCH 4/4] fix size of black cat texture --- .../mobs_mc/textures/mobs_mc_cat_black.png | Bin 7117 -> 385 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/mods/ENTITIES/mobs_mc/textures/mobs_mc_cat_black.png b/mods/ENTITIES/mobs_mc/textures/mobs_mc_cat_black.png index a839a6ef37d345362f80c340f500ad42f999b393..8d1322565a7745bab53b111a7a35657f898cb923 100644 GIT binary patch delta 15 WcmX?W-pD*bd9sz1_U2hq#*6?gq6Fyx literal 7117 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 N4tCCr+~r=8{{tPxBOw3)