123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388 |
- --Unified Bricks by Vsevolod Borislav (wowiamdiamonds)
- --
- --License: WTFPL
- --
- --Depends: default, bucket, unifieddyes, vessels
- --
- --Obviously, offers the same colors in unifieddyes.
- --Thanks go to VanessaE for making unifieddyes, gentextures.sh, etc.
- unifiedbricks = {}
- unifiedbricks.old_static_list = {}
- unifiedbricks.old_static_list_formals = {}
- minetest.register_alias("unifieddyes:white","unifieddyes:white_paint")
- minetest.register_alias("unifieddyes:lightgrey","unifieddyes:lightgrey_paint")
- minetest.register_alias("unifieddyes:grey","unifieddyes:grey_paint")
- minetest.register_alias("unifieddyes:darkgrey","unifieddyes:darkgrey_paint")
- HUES = {
- "red",
- "orange",
- "yellow",
- "lime",
- "green",
- "aqua",
- "cyan",
- "skyblue",
- "blue",
- "violet",
- "magenta",
- "redviolet",
- "black",
- "darkgrey",
- "grey",
- "lightgrey",
- "white"
- }
- TYPES = {
- "clayblock_",
- "clay_",
- "brick_",
- "brickblock_",
- "multicolor_"
- }
- SATURATION = {
- "_s50",
- ""
- }
- DARKNESS = {
- "dark_",
- "medium_",
- "",
- "light_"
- }
- --formal versions
- FORMALHUES = {
- "Red",
- "Orange",
- "Yellow",
- "Lime",
- "Green",
- "Aqua",
- "Cyan",
- "Sky blue",
- "Blue",
- "Violet",
- "Magenta",
- "Red violet",
- "Black",
- "Dark grey",
- "Grey",
- "Light grey",
- "White"
- }
- FORMALTYPES = {
- " clay",
- " clay lump",
- " brick",
- " bricks",
- " multicolor bricks"
- }
- FORMALSATURATION = {
- " (low saturation)",
- ""
- }
- FORMALDARKNESS = {
- "Dark ",
- "Medium ",
- "Bright ",
- "Light "
- }
- -- param2-coloring-enabled nodes
- minetest.register_node("unifiedbricks:brickblock", {
- description = "Brick Block",
- tiles = {
- "unifiedbricks_brickblock.png"
- },
- overlay_tiles = {
- { name = "unifiedbricks_mortar.png", color = "white" }
- },
- paramtype = "light",
- paramtype2 = "color",
- palette = "unifieddyes_palette_extended.png",
- is_ground_content = true,
- groups = {cracky=3, not_in_creative_inventory=1, ud_param2_colorable = 1},
- sounds = default.node_sound_stone_defaults(),
- on_construct = unifieddyes.on_construct,
- on_dig = unifieddyes.on_dig,
- })
- minetest.override_item("default:brick", {
- palette = "unifieddyes_palette_extended.png",
- airbrush_replacement_node = "unifiedbricks:brickblock",
- groups = {cracky = 3, ud_param2_colorable = 1},
- })
- minetest.register_node("unifiedbricks:clayblock", {
- description = "Clay Block",
- tiles = {
- "unifiedbricks_clayblock.png",
- },
- paramtype2 = "color",
- palette = "unifieddyes_palette_extended.png",
- is_ground_content = true,
- groups = {crumbly=3, not_in_creative_inventory=1, ud_param2_colorable = 1},
- sounds = default.node_sound_dirt_defaults({
- footstep = "",
- }),
- on_construct = unifieddyes.on_construct,
- on_dig = unifieddyes.on_dig,
- })
- minetest.override_item("default:clay", {
- palette = "unifieddyes_palette_extended.png",
- airbrush_replacement_node = "unifiedbricks:clayblock",
- groups = {crumbly = 3, ud_param2_colorable = 1},
- })
- minetest.register_node("unifiedbricks:brickblock_multicolor_dark", {
- description = "Brick block (dark multicolor)",
- tiles = {
- "unifiedbricks_brickblock_multicolor_dark.png",
- },
- overlay_tiles = {
- { name = "unifiedbricks_mortar2.png", color = "white" }
- },
- paramtype = "light",
- paramtype2 = "color",
- palette = "unifieddyes_palette_extended.png",
- is_ground_content = true,
- groups = {cracky=3, ud_param2_colorable = 1},
- sounds = default.node_sound_stone_defaults(),
- on_construct = unifieddyes.on_construct,
- on_dig = unifieddyes.on_dig,
- })
- minetest.register_node("unifiedbricks:brickblock_multicolor_medium", {
- description = "Brick block (medium multicolor)",
- tiles = {
- "unifiedbricks_brickblock_multicolor_medium.png"
- },
- overlay_tiles = {
- { name = "unifiedbricks_mortar3.png", color = "white" }
- },
- paramtype = "light",
- paramtype2 = "color",
- palette = "unifieddyes_palette_extended.png",
- is_ground_content = true,
- groups = {cracky=3, ud_param2_colorable = 1},
- sounds = default.node_sound_stone_defaults(),
- on_construct = unifieddyes.on_construct,
- on_dig = unifieddyes.on_dig,
- })
- minetest.register_node("unifiedbricks:brickblock_multicolor_light", {
- description = "Brick block (light multicolor)",
- tiles = {
- "unifiedbricks_brickblock_multicolor_light.png"
- },
- overlay_tiles = {
- { name = "unifiedbricks_mortar4.png", color = "white" }
- },
- paramtype = "light",
- paramtype2 = "color",
- palette = "unifieddyes_palette_extended.png",
- is_ground_content = true,
- groups = {cracky=3, ud_param2_colorable = 1},
- sounds = default.node_sound_stone_defaults(),
- on_construct = unifieddyes.on_construct,
- on_dig = unifieddyes.on_dig,
- })
- minetest.register_craft( {
- type = "shapeless",
- output = "unifiedbricks:brickblock_multicolor_dark",
- recipe = {
- "default:brick",
- "unifieddyes:grey",
- "unifieddyes:dark_grey",
- "unifieddyes:dark_grey"
- },
- })
- minetest.register_craft( {
- type = "shapeless",
- output = "unifiedbricks:brickblock_multicolor_medium",
- recipe = {
- "default:brick",
- "unifieddyes:white",
- "unifieddyes:grey",
- "unifieddyes:dark_grey"
- },
- })
- minetest.register_craft( {
- type = "shapeless",
- output = "unifiedbricks:brickblock_multicolor_light",
- recipe = {
- "default:brick",
- "unifieddyes:white",
- "unifieddyes:white",
- "unifieddyes:grey"
- },
- })
- unifieddyes.register_color_craft({
- output = "unifiedbricks:brickblock",
- palette = "extended",
- neutral_node = "default:brick",
- type = "shapeless",
- recipe = {
- "NEUTRAL_NODE",
- "MAIN_DYE"
- }
- })
- unifieddyes.register_color_craft({
- output = "unifiedbricks:clayblock",
- palette = "extended",
- neutral_node = "default:clay",
- type = "shapeless",
- recipe = {
- "NEUTRAL_NODE",
- "MAIN_DYE"
- }
- })
- unifieddyes.register_color_craft({
- output = "unifiedbricks:brickblock_multicolor_dark",
- palette = "extended",
- neutral_node = "unifiedbricks:brickblock_multicolor_dark",
- type = "shapeless",
- recipe = {
- "NEUTRAL_NODE",
- "MAIN_DYE"
- }
- })
- unifieddyes.register_color_craft({
- output = "unifiedbricks:brickblock_multicolor_medium",
- palette = "extended",
- neutral_node = "unifiedbricks:brickblock_multicolor_medium",
- type = "shapeless",
- recipe = {
- "NEUTRAL_NODE",
- "MAIN_DYE"
- }
- })
- unifieddyes.register_color_craft({
- output = "unifiedbricks:brickblock_multicolor_light",
- palette = "extended",
- neutral_node = "unifiedbricks:brickblock_multicolor_light",
- type = "shapeless",
- recipe = {
- "NEUTRAL_NODE",
- "MAIN_DYE"
- }
- })
- -- static nodes
- unifiedbricks.register_old_static_block = function(name, formalname, blocktype)
- table.insert(unifiedbricks.old_static_list, "unifiedbricks:"..blocktype.."_"..name)
- table.insert(unifiedbricks.old_static_list_formals, formalname)
- end
- for _, color in ipairs(HUES) do
- table.insert(unifiedbricks.old_static_list, "unifiedbricks:multicolor_dark_"..color)
- table.insert(unifiedbricks.old_static_list, "unifiedbricks:multicolor_medium_"..color)
- table.insert(unifiedbricks.old_static_list, "unifiedbricks:multicolor_light_"..color)
- end
- table.insert(unifiedbricks.old_static_list, "unifiedbricks:multicolor_darkgrey")
- table.insert(unifiedbricks.old_static_list, "unifiedbricks:multicolor_grey")
- table.insert(unifiedbricks.old_static_list, "unifiedbricks:multicolor_lightgrey")
- --REGISTERS ALL STATIC NODES EXCEPT MULTICOLOR BRICK BLOCKS
- for i = 1,17 do
- for j = 1,4 do
- if i > 12 then
- formalname = FORMALHUES[i]
- name = HUES[i]
- if j == 1 then
- unifiedbricks.register_old_static_block(name, formalname, "clayblock")
- elseif j == 4 then
- unifiedbricks.register_old_static_block(name, formalname, "brickblock")
- end
- else
- for k = 1,4 do
- if k == 4 then
- formalname = FORMALDARKNESS[k] .. FORMALHUES[i]
- name = DARKNESS[k] .. HUES[i]
- if j == 1 then
- unifiedbricks.register_old_static_block(name, formalname, "clayblock")
- elseif j == 4 then
- unifiedbricks.register_old_static_block(name, formalname, "brickblock")
- end
- else
- for l = 1,2 do
- formalname = FORMALDARKNESS[k] .. FORMALHUES[i] .. FORMALSATURATION[l]
- name = DARKNESS[k] .. HUES[i] .. SATURATION[l]
- if j == 1 then
- unifiedbricks.register_old_static_block(name, formalname, "clayblock")
- elseif j == 4 then
- unifiedbricks.register_old_static_block(name, formalname, "brickblock")
- end
- end
- end
- end
- end
- end
- end
- -- convert in-map static nodes to use param2 coloring
- minetest.register_lbm({
- name = "unifiedbricks:convert_brickblocks",
- label = "Convert clay blocks and single-color brick blocks to use param2 color",
- run_at_every_load = false,
- nodenames = unifiedbricks.old_static_list,
- action = function(pos, node)
- local name = node.name
- local t = string.find(name, "_")
- local type = string.sub(name, 1, t - 1)
- local color1 = string.sub(name, t + 1)
- local color2 = string.gsub(color1, "grey", "_grey")
- if color2 == "_grey" then color2 = "grey" end
- local paletteidx, hue = unifieddyes.getpaletteidx("unifieddyes:"..color2, "extended")
- if not paletteidx or not hue then return end
- if string.find(type, "multicolor") then
- local newpalette = (hue*8)+1
- local shade
- if string.find(name, "dark") then
- shade = "dark"
- elseif string.find(name, "medium")
- or name == "unifiedbricks:multicolor_grey" then
- shade = "medium"
- else
- shade = "light"
- end
- if string.find(name, "grey") then
- newpalette = 2
- end
- minetest.set_node(pos, { name = "unifiedbricks:brickblock_multicolor_"..shade, param2 = newpalette })
- elseif string.find(type, "brickblock") then
- minetest.set_node(pos, { name = "unifiedbricks:brickblock", param2 = paletteidx })
- elseif string.find(type, "clayblock") then
- minetest.set_node(pos, { name = "unifiedbricks:clayblock", param2 = paletteidx })
- end
- local meta = minetest.get_meta(pos)
- meta:set_string("dye", "unifieddyes:"..color1)
- meta:set_string("palette", "ext")
- end
- })
- print("[UnifiedBricks] Loaded!")
|