-- [Mod] Simple Arcs [pkarcs] -- by PEAK -- 05-01-2016 -- License: WTFPL local materials = { -- nodename description tiles sounds groups {"stone", "Stone", "default_stone", default.node_sound_stone_defaults(), {cracky=3, stone=1},}, {"stone_block", "Stone Block", "default_stone_block", default.node_sound_stone_defaults(), {cracky=3, stone=1},}, {"cobble", "Cobble", "default_cobble", default.node_sound_stone_defaults(), {cracky=3, stone=2},}, {"stonebrick", "Stone Brick", "default_stone_brick", default.node_sound_stone_defaults(), {cracky=2, stone=1},}, {"mossycobble", "MossyCobble", "default_mossycobble", default.node_sound_stone_defaults(), {cracky=3, stone=1},}, {"serpentine", "Serpentine", "darkage_serpentine", default.node_sound_stone_defaults(), {cracky=3, stone=1},}, {"marble", "Marble", "darkage_marble", default.node_sound_stone_defaults(), {cracky=3, stone=1},}, {"desert_stone", "Desert Stone", "default_desert_stone", default.node_sound_stone_defaults(), {cracky=3, stone=1},}, {"desert_stone", "Desert Stone", "default_desert_stone", default.node_sound_stone_defaults(), {cracky=3, stone=1},}, {"desert_stone_block", "Desert Stone Block", "default_desert_stone_block", default.node_sound_stone_defaults(), {cracky=3, stone=1},}, {"desert_cobble", "Desert Cobble", "default_desert_cobble", default.node_sound_stone_defaults(), {cracky=3, stone=2},}, {"desert_stonebrick", "Desert Stone Brick", "default_desert_stone_brick", default.node_sound_stone_defaults(), {cracky=2, stone=1},}, {"sandstone", "Sandstone", "default_sandstone", default.node_sound_stone_defaults(), {crumbly=2,cracky=3},}, {"sandstone_block", "Sandstone Block","default_sandstone_block", default.node_sound_stone_defaults(), {crumbly=2,cracky=3},}, {"sandstonebrick", "Sandstone Brick", "default_sandstone_brick", default.node_sound_stone_defaults(), {cracky=2},}, {"obsidian", "Obsidian", "default_obsidian", default.node_sound_stone_defaults(), {cracky=1,level=2},}, {"obsidian_block", "Obsidian Block", "default_obsidian_block", default.node_sound_stone_defaults(), {cracky=1,level=2},}, {"obsidianbrick", "Obsidian Brick", "default_obsidian_brick", default.node_sound_stone_defaults(), {cracky=1,level=2},}, {"wood", "Wooden", "default_wood", default.node_sound_wood_defaults(), {choppy=2,oddly_breakable_by_hand=2,flammable=3,wood=1},}, {"junglewood", "Junglewood", "default_junglewood", default.node_sound_wood_defaults(), {choppy=2,oddly_breakable_by_hand=2,flammable=3,wood=1},}, {"pine_wood", "Pine Wood", "default_pine_wood", default.node_sound_wood_defaults(), {choppy=2,oddly_breakable_by_hand=2,flammable=3,wood=1},}, {"acacia_wood", "Acacia Wood", "default_acacia_wood", default.node_sound_wood_defaults(), {choppy=2,oddly_breakable_by_hand=2,flammable=3,wood=1},}, } -- convert integer coordinates to nodebox coordinates function nb(n) return n/16-1/2 end for i in ipairs(materials) do local nodename = materials[i][1] local desc = materials[i][2] local tile = materials[i][3] local sound = materials[i][4] local group = materials[i][5] minetest.register_node("pkarcs:"..nodename.."_arc", { description = desc.." Arc", paramtype = "light", paramtype2 = "facedir", tiles = {tile..".png"}, drawtype = "nodebox", node_box = { type = "fixed", fixed = { { nb(0), nb(0), nb(0), nb(1), nb(16), nb(16) }, { nb(1), nb(4), nb(0), nb(2), nb(16), nb(16) }, { nb(2), nb(7), nb(0), nb(3), nb(16), nb(16) }, { nb(3), nb(8), nb(0), nb(4), nb(16), nb(16) }, { nb(4), nb(10), nb(0), nb(5), nb(16), nb(16) }, { nb(5), nb(11), nb(0), nb(6), nb(16), nb(16) }, { nb(6), nb(12), nb(0), nb(8), nb(16), nb(16) }, { nb(8), nb(13), nb(0), nb(9), nb(16), nb(16) }, { nb(9), nb(14), nb(0), nb(12), nb(16), nb(16) }, { nb(12), nb(15), nb(0), nb(16), nb(16), nb(16) }, } }, groups = group, sounds = sound, }) minetest.register_craft({ output = "pkarcs:"..nodename.."_arc".." 5", recipe = { { "default:"..nodename, "default:"..nodename, "default:"..nodename }, { "default:"..nodename, "", "" }, { "default:"..nodename, "", "" } } }) minetest.register_node("pkarcs:"..nodename.."_outer_arc", { description = desc.." Outer Arc", paramtype = "light", paramtype2 = "facedir", tiles = {tile..".png"}, drawtype = "nodebox", node_box = { type = "fixed", fixed = { { nb(0), nb(0), nb(16), nb(1), nb(16), nb(16-1) }, { nb(0), nb(4), nb(16), nb(2), nb(16), nb(16-2) }, { nb(0), nb(7), nb(16), nb(3), nb(16), nb(16-3) }, { nb(0), nb(8), nb(16), nb(4), nb(16), nb(16-4) }, { nb(0), nb(10), nb(16), nb(5), nb(16), nb(16-5) }, { nb(0), nb(11), nb(16), nb(6), nb(16), nb(16-6) }, { nb(0), nb(12), nb(16), nb(8), nb(16), nb(16-8) }, { nb(0), nb(13), nb(16), nb(9), nb(16), nb(16-9) }, { nb(0), nb(14), nb(16), nb(12), nb(16), nb(16-12) }, { nb(0), nb(15), nb(16), nb(16), nb(16), nb(16-16) }, } }, groups = group, sounds = sound, }) minetest.register_craft({ output = "pkarcs:"..nodename.."_outer_arc".." 5", recipe = { { "default:torch", "default:"..nodename, "default:"..nodename }, { "default:"..nodename, "", "" }, { "default:"..nodename, "", "" } } }) minetest.register_node("pkarcs:"..nodename.."_inner_arc", { description = desc.." Inner Arc", paramtype = "light", paramtype2 = "facedir", tiles = {tile..".png"}, drawtype = "nodebox", node_box = { type = "fixed", fixed = { { nb(0), nb(0), nb(16), nb(1), nb(16), nb(0) }, { nb(0), nb(0), nb(16), nb(16), nb(16), nb(16-1) }, { nb(0), nb(4), nb(16), nb(2), nb(16), nb(0) }, { nb(0), nb(4), nb(16), nb(16), nb(16), nb(16-2) }, { nb(0), nb(7), nb(16), nb(3), nb(16), nb(0) }, { nb(0), nb(7), nb(16), nb(16), nb(16), nb(16-3) }, { nb(0), nb(8), nb(16), nb(4), nb(16), nb(0) }, { nb(0), nb(8), nb(16), nb(16), nb(16), nb(16-4) }, { nb(0), nb(10), nb(16), nb(5), nb(16), nb(0) }, { nb(0), nb(10), nb(16), nb(16), nb(16), nb(16-5) }, { nb(0), nb(11), nb(16), nb(6), nb(16), nb(0) }, { nb(0), nb(11), nb(16), nb(16), nb(16), nb(16-6) }, { nb(0), nb(12), nb(16), nb(8), nb(16), nb(0) }, { nb(0), nb(12), nb(16), nb(16), nb(16), nb(16-8) }, { nb(0), nb(13), nb(16), nb(9), nb(16), nb(0) }, { nb(0), nb(13), nb(16), nb(16), nb(16), nb(16-9) }, { nb(0), nb(14), nb(16), nb(12), nb(16), nb(0) }, { nb(0), nb(14), nb(16), nb(16), nb(16), nb(16-12) }, { nb(0), nb(15), nb(16), nb(16), nb(16), nb(16-16) }, } }, groups = group, sounds = sound, }) minetest.register_craft({ output = "pkarcs:"..nodename.."_inner_arc".." 5", recipe = { { "", "default:"..nodename, "default:"..nodename }, { "default:"..nodename, "default:torch", "" }, { "default:"..nodename, "", "" } } }) end