From f8501192e2b11f7dac89928e0dc2eae9759fc4fe Mon Sep 17 00:00:00 2001 From: cora Date: Wed, 14 Sep 2022 17:46:51 +0200 Subject: [PATCH 1/5] Make nylium spread to netherrack using bonemeal --- mods/ITEMS/mcl_crimson/init.lua | 30 ++++++++++++++++++++++++++++++ mods/ITEMS/mcl_crimson/mod.conf | 3 +-- 2 files changed, 31 insertions(+), 2 deletions(-) diff --git a/mods/ITEMS/mcl_crimson/init.lua b/mods/ITEMS/mcl_crimson/init.lua index 45710c152..2a6dbe4d9 100644 --- a/mods/ITEMS/mcl_crimson/init.lua +++ b/mods/ITEMS/mcl_crimson/init.lua @@ -452,6 +452,36 @@ minetest.register_node("mcl_crimson:crimson_nylium", { _mcl_silk_touch_drop = true, }) +local function has_nylium_neighbor(pos) + local p = minetest.find_node_near(pos,1,{"mcl_crimson:warped_nylium","mcl_crimson:crimson_nylium"}) + if p then + return minetest.get_node(p) + end +end + +local function spread_nylium(pos) + local nn = minetest.find_nodes_in_area_under_air(vector.offset(pos,-5,-3,-5),vector.offset(pos,5,3,5),{"mcl_nether:netherrack"}) + table.insert(nn,pos) + table.sort(nn,function(a, b) + return vector.distance(pos, a) < vector.distance(pos, b) + end) + for i=1,math.random(1,math.min(#nn,15)) do + local n = has_nylium_neighbor(nn[i]) + if n then + minetest.set_node(nn[i],n) + mcl_dye.add_bone_meal_particle(vector.offset(nn[i],0,1,0)) + end + end +end + +mcl_dye.register_on_bone_meal_apply(function(pt,user) + if not pt.type == "node" then return end + if minetest.get_node(pt.under).name ~= "mcl_nether:netherrack" then return end + if has_nylium_neighbor(pt.under) then + spread_nylium(pt.under) + end +end) + minetest.register_craft({ output = "mcl_crimson:crimson_hyphae_wood 4", recipe = { diff --git a/mods/ITEMS/mcl_crimson/mod.conf b/mods/ITEMS/mcl_crimson/mod.conf index 4dbf770c3..2e5550775 100644 --- a/mods/ITEMS/mcl_crimson/mod.conf +++ b/mods/ITEMS/mcl_crimson/mod.conf @@ -1,4 +1,3 @@ name = mcl_crimson author = debiankaios -depends = mcl_stairs, mobs_mc, mcl_util - +depends = mcl_stairs, mobs_mc, mcl_util, mcl_dye From 3fc12ed946615cdb4bbf1b6850fc2ba089e210e8 Mon Sep 17 00:00:00 2001 From: cora Date: Thu, 15 Sep 2022 04:30:58 +0200 Subject: [PATCH 2/5] Add plants on bonemealed nylium --- mods/ITEMS/mcl_crimson/init.lua | 94 +++++++++++++++++++++++++++------ 1 file changed, 79 insertions(+), 15 deletions(-) diff --git a/mods/ITEMS/mcl_crimson/init.lua b/mods/ITEMS/mcl_crimson/init.lua index 2a6dbe4d9..741ed33d9 100644 --- a/mods/ITEMS/mcl_crimson/init.lua +++ b/mods/ITEMS/mcl_crimson/init.lua @@ -104,6 +104,52 @@ minetest.register_node("mcl_crimson:twisting_vines", { _mcl_blast_resistance = 0, }) +minetest.register_node("mcl_crimson:weeping_vines", { + description = S("Weeping Vines"), + drawtype = "plantlike", + tiles = { "mcl_crimson_weeping_vines.png" }, + inventory_image = "mcl_crimson_weeping_vines.png", + sunlight_propagates = true, + paramtype = "light", + walkable = false, + climbable = true, + buildable_to = true, + groups = {dig_immediate=3,vines=1,dig_by_water=1,destroy_by_lava_flow=1,dig_by_piston=1,deco_block=1, shearsy = 1}, + selection_box = { + type = "fixed", + fixed = { -3/16, -0.5, -3/16, 3/16, 0.5, 3/16 }, + }, + node_placement_prediction = "", + on_rightclick = function(pos, node, pointed_thing, itemstack) + if pointed_thing:get_wielded_item():get_name() == "mcl_crimson:weeping_vines" then + itemstack:take_item() + grow_vines(pos, 1, "mcl_crimson:weeping_vines", -1) + elseif pointed_thing:get_wielded_item():get_name() == "mcl_dye:white" then + itemstack:take_item() + grow_vines(pos, math.random(1, 3),"mcl_crimson:weeping_vines", -1) + end + end, + drop = { + max_items = 1, + items = { + {items = {"mcl_crimson:weeping_vines"}, rarity = 3}, + }, + }, + _mcl_shears_drop = true, + _mcl_silk_touch_drop = true, + _mcl_fortune_drop = { + items = { + {items = {"mcl_crimson:weeping_vines"}, rarity = 3}, + }, + items = { + {items = {"mcl_crimson:weeping_vines"}, rarity = 1.8181818181818181}, + }, + "mcl_crimson:weeping_vines", + "mcl_crimson:weeping_vines", + }, + _mcl_blast_resistance = 0, +}) + minetest.register_node("mcl_crimson:nether_sprouts", { description = S("Nether Sprouts"), drawtype = "plantlike", @@ -282,21 +328,6 @@ minetest.register_craft({ }, }) -minetest.register_abm({ - label = "mcl_crimson:warped_fungus", - nodenames = {"mcl_crimson:warped_fungus"}, - interval = 11, - chance = 128, - action = function(pos) - local nodepos = minetest.get_node(vector.offset(pos, 0, -1, 0)) - if nodepos.name == "mcl_crimson:warped_nylium" or nodepos.name == "mcl_nether:netherrack" then - if pos.y < -28400 then - generate_warped_tree(pos) - end - end - end -}) - minetest.register_node("mcl_crimson:crimson_fungus", { description = S("Crimson Fungus Mushroom"), drawtype = "plantlike", @@ -459,6 +490,21 @@ local function has_nylium_neighbor(pos) end end +local nether_plants = { + ["mcl_crimson:crimson_nylium"] = { + "mcl_crimson:crimson_roots", + "mcl_crimson:crimson_fungus", + "mcl_crimson:weeping_vines", + "mcl_crimson:warped_fungus", + }, + ["mcl_crimson:warped_nylium"] = { + "mcl_crimson:warped_roots", + "mcl_crimson:warped_fungus", + "mcl_crimson:twisting_vines", + "mcl_crimson:nether_sprouts", + }, +} + local function spread_nylium(pos) local nn = minetest.find_nodes_in_area_under_air(vector.offset(pos,-5,-3,-5),vector.offset(pos,5,3,5),{"mcl_nether:netherrack"}) table.insert(nn,pos) @@ -469,6 +515,9 @@ local function spread_nylium(pos) local n = has_nylium_neighbor(nn[i]) if n then minetest.set_node(nn[i],n) + if math.random(5) == 1 then + minetest.set_node(vector.offset(nn[i],0,1,0),{name=nether_plants[n.name][math.random(#nether_plants[n.name])]}) + end mcl_dye.add_bone_meal_particle(vector.offset(nn[i],0,1,0)) end end @@ -513,3 +562,18 @@ minetest.register_abm({ end end }) + +minetest.register_abm({ + label = "mcl_crimson:warped_fungus", + nodenames = {"mcl_crimson:warped_fungus"}, + interval = 11, + chance = 128, + action = function(pos) + local nodepos = minetest.get_node(vector.offset(pos, 0, -1, 0)) + if nodepos.name == "mcl_crimson:warped_nylium" or nodepos.name == "mcl_nether:netherrack" then + if pos.y < -28400 then + generate_warped_tree(pos) + end + end + end +}) From 70294d9e34cc44a5e7050c1ec3c3c7aa397f7aec Mon Sep 17 00:00:00 2001 From: cora Date: Thu, 15 Sep 2022 04:31:35 +0200 Subject: [PATCH 3/5] Add weeping vines --- mods/ITEMS/mcl_crimson/init.lua | 28 ++++++++++++++-------------- mods/ITEMS/mcl_crimson/mod.conf | 2 +- mods/MAPGEN/mcl_biomes/init.lua | 14 +++++++++++++- 3 files changed, 28 insertions(+), 16 deletions(-) diff --git a/mods/ITEMS/mcl_crimson/init.lua b/mods/ITEMS/mcl_crimson/init.lua index 741ed33d9..4262e41bb 100644 --- a/mods/ITEMS/mcl_crimson/init.lua +++ b/mods/ITEMS/mcl_crimson/init.lua @@ -13,19 +13,19 @@ function generate_crimson_tree(pos) minetest.place_schematic(pos,modpath.."/schematics/crimson_fungus_1.mts","random",nil,false,"place_center_x,place_center_z") end -function grow_twisting_vines(pos, moreontop) - local y = pos.y + 1 - while not (moreontop == 0) do - if minetest.get_node({x = pos.x, y = y, z = pos.z}).name == "air" then - minetest.set_node({x = pos.x, y = y, z = pos.z}, {name="mcl_crimson:twisting_vines"}) - moreontop = moreontop - 1 - y = y + 1 - elseif minetest.get_node({x = pos.x, y = y, z = pos.z}).name == "mcl_crimson:twisting_vines" then - y = y + 1 - else - moreontop = 0 +function grow_vines(pos, moreontop ,vine, dir) + if dir == nil then dir = 1 end + local n + repeat + pos = vector.offset(pos,0,dir,0) + n = minetest.get_node(pos) + if n.name == "air" then + for i=0,math.max(moreontop,1) do + minetest.set_node(vector.offset(pos,0,i*dir,0),{name=vine}) end - end + break + end + until n.name ~= "air" and n.name ~= vine end minetest.register_node("mcl_crimson:warped_fungus", { @@ -77,10 +77,10 @@ minetest.register_node("mcl_crimson:twisting_vines", { on_rightclick = function(pos, node, pointed_thing, itemstack) if pointed_thing:get_wielded_item():get_name() == "mcl_crimson:twisting_vines" then itemstack:take_item() - grow_twisting_vines(pos, 1) + grow_vines(pos, 1, "mcl_crimson:twisting_vines") elseif pointed_thing:get_wielded_item():get_name() == "mcl_dye:white" then itemstack:take_item() - grow_twisting_vines(pos, math.random(1, 3)) + grow_vines(pos, math.random(1, 3),"mcl_crimson:twisting_vines") end end, drop = { diff --git a/mods/ITEMS/mcl_crimson/mod.conf b/mods/ITEMS/mcl_crimson/mod.conf index 2e5550775..84dc7d8f6 100644 --- a/mods/ITEMS/mcl_crimson/mod.conf +++ b/mods/ITEMS/mcl_crimson/mod.conf @@ -1,3 +1,3 @@ name = mcl_crimson author = debiankaios -depends = mcl_stairs, mobs_mc, mcl_util, mcl_dye +depends = mcl_core, mcl_stairs, mobs_mc, mcl_util, mcl_dye diff --git a/mods/MAPGEN/mcl_biomes/init.lua b/mods/MAPGEN/mcl_biomes/init.lua index 4aa843053..38003535a 100644 --- a/mods/MAPGEN/mcl_biomes/init.lua +++ b/mods/MAPGEN/mcl_biomes/init.lua @@ -4794,7 +4794,7 @@ local function register_dimension_decorations() deco_type = "simple", place_on = {"mcl_crimson:warped_nylium","mcl_crimson:twisting_vines"}, sidelen = 16, - fill_ratio = 0.012, + fill_ratio = 0.032, biomes = {"WarpedForest"}, y_min = mcl_vars.mg_lava_nether_max + 1, flags = "all_floors", @@ -4877,6 +4877,18 @@ local function register_dimension_decorations() size = {x = 7, y = 13, z = 7}, rotation = "random", }) + minetest.register_decoration({ + deco_type = "simple", + place_on = {"mcl_crimson:warped_nylium","mcl_crimson:weeping_vines","mcl_nether:netherrack"}, + sidelen = 16, + fill_ratio = 0.063, + biomes = {"CrimsonForest"}, + y_min = mcl_vars.mg_lava_nether_max + 1, + flags = "all_ceilings", + height = 2, + height_max = 8, + decoration = "mcl_crimson:weeping_vines", + }) minetest.register_decoration({ deco_type = "simple", place_on = {"mcl_crimson:crimson_nylium"}, From f9372b02f6beb236ab73799d4b91b19d7a596cbc Mon Sep 17 00:00:00 2001 From: cora Date: Thu, 15 Sep 2022 05:02:48 +0200 Subject: [PATCH 4/5] Better bone mealing behavior --- mods/ITEMS/mcl_crimson/init.lua | 93 +++++++++--------- .../textures/mcl_crimson_weeping_vines.png | Bin 0 -> 6361 bytes 2 files changed, 45 insertions(+), 48 deletions(-) create mode 100644 mods/ITEMS/mcl_crimson/textures/mcl_crimson_weeping_vines.png diff --git a/mods/ITEMS/mcl_crimson/init.lua b/mods/ITEMS/mcl_crimson/init.lua index 4262e41bb..b0ba09d33 100644 --- a/mods/ITEMS/mcl_crimson/init.lua +++ b/mods/ITEMS/mcl_crimson/init.lua @@ -28,6 +28,38 @@ function grow_vines(pos, moreontop ,vine, dir) until n.name ~= "air" and n.name ~= vine end +local nether_plants = { + ["mcl_crimson:crimson_nylium"] = { + "mcl_crimson:crimson_roots", + "mcl_crimson:crimson_fungus", + "mcl_crimson:warped_fungus", + }, + ["mcl_crimson:warped_nylium"] = { + "mcl_crimson:warped_roots", + "mcl_crimson:warped_fungus", + "mcl_crimson:twisting_vines", + "mcl_crimson:nether_sprouts", + }, +} + +local function has_nylium_neighbor(pos) + local p = minetest.find_node_near(pos,1,{"mcl_crimson:warped_nylium","mcl_crimson:crimson_nylium"}) + if p then + return minetest.get_node(p) + end +end + +local function spread_nether_plants(pos,node) + local n = node.name + local nn = minetest.find_nodes_in_area_under_air(vector.offset(pos,-5,-3,-5),vector.offset(pos,5,3,5),{n}) + table.shuffle(nn) + nn[1] = pos + for i=1,math.random(1,math.min(#nn,12)) do + minetest.set_node(vector.offset(nn[i],0,1,0),{name=nether_plants[n][math.random(#nether_plants[n])]}) + mcl_dye.add_bone_meal_particle(vector.offset(nn[i],0,1,0)) + end +end + minetest.register_node("mcl_crimson:warped_fungus", { description = S("Warped Fungus Mushroom"), drawtype = "plantlike", @@ -483,54 +515,6 @@ minetest.register_node("mcl_crimson:crimson_nylium", { _mcl_silk_touch_drop = true, }) -local function has_nylium_neighbor(pos) - local p = minetest.find_node_near(pos,1,{"mcl_crimson:warped_nylium","mcl_crimson:crimson_nylium"}) - if p then - return minetest.get_node(p) - end -end - -local nether_plants = { - ["mcl_crimson:crimson_nylium"] = { - "mcl_crimson:crimson_roots", - "mcl_crimson:crimson_fungus", - "mcl_crimson:weeping_vines", - "mcl_crimson:warped_fungus", - }, - ["mcl_crimson:warped_nylium"] = { - "mcl_crimson:warped_roots", - "mcl_crimson:warped_fungus", - "mcl_crimson:twisting_vines", - "mcl_crimson:nether_sprouts", - }, -} - -local function spread_nylium(pos) - local nn = minetest.find_nodes_in_area_under_air(vector.offset(pos,-5,-3,-5),vector.offset(pos,5,3,5),{"mcl_nether:netherrack"}) - table.insert(nn,pos) - table.sort(nn,function(a, b) - return vector.distance(pos, a) < vector.distance(pos, b) - end) - for i=1,math.random(1,math.min(#nn,15)) do - local n = has_nylium_neighbor(nn[i]) - if n then - minetest.set_node(nn[i],n) - if math.random(5) == 1 then - minetest.set_node(vector.offset(nn[i],0,1,0),{name=nether_plants[n.name][math.random(#nether_plants[n.name])]}) - end - mcl_dye.add_bone_meal_particle(vector.offset(nn[i],0,1,0)) - end - end -end - -mcl_dye.register_on_bone_meal_apply(function(pt,user) - if not pt.type == "node" then return end - if minetest.get_node(pt.under).name ~= "mcl_nether:netherrack" then return end - if has_nylium_neighbor(pt.under) then - spread_nylium(pt.under) - end -end) - minetest.register_craft({ output = "mcl_crimson:crimson_hyphae_wood 4", recipe = { @@ -548,6 +532,19 @@ minetest.register_craft({ mcl_stairs.register_stair_and_slab_simple("crimson_hyphae_wood", "mcl_crimson:crimson_hyphae_wood", S("Crimson Stair"), S("Crimson Slab"), S("Double Crimson Slab")) +mcl_dye.register_on_bone_meal_apply(function(pt,user) + if not pt.type == "node" then return end + local node = minetest.get_node(pt.under) + if node.name == "mcl_nether:netherrack" then + local n = has_nylium_neighbor(pt.under) + if n then + minetest.set_node(pt.under,n) + end + elseif node.name == "mcl_crimson:warped_nylium" or node.name == "mcl_crimson:crimson_nylium" then + spread_nether_plants(pt.under,node) + end +end) + minetest.register_abm({ label = "mcl_crimson:crimson_fungus", nodenames = {"mcl_crimson:crimson_fungus"}, diff --git a/mods/ITEMS/mcl_crimson/textures/mcl_crimson_weeping_vines.png b/mods/ITEMS/mcl_crimson/textures/mcl_crimson_weeping_vines.png new file mode 100644 index 0000000000000000000000000000000000000000..efe1cb5538fa6550c001ff607d7dbecf07ac705f GIT binary patch literal 6361 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 literal 0 HcmV?d00001 From 05e6afb93a109fec86b31a50033adbca5cc19fc8 Mon Sep 17 00:00:00 2001 From: cora Date: Mon, 19 Sep 2022 14:19:49 +0200 Subject: [PATCH 5/5] Fix bonemealing of large fungi --- mods/ITEMS/mcl_crimson/init.lua | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/mods/ITEMS/mcl_crimson/init.lua b/mods/ITEMS/mcl_crimson/init.lua index b0ba09d33..6f2e48a05 100644 --- a/mods/ITEMS/mcl_crimson/init.lua +++ b/mods/ITEMS/mcl_crimson/init.lua @@ -55,8 +55,11 @@ local function spread_nether_plants(pos,node) table.shuffle(nn) nn[1] = pos for i=1,math.random(1,math.min(#nn,12)) do - minetest.set_node(vector.offset(nn[i],0,1,0),{name=nether_plants[n][math.random(#nether_plants[n])]}) - mcl_dye.add_bone_meal_particle(vector.offset(nn[i],0,1,0)) + local p = vector.offset(nn[i],0,1,0) + if minetest.get_node(p).name == "air" then + minetest.set_node(p,{name=nether_plants[n][math.random(#nether_plants[n])]}) + mcl_dye.add_bone_meal_particle(vector.offset(nn[i],0,1,0)) + end end end @@ -82,6 +85,7 @@ minetest.register_node("mcl_crimson:warped_fungus", { if nodepos.name == "mcl_crimson:warped_nylium" or nodepos.name == "mcl_nether:netherrack" then local random = math.random(1, 5) if random == 1 then + minetest.remove_node(pos) generate_warped_tree(pos) end end @@ -382,6 +386,7 @@ minetest.register_node("mcl_crimson:crimson_fungus", { if nodepos.name == "mcl_crimson:crimson_nylium" or nodepos.name == "mcl_nether:netherrack" then local random = math.random(1, 5) if random == 1 then + minetest.remove_node(pos) generate_crimson_tree(pos) end end