diff --git a/abms.lua b/abms.lua index cfee3ad..8ddb6a2 100644 --- a/abms.lua +++ b/abms.lua @@ -136,9 +136,9 @@ minetest.register_globalstep(function(dtime) player:set_hp(20) return else + --print(dump(player:get_armor_groups())) if fun_caves.armor_expire and fun_caves.armor_expire[player_name] and fun_caves.armor_expire[player_name] < time then player:set_armor_groups({fleshy=100}) - --print(dump(player:get_armor_groups())) minetest.chat_send_player(player_name, minetest.colorize('#FF0000', 'Your skin feels softer...')) fun_caves.armor_expire[player_name] = nil end diff --git a/fungal_tree.lua b/fungal_tree.lua index f55799b..388a39d 100644 --- a/fungal_tree.lua +++ b/fungal_tree.lua @@ -108,6 +108,13 @@ for color, dye in pairs(colors) do end end +minetest.register_craft({ + type = "fuel", + recipe = "fun_caves:dry_fiber", + burntime = 5, +}) + + minetest.register_craft({ output = "dye:yellow", recipe = { diff --git a/goblin.lua b/goblin.lua index 0606001..d9d7385 100644 --- a/goblin.lua +++ b/goblin.lua @@ -69,9 +69,6 @@ local function goblin_do(self) elseif self.name == 'fun_caves:goblin_king' then trap = traps[math.random(#traps)] end - if self.name == 'fun_caves:goblin_king' then - print(trap) - end fun_caves.search_replace(pos, trap_freq, {"group:stone", "default:sandstone"}, trap) end @@ -400,7 +397,7 @@ minetest.register_node("fun_caves:stone_with_coal_trap", { description = "Coal Trap", tiles = {"default_cobble.png^default_mineral_coal.png"}, groups = {cracky = 3}, - --drop = 'default:coal_lump', + drop = 'default:coal_lump', is_ground_content = false, sounds = default.node_sound_stone_defaults(), }) @@ -425,7 +422,7 @@ minetest.register_node("fun_caves:stone_with_diamond_trap", { description = "Diamond Trap", tiles = {"default_cobble.png^default_mineral_diamond.png"}, groups = {cracky = 3}, - --drop = 'default:diamond', + drop = 'default:diamond', is_ground_content = false, sounds = default.node_sound_stone_defaults(), }) @@ -492,7 +489,7 @@ minetest.register_node("fun_caves:stone_with_gold_trap", { description = "Gold Trap", tiles = {"default_cobble.png^default_mineral_gold.png"}, groups = {cracky = 3}, - --drop = 'default:gold_lump', + drop = 'default:gold_lump', is_ground_content = false, sounds = default.node_sound_stone_defaults(), }) @@ -553,7 +550,7 @@ minetest.register_node("fun_caves:stone_with_iron_trap", { description = "Iron Trap", tiles = {"default_cobble.png^default_mineral_iron.png"}, groups = {cracky = 3}, - --drop = 'default:iron_lump', + drop = 'default:iron_lump', is_ground_content = false, sounds = default.node_sound_stone_defaults(), }) @@ -579,7 +576,7 @@ minetest.register_node("fun_caves:stone_with_copper_trap", { description = "Copper Trap", tiles = {"default_cobble.png^default_mineral_copper.png"}, groups = {cracky = 3}, - --drop = 'default:copper_lump', + drop = 'default:copper_lump', is_ground_content = false, sounds = default.node_sound_stone_defaults(), }) diff --git a/nodes.lua b/nodes.lua index 7c0fc51..4bbc244 100644 --- a/nodes.lua +++ b/nodes.lua @@ -600,3 +600,101 @@ minetest.register_craftitem("fun_caves:philosophers_stone", { newnode = fun_caves.clone_node("default:stone") newnode.tiles = {'dna.png'} minetest.register_node("fun_caves:dna", newnode) + +local function rope_remove(pos) + for i = 1, 100 do + local newpos = table.copy(pos) + newpos.y = newpos.y - i + local node = minetest.get_node_or_nil(newpos) + if node and node.name and node.name == 'fun_caves:rope_ladder_piece' then + minetest.set_node(newpos, {name='air'}) + else + break + end + end +end + +local good_params = {nil, true, true, true, true} +for length = 10, 50, 10 do + minetest.register_node("fun_caves:rope_ladder_"..length, { + description = "Rope Ladder ("..length.." meter)", + drawtype = "signlike", + tiles = {"fun_caves_rope_ladder.png"}, + inventory_image = "fun_caves_rope_ladder.png", + wield_image = "fun_caves_rope_ladder.png", + paramtype = "light", + paramtype2 = "wallmounted", + sunlight_propagates = true, + walkable = false, + climbable = true, + is_ground_content = false, + selection_box = { + type = "wallmounted", + }, + groups = {snappy = 2, oddly_breakable_by_hand = 3, flammable = 2}, + legacy_wallmounted = true, + sounds = default.node_sound_leaves_defaults(), + after_place_node = function(pos, placer, itemstack, pointed_thing) + if pointed_thing and pointed_thing.above then + local pos = pointed_thing.above + local orig = minetest.get_node_or_nil(pos) + if orig and orig.name and orig.param2 and good_params[orig.param2] then + for i = 1, length do + local newpos = table.copy(pos) + newpos.y = newpos.y - i + local node = minetest.get_node_or_nil(newpos) + if node and node.name and node.name == 'air' then + minetest.set_node(newpos, {name='fun_caves:rope_ladder_piece', param2=orig.param2}) + else + break + end + end + end + end + end, + on_destruct = rope_remove, + }) + + if length > 10 then + rec = {} + for i = 10, length, 10 do + rec[#rec+1] = 'fun_caves:rope_ladder_10' + end + minetest.register_craft({ + output = 'fun_caves:rope_ladder_'..length, + type = 'shapeless', + recipe = rec, + }) + end +end + +minetest.register_node("fun_caves:rope_ladder_piece", { + description = "Rope Ladder", + drawtype = "signlike", + tiles = {"fun_caves_rope_ladder.png"}, + inventory_image = "fun_caves_rope_ladder.png", + wield_image = "fun_caves_rope_ladder.png", + drop = {}, + paramtype = "light", + paramtype2 = "wallmounted", + sunlight_propagates = true, + walkable = false, + climbable = true, + is_ground_content = false, + selection_box = { + type = "wallmounted", + }, + groups = {snappy = 2, oddly_breakable_by_hand = 3, flammable = 2}, + legacy_wallmounted = true, + sounds = default.node_sound_leaves_defaults(), + on_destruct = rope_remove, +}) + +minetest.register_craft({ + output = 'fun_caves:rope_ladder_10', + recipe = { + {'fun_caves:dry_fiber', '', 'fun_caves:dry_fiber'}, + {'fun_caves:dry_fiber', 'fun_caves:dry_fiber', 'fun_caves:dry_fiber'}, + {'fun_caves:dry_fiber', '', 'fun_caves:dry_fiber'}, + } +}) diff --git a/textures/fun_caves_rope_ladder.png b/textures/fun_caves_rope_ladder.png new file mode 100644 index 0000000..7beec47 Binary files /dev/null and b/textures/fun_caves_rope_ladder.png differ