-- vines minetest.register_node("ethereal:vine", { description = "Vine", drawtype = "signlike", tiles = {"vine.png"}, inventory_image = "vine.png", wield_image = "vine.png", paramtype = "light", paramtype2 = "wallmounted", walkable = false, climbable = true, is_ground_content = false, selection_box = { type = "wallmounted", }, groups = {choppy = 3, oddly_breakable_by_hand = 1}, legacy_wallmounted = true, sounds = default.node_sound_leaves_defaults(), }) minetest.register_craft({ output = "ethereal:vine 2", recipe = { {"group:leaves", "group:leaves", ""}, {"group:leaves", "group:leaves", ""}, {"group:leaves", "group:leaves", ""}, } }) -- stone Ladder minetest.register_node("ethereal:stone_ladder", { description = "Stone Ladder", drawtype = "signlike", tiles = {"stone_ladder.png"}, inventory_image = "stone_ladder.png", wield_image = "stone_ladder.png", paramtype = "light", sunlight_propagates = true, paramtype2 = "wallmounted", walkable = false, climbable = true, is_ground_content = false, selection_box = { type = "wallmounted", }, groups = {cracky = 3, oddly_breakable_by_hand = 1}, legacy_wallmounted = true, sounds = default.node_sound_stone_defaults(), }) minetest.register_craft({ output = "ethereal:stone_ladder 4", recipe = { {"default:cobble", "", "default:cobble"}, {"default:cobble", "default:cobble", "default:cobble"}, {"default:cobble", "", "default:cobble"}, } }) -- Paper Wall minetest.register_node("ethereal:paper_wall", { drawtype = "nodebox", description = ("Paper Wall"), tiles = {"paper_wall.png"}, inventory_image_image = "paper_wall.png", wield_image = "paper_wall.png", paramtype = "light", groups = {snappy = 3}, sounds = default.node_sound_wood_defaults(), walkable = true, is_ground_content = false, sunlight_propagates = true, paramtype2 = "facedir", selection_box = { type = "fixed", fixed = { -0.5, -0.5, 5/11, 0.5, 0.5, 8/16 } }, node_box = { type = "fixed", fixed = { { -0.5, -0.5, 5/11, 0.5, 0.5, 8/16 } } }, }) minetest.register_craft({ output = "ethereal:paper_wall", recipe = { {"default:stick", "default:paper", "default:stick"}, {"default:stick", "default:paper", "default:stick"}, {"default:stick", "default:paper", "default:stick"}, } }) -- Glostone (A little bit of light decoration) minetest.register_node("ethereal:glostone", { description = "Glo Stone", tiles = {"glostone.png"}, groups = {cracky = 3}, light_source = 13, drop = "ethereal:glostone", sounds = default.node_sound_stone_defaults(), }) minetest.register_craft({ output = "ethereal:glostone", recipe = { {"default:torch", "default:stone", "dye:yellow"}, } }) -- Ladder (Changes default recipe to give 2x ladders instead of only 1) minetest.register_craft({ output = "default:ladder 2", recipe = { {"group:stick", "", "group:stick"}, {"group:stick", "group:stick", "group:stick"}, {"group:stick", "", "group:stick"}, } }) -- Signs (Changes default recipe to give 4x signs instead of only 1) minetest.register_craft({ output = "default:sign_wall 4", recipe = { {"group:wood", "group:wood", "group:wood"}, {"group:wood", "group:wood", "group:wood"}, {"", "group:stick", ""}, } }) -- Charcoal Lump minetest.register_craftitem("ethereal:charcoal_lump", { description = "Lump of Charcoal", inventory_image = "charcoal_lump.png", wield_image = "charcoal_lump.png", }) minetest.register_craft({ output = "ethereal:charcoal_lump 2", recipe = { {"ethereal:scorched_tree"} } }) minetest.register_craft({ output = "ethereal:charcoal_lump 4", type = "cooking", recipe = "group:tree", cooktime = 4 }) minetest.register_craft({ type = "fuel", recipe = "ethereal:charcoal_lump", burntime = 10, }) -- Make Torch from Charcoal Lump minetest.register_craft({ output = "default:torch 4", recipe = { {"ethereal:charcoal_lump"}, {"default:stick"}, } }) -- Obsidian Brick (now in default game so added compatibility for old maps) minetest.register_alias("ethereal:obsidian_brick", "default:obsidianbrick") -- Quicksand (old style, sinking inside shows black instead of yellow effect, -- works ok with noclip enabled though) minetest.register_node("ethereal:quicksand", { description = "Quicksand", tiles = {"default_sand.png"}, drop = "default:sand", liquid_viscosity = 15, liquidtype = "source", liquid_alternative_flowing = "ethereal:quicksand", liquid_alternative_source = "ethereal:quicksand", liquid_renewable = false, liquid_range = 0, drowning = 1, walkable = false, climbable = false, post_effect_color = {r = 230, g = 210, b = 160, a = 245}, groups = {crumbly = 3, sand = 1, liquid = 3, disable_jump = 1}, sounds = default.node_sound_sand_defaults(), }) -- Quicksand (new style, sinking inside shows yellow effect with or without noclip, -- but old quicksand is shown as black until block placed nearby to update light) minetest.register_node("ethereal:quicksand2", { description = "Quicksand", tiles = {"default_sand.png"}, drawtype = "glasslike", paramtype = "light", drop = "default:sand", liquid_viscosity = 15, liquidtype = "source", liquid_alternative_flowing = "ethereal:quicksand2", liquid_alternative_source = "ethereal:quicksand2", liquid_renewable = false, liquid_range = 0, drowning = 1, walkable = false, climbable = false, post_effect_color = {r = 230, g = 210, b = 160, a = 245}, groups = {crumbly = 3, sand = 1, liquid = 3, disable_jump = 1}, sounds = default.node_sound_sand_defaults(), }) -- Illuminated Cave Shrooms (Red, Green and Blue) minetest.register_node("ethereal:illumishroom", { description = "Red Illumishroom", drawtype = "plantlike", tiles = { "illumishroom.png" }, inventory_image = "illumishroom.png", wield_image = "illumishroom.png", paramtype = "light", light_source = 5, sunlight_propagates = true, walkable = false, groups = {dig_immediate = 3, attached_node = 1,flammable = 3}, sounds = default.node_sound_leaves_defaults(), selection_box = { type = "fixed", fixed = {-0.5, -0.5, -0.5, 0.5, -5/16, 0.5}, }, }) minetest.register_node("ethereal:illumishroom2", { description = "Green Illumishroom", drawtype = "plantlike", tiles = { "illumishroom2.png" }, inventory_image = "illumishroom2.png", wield_image = "illumishroom2.png", paramtype = "light", light_source = 5, sunlight_propagates = true, walkable = false, groups = {dig_immediate = 3, attached_node = 1,flammable = 3}, sounds = default.node_sound_leaves_defaults(), selection_box = { type = "fixed", fixed = {-0.5, -0.5, -0.5, 0.5, -5/16, 0.5}, }, }) minetest.register_node("ethereal:illumishroom3", { description = "Cyan Illumishroom", drawtype = "plantlike", tiles = { "illumishroom3.png" }, inventory_image = "illumishroom3.png", wield_image = "illumishroom3.png", paramtype = "light", light_source = 5, sunlight_propagates = true, walkable = false, groups = {dig_immediate = 3, attached_node = 1,flammable = 3}, sounds = default.node_sound_leaves_defaults(), selection_box = { type = "fixed", fixed = {-0.5, -0.5, -0.5, 0.5, -5/16, 0.5}, }, }) -- Staff of Light (by Xanthin) minetest.register_tool("ethereal:light_staff", { description = "Staff of Light", inventory_image = "light_staff.png", wield_image = "light_staff.png", stack_max = 1, on_use = function(itemstack, user, pointed_thing) if pointed_thing.type ~= "node" then return end local pos = pointed_thing.under local pname = user:get_player_name() if minetest.is_protected(pos, pname) then minetest.record_protection_violation(pos, pname) return end local node = minetest.get_node(pos).name if node == "default:stone" or node == "default:desert_stone" then minetest.swap_node(pos, {name = "ethereal:glostone"}) if not minetest.setting_getbool("creative_mode") then itemstack:add_wear(65535 / 149) -- 150 uses end return itemstack end end, }) minetest.register_craft({ output = "ethereal:light_staff", recipe = { {"ethereal:illumishroom", "default:mese_crystal", "ethereal:illumishroom"}, {"ethereal:illumishroom2", "default:steel_ingot", "ethereal:illumishroom2"}, {"ethereal:illumishroom3", "default:steel_ingot", "ethereal:illumishroom3"} } }) -- Generate Illumishroom in caves next to coal minetest.register_on_generated(function(minp, maxp) if minp.y > -30 or maxp.y < -3000 then return end local bpos local coal = minetest.find_nodes_in_area_under_air(minp, maxp, "default:stone_with_coal") for n = 1, #coal do bpos = {x = coal[n].x, y = coal[n].y + 1, z = coal[n].z } if math.random(1, 2) == 1 then if bpos.y > -3000 and bpos.y < -2000 then minetest.swap_node(bpos, {name = "ethereal:illumishroom3"}) elseif bpos.y > -2000 and bpos.y < -1000 then minetest.swap_node(bpos, {name = "ethereal:illumishroom2"}) elseif bpos.y > -1000 and bpos.y < -30 then minetest.swap_node(bpos, {name = "ethereal:illumishroom"}) end end end end)