PyuTestCore.make_node_sounds = function(tbl) local t = tbl or {} t.footstep = t.footstep or {name = "block_walk", gain = 1} t.dug = t.dug or {name = "block_break", gain = 0.50} t.place = t.place or {name = "block_place", gain = 0.50} return t end PyuTestCore.make_node = function(nsname, sname, desc, groups, tiles, extra_conf) local conf = { description = Translate(desc), tiles = tiles, groups = groups, sounds = PyuTestCore.make_node_sounds() } if extra_conf ~= nil then for k, v in pairs(extra_conf) do conf[k] = v end end minetest.register_node(nsname, conf) minetest.register_alias(sname, nsname) end PyuTestCore.node_boxes = { CARPET = { type = "fixed", fixed = {-0.5, -0.5, -0.5, 0.5, -0.45, 0.5} }, SLAB = { type = "fixed", fixed = {-0.5, -0.5, -0.5, 0.5, 0, 0.5} }, PILLAR = { type = "fixed", fixed = {-0.15, -0.5, -0.15, 0.15, 0.5, 0.15} } } PyuTestCore.make_colored_blocks = function (color, dcolor, tex, colorspec, cgroups) local groups = cgroups or { block = PyuTestCore.BLOCK_BREAKABLE_NORMAL } minetest.register_node("pyutest_core:"..color.."_block", { description = Translate(dcolor.." Block"), tiles = {tex}, color = colorspec, groups = groups, sounds = PyuTestCore.make_node_sounds() }) minetest.register_node("pyutest_core:"..color.."_carpet", { description = Translate(dcolor .. " Carpet"), tiles = {tex}, groups = groups, color = colorspec, drawtype = "nodebox", paramtype = "light", paramtyp2 = "facedir", node_box = PyuTestCore.node_boxes.CARPET, sounds = PyuTestCore.make_node_sounds() }) minetest.register_node("pyutest_core:"..color.."_slab", { description = Translate(dcolor.." Slab"), tiles = {tex}, groups = groups, color = colorspec, drawtype = "nodebox", paramtype = "light", paramtyp2 = "facedir", node_box = PyuTestCore.node_boxes.SLAB, sounds = PyuTestCore.make_node_sounds() }) minetest.register_node("pyutest_core:"..color.."_pillar", { description = Translate(dcolor.." Pillar"), tiles = {tex}, groups = groups, color = colorspec, drawtype = "nodebox", paramtype = "light", paramtyp2 = "facedir", node_box = PyuTestCore.node_boxes.PILLAR, sounds = PyuTestCore.make_node_sounds() }) end PyuTestCore.make_liquid = function (nsname, sname, desc, groups, tiles) local function make_liquid_flags(liquidtype) local drawtype = "" if liquidtype == "source" then drawtype = "liquid" elseif liquidtype == "flowing" then drawtype = "liquid" end local t = { drawtype = drawtype, waving = 3, walkable = false, pointable = false, buildable_to = true, use_texture_alpha = "blend", paramtype = "light", drop = "", drowning = 1, liquidtype = liquidtype, liquid_alternative_flowing = nsname.."_flowing", liquid_alternative_source = nsname.."_source" } return t end PyuTestCore.make_node(nsname.."_source", sname.."_source", desc .. " Source", groups, tiles, make_liquid_flags("source")) PyuTestCore.make_node(nsname.."_flowing", sname.."_flowing", "Flowing " .. desc, groups, tiles, make_liquid_flags("flowing")) end PyuTestCore.make_colored_blocks("grass", "Grass", "grass.png", nil) PyuTestCore.make_colored_blocks("dirt", "Dirt", "dirt.png", nil) PyuTestCore.make_colored_blocks("stone", "Stone", "stone.png", nil) PyuTestCore.make_colored_blocks("iron", "Iron", "iron.png", nil) PyuTestCore.make_colored_blocks("wooden", "Wooden", "wood.png", nil) PyuTestCore.make_colored_blocks("snow", "Snow", "snow.png", nil) PyuTestCore.make_colored_blocks("sand", "Sand", "sand.png", nil) PyuTestCore.make_colored_blocks("sandstone", "Sandstone", "sandstone.png", nil) PyuTestCore.make_colored_blocks("ice", "Ice", "ice.png", nil) PyuTestCore.make_colored_blocks("white", "White", "wool.png", "white") PyuTestCore.make_colored_blocks("red", "Red", "wool.png", "red") PyuTestCore.make_colored_blocks("orange", "Orange", "wool.png", "orange") PyuTestCore.make_colored_blocks("yellow", "Yellow", "wool.png", "yellow") PyuTestCore.make_colored_blocks("green", "Green", "wool.png", "green") PyuTestCore.make_colored_blocks("blue", "Blue", "wool.png", "blue") PyuTestCore.make_colored_blocks("purple", "Purple", "wool.png", "purple") PyuTestCore.make_colored_blocks("black", "Black", "wool.png", "black") PyuTestCore.make_node("pyutest_core:light", "light", "Light", { snappy = 1, block = PyuTestCore.BLOCK_BREAKABLE_INSTANT, light = 1 }, { "light.png" }, { light_source = minetest.LIGHT_MAX, }) PyuTestCore.make_node("pyutest_core:torch", "torch", "Torch", { snappy = 1, block = PyuTestCore.BLOCK_BREAKABLE_INSTANT, light = 1 }, { "torch.png" }, { light_source = 12, walkable = false, drawtype = "torchlike", paramtype = "light", inventory_image = "torch.png" }) PyuTestCore.make_node("pyutest_core:sponge", "sponge", "Sponge", { snappy = 1, block = PyuTestCore.BLOCK_BREAKABLE_INSTANT }, {"sponge.png"}) PyuTestCore.make_node("pyutest_core:glass", "glass", "Glass", { cracky = 1, block = PyuTestCore.BLOCK_BREAKABLE_INSTANT }, {"glass.png"}, { drawtype = "glasslike_framed", paramtype = "light", sunlight_propagates = true }) PyuTestCore.make_node("pyutest_core:flower", "rose", "Rose", { snappy = 1, block = PyuTestCore.BLOCK_BREAKABLE_INSTANT, }, {"flower.png"}, { drawtype = "plantlike", walkable = false, waving = 1, buildable_to = true, paramtype = "light", sunlight_propagates = true, inventory_image = "flower.png" }) PyuTestCore.make_node("pyutest_core:flower2", "dandelion", "Dandelion", { snappy = 1, block = PyuTestCore.BLOCK_BREAKABLE_INSTANT, }, {"flower2.png"}, { drawtype = "plantlike", walkable = false, waving = 1, buildable_to = true, paramtype = "light", sunlight_propagates = true, inventory_image = "flower2.png" }) PyuTestCore.make_node("pyutest_core:trapdoor", "trapdoor", "Trapdoor", { choppy = 1, block = PyuTestCore.BLOCK_BREAKABLE_NORMAL }, {"trapdoor.png"}, { drawtype = "nodebox", paramtype = "light", sunlight_propagates = true, node_box = { type = "fixed", fixed = {-0.5, -0.5, -0.5, 0.5, -0.15, 0.5} } }) PyuTestCore.make_liquid("pyutest_core:water", "water", "Water", {}, {"water.png"})