-- adoors by TumeniNodes (C) 2018 screwdriver = screwdriver or {} adoors = {} -- Register adoor nodes adoors.door = { {"steel", "Steel", {cracky = 1, door = 1}, default.node_sound_metal_defaults(), "doors_steel_door", {name = "doors_door_steel.png"}, "default:steelblock"}, {"glass", "Glass", {cracky = 3, door = 1}, default.node_sound_glass_defaults(), "doors_glass_door", {name = "doors_door_glass.png"}, "default:glass"}, {"obsidian_glass", "Obsidian Glass", {cracky = 1, door = 1}, default.node_sound_glass_defaults(), "doors_glass_door", {name = "doors_door_obsidian_glass.png"}, "default:obsidian_glass"}, {"wood", "Wood", {choppy = 2, door = 1}, default.node_sound_wood_defaults(), "doors_door", {name = "doors_door_wood.png"}, "default:wood"}, } for _, row in ipairs(adoors.door) do local name = row[1] local desc = row[2] local mat_groups = row[3] local mat_sound = row[4] local door_sound = row[5] local door_tiles = row[6] local craft_material = row[7] minetest.register_node(":adoors:" ..name.. "_Ldoor", { description = desc.. " Door (left)", inventory_image = "doors_item_" ..name.. ".png^[transformFXX", wield_image = "doors_item_" ..name.. ".png^[transformFXX", drawtype = "mesh", mesh = "adoors_Ldoor.obj", tiles = {door_tiles}, use_texture_alpha = true, paramtype = "light", paramtype2 = "facedir", on_rotate = screwdriver.rotate_simple, sunlight_propogates = true, is_ground_content = false, groups = mat_groups, sounds = mat_sound, selection_box = { type = "fixed", fixed = { {0.375, -0.5, 0.375, 0.5, 1.5, 0.5}, {0.25, -0.5, 0.25, 0.375, 1.5, 0.375}, {0.125, -0.5, 0.125, 0.25, 1.5, 0.25}, {0, -0.5, 0, 0.125, 1.5, 0.125}, {-0.125, -0.5, -0.125, 0, 1.5, 0}, {-0.25, -0.5, -0.25, -0.125, 1.5, -0.125}, {-0.375, -0.5, -0.375, -0.25, 1.5, -0.25}, {-0.5, -0.5, -0.5, -0.375, 1.5, -0.375}, }, }, collision_box = { type = "fixed", fixed = { {0.375, -0.5, 0.375, 0.5, 1.5, 0.5}, {0.25, -0.5, 0.25, 0.375, 1.5, 0.375}, {0.125, -0.5, 0.125, 0.25, 1.5, 0.25}, {0, -0.5, 0, 0.125, 1.5, 0.125}, {-0.125, -0.5, -0.125, 0, 1.5, 0}, {-0.25, -0.5, -0.25, -0.125, 1.5, -0.125}, {-0.375, -0.5, -0.375, -0.25, 1.5, -0.25}, {-0.5, -0.5, -0.5, -0.375, 1.5, -0.375}, }, }, on_rightclick = function(pos, node, puncher) minetest.swap_node(pos, {name = "adoors:" ..name.. "_Ldoor_open", param2 = node.param2}) minetest.sound_play(door_sound.."_open", {gain = 0.20, max_hear_distance = 2}) end, }) minetest.register_node(":adoors:" ..name.. "_Ldoor_open", { drawtype = "mesh", mesh = "adoors_Ldoor_open.obj", tiles = {door_tiles}, use_texture_alpha = true, paramtype = "light", paramtype2 = "facedir", on_rotate = screwdriver.rotate_simple, legacy_facedir_simple = true, sunlight_propogates = true, is_ground_content = false, groups = mat_groups, drop = "adoors:" ..name.. "_Ldoor", sounds = mat_sound, selection_box = { type = "fixed", fixed = { {0.375, -0.5, -1.375, 0.5, 1.5, -1.25}, {0.25, -0.5, -1.25, 0.375, 1.5, -1.125}, {0.125, -0.5, -1.125, 0.25, 1.5, -1}, {0, -0.5, -1, 0.125, 1.5, -0.875}, {-0.125, -0.5, -0.875, 0, 1.5, -0.75}, {-0.25, -0.5, -0.75, -0.125, 1.5, -0.625}, {-0.375, -0.5, -0.625, -0.25, 1.5, -0.5}, {-0.5, -0.5, -0.5, -0.375, 1.5, -0.375}, }, }, collision_box = { type = "fixed", fixed = { {0.375, -0.5, -1.375, 0.5, 1.5, -1.25}, {0.25, -0.5, -1.25, 0.375, 1.5, -1.125}, {0.125, -0.5, -1.125, 0.25, 1.5, -1}, {0, -0.5, -1, 0.125, 1.5, -0.875}, {-0.125, -0.5, -0.875, 0, 1.5, -0.75}, {-0.25, -0.5, -0.75, -0.125, 1.5, -0.625}, {-0.375, -0.5, -0.625, -0.25, 1.5, -0.5}, {-0.5, -0.5, -0.5, -0.375, 1.5, -0.375}, }, }, on_rightclick = function(pos, node, puncher) minetest.swap_node(pos, {name = "adoors:" ..name.. "_Ldoor", param2 = node.param2}) minetest.sound_play(door_sound.."_close", {gain = 0.20, max_hear_distance = 2}) end, }) minetest.register_node(":adoors:" ..name.. "_Rdoor", { description = desc.. " Door (right)", inventory_image = "doors_item_" ..name.. ".png", wield_image = "doors_item_" ..name.. ".png", drawtype = "mesh", mesh = "adoors_Rdoor.obj", tiles = {door_tiles}, use_texture_alpha = true, paramtype = "light", paramtype2 = "facedir", on_rotate = screwdriver.rotate_simple, sunlight_propogates = true, is_ground_content = false, groups = mat_groups, sounds = mat_sound, selection_box = { type = "fixed", fixed = { {0.375, -0.5, 0.375, 0.5, 1.5, 0.5}, {0.25, -0.5, 0.25, 0.375, 1.5, 0.375}, {0.125, -0.5, 0.125, 0.25, 1.5, 0.25}, {0, -0.5, 0, 0.125, 1.5, 0.125}, {-0.125, -0.5, -0.125, 0, 1.5, 0}, {-0.25, -0.5, -0.25, -0.125, 1.5, -0.125}, {-0.375, -0.5, -0.375, -0.25, 1.5, -0.25}, {-0.5, -0.5, -0.5, -0.375, 1.5, -0.375}, }, }, collision_box = { type = "fixed", fixed = { {0.375, -0.5, 0.375, 0.5, 1.5, 0.5}, {0.25, -0.5, 0.25, 0.375, 1.5, 0.375}, {0.125, -0.5, 0.125, 0.25, 1.5, 0.25}, {0, -0.5, 0, 0.125, 1.5, 0.125}, {-0.125, -0.5, -0.125, 0, 1.5, 0}, {-0.25, -0.5, -0.25, -0.125, 1.5, -0.125}, {-0.375, -0.5, -0.375, -0.25, 1.5, -0.25}, {-0.5, -0.5, -0.5, -0.375, 1.5, -0.375}, }, }, on_rightclick = function(pos, node, puncher) minetest.swap_node(pos, {name = "adoors:" ..name.. "_Rdoor_open", param2 = node.param2}) minetest.sound_play(door_sound.."_open", {gain = 0.20, max_hear_distance = 2}) end, }) minetest.register_node(":adoors:" ..name.. "_Rdoor_open", { drawtype = "mesh", mesh = "adoors_Rdoor_open.obj", tiles = {door_tiles}, use_texture_alpha = true, paramtype = "light", paramtype2 = "facedir", on_rotate = screwdriver.rotate_simple, legacy_facedir_simple = true, sunlight_propogates = true, is_ground_content = false, groups = mat_groups, drop = "adoors:" ..name.. "_Rdoor", sounds = mat_sound, selection_box = { type = "fixed", fixed = { {0.375, -0.5, 0.375, 0.5, 1.5, 0.5}, {0.5, -0.5, 0.25, 0.625, 1.5, 0.375}, {0.625, -0.5, 0.125, 0.75, 1.5, 0.25}, {0.75, -0.5, 0, 0.875, 1.5, 0.125}, {0.875, -0.5, -0.125, 1, 1.5, 0}, {1, -0.5, -0.25, 1.125, 1.5, -0.125}, {1.125, -0.5, -0.375, 1.25, 1.5, -0.25}, {1.25, -0.5, -0.5, 1.375, 1.5, -0.375}, }, }, collision_box = { type = "fixed", fixed = { {0.375, -0.5, 0.375, 0.5, 1.5, 0.5}, {0.5, -0.5, 0.25, 0.625, 1.5, 0.375}, {0.625, -0.5, 0.125, 0.75, 1.5, 0.25}, {0.75, -0.5, 0, 0.875, 1.5, 0.125}, {0.875, -0.5, -0.125, 1, 1.5, 0}, {1, -0.5, -0.25, 1.125, 1.5, -0.125}, {1.125, -0.5, -0.375, 1.25, 1.5, -0.25}, {1.25, -0.5, -0.5, 1.375, 1.5, -0.375}, }, }, on_rightclick = function(pos, node, puncher) minetest.swap_node(pos, {name = "adoors:" ..name.. "_Rdoor", param2 = node.param2}) minetest.sound_play(door_sound.."_close", {gain = 0.20, max_hear_distance = 2}) end, }) end