update unified dyes, solidcolor, and unifiedmesecons
@ -17,6 +17,17 @@ minetest.register_craft( {
|
||||
},
|
||||
})
|
||||
|
||||
unifieddyes.register_color_craft({
|
||||
output = "solidcolor:block",
|
||||
palette = "extended",
|
||||
type = "shapeless",
|
||||
neutral_node = "solidcolor:block",
|
||||
recipe = {
|
||||
"NEUTRAL_NODE",
|
||||
"MAIN_DYE"
|
||||
}
|
||||
})
|
||||
|
||||
minetest.register_lbm({
|
||||
name = "solidcolor:recolor",
|
||||
label = "Convert to new palette",
|
||||
|
@ -77,6 +77,10 @@ When given a `color` string (in the form of "dye:foo" or "unifieddyes:foo") and
|
||||
|
||||
This function, called in your node definition's on_construct, just sets the `palette = "ext"` metadata key for the node after it's been placed. This can then be read in an LBM to determine if this node needs to be converted from the old 89-color palette to the extended 256-color palette. Although it is good practice to call this for any node that uses the 256-color palette, it isn't actually necessary as long as the node has never used the 89-color palette, and won't be subjected to an LBM that changes its color.
|
||||
|
||||
**`unifieddyes.make_colored_itemstack(itemstack, palette, color)`**
|
||||
|
||||
Makes a colored itemstack out of the given `itemstack` and `color` (as a dye, e.g. "dye:dark_red_s50", setting the correct index per the `palette` field, which works as described above for `unifieddyes.getpaletteidx()`. Said itemstack is returned as a string suitable for use as the output field of a craft recipe, equal in size to the itemstack passed into the function (e.g. if you give it "mymod:colored_node 7", it'll return a stack of 7 colored items).
|
||||
|
||||
#### Tables
|
||||
|
||||
In addition to the above API calls, Unified Dyes provides several useful tables
|
||||
|
@ -198,7 +198,7 @@ function unifieddyes.make_colored_itemstack(item, palette, color)
|
||||
local paletteidx = unifieddyes.getpaletteidx(color, palette)
|
||||
local stack = ItemStack(item)
|
||||
stack:get_meta():set_int("palette_index", paletteidx)
|
||||
return stack:to_string()
|
||||
return stack:to_string(),paletteidx
|
||||
end
|
||||
|
||||
-- if your node was once 89-color and uses an LBM to convert to the 256-color palette,
|
||||
@ -225,7 +225,6 @@ local function register_c(craft, hue, sat, val)
|
||||
end
|
||||
|
||||
local dye = "dye:"..color
|
||||
|
||||
local recipe = minetest.serialize(craft.recipe)
|
||||
recipe = string.gsub(recipe, "MAIN_DYE", dye)
|
||||
recipe = string.gsub(recipe, "NEUTRAL_NODE", craft.neutral_node)
|
||||
@ -265,6 +264,8 @@ function unifieddyes.register_color_craft(craft)
|
||||
local greys_table = unifieddyes.GREYS
|
||||
|
||||
if craft.palette == "wallmounted" then
|
||||
register_c(craft, "green", "", "light_")
|
||||
register_c(craft, "azure", "", "")
|
||||
hues_table = unifieddyes.HUES_WALLMOUNTED
|
||||
sats_table = {""}
|
||||
vals_table = unifieddyes.VALS
|
||||
@ -411,6 +412,7 @@ function unifieddyes.getpaletteidx(color, palette_type)
|
||||
local aliases = {
|
||||
["pink"] = "light_red",
|
||||
["brown"] = "medium_orange",
|
||||
["azure"] = "light_blue"
|
||||
}
|
||||
|
||||
local grayscale = {
|
||||
@ -585,9 +587,10 @@ function unifieddyes.getpaletteidx(color, palette_type)
|
||||
end
|
||||
|
||||
if palette_type == "wallmounted" then
|
||||
if color == "brown" then return 48,1
|
||||
if color == "green" and shade == "light" then return 48,3
|
||||
elseif color == "brown" then return 17,1
|
||||
elseif color == "pink" then return 56,7
|
||||
elseif color == "blue" and shade == "light" then return 40,5
|
||||
elseif color == "azure" then return 40,5
|
||||
elseif hues_wallmounted[color] and shades_wallmounted[shade] then
|
||||
return (shades_wallmounted[shade] * 64 + hues_wallmounted[color] * 8), hues_wallmounted[color]
|
||||
end
|
||||
@ -599,7 +602,20 @@ function unifieddyes.getpaletteidx(color, palette_type)
|
||||
color = "red"
|
||||
shade = "light"
|
||||
end
|
||||
if palette_type == true then -- it's colorfacedir
|
||||
if palette_type == true then -- it's colorfacedir, so "split" 89-color palette
|
||||
|
||||
-- If using this palette, translate new color names back to old.
|
||||
|
||||
if shade == "" then
|
||||
if color == "spring" then
|
||||
color = "aqua"
|
||||
elseif color == "azure" then
|
||||
color = "skyblue"
|
||||
elseif color == "rose" then
|
||||
color = "redviolet"
|
||||
end
|
||||
end
|
||||
|
||||
if hues[color] and shades[shade] then
|
||||
return (shades[shade] * 32), hues[color]
|
||||
end
|
||||
@ -607,10 +623,7 @@ function unifieddyes.getpaletteidx(color, palette_type)
|
||||
if hues_extended[color] and shades_extended[shade] then
|
||||
return (hues_extended[color] + shades_extended[shade]*24), hues_extended[color]
|
||||
end
|
||||
else -- it's the 89-color palette
|
||||
|
||||
-- If using this palette, translate new color names back to old.
|
||||
|
||||
else -- it's the regular 89-color palette, do the same translation if needed
|
||||
if shade == "" then
|
||||
if color == "spring" then
|
||||
color = "aqua"
|
||||
@ -938,10 +951,16 @@ minetest.register_alias("unifieddyes:carbon_black", "dye:black")
|
||||
-- note that technically, lime should be aliased, but can't be (there IS
|
||||
-- lime in the new color table, it's just shifted up a bit)
|
||||
|
||||
minetest.register_alias("unifieddyes:aqua", "unifieddyes:spring")
|
||||
minetest.register_alias("unifieddyes:skyblue", "unifieddyes:azure")
|
||||
minetest.register_alias("unifieddyes:redviolet", "unifieddyes:rose")
|
||||
minetest.register_alias("unifieddyes:brown", "dye:brown")
|
||||
minetest.register_alias("unifieddyes:aqua", "dye:spring")
|
||||
minetest.register_alias("dye:aqua", "dye:spring")
|
||||
|
||||
minetest.register_alias("unifieddyes:skyblue", "dye:azure")
|
||||
minetest.register_alias("dye:skyblue", "dye:azure")
|
||||
|
||||
minetest.register_alias("unifieddyes:redviolet", "dye:rose")
|
||||
minetest.register_alias("dye:redviolet", "dye:rose")
|
||||
|
||||
minetest.register_alias("unifieddyes:brown", "dye:brown")
|
||||
|
||||
print(S("[UnifiedDyes] Loaded!"))
|
||||
|
||||
|
Before Width: | Height: | Size: 136 B After Width: | Height: | Size: 136 B |
@ -11,7 +11,13 @@ local hues = {
|
||||
"violet",
|
||||
"magenta",
|
||||
"redviolet",
|
||||
"grey"
|
||||
"pink",
|
||||
"dark_green",
|
||||
"brown",
|
||||
"black",
|
||||
"dark_grey",
|
||||
"grey",
|
||||
"white",
|
||||
}
|
||||
|
||||
local function insulated_wire_get_rules(node)
|
||||
@ -55,11 +61,21 @@ minetest.unregister_item("mesecons_extrawires:corner_on")
|
||||
minetest.unregister_item("mesecons_extrawires:tjunction_off")
|
||||
minetest.unregister_item("mesecons_extrawires:tjunction_on")
|
||||
|
||||
minetest.register_alias("mesecons_insulated:insulated_off", "mesecons_insulated:insulated_grey_off")
|
||||
minetest.register_alias("mesecons_extrawires:corner_off", "mesecons_extrawires:insulated_corner_grey_off")
|
||||
minetest.register_alias("mesecons_extrawires:tjunction_off", "mesecons_extrawires:insulated_tjunction_grey_off")
|
||||
minetest.register_alias("mesecons_insulated:insulated_off", "mesecons_insulated:insulated_white_off")
|
||||
minetest.register_alias("mesecons_extrawires:corner_off", "mesecons_extrawires:insulated_corner_white_off")
|
||||
minetest.register_alias("mesecons_extrawires:tjunction_off", "mesecons_extrawires:insulated_tjunction_white_off")
|
||||
|
||||
for _,color in pairs(hues) do
|
||||
local palettecolor = color
|
||||
if color == "black" or string.find(color, "grey") or color == "white" then
|
||||
palettecolor = "grey"
|
||||
elseif color == "pink" then
|
||||
palettecolor = "red"
|
||||
elseif color == "dark_green" then
|
||||
palettecolor = "green"
|
||||
elseif color == "brown" then
|
||||
palettecolor = "orange"
|
||||
end
|
||||
mesecon.register_node(":mesecons_insulated:insulated_"..color, {
|
||||
drawtype = "nodebox",
|
||||
description = "Insulated Mesecon",
|
||||
@ -68,8 +84,8 @@ for _,color in pairs(hues) do
|
||||
walkable = false,
|
||||
sunlight_propagates = true,
|
||||
on_place = minetest.rotate_node,
|
||||
drop = "mesecons_insulated:insulated_grey_off",
|
||||
palette = "unifieddyes_palette_"..color.."s.png",
|
||||
drop = "mesecons_insulated:insulated_white_off",
|
||||
palette = "unifieddyes_palette_"..palettecolor.."s.png",
|
||||
selection_box = {
|
||||
type = "fixed",
|
||||
fixed = { -16/32-0.001, -18/32, -7/32, 16/32+0.001, -12/32, 7/32 }
|
||||
@ -80,7 +96,7 @@ for _,color in pairs(hues) do
|
||||
},
|
||||
},
|
||||
{
|
||||
groups = {dig_immediate = 3,ud_param2_colorable = 1,not_in_creative_inventory = (color~="grey" and 1 or nil)},
|
||||
groups = {dig_immediate = 3,not_in_creative_inventory = (color~="white" and 1 or nil)},
|
||||
mesecons = {conductor = {
|
||||
state = mesecon.state.off,
|
||||
onstate = "mesecons_insulated:insulated_"..color.."_on",
|
||||
@ -96,7 +112,7 @@ for _,color in pairs(hues) do
|
||||
},
|
||||
},
|
||||
{
|
||||
groups = {dig_immediate = 3,not_in_creative_inventory = 1,ud_param2_colorable = 1},
|
||||
groups = {dig_immediate = 3,not_in_creative_inventory = 1},
|
||||
mesecons = {conductor = {
|
||||
state = mesecon.state.on,
|
||||
offstate = "mesecons_insulated:insulated_"..color.."_off",
|
||||
@ -119,8 +135,8 @@ for _,color in pairs(hues) do
|
||||
walkable = false,
|
||||
sunlight_propagates = true,
|
||||
on_place = minetest.rotate_node,
|
||||
drop = "mesecons_extrawires:insulated_corner_grey_off",
|
||||
palette = "unifieddyes_palette_"..color.."s.png",
|
||||
drop = "mesecons_extrawires:insulated_corner_white_off",
|
||||
palette = "unifieddyes_palette_"..palettecolor.."s.png",
|
||||
selection_box = {
|
||||
type = "fixed",
|
||||
fixed = { -16/32-0.001, -18/32, -16/32, 5/32, -12/32, 5/32 },
|
||||
@ -132,7 +148,7 @@ for _,color in pairs(hues) do
|
||||
},
|
||||
},
|
||||
{
|
||||
groups = {dig_immediate = 3,ud_param2_colorable = 1,not_in_creative_inventory = (color~="grey" and 1 or nil)},
|
||||
groups = {dig_immediate = 3,not_in_creative_inventory = (color~="white" and 1 or nil)},
|
||||
mesecons = {conductor = {
|
||||
state = mesecon.state.off,
|
||||
onstate = "mesecons_extrawires:insulated_corner_"..color.."_on",
|
||||
@ -148,7 +164,7 @@ for _,color in pairs(hues) do
|
||||
},
|
||||
},
|
||||
{
|
||||
groups = {dig_immediate = 3,not_in_creative_inventory = 1,ud_param2_colorable = 1},
|
||||
groups = {dig_immediate = 3,not_in_creative_inventory = 1},
|
||||
mesecons = {conductor = {
|
||||
state = mesecon.state.on,
|
||||
offstate = "mesecons_extrawires:insulated_corner_"..color.."_off",
|
||||
@ -171,8 +187,8 @@ for _,color in pairs(hues) do
|
||||
walkable = false,
|
||||
sunlight_propagates = true,
|
||||
on_place = minetest.rotate_node,
|
||||
drop = "mesecons_extrawires:insulated_tjunction_grey_off",
|
||||
palette = "unifieddyes_palette_"..color.."s.png",
|
||||
drop = "mesecons_extrawires:insulated_tjunction_white_off",
|
||||
palette = "unifieddyes_palette_"..palettecolor.."s.png",
|
||||
node_box = {
|
||||
type = "fixed",
|
||||
fixed = {{ -16/32-0.001, -17/32, -3/32, 16/32+0.001, -13/32, 3/32 },
|
||||
@ -184,7 +200,7 @@ for _,color in pairs(hues) do
|
||||
},
|
||||
},
|
||||
{
|
||||
groups = {dig_immediate = 3,ud_param2_colorable = 1,not_in_creative_inventory = (color~="grey" and 1 or nil)},
|
||||
groups = {dig_immediate = 3,not_in_creative_inventory = (color~="white" and 1 or nil)},
|
||||
mesecons = {conductor = {
|
||||
state = mesecon.state.off,
|
||||
onstate = "mesecons_extrawires:insulated_tjunction_"..color.."_on",
|
||||
@ -200,7 +216,7 @@ for _,color in pairs(hues) do
|
||||
},
|
||||
},
|
||||
{
|
||||
groups = {dig_immediate = 3,not_in_creative_inventory = 1,ud_param2_colorable = 1},
|
||||
groups = {dig_immediate = 3,not_in_creative_inventory = 1},
|
||||
mesecons = {conductor = {
|
||||
state = mesecon.state.on,
|
||||
offstate = "mesecons_extrawires:insulated_tjunction_"..color.."_off",
|
||||
@ -284,25 +300,25 @@ minetest.register_lbm({
|
||||
})
|
||||
|
||||
minetest.register_craft({
|
||||
output = "mesecons_extrawires:insulated_corner_grey_off 3",
|
||||
output = "mesecons_extrawires:insulated_corner_white_off 3",
|
||||
recipe = {
|
||||
{"", "", ""},
|
||||
{"mesecons_insulated:insulated_grey_off", "mesecons_insulated:insulated_grey_off", ""},
|
||||
{"", "mesecons_insulated:insulated_grey_off", ""},
|
||||
{"mesecons_insulated:insulated_white_off", "mesecons_insulated:insulated_white_off", ""},
|
||||
{"", "mesecons_insulated:insulated_white_off", ""},
|
||||
}
|
||||
})
|
||||
|
||||
minetest.register_craft({
|
||||
output = "mesecons_extrawires:insulated_tjunction_grey_off 3",
|
||||
output = "mesecons_extrawires:insulated_tjunction_white_off 3",
|
||||
recipe = {
|
||||
{"", "", ""},
|
||||
{"mesecons_insulated:insulated_grey_off", "mesecons_insulated:insulated_grey_off", "mesecons_insulated:insulated_grey_off"},
|
||||
{"", "mesecons_insulated:insulated_grey_off", ""},
|
||||
{"mesecons_insulated:insulated_white_off", "mesecons_insulated:insulated_white_off", "mesecons_insulated:insulated_white_off"},
|
||||
{"", "mesecons_insulated:insulated_white_off", ""},
|
||||
}
|
||||
})
|
||||
|
||||
minetest.register_craft({
|
||||
output = "mesecons_insulated:insulated_grey_off 3",
|
||||
output = "mesecons_insulated:insulated_white_off 3",
|
||||
recipe = {
|
||||
{"mesecons_materials:fiber", "mesecons_materials:fiber", "mesecons_materials:fiber"},
|
||||
{"mesecons:wire_00000000_off", "mesecons:wire_00000000_off", "mesecons:wire_00000000_off"},
|
||||
@ -314,14 +330,14 @@ minetest.register_craft({
|
||||
type = "shapeless",
|
||||
output = "mesecons_extrawires:crossover_off",
|
||||
recipe = {
|
||||
"mesecons_insulated:insulated_grey_off",
|
||||
"mesecons_insulated:insulated_grey_off",
|
||||
"mesecons_insulated:insulated_white_off",
|
||||
"mesecons_insulated:insulated_white_off",
|
||||
},
|
||||
})
|
||||
|
||||
minetest.register_craft({
|
||||
type = "shapeless",
|
||||
output = "mesecons_insulated:insulated_grey_off 2",
|
||||
output = "mesecons_insulated:insulated_white_off 2",
|
||||
recipe = {
|
||||
"mesecons_extrawires:crossover_off",
|
||||
},
|
||||
@ -332,8 +348,115 @@ if minetest.get_modpath("digilines") then
|
||||
output = 'digilines:wire_std_00000000 2',
|
||||
recipe = {
|
||||
{'mesecons_materials:fiber', 'mesecons_materials:fiber', 'mesecons_materials:fiber'},
|
||||
{'mesecons_insulated:insulated_grey_off', 'mesecons_insulated:insulated_grey_off', 'default:gold_ingot'},
|
||||
{'mesecons_insulated:insulated_white_off', 'mesecons_insulated:insulated_white_off', 'default:gold_ingot'},
|
||||
{'mesecons_materials:fiber', 'mesecons_materials:fiber', 'mesecons_materials:fiber'},
|
||||
}
|
||||
})
|
||||
end
|
||||
|
||||
for _,color in pairs(hues) do
|
||||
if color ~= "white" then
|
||||
local dye = "dye:"..color
|
||||
minetest.register_craft({
|
||||
output = unifieddyes.make_colored_itemstack(
|
||||
"mesecons_extrawires:insulated_corner_"..color.."_off 3",
|
||||
true,
|
||||
dye),
|
||||
recipe = {
|
||||
{"", dye, ""},
|
||||
{"mesecons_insulated:insulated_white_off", "mesecons_insulated:insulated_white_off", ""},
|
||||
{"", "mesecons_insulated:insulated_white_off", ""},
|
||||
}
|
||||
})
|
||||
|
||||
minetest.register_craft({
|
||||
output = unifieddyes.make_colored_itemstack(
|
||||
"mesecons_extrawires:insulated_tjunction_"..color.."_off 3",
|
||||
true,
|
||||
dye),
|
||||
recipe = {
|
||||
{"", dye, ""},
|
||||
{"mesecons_insulated:insulated_white_off", "mesecons_insulated:insulated_white_off", "mesecons_insulated:insulated_white_off"},
|
||||
{"", "mesecons_insulated:insulated_white_off", ""},
|
||||
}
|
||||
})
|
||||
|
||||
minetest.register_craft({
|
||||
type = "shapeless",
|
||||
output = unifieddyes.make_colored_itemstack(
|
||||
"mesecons_insulated:insulated_"..color.."_off",
|
||||
true,
|
||||
dye),
|
||||
recipe = {
|
||||
dye,
|
||||
"mesecons_insulated:insulated_white_off",
|
||||
},
|
||||
})
|
||||
|
||||
minetest.register_craft({
|
||||
output = unifieddyes.make_colored_itemstack(
|
||||
"mesecons_extrawires:insulated_corner_"..color.."_off",
|
||||
true,
|
||||
dye),
|
||||
type = "shapeless",
|
||||
recipe = {
|
||||
dye,
|
||||
"mesecons_extrawires:insulated_corner_white_off"
|
||||
}
|
||||
})
|
||||
|
||||
minetest.register_craft({
|
||||
output = unifieddyes.make_colored_itemstack(
|
||||
"mesecons_extrawires:insulated_tjunction_"..color.."_off",
|
||||
true,
|
||||
dye),
|
||||
type = "shapeless",
|
||||
recipe = {
|
||||
dye,
|
||||
"mesecons_extrawires:insulated_tjunction_white_off"
|
||||
}
|
||||
})
|
||||
end
|
||||
end
|
||||
|
||||
for _,color in pairs(hues) do -- allow re-dying of grey wires since they're so lightly-shaded.
|
||||
if color ~= "grey" then
|
||||
local dye = "dye:"..color
|
||||
|
||||
minetest.register_craft({
|
||||
type = "shapeless",
|
||||
output = unifieddyes.make_colored_itemstack(
|
||||
"mesecons_insulated:insulated_"..color.."_off",
|
||||
true,
|
||||
dye),
|
||||
recipe = {
|
||||
dye,
|
||||
"mesecons_insulated:insulated_grey_off",
|
||||
},
|
||||
})
|
||||
|
||||
minetest.register_craft({
|
||||
output = unifieddyes.make_colored_itemstack(
|
||||
"mesecons_extrawires:insulated_corner_"..color.."_off",
|
||||
true,
|
||||
dye),
|
||||
type = "shapeless",
|
||||
recipe = {
|
||||
dye,
|
||||
"mesecons_extrawires:insulated_corner_grey_off"
|
||||
}
|
||||
})
|
||||
|
||||
minetest.register_craft({
|
||||
output = unifieddyes.make_colored_itemstack(
|
||||
"mesecons_extrawires:insulated_tjunction_"..color.."_off",
|
||||
true,
|
||||
dye),
|
||||
type = "shapeless",
|
||||
recipe = {
|
||||
dye,
|
||||
"mesecons_extrawires:insulated_tjunction_grey_off"
|
||||
}
|
||||
})
|
||||
end
|
||||
end
|
||||
|
Before Width: | Height: | Size: 629 B After Width: | Height: | Size: 435 B |
Before Width: | Height: | Size: 467 B After Width: | Height: | Size: 246 B |
Before Width: | Height: | Size: 613 B After Width: | Height: | Size: 429 B |
Before Width: | Height: | Size: 462 B After Width: | Height: | Size: 243 B |