marsdoors = {} minetest.register_node("marsdoors:door1_closed", { description = "Gate (does not support air)", drawtype = "mesh", mesh = "marsdoors_door1_closed.obj", wield_scale = {x=0.5, y=0.5, z=0.5}, selection_box = { type = "fixed", fixed = {-2.2, -0.5, -0.5, 3.2, 2.5, 0.5} }, collision_box = { type = "fixed", fixed = {{-0.5, -0.5, -0.5, 1.5, 2.5, 0.5},}}, tiles = {"marsdoors_shieldblock.png","marsdoors_warntape.png","default_obsidian.png","default_obsidian.png","marsdoors_warntape.png","default_obsidian.png"}, groups = {cracky = 1, level = 2, not_in_creative_inventory=0}, sounds = default.node_sound_wood_defaults(), paramtype = "light", paramtype2 = "facedir", sunlight_propagates = true, is_ground_content = false, damage_per_second = 20, on_rightclick = function(pos, node, player, itemstack, pointed_thing) minetest.swap_node(pos, {name="marsdoors:door1", param2=minetest.get_node(pos).param2}) minetest.sound_play("marsdoors_door1", {pos=pos, gain = 1, max_hear_distance = 5}) end, }) minetest.register_node("marsdoors:door1", { description = "Gate (open)", drawtype = "mesh", mesh = "marsdoors_door1.obj", drop = "marsdoors:door1_closed", wield_scale = {x=0.5, y=0.5, z=0.5}, selection_box = { type = "fixed", fixed = {-0.5, -0.5, -0.5, 1.5, 2.5, 0.5} }, collision_box = { type = "fixed",fixed = { {-3.4, -0.5, -0.5, -0.5, 2.5, 0.5}, {4.4, -0.5, -0.5, 1.5, 2.5, 0.5}}}, tiles = {"marsdoors_shieldblock.png","marsdoors_warntape.png","default_obsidian.png","default_obsidian.png","marsdoors_warntape.png","default_obsidian.png"}, groups = {cracky = 1, level = 2, not_in_creative_inventory=1}, sounds = default.node_sound_wood_defaults(), paramtype = "light", paramtype2 = "facedir", sunlight_propagates = true, is_ground_content = false, on_rightclick = function(pos, node, player, itemstack, pointed_thing) minetest.swap_node(pos, {name="marsdoors:door1_closed", param2=minetest.get_node(pos).param2}) minetest.sound_play("marsdoors_door1", {pos=pos, gain = 1, max_hear_distance = 5}) end, }) minetest.register_node("marsdoors:trapdoor_1", { description = "Trap door", drawtype = "nodebox", paramtype = "light", node_box = { type = "fixed", fixed = { {-0.5, -0.375, -0.5, 0.5, -0.4375, 0.5}, {-0.5, 0.4375, -0.5, 0.5, 0.375, 0.5}, } }, tiles = {"marsdoors_shieldblock.png","marsdoors_shieldblock.png","marsdoors_door2.png","marsdoors_warntape.png","marsdoors_door2.png","marsdoors_door2_2.png",}, groups = {cracky = 1, level = 2, not_in_creative_inventory=0}, sounds = default.node_sound_stone_defaults(), paramtype = "light", paramtype2 = "facedir", sunlight_propagates = true, is_ground_content = false, climbable = true, on_rightclick = function(pos, node, player, itemstack, pointed_thing) minetest.swap_node(pos, {name="marsdoors:trapdoor_2", param2=minetest.get_node(pos).param2}) minetest.sound_play("marsdoors_door2", {pos=pos, gain = 1, max_hear_distance = 5}) minetest.after(4, function(pos) if minetest.get_node(pos).name=="marsdoors:trapdoor_2" then minetest.swap_node(pos, {name="marsdoors:trapdoor_1", param2=minetest.get_node(pos).param2}) minetest.sound_play("marsdoors_door2", {pos=pos, gain = 1, max_hear_distance = 5}) end end, pos) end, }) minetest.register_node("marsdoors:trapdoor_2", { description = "Trap door (open)", drop="marsdoors:trapdoor_1", drawtype = "nodebox", paramtype = "light", node_box = { type = "fixed", fixed = { {0.375, -0.375, -0.5, 1.5, -0.4375, 0.5}, {0.375, 0.4375, -0.5, 1.5, 0.375, 0.5}, } }, tiles = {"marsdoors_shieldblock.png","marsdoors_shieldblock.png","marsdoors_door2_open.png","marsdoors_warntape.png","marsdoors_door2_open.png","marsdoors_door2_2_open.png",}, groups = {cracky = 1, level = 2, not_in_creative_inventory=1}, sounds = default.node_sound_wood_defaults(), paramtype = "light", paramtype2 = "facedir", sunlight_propagates = true, is_ground_content = false, climbable = true, on_rightclick = function(pos, node, player, itemstack, pointed_thing) local p={x=pos.x,y=pos.y+1,z=pos.z} minetest.sound_play("marsdoors_door2", {pos=pos, gain = 1, max_hear_distance = 5}) minetest.swap_node(pos, {name="marsdoors:trapdoor_1", param2=minetest.get_node(pos).param2}) end, }) minetest.register_node("marsdoors:door2_1", { description = "Door", drop="marsdoors:door2_1", drawtype = "nodebox", paramtype = "light", node_box = { type = "fixed", fixed = { {-0.5, -0.5, -0.125, 0.5, 0.5, 0.125}, } }, tiles = {"marsdoors_warntape.png","marsdoors_warntape.png","marsdoors_door2.png","marsdoors_warntape.png","marsdoors_door2.png","marsdoors_door2_2.png",}, groups = {cracky = 1, level = 2, not_in_creative_inventory=0}, sounds = default.node_sound_stone_defaults(), paramtype = "light", paramtype2 = "facedir", sunlight_propagates = true, is_ground_content = false, after_place_node = function(pos, placer, itemstack, pointed_thing) local p={x=pos.x,y=pos.y+1,z=pos.z} if minetest.registered_nodes[minetest.get_node(p).name].walkable then return false else minetest.set_node(p, {name = "marsdoors:door2_2",param2=minetest.get_node(pos).param2}) end end, on_rightclick = function(pos, node, player, itemstack, pointed_thing) local p={x=pos.x,y=pos.y+1,z=pos.z} minetest.swap_node(p, {name="marsdoors:door2_open_2", param2=minetest.get_node(pos).param2}) minetest.swap_node(pos, {name="marsdoors:door2_open_1", param2=minetest.get_node(pos).param2}) minetest.sound_play("marsdoors_door2", {pos=pos, gain = 1, max_hear_distance = 5}) minetest.after(2, function(pos,p) if minetest.get_node(pos).name=="marsdoors:door2_open_1" then minetest.sound_play("marsdoors_door2", {pos=pos, gain = 1, max_hear_distance = 5}) minetest.swap_node(p, {name="marsdoors:door2_2", param2=minetest.get_node(pos).param2}) minetest.swap_node(pos, {name="marsdoors:door2_1", param2=minetest.get_node(pos).param2}) end end, pos,p) end, after_dig_node = function (pos, name, digger) marsdoors.replacenode({x=pos.x,y=pos.y+1,z=pos.z}) end, }) minetest.register_node("marsdoors:door2_2", { description = "Door 2-1", drawtype = "nodebox", drop="marsdoors:door2_1", paramtype = "light", node_box = { type = "fixed", fixed = { {-0.5, -0.5, -0.125, 0.5, 0.5, 0.125}, } }, tiles = {"marsdoors_warntape.png","marsdoors_warntape.png","marsdoors_door2.png","marsdoors_warntape.png","marsdoors_door2.png","marsdoors_door2_2.png",}, groups = {cracky = 1, level = 2, not_in_creative_inventory=1}, sounds = default.node_sound_wood_defaults(), paramtype = "light", paramtype2 = "facedir", sunlight_propagates = true, is_ground_content = false, on_rightclick = function(pos, node, player, itemstack, pointed_thing) local p={x=pos.x,y=pos.y-1,z=pos.z} minetest.swap_node(p, {name="marsdoors:door2_open_1", param2=minetest.get_node(pos).param2}) minetest.swap_node(pos, {name="marsdoors:door2_open_2", param2=minetest.get_node(pos).param2}) minetest.sound_play("marsdoors_door2", {pos=pos, gain = 1, max_hear_distance = 5}) minetest.after(2, function(pos,p) if minetest.get_node(pos).name=="marsdoors:door2_open_2" then minetest.sound_play("marsdoors_door2", {pos=pos, gain = 1, max_hear_distance = 5}) minetest.swap_node(p, {name="marsdoors:door2_1", param2=minetest.get_node(pos).param2}) minetest.swap_node(pos, {name="marsdoors:door2_2", param2=minetest.get_node(pos).param2}) end end, pos,p) end, after_dig_node = function (pos, name, digger) marsdoors.replacenode({x=pos.x,y=pos.y-1,z=pos.z}) end, }) minetest.register_node("marsdoors:door2_open_1", { description = "Door (open) 2-o-1", drop="marsdoors:door2_1", drawtype = "nodebox", paramtype = "light", node_box = { type = "fixed", fixed = { {0.41, -0.5, -0.124, 1.41, 0.5, 0.125}, } }, tiles = {"marsdoors_warntape.png","marsdoors_warntape.png","marsdoors_door2_open.png","marsdoors_warntape.png","marsdoors_door2_open.png","marsdoors_door2_2_open.png",}, groups = {cracky = 1, level = 2, not_in_creative_inventory=1}, sounds = default.node_sound_wood_defaults(), paramtype = "light", paramtype2 = "facedir", sunlight_propagates = true, is_ground_content = false, on_rightclick = function(pos, node, player, itemstack, pointed_thing) local p={x=pos.x,y=pos.y+1,z=pos.z} minetest.sound_play("marsdoors_door2", {pos=pos, gain = 1, max_hear_distance = 5}) minetest.swap_node(p, {name="marsdoors:door2_2", param2=minetest.get_node(pos).param2}) minetest.swap_node(pos, {name="marsdoors:door2_1", param2=minetest.get_node(pos).param2}) end, after_dig_node = function (pos, name, digger) marsdoors.replacenode({x=pos.x,y=pos.y+1,z=pos.z}) end, }) minetest.register_node("marsdoors:door2_open_2", { description = "Door (open) 2-o-1", drawtype = "nodebox", drop="marsdoors:door2_1", paramtype = "light", node_box = { type = "fixed", fixed = { {0.41, -0.5, -0.124, 1.41, 0.5, 0.125}, } }, tiles = {"marsdoors_warntape.png","marsdoors_warntape.png","marsdoors_door2_open.png","marsdoors_warntape.png","marsdoors_door2_open.png","marsdoors_door2_2_open.png",}, groups = {cracky = 1, level = 2, not_in_creative_inventory=1}, sounds = default.node_sound_wood_defaults(), paramtype = "light", paramtype2 = "facedir", sunlight_propagates = true, is_ground_content = false, on_rightclick = function(pos, node, player, itemstack, pointed_thing) local p={x=pos.x,y=pos.y-1,z=pos.z} minetest.sound_play("marsdoors_door2", {pos=pos, gain = 1, max_hear_distance = 5}) minetest.swap_node(p, {name="marsdoors:door2_1", param2=minetest.get_node(pos).param2}) minetest.swap_node(pos, {name="marsdoors:door2_2", param2=minetest.get_node(pos).param2}) end, after_dig_node = function (pos, name, digger) marsdoors.replacenode({x=pos.x,y=pos.y-1,z=pos.z}) end, }) minetest.register_node("marsdoors:warning", { description = "Warning tape block", tiles = {"marsdoors_warntape.png"}, groups = {cracky = 2,}, sounds = default.node_sound_stone_defaults(), }) minetest.register_node("marsdoors:shieldblock", { description = "Shieldblock", tiles = {"marsdoors_shieldblock.png"}, groups = {cracky = 1}, sounds = default.node_sound_stone_defaults(), }) minetest.register_node("marsdoors:steelwallblock", { description = "Steel wallblock", tiles = {"marsdoors_wall.png"}, groups = {cracky = 1}, sounds = default.node_sound_stone_defaults(), }) minetest.register_node("marsdoors:oxogen", { description = "Oxygen block", tiles = {"marsdoors_oxogen.png"}, drawtype="glasslike", groups = {crumbly = 2}, paramtype = "light", sunlight_propagates = true, alpha = 50, sounds = default.node_sound_glass_defaults(), }) minetest.register_node("marsdoors:clight", { description = "Ceiling light", tiles = {"default_cloud.png"}, drawtype = "nodebox", groups = {snappy = 3, not_in_creative_inventory=0}, sounds = default.node_sound_glass_defaults(), is_ground_content = false, paramtype = "light", paramtype2 = "facedir", node_box = {type="fixed",fixed={-0.2,0.4,-0.4,0.2,0.6,0.4}}, light_source=14, }) minetest.register_node("marsdoors:crystal", { description = "Crystal", drawtype = "mesh", mesh = "marsdoors_crystal.obj", visual_scale = 0.16, wield_scale = {x=1, y=1, z=1}, alpha = 20, tiles = { { name = "marsdoors_glitsh.png^[colorize:#cc0000aa", animation = { type = "vertical_frames", aspect_w = 16, aspect_h = 16, length = 2.0, }, }, }, paramtype = "light", paramtype2 = "facedir", sunlight_propagates = true, damage_per_second = 4, is_ground_content = false, light_source=4, groups = {cracky = 2, level = 2}, }) function marsdoors.replacenode(pos) minetest.set_node(pos, {name = "air"}) end minetest.register_alias("marssurvive:door1_closed", "marsdoors:door1_closed") minetest.register_alias("marssurvive:door1", "marsdoors:door1") minetest.register_alias("marssurvive:trapdoor_1", "marsdoors:trapdoor_1") minetest.register_alias("marssurvive:trapdoor_2", "marsdoors:trapdoor_2") minetest.register_alias("marssurvive:door2_1", "marsdoors:door2_1") minetest.register_alias("marssurvive:door2_2", "marsdoors:door2_2") minetest.register_alias("marssurvive:door2_open_1", "marsdoors:door2_open_1") minetest.register_alias("marssurvive:door2_open_2", "marsdoors:door2_open_2") minetest.register_alias("marssurvive:warning", "marsdoors:warning") minetest.register_alias("marssurvive:shieldblock", "marsdoors:shieldblock") minetest.register_alias("marssurvive:steelwallblock", "marsdoors:steelwallblock") minetest.register_alias("marssurvive:oxogen", "marsdoors:oxogen") minetest.register_alias("marssurvive:clight", "marsdoors:clight") minetest.register_alias("marssurvive:crystal", "marsdoors:crystal")