-- WHY doesn't this work? --local dyes = dye.dyes -- Fine, hardcode it for NOW. local dyes = { {"white", "White"}, {"grey", "Grey"}, {"dark_grey", "Dark Grey"}, {"black", "Black"}, {"violet", "Violet"}, {"blue", "Blue"}, {"cyan", "Cyan"}, {"dark_green", "Dark Green"}, {"green", "Green"}, {"yellow", "Yellow"}, {"brown", "Brown"}, {"orange", "Orange"}, {"red", "Red"}, {"magenta", "Magenta"}, {"pink", "Pink"}, {"indigo", "Indigo"}, } local sands = { {"regular", { basesand = "default:sand", basestone = "default:sandstone", baseblock = "default:sandstoneblock", basebrick = "default:sandstonebrick", -- modifier = "", hrmodifier = "", } }, {"desert", { basesand = "default:desert_sand", basestone = "default:desert_sandstone", basebrick = "default:desert_sandstonebrick", baseblock = "default:desert_sandstoneblock", modifier = "desert_", hrmodifier = "Desert", } }, {"silver", { basesand = "default:silver_sand", basestone = "default:silver_sandstone", basebrick = "default:silver_sandstonebrick", baseblock = "default:silver_sandstoneblock", modifier = "beach_", hrmodifier = "Beach", } }, } -- TODO: if the unified dyes mod is registered, use those dyes instead? for dyeid, dyename in pairs (dyes) do for dummy, sandtype in pairs (sands) do local prefix local hrprefix if sandtype.modifier then prefix = "coloredsand:" .. sandtype.modifier else prefix = "coloredsand:" end if sandtype.hrmodifier then hrprefix = dyename .. " " .. sandtype.hrmodifier else hrprefix = dyename .. "" end modsand = prefix .. "sand" .. "_" .. dyeid modstone = prefix .. "sandstone" .. "_" .. dyeid modbrick = prefix .. "sandstonebrick" .. "_" .. dyeid modblock = prefix .. "sandstoneblock" .. "_" .. dyeid minetest.register_node(modsand, { description = S(hrprefix .. " Sand"), tiles = {"coloredsand_" .. sandtype.modifier .. "sand_" .. dyeid .. ".png" }, groups = {crumbly = 3, falling_node = 1, sand = 1}, sounds = default.node_sound_sand_defaults(), }) minetest.register_node(modstone, { description = S(hrprefix .. " Sandstone"), tiles = {"coloredsand_" .. sandtype.modifier .. "sandstone_" .. dyeid .. ".png" }, groups = {crumbly = 1, cracky = 3}, sounds = default.node_sound_stone_defaults(), }) minetest.register_node(modbrick, { description = S(hrprefix .. " Sandstone Brick"), paramtype2 = "facedir", place_param2 = 0, tiles = {"coloredsand_" .. sandtype.modifier .. "sandstone_brick_" .. dyeid .. ".png"}, is_ground_content = false, groups = {cracky = 2}, sounds = default.node_sound_stone_defaults(), }) minetest.register_node(modblock, { description = S(hrprefix .. " Sandstone Block"), tiles = {"coloredsand" .. sandtype.modifier .. "sandstone_block_" .. dyeid .. ".png"}, is_ground_content = false, groups = {cracky = 2}, sounds = default.node_sound_stone_defaults(), }) minetest.register_craft({ output = modsand, recipe = { {sandtype.basesand, sandtype.basesand, sandtype.basesand}, {sandtype.basesand, "dye:" .. dyeid, sandtype.basesand}, {sandtype.basesand, sandtype.basesand, sandtype.basesand}, }, }) minecraft.register_craft({ output = modstone, recipe = { {modsand, modsand}, {modsand, modsand}, }, }) minecraft.register_craft({ output = modsand .. " 4", recipe = { modstone }, }) minecraft.register_craft({ output = modbrick .. " 4", recipe = { { modstone, modstone }, { modstone, modstone }, }, }) minecraft.register_craft({ output = modblock .. " 9", recipe = { { modstone, modstone, modstone }, { modstone, modstone, modstone }, { modstone, modstone, modstone }, }, }) end end