From 271a9441f45947fcd77de21c043a9a33ed5262ea Mon Sep 17 00:00:00 2001 From: FaceDeer Date: Sun, 4 Aug 2019 19:53:13 -0600 Subject: [PATCH] put spindlestems with goblin caps, make them always grow red when near those --- df_caverns/level2.lua | 4 ++++ df_caverns/sunless_sea.lua | 2 ++ df_trees/goblin_cap.lua | 6 +++--- df_trees/spindlestem.lua | 12 ++++++++---- 4 files changed, 17 insertions(+), 7 deletions(-) diff --git a/df_caverns/level2.lua b/df_caverns/level2.lua index 618f149..731fd57 100644 --- a/df_caverns/level2.lua +++ b/df_caverns/level2.lua @@ -60,6 +60,8 @@ if minetest.get_modpath("df_farming") then } end +local c_red = minetest.get_content_id("df_trees:spindlestem_cap_red") + local goblin_cap_cavern_floor = function(abs_cracks, vert_rand, vi, area, data, data_param2) local ystride = area.ystride if abs_cracks < 0.1 then @@ -72,6 +74,8 @@ local goblin_cap_cavern_floor = function(abs_cracks, vert_rand, vi, area, data, end if math.random() < 0.1 then df_caverns.place_shrub(vi+ystride, area, data, data_param2, goblin_cap_shrublist) + elseif math.random() < 0.02 then + df_trees.spawn_spindlestem_vm(vi+ystride, area, data, data_param2, c_red) elseif math.random() < 0.015 then df_trees.spawn_goblin_cap_vm(vi+ystride, area, data) end diff --git a/df_caverns/sunless_sea.lua b/df_caverns/sunless_sea.lua index 19d2f28..6bd5403 100644 --- a/df_caverns/sunless_sea.lua +++ b/df_caverns/sunless_sea.lua @@ -108,6 +108,8 @@ local mushroom_cavern_floor = function(abs_cracks, vert_rand, vi, area, data, da df_trees.spawn_tower_cap_vm(vi+ystride, area, data) elseif math.random() < 0.01 then df_trees.spawn_goblin_cap_vm(vi+ystride, area, data) + elseif math.random() < 0.02 then + df_trees.spawn_spindlestem_vm(vi+ystride, area, data, data_param2) end end end diff --git a/df_trees/goblin_cap.lua b/df_trees/goblin_cap.lua index d8296d1..4186f94 100644 --- a/df_trees/goblin_cap.lua +++ b/df_trees/goblin_cap.lua @@ -9,7 +9,7 @@ minetest.register_node("df_trees:goblin_cap_stem", { _doc_items_usagehelp = df_trees.doc.goblin_cap_usage, tiles = {"dfcaverns_goblin_cap_stem.png"}, is_ground_content = true, - groups = {tree = 1, choppy = 2, oddly_breakable_by_hand = 1, flammable = 2}, + groups = {tree = 1, choppy = 2, oddly_breakable_by_hand = 1, flammable = 2, goblin_cap = 1}, sounds = default.node_sound_wood_defaults(), }) @@ -20,7 +20,7 @@ minetest.register_node("df_trees:goblin_cap", { _doc_items_usagehelp = df_trees.doc.goblin_cap_usage, tiles = {"dfcaverns_goblin_cap.png"}, is_ground_content = true, - groups = {tree = 1, choppy = 2, oddly_breakable_by_hand = 1, flammable = 2}, + groups = {tree = 1, choppy = 2, oddly_breakable_by_hand = 1, flammable = 2, goblin_cap = 1}, sounds = default.node_sound_wood_defaults(), }) @@ -31,7 +31,7 @@ minetest.register_node("df_trees:goblin_cap_gills", { _doc_items_usagehelp = df_trees.doc.goblin_cap_usage, tiles = {"dfcaverns_goblin_cap_gills.png"}, is_ground_content = true, - groups = {snappy = 3, leafdecay = 3, flammable = 2, leaves = 1}, + groups = {snappy = 3, leafdecay = 3, flammable = 2, leaves = 1, goblin_cap = 1}, sounds = default.node_sound_leaves_defaults(), drawtype = "plantlike", paramtype = "light", diff --git a/df_trees/spindlestem.lua b/df_trees/spindlestem.lua index 8e855d8..4479549 100644 --- a/df_trees/spindlestem.lua +++ b/df_trees/spindlestem.lua @@ -37,8 +37,8 @@ local stem_on_place = function(itemstack, placer, pointed_thing) end local new_param2 - -- check if pointing at an existing stalactite - if minetest.get_item_group(under.name, "spindlestem") ~= 0 then + -- check if pointing at an existing spindlestem + if minetest.get_item_group(under.name, "spindlestem") > 0 then new_param2 = under.param2 else new_param2 = math.random(0,3) @@ -143,7 +143,7 @@ local register_spindlestem_type = function(item_suffix, colour_name, colour_code }, }, - on_place = stal_on_place, + on_place = stem_on_place, on_timer = function(pos, elapsed) local above = vector.add(pos, {x=0,y=1,z=0}) local node_above = minetest.get_node(above) @@ -244,7 +244,7 @@ minetest.register_node("df_trees:spindlestem_seedling", { } }, - on_place = stal_on_place, + on_place = stem_on_place, on_construct = seedling_construct, on_timer = function(pos, elapsed) @@ -310,6 +310,10 @@ get_spindlestem_cap_type = function(pos) if pos.y > -100 then return c_white end + if minetest.find_node_near(pos, 15, "group:goblin_cap") then + return c_red + end + local iron = minetest.find_node_near(pos, 5, {"default:stone_with_iron", "default:steelblock"}) local copper = minetest.find_node_near(pos, 5, {"default:stone_with_copper", "default:copperblock"}) local mese = minetest.find_node_near(pos, 5, {"default:stone_with_mese", "default:mese"})