--[[ *********** Blox by Sanchez modified mapgen by blert2112 *********** --]] blox = {} local version = "0.8" local BloxColours = { "pink", "yellow", "white", "orange", "purple", "blue", "cyan", "red", "green", "black", } local NodeClass = { "diamond", "quarter", "cross", "checker", "corner", "loop", } local NodeMaterial = { "stone", "wood", "cobble", } local moreblocks = minetest.get_modpath("moreblocks") -- Nodes minetest.register_node("blox:glowstone", { description = "Glowstone", tiles = {"blox_glowstone.png"}, --inventory_image = "blox_glowstone.png", light_propagates = true, paramtype = "light", sunlight_propagates = true, light_source = 14, is_ground_content = true, groups = {cracky=2}, sounds = default.node_sound_stone_defaults(), }) minetest.register_node("blox:glowore", { description = "Glow Ore", tiles = {"default_stone.png^blox_glowore.png"}, --inventory_image = {"default_stone.png^blox_glowore.png"}, light_propagates = true, paramtype = "light", sunlight_propagates = false, light_source = 8, drop = { max_items = 1, items = { { items = {"blox:glowstone"}, rarity = 15, }, { items = {"blox:glowdust"}, } } }, is_ground_content = true, groups = {cracky=2}, sounds = default.node_sound_stone_defaults(), }) minetest.register_node("blox:glowdust", { description = "Glow Dust", drawtype = "plantlike", tiles = {"blox_glowdust.png"}, inventory_image = "blox_glowdust.png", light_propagates = true, paramtype = "light", sunlight_propagates = true, light_source = 9, walkable = false, groups = {cracky=3, snappy=3}, }) -- param2-colored nodes: standard patterns blox.old_89_color_nodes = {} for _, nodeclass in ipairs(NodeClass) do minetest.register_node("blox:stone_"..nodeclass, { description = "Blox stone "..nodeclass, tiles = { { name = "default_stone.png", color = 0xffffffff }, }, overlay_tiles = { "blox_stone_"..nodeclass..".png" }, palette = "unifieddyes_palette_extended.png", paramtype = "light", paramtype2 = "color", is_ground_content = true, groups = {cracky=3, ud_param2_colorable = 1}, sounds = default.node_sound_stone_defaults(), on_construct = unifieddyes.on_construct, }) minetest.register_node("blox:cobble_"..nodeclass, { description = "Blox cobble "..nodeclass, tiles = { { name = "default_cobble.png", color = 0xffffffff }, }, overlay_tiles = { "blox_cobble_"..nodeclass..".png" }, palette = "unifieddyes_palette_extended.png", paramtype = "light", paramtype2 = "color", is_ground_content = true, groups = {cracky=3, ud_param2_colorable = 1}, sounds = default.node_sound_stone_defaults(), on_construct = unifieddyes.on_construct, }) minetest.register_node("blox:wood_"..nodeclass, { description = "Blox wood "..nodeclass, tiles = { { name = "default_wood.png", color = 0xffffffff }, }, overlay_tiles = { "blox_wood_"..nodeclass..".png" }, palette = "unifieddyes_palette_extended.png", paramtype = "light", paramtype2 = "color", is_ground_content = true, groups = {snappy=2,choppy=2,oddly_breakable_by_hand=2,flammable=3, ud_param2_colorable = 1}, sounds = default.node_sound_wood_defaults(), on_construct = unifieddyes.on_construct, }) table.insert(blox.old_89_color_nodes, "blox:stone_"..nodeclass) table.insert(blox.old_89_color_nodes, "blox:cobble_"..nodeclass) table.insert(blox.old_89_color_nodes, "blox:wood_"..nodeclass) end -- param2-colored nodes: tinted wood, cobble, stone, stone square minetest.register_node("blox:wood_tinted", { description = "Blox tinted wood", tiles = { "blox_wood_tinted.png" }, palette = "unifieddyes_palette_extended.png", paramtype = "light", paramtype2 = "color", is_ground_content = true, groups = {snappy=2,choppy=2,oddly_breakable_by_hand=2,flammable=3, ud_param2_colorable = 1}, sounds = default.node_sound_wood_defaults(), on_construct = unifieddyes.on_construct, }) minetest.register_node("blox:stone_square", { description = "Blox stone square", tiles = { "blox_stone_square.png" }, palette = "unifieddyes_palette_extended.png", paramtype = "light", paramtype2 = "color", is_ground_content = true, groups = {snappy=2,choppy=2,oddly_breakable_by_hand=2,flammable=3, ud_param2_colorable = 1}, sounds = default.node_sound_wood_defaults(), on_construct = unifieddyes.on_construct, }) minetest.register_node("blox:cobble_tinted", { description = "Blox tinted cobble", tiles = { "blox_cobble_tinted.png" }, palette = "unifieddyes_palette_extended.png", paramtype = "light", paramtype2 = "color", is_ground_content = true, groups = {snappy=2,choppy=2,oddly_breakable_by_hand=2,flammable=3, not_in_creative_inventory = 1, ud_param2_colorable = 1}, sounds = default.node_sound_wood_defaults(), on_construct = unifieddyes.on_construct, }) minetest.register_node("blox:stone_tinted", { description = "Blox tinted stone", tiles = { "blox_stone_tinted.png" }, palette = "unifieddyes_palette_extended.png", paramtype = "light", paramtype2 = "color", is_ground_content = true, groups = {snappy=2,choppy=2,oddly_breakable_by_hand=2,flammable=3, not_in_creative_inventory = 1, ud_param2_colorable = 1}, sounds = default.node_sound_wood_defaults(), on_construct = unifieddyes.on_construct, drop = { items = { {items = {"blox:cobble_tinted"}, inherit_color = true }, } } }) table.insert(blox.old_89_color_nodes, "blox:wood_tinted") table.insert(blox.old_89_color_nodes, "blox:stone_square") table.insert(blox.old_89_color_nodes, "blox:cobble_tinted") table.insert(blox.old_89_color_nodes, "blox:stone_tinted") -- Override default stone and default cobble minetest.override_item("default:stone_block", { palette = "unifieddyes_palette_extended.png", airbrush_replacement_node = "blox:stone_square", groups = {cracky = 3, stone = 1, ud_param2_colorable = 1}, }) minetest.override_item("default:stone", { palette = "unifieddyes_palette_extended.png", airbrush_replacement_node = "blox:stone_tinted", groups = {cracky = 3, stone = 1, ud_param2_colorable = 1}, }) minetest.override_item("default:cobble", { palette = "unifieddyes_palette_extended.png", airbrush_replacement_node = "blox:cobble_tinted", groups = {cracky = 3, stone = 2, ud_param2_colorable = 1}, }) -- override the Moreblocks nodes we use if moreblocks then minetest.override_item("moreblocks:circle_stone_bricks", { palette = "unifieddyes_palette_extended.png", airbrush_replacement_node = "blox:stone_loop", groups = {cracky = 3, ud_param2_colorable = 1}, }) unifieddyes.register_color_craft({ output = "blox:stone_loop", type = "shapeless", palette = "extended", neutral_node = "moreblocks:circle_stone_bricks", recipe = { "NEUTRAL_NODE", "MAIN_DYE" } }) minetest.override_item("moreblocks:iron_checker", { palette = "unifieddyes_palette_extended.png", airbrush_replacement_node = "blox:stone_checker", groups = {cracky = 3, ud_param2_colorable = 1}, }) unifieddyes.register_color_craft({ output = "blox:stone_checker", type = "shapeless", palette = "extended", neutral_node = "moreblocks:iron_checker", recipe = { "NEUTRAL_NODE", "MAIN_DYE" } }) minetest.override_item("moreblocks:wood_tile", { palette = "unifieddyes_palette_extended.png", airbrush_replacement_node = "blox:wood_quarter", groups = {wood = 1, snappy = 1, choppy = 2, oddly_breakable_by_hand = 2, flammable = 3, ud_param2_colorable = 1}, }) unifieddyes.register_color_craft({ output = "blox:wood_quarter", type = "shapeless", palette = "extended", neutral_node = "moreblocks:wood_tile", recipe = { "NEUTRAL_NODE", "MAIN_DYE" } }) minetest.override_item("moreblocks:wood_tile_flipped", { palette = "unifieddyes_palette_extended.png", airbrush_replacement_node = "blox:wood_quarter", groups = {wood = 1, snappy = 1, choppy = 2, oddly_breakable_by_hand = 2, flammable = 3, ud_param2_colorable = 1}, }) unifieddyes.register_color_craft({ output = "blox:wood_quarter", type = "shapeless", palette = "extended", neutral_node = "moreblocks:wood_tile_flipped", recipe = { "NEUTRAL_NODE", "MAIN_DYE" } }) end local dye_color = "dye:white" if minetest.get_modpath("coloredwood") then minetest.register_craft({ output = unifieddyes.make_colored_itemstack("blox:wood_tinted 4", "extended", dye_color), recipe = { { dye_color, "default:wood", dye_color }, { "default:wood", "", "default:wood" }, { dye_color, "default:wood", dye_color }, } }) unifieddyes.register_color_craft({ output = "blox:wood_tinted", type = "shapeless", palette = "extended", neutral_node = "blox:wood_tinted", recipe = { "NEUTRAL_NODE", "MAIN_DYE" } }) else minetest.override_item("default:wood", { airbrush_replacement_node = "blox:wood_tinted", groups = {choppy = 2, oddly_breakable_by_hand = 2, flammable = 2, wood = 1, ud_param2_colorable = 1}, }) minetest.override_item("blox:wood_tinted", { drop = "default:wood", groups = {snappy=2,choppy=2,oddly_breakable_by_hand=2,flammable=3, not_in_creative_inventory = 1, ud_param2_colorable = 1}, }) unifieddyes.register_color_craft({ output = "blox:wood_tinted", type = "shapeless", palette = "extended", neutral_node = "default:wood", recipe = { "NEUTRAL_NODE", "MAIN_DYE" } }) end -- Other crafts for _, nodeclass in ipairs(NodeClass) do for _, material in ipairs(NodeMaterial) do local item = "blox:"..material.."_"..nodeclass unifieddyes.register_color_craft({ output = item, type = "shapeless", palette = "extended", neutral_node = item, recipe = { "NEUTRAL_NODE", "MAIN_DYE" } }) end end unifieddyes.register_color_craft({ output = "blox:stone_square", type = "shapeless", palette = "extended", neutral_node = "default:stone_block", recipe = { "NEUTRAL_NODE", "MAIN_DYE" } }) unifieddyes.register_color_craft({ output = "blox:stone_square", type = "shapeless", palette = "extended", neutral_node = "blox:stone_square", recipe = { "NEUTRAL_NODE", "MAIN_DYE" } }) unifieddyes.register_color_craft({ output = "blox:cobble_tinted", type = "shapeless", palette = "extended", neutral_node = "default:cobble", recipe = { "NEUTRAL_NODE", "MAIN_DYE" } }) unifieddyes.register_color_craft({ output = "blox:cobble_tinted", type = "shapeless", palette = "extended", neutral_node = "blox:cobble_tinted", recipe = { "NEUTRAL_NODE", "MAIN_DYE" } }) unifieddyes.register_color_craft({ output = "blox:stone_tinted", type = "shapeless", palette = "extended", neutral_node = "default:stone", recipe = { "NEUTRAL_NODE", "MAIN_DYE" } }) unifieddyes.register_color_craft({ output = "blox:stone_tinted", type = "shapeless", palette = "extended", neutral_node = "blox:stone_tinted", recipe = { "NEUTRAL_NODE", "MAIN_DYE" } }) minetest.register_craft({ output = 'blox:glowstone 2', recipe = { {"", 'blox:glowdust', ""}, {'blox:glowdust', 'default:stone', 'blox:glowdust'}, {"", 'blox:glowdust', ""}, } }) for _, material in ipairs(NodeMaterial) do local def_mat = "default:"..material unifieddyes.register_color_craft({ output = "blox:"..material.."_diamond 4", palette = "extended", neutral_node = def_mat, recipe = { { "NEUTRAL_NODE", "MAIN_DYE", "NEUTRAL_NODE" }, { "MAIN_DYE", "", "MAIN_DYE" }, { "NEUTRAL_NODE", "MAIN_DYE", "NEUTRAL_NODE" } } }) if not (moreblocks and material == "wood") then unifieddyes.register_color_craft({ output = "blox:"..material.."_quarter 4", palette = "extended", neutral_node = def_mat, recipe = { { "MAIN_DYE", "NEUTRAL_NODE" }, { "NEUTRAL_NODE", "MAIN_DYE" }, } }) end unifieddyes.register_color_craft({ output = "blox:"..material.."_cross 4", palette = "extended", neutral_node = def_mat, recipe = { { "NEUTRAL_NODE", "", "NEUTRAL_NODE" }, { "", "MAIN_DYE", "" }, { "NEUTRAL_NODE", "", "NEUTRAL_NODE" } } }) unifieddyes.register_color_craft({ output = "blox:"..material.."_corner 4", palette = "extended", neutral_node = def_mat, recipe = { { "MAIN_DYE", "", "MAIN_DYE" }, { "", "NEUTRAL_NODE", "" }, { "MAIN_DYE", "", "MAIN_DYE" } } }) if not (moreblocks and material == "stone") then unifieddyes.register_color_craft({ output = "blox:"..material.."_checker 6", palette = "extended", neutral_node = def_mat, recipe = { { "NEUTRAL_NODE", "MAIN_DYE", "NEUTRAL_NODE" }, { "MAIN_DYE", "NEUTRAL_NODE", "MAIN_DYE" }, { "NEUTRAL_NODE", "MAIN_DYE", "NEUTRAL_NODE" } } }) unifieddyes.register_color_craft({ output = "blox:"..material.."_checker 8", palette = "extended", neutral_node = def_mat, recipe = { { "MAIN_DYE", "NEUTRAL_NODE", "MAIN_DYE" }, { "NEUTRAL_NODE", "MAIN_DYE", "NEUTRAL_NODE" }, { "MAIN_DYE", "NEUTRAL_NODE", "MAIN_DYE" } } }) unifieddyes.register_color_craft({ output = "blox:"..material.."_loop 6", palette = "extended", neutral_node = def_mat, recipe = { { "NEUTRAL_NODE", "NEUTRAL_NODE", "NEUTRAL_NODE" }, { "NEUTRAL_NODE", "MAIN_DYE", "NEUTRAL_NODE" }, { "NEUTRAL_NODE", "NEUTRAL_NODE", "NEUTRAL_NODE" }, } }) end end --Fuel for _, nodeclass in ipairs(NodeClass) do minetest.register_craft({ type = "fuel", recipe = "blox:wood_"..nodeclass, burntime = 7, }) end minetest.register_craft({ type = "fuel", recipe = "blox:wood_tinted", burntime = 7, }) -- Tools minetest.register_tool("blox:bloodbane", { description = "Blood Bane", inventory_image = "blox_bloodbane.png", tool_capabilities = { full_punch_interval = 0.2, max_drop_level=1, groupcaps={ fleshy={times={[1]=0.001, [2]=0.001, [3]=0.001}, uses=0, maxlevel=3}, snappy={times={[1]=0.01, [2]=0.01, [3]=0.01}, uses=0, maxlevel=3}, crumbly={times={[1]=0.01, [2]=0.01, [3]=0.01}, uses=0, maxlevel=3}, cracky={times={[1]=0.01, [2]=0.01, [3]=0.01}, uses=0, maxlevel=3}, choppy={times={[1]=0.01, [2]=0.01, [3]=0.01}, uses=0, maxlevel=3} }, damage_groups = {fleshy=200}, } }) -- Ores local sea_level = 1 minetest.register_on_mapgen_init(function(mapgen_params) sea_level = mapgen_params.water_level end) minetest.register_ore({ ore_type = "scatter", ore = "blox:glowore", wherein = "default:stone", clust_scarcity = 36 * 36 * 36, clust_num_ores = 3, clust_size = 2, y_min = sea_level, y_max = 31000, }) minetest.register_ore({ ore_type = "scatter", ore = "blox:glowore", wherein = "default:stone", clust_scarcity = 14 * 14 * 14, clust_num_ores = 5, clust_size = 3, y_min = sea_level - 30, y_max = sea_level + 20, }) minetest.register_ore({ ore_type = "scatter", ore = "blox:glowore", wherein = "default:stone", clust_scarcity = 36 * 36 * 36, clust_num_ores = 3, clust_size = 2, y_min = -31000, y_max = sea_level - 1, }) print("Blox Mod [" ..version.. "] Loaded!")