-- Baked Clay by TenPlus1 local glow_clay_all = ocutil.bool_default ("clayglow" ) or ocutil.bool_default ("glowclay" ) or ocutil.bool_default ("glow_clay_all" ) or ocutil.bool_default ("glow_all_clay" ) local clayshort = ocutil.bool_default ("clayshort" ) local edgylos = ocutil.bool_default ("edgylos" ) local morebench = ocutil.bool_default ("morebench" ) if edgylos then clayshort = true glow_clay_all = true morebench = true end local clay = { { "natural" , "Natural" , 4 } , { "white" , "White" , 4 } , { "grey" , "Grey" , 4 } , { "black" , "Black" , 4 } , { "red" , "Red" , 4 } , { "yellow" , "Yellow" , 4 } , { "green" , "Green" , 4 } , { "cyan" , "Cyan" , 4 } , { "blue" , "Blue" , 4 } , { "magenta" , "Magenta" , 4 } , { "orange" , "Orange" , 4 } , { "violet" , "Violet" , 4 } , { "brown" , "Brown" , 4 } , { "pink" , "Pink" , 4 } , { "dark_grey" , "Dark Grey" , 4 } , { "dark_green" , "Dark Green" , 4 } , } local cvt = default.convert_node local sra = ocutil.safe_register_alias local techcnc_mod = minetest.get_modpath ("technic_cnc") local stairs_mod = minetest.get_modpath ("stairs") local stairsplus_mod = minetest.get_modpath ("moreblocks") and minetest.global_exists ("stairsplus") for _, clay in pairs (clay) do local clay_color = clay [1] local clay_desc = clay [2] local clay_glow = clay [3] local B_C_CC = "baked_clay_" .. clay_color local params1 = { description = clay_desc .. " Baked Clay" , tiles = { B_C_CC ..".png" } , groups = { cracky = 3, bakedclay = 1 } , sounds = default.sound_stone() , workbench = morebench , } if glow_clay_all then params1.light_source = clay_glow params1.paramtype = "light" end local params2 = ocutil.clone_table (params1) params2.description = clay_desc .. " Glow Clay" params2.light_source = clay_glow params2.paramtype = "light" minetest.register_node ("bakedclay:" .. clay_color, params1) -- minetest.register_node ("bakedclay:glow_" .. clay_color, params2) -- craft from dye and any baked clay if clay_color ~= "natural" then minetest.register_craft ({ output = "bakedclay:" .. clay_color .. " 8" , recipe = { { "group:bakedclay", "group:bakedclay" , "group:bakedclay" } , { "group:bakedclay", "dye:" .. clay_color , "group:bakedclay" } , { "group:bakedclay", "group:bakedclay" , "group:bakedclay" } , }, }) end -- register stairsplus stairs if found if stairsplus_mod then stairsplus:register_all ("bakedclay", B_C_CC, "bakedclay:" .. clay_color, { description = clay_desc .. " Baked Clay", tiles = { B_C_CC .. ".png"}, groups = {cracky = 3}, sounds = default.sound_stone(), }) stairsplus:register_alias_all ("bakedclay", clay_color, "bakedclay", B_C_CC) if not stairs_mod then minetest.register_alias ("stairs:slab_bakedclay_" .. clay_color, "bakedclay:slab_baked_clay_" .. clay_color) minetest.register_alias ("stairs:stair_bakedclay_" .. clay_color, "bakedclay:stair_baked_clay_" .. clay_color) end end -- register all stair types for stairs redo if stairs_mod and stairs.register_all ~= nil then stairs.register_all ("bakedclay_" .. clay_color, "bakedclay:" .. clay_color, {cracky = 3}, { B_C_CC .. ".png"}, clay_desc .. " Baked Clay", default.sound_stone()) -- register stair and slab using default stairs elseif stairs_mod then stairs.register_stair_and_slab ("bakedclay_".. clay_color, "bakedclay:".. clay_color, {cracky = 3}, { B_C_CC .. ".png"}, clay_desc .. " Baked Clay Stair", clay_desc .. " Baked Clay Slab", default.sound_stone()) end -- register bakedclay for use in technic_cnc mod if techcnc_mod then technic_cnc.register_all ("bakedclay:" .. clay_color, {cracky = 3, not_in_creative_inventory = 1}, { B_C_CC .. ".png" } , clay_desc .. " Baked Clay") end cvt ("stairs:slab_" .. clay_color , "stairs:slab_bakedclay_" .. clay_color ) cvt ("stairs:stair_" .. clay_color , "stairs:stair_bakedclay_" .. clay_color ) cvt ("stairs:stair_inner_" .. clay_color , "stairs:stair_inner_bakedclay_" .. clay_color ) cvt ("stairs:stair_outer_" .. clay_color , "stairs:stair_outer_bakedclay_" .. clay_color ) cvt ("bakedclay:" .. clay_color .. "_innerstair" , "stairs:stair_inner_bakedclay_" .. clay_color ) end -- cook clay block into white baked clay minetest.register_craft({ type = "cooking", output = "bakedclay:natural", recipe = "default:clay", }) -- register a few extra dye colour options minetest.register_craft( { type = "shapeless", output = "dye:dark_grey 3", recipe = { "dye:black", "dye:black", "dye:white"} }) minetest.register_craft( { type = "shapeless", output = "dye:grey 3", recipe = { "dye:black", "dye:white", "dye:white"} }) minetest.register_craft( { type = "shapeless", output = "dye:green 4", recipe = { "default:cactus"} }) minetest.register_craft( { type = "shapeless", output = "dye:black 4", recipe = { "default:coal_lump"} }) minetest.register_craft( { type = "shapeless", output = "dye:brown 4", recipe = { "default:dry_shrub"} }) -- 2x2 red bakedclay makes 16x clay brick minetest.register_craft( { output = "default:clay_brick 16", recipe = { { "bakedclay:red", "bakedclay:red"}, { "bakedclay:red", "bakedclay:red"}, } }) -- register some new flowers to fill in missing dye colours -- flower registration (borrowed from default game) local function add_simple_flower(name, desc, box, f_groups) f_groups.snappy = 3 f_groups.flower = 1 f_groups.flora = 1 f_groups.attached_node = 1 minetest.register_node("bakedclay:" .. name, { description = desc, drawtype = "plantlike", waving = 1, tiles = { "baked_clay_" .. name .. ".png"}, inventory_image = "baked_clay_" .. name .. ".png", wield_image = "baked_clay_" .. name .. ".png", sunlight_propagates = true, paramtype = "light", walkable = false, buildable_to = true, stack_max = 99, groups = f_groups, sounds = default.sound_leaves(), selection_box = { type = "fixed", fixed = box } }) end local flowers = { { "delphinium", "Blue Delphinium", {-0.15, -0.5, -0.15, 0.15, 0.3, 0.15}, {color_cyan = 1}}, { "thistle", "Thistle", {-0.15, -0.5, -0.15, 0.15, 0.2, 0.15}, {color_magenta = 1}}, { "lazarus", "Lazarus Bell", {-0.15, -0.5, -0.15, 0.15, 0.2, 0.15}, {color_pink = 1}}, { "mannagrass", "Reed Mannagrass", {-0.15, -0.5, -0.15, 0.15, 0.2, 0.15}, {color_dark_green = 1}}, } for _,item in pairs(flowers) do add_simple_flower(unpack(item)) end -- mapgen for new flowers minetest.register_decoration({ deco_type = "simple", place_on = { "default:dirt_with_grass"}, sidelen = 16, noise_params = { offset = 0, scale = 0.004, spread = {x = 100, y = 100, z = 100}, seed = 7133, octaves = 3, persist = 0.6 }, y_min = 10, y_max = 90, decoration = "bakedclay:delphinium", }) minetest.register_decoration({ deco_type = "simple", place_on = { "default:dirt_with_grass", "default:dirt_with_dry_grass"}, sidelen = 16, noise_params = { offset = 0, scale = 0.004, spread = {x = 100, y = 100, z = 100}, seed = 7134, octaves = 3, persist = 0.6 }, y_min = 15, y_max = 90, decoration = "bakedclay:thistle", }) minetest.register_decoration({ deco_type = "simple", place_on = { "default:dirt_with_grass", "default:dirt_with_rainforest_litter"}, sidelen = 16, noise_params = { offset = 0, scale = 0.01, spread = {x = 100, y = 100, z = 100}, seed = 7135, octaves = 3, persist = 0.6 }, y_min = 1, y_max = 90, decoration = "bakedclay:lazarus", spawn_by = "default:jungletree", num_spawn_by = 1, }) minetest.register_decoration({ deco_type = "simple", place_on = { "default:dirt_with_grass", "default:sand"}, sidelen = 16, noise_params = { offset = 0, scale = 0.009, spread = {x = 100, y = 100, z = 100}, seed = 7136, octaves = 3, persist = 0.6 }, y_min = 1, y_max = 15, decoration = "bakedclay:mannagrass", spawn_by = "group:water", num_spawn_by = 1, }) -- add lucky blocks if minetest.get_modpath("lucky_block") then local p = "bakedclay:" lucky_block:add_blocks({ { "dro", { "bakedclay:"}, 10, true}, { "fal", {p.."black", p.."blue", p.."brown", p.."cyan", p.."dark_green", p.."dark_grey", p.."green", p.."grey", p.."magenta", p.."orange", p.."pink", p.."red", p.."violet", p.."white", p.."yellow", p.."natural"}, 0}, { "fal", {p.."black", p.."blue", p.."brown", p.."cyan", p.."dark_green", p.."dark_grey", p.."green", p.."grey", p.."magenta", p.."orange", p.."pink", p.."red", p.."violet", p.."white", p.."yellow", p.."natural"}, 0, true}, { "dro", {p.."delphinium"}, 5}, { "dro", {p.."lazarus"}, 5}, { "dro", {p.."mannagrass"}, 5}, { "dro", {p.."thistle"}, 6}, { "flo", 5, {p.."natural", p.."black", p.."blue", p.."brown", p.."cyan", p.."dark_green", p.."dark_grey", p.."green", p.."grey", p.."magenta", p.."orange", p.."pink", p.."red", p.."violet", p.."white", p.."yellow"}, 2}, { "nod", "default:chest", 0, { {name = p.."natural", max = 30}, {name = p.."black", max = 30}, {name = p.."blue", max = 30}, {name = p.."brown", max = 30}, {name = p.."cyan", max = 30}, {name = p.."dark_green", max = 30}, {name = p.."dark_grey", max = 30}, {name = p.."green", max = 30}, {name = p.."grey", max = 30}, {name = p.."magenta", max = 30}, {name = p.."orange", max = 30}, {name = p.."pink", max = 30}, {name = p.."red", max = 30}, {name = p.."violet", max = 30}, {name = p.."white", max = 30}, {name = p.."yellow", max = 30}, }}, }) end print ("[MOD] Baked Clay loaded")