expand old split-89 palette to 176 colors
(by adding more hues, now has all 24 in 7 shades each plus 5 greys)
110
init.lua
@ -41,26 +41,6 @@ else
|
|||||||
S = function(s) return s end
|
S = function(s) return s end
|
||||||
end
|
end
|
||||||
|
|
||||||
-- helper functions for other mods that use this one
|
|
||||||
|
|
||||||
unifieddyes.HUES = {
|
|
||||||
"red",
|
|
||||||
"orange",
|
|
||||||
"yellow",
|
|
||||||
"lime",
|
|
||||||
"green",
|
|
||||||
"aqua",
|
|
||||||
"cyan",
|
|
||||||
"skyblue",
|
|
||||||
"blue",
|
|
||||||
"violet",
|
|
||||||
"magenta",
|
|
||||||
"redviolet"
|
|
||||||
}
|
|
||||||
|
|
||||||
unifieddyes.HUES_WITH_GREY = table.copy(unifieddyes.HUES)
|
|
||||||
table.insert(unifieddyes.HUES_WITH_GREY, "grey")
|
|
||||||
|
|
||||||
-- the names of the various colors here came from http://www.procato.com/rgb+index/
|
-- the names of the various colors here came from http://www.procato.com/rgb+index/
|
||||||
|
|
||||||
unifieddyes.HUES_EXTENDED = {
|
unifieddyes.HUES_EXTENDED = {
|
||||||
@ -90,6 +70,13 @@ unifieddyes.HUES_EXTENDED = {
|
|||||||
{ "crimson", 0xff, 0x00, 0x40 }
|
{ "crimson", 0xff, 0x00, 0x40 }
|
||||||
}
|
}
|
||||||
|
|
||||||
|
unifieddyes.HUES_WITH_GREY = {}
|
||||||
|
|
||||||
|
for _,i in ipairs(unifieddyes.HUES_EXTENDED) do
|
||||||
|
table.insert(unifieddyes.HUES_WITH_GREY, i[1])
|
||||||
|
end
|
||||||
|
table.insert(unifieddyes.HUES_WITH_GREY, "grey")
|
||||||
|
|
||||||
unifieddyes.HUES_WALLMOUNTED = {
|
unifieddyes.HUES_WALLMOUNTED = {
|
||||||
"red",
|
"red",
|
||||||
"orange",
|
"orange",
|
||||||
@ -162,8 +149,6 @@ unifieddyes.player_last_right_clicked = {}
|
|||||||
unifieddyes.palette_has_color = {}
|
unifieddyes.palette_has_color = {}
|
||||||
unifieddyes.player_showall = {}
|
unifieddyes.player_showall = {}
|
||||||
|
|
||||||
-- unifieddyes.player_last_right_clicked[placer:get_player_name()] = {pos = pos, node = node, def = def}
|
|
||||||
|
|
||||||
-- if a node with a palette is placed in the world,
|
-- if a node with a palette is placed in the world,
|
||||||
-- but the itemstack used to place it has no palette_index (color byte),
|
-- but the itemstack used to place it has no palette_index (color byte),
|
||||||
-- create something appropriate to make it officially white.
|
-- create something appropriate to make it officially white.
|
||||||
@ -238,6 +223,7 @@ end
|
|||||||
-- This helper function creates a colored itemstack
|
-- This helper function creates a colored itemstack
|
||||||
|
|
||||||
function unifieddyes.make_colored_itemstack(item, palette, color)
|
function unifieddyes.make_colored_itemstack(item, palette, color)
|
||||||
|
print(item, palette, color)
|
||||||
local paletteidx = unifieddyes.getpaletteidx(color, palette)
|
local paletteidx = unifieddyes.getpaletteidx(color, palette)
|
||||||
local stack = ItemStack(item)
|
local stack = ItemStack(item)
|
||||||
stack:get_meta():set_int("palette_index", paletteidx)
|
stack:get_meta():set_int("palette_index", paletteidx)
|
||||||
@ -247,13 +233,15 @@ end
|
|||||||
-- these helper functions register all of the recipes needed to create colored
|
-- these helper functions register all of the recipes needed to create colored
|
||||||
-- nodes with any of the dyes supported by that node's palette.
|
-- nodes with any of the dyes supported by that node's palette.
|
||||||
|
|
||||||
local function register_c(craft, hue, sat, val)
|
local function register_c(craft, h, sat, val)
|
||||||
|
local hue = (type(h) == "table") and h[1] or h
|
||||||
|
print(craft.output, craft.output_prefix, craft.output_suffix, h, hue, sat, val)
|
||||||
local color = ""
|
local color = ""
|
||||||
if val then
|
if val then
|
||||||
if craft.palette ~= "extended" then
|
if craft.palette == "wallmounted" then
|
||||||
color = val..hue..sat
|
color = val..hue..sat
|
||||||
else
|
else
|
||||||
color = val..hue[1]..sat
|
color = val..hue..sat
|
||||||
end
|
end
|
||||||
else
|
else
|
||||||
color = hue -- if val is nil, then it's grey.
|
color = hue -- if val is nil, then it's grey.
|
||||||
@ -294,7 +282,7 @@ local function register_c(craft, hue, sat, val)
|
|||||||
end
|
end
|
||||||
|
|
||||||
function unifieddyes.register_color_craft(craft)
|
function unifieddyes.register_color_craft(craft)
|
||||||
local hues_table = unifieddyes.HUES
|
local hues_table = unifieddyes.HUES_EXTENDED
|
||||||
local sats_table = unifieddyes.SATS
|
local sats_table = unifieddyes.SATS
|
||||||
local vals_table = unifieddyes.VALS
|
local vals_table = unifieddyes.VALS
|
||||||
local greys_table = unifieddyes.GREYS
|
local greys_table = unifieddyes.GREYS
|
||||||
@ -306,7 +294,6 @@ function unifieddyes.register_color_craft(craft)
|
|||||||
sats_table = {""}
|
sats_table = {""}
|
||||||
vals_table = unifieddyes.VALS
|
vals_table = unifieddyes.VALS
|
||||||
elseif craft.palette == "extended" then
|
elseif craft.palette == "extended" then
|
||||||
hues_table = unifieddyes.HUES_EXTENDED
|
|
||||||
vals_table = unifieddyes.VALS_EXTENDED
|
vals_table = unifieddyes.VALS_EXTENDED
|
||||||
greys_table = unifieddyes.GREYS_EXTENDED
|
greys_table = unifieddyes.GREYS_EXTENDED
|
||||||
end
|
end
|
||||||
@ -391,10 +378,10 @@ end
|
|||||||
function unifieddyes.get_hsv(name) -- expects a node/item name
|
function unifieddyes.get_hsv(name) -- expects a node/item name
|
||||||
local hue = ""
|
local hue = ""
|
||||||
local a,b
|
local a,b
|
||||||
for _, i in ipairs(unifieddyes.HUES) do
|
for _, i in ipairs(unifieddyes.HUES_EXTENDED) do
|
||||||
a,b = string.find(name, "_"..i)
|
a,b = string.find(name, "_"..i[1])
|
||||||
if a and not ( string.find(name, "_redviolet") and i == "red" ) then
|
if a then
|
||||||
hue = i
|
hue = i[1]
|
||||||
break
|
break
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
@ -424,9 +411,10 @@ end
|
|||||||
-- in the function below, color is just a color string, while
|
-- in the function below, color is just a color string, while
|
||||||
-- palette_type can be:
|
-- palette_type can be:
|
||||||
--
|
--
|
||||||
-- "split" = 89 color palette split into pieces for colorfacedir
|
|
||||||
-- "wallmounted" = 32-color abridged palette
|
|
||||||
-- "extended" = 256 color palette
|
-- "extended" = 256 color palette
|
||||||
|
-- "split" = 200 color palette split into pieces for colorfacedir
|
||||||
|
-- "wallmounted" = 32-color abridged palette
|
||||||
|
|
||||||
|
|
||||||
function unifieddyes.getpaletteidx(color, palette_type)
|
function unifieddyes.getpaletteidx(color, palette_type)
|
||||||
|
|
||||||
@ -475,24 +463,6 @@ function unifieddyes.getpaletteidx(color, palette_type)
|
|||||||
["black"] = 4,
|
["black"] = 4,
|
||||||
}
|
}
|
||||||
|
|
||||||
local hues = {
|
|
||||||
["red"] = 1,
|
|
||||||
["orange"] = 2,
|
|
||||||
["yellow"] = 3,
|
|
||||||
["lime"] = 4,
|
|
||||||
["green"] = 5,
|
|
||||||
["aqua"] = 6,
|
|
||||||
["spring"] = 6,
|
|
||||||
["cyan"] = 7,
|
|
||||||
["skyblue"] = 8,
|
|
||||||
["azure"] = 8,
|
|
||||||
["blue"] = 9,
|
|
||||||
["violet"] = 10,
|
|
||||||
["magenta"] = 11,
|
|
||||||
["redviolet"] = 12,
|
|
||||||
["rose"] = 12,
|
|
||||||
}
|
|
||||||
|
|
||||||
local hues_extended = {
|
local hues_extended = {
|
||||||
["red"] = 0,
|
["red"] = 0,
|
||||||
["vermilion"] = 1,
|
["vermilion"] = 1,
|
||||||
@ -627,19 +597,8 @@ function unifieddyes.getpaletteidx(color, palette_type)
|
|||||||
shade = "light"
|
shade = "light"
|
||||||
end
|
end
|
||||||
if palette_type == "split" then -- it's colorfacedir
|
if palette_type == "split" then -- it's colorfacedir
|
||||||
|
if hues_extended[color] and shades[shade] then
|
||||||
-- If using this palette, translate new color names back to old.
|
return (shades[shade] * 32), hues_extended[color]+1
|
||||||
|
|
||||||
if color == "spring" then
|
|
||||||
color = "aqua"
|
|
||||||
elseif color == "azure" then
|
|
||||||
color = "skyblue"
|
|
||||||
elseif color == "rose" then
|
|
||||||
color = "redviolet"
|
|
||||||
end
|
|
||||||
|
|
||||||
if hues[color] and shades[shade] then
|
|
||||||
return (shades[shade] * 32), hues[color]
|
|
||||||
end
|
end
|
||||||
elseif palette_type == "extended" then
|
elseif palette_type == "extended" then
|
||||||
if hues_extended[color] and shades_extended[shade] then
|
if hues_extended[color] and shades_extended[shade] then
|
||||||
@ -730,7 +689,7 @@ function unifieddyes.on_airbrush(itemstack, player, pointed_thing)
|
|||||||
newcolor = string.sub(painting_with, 5)
|
newcolor = string.sub(painting_with, 5)
|
||||||
else
|
else
|
||||||
if hue ~= 0 then
|
if hue ~= 0 then
|
||||||
newcolor = unifieddyes.HUES[hue]
|
newcolor = unifieddyes.HUES_EXTENDED[hue][1]
|
||||||
else
|
else
|
||||||
newcolor = "grey"
|
newcolor = "grey"
|
||||||
end
|
end
|
||||||
@ -743,10 +702,6 @@ function unifieddyes.on_airbrush(itemstack, player, pointed_thing)
|
|||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
if newcolor == "spring" then newcolor = "aqua"
|
|
||||||
elseif newcolor == "azure" then newcolor = "skyblue"
|
|
||||||
elseif newcolor == "rose" then newcolor = "redviolet"
|
|
||||||
end
|
|
||||||
name = modname..":"..string.gsub(nodename2, oldcolor, newcolor)
|
name = modname..":"..string.gsub(nodename2, oldcolor, newcolor)
|
||||||
|
|
||||||
if not minetest.registered_items[name] then
|
if not minetest.registered_items[name] then
|
||||||
@ -813,7 +768,7 @@ function unifieddyes.color_to_name(param2, def)
|
|||||||
local h = color - v * 8
|
local h = color - v * 8
|
||||||
return unifieddyes.VALS[v]..unifieddyes.HUES_WALLMOUNTED[h+1]
|
return unifieddyes.VALS[v]..unifieddyes.HUES_WALLMOUNTED[h+1]
|
||||||
|
|
||||||
elseif string.find(def.palette, "unifieddyes_palette") then -- it's the "split" 89-color palette
|
elseif string.find(def.palette, "unifieddyes_palette") then -- it's the split palette
|
||||||
-- palette names in this mode are always "unifieddyes_palette_COLORs.png"
|
-- palette names in this mode are always "unifieddyes_palette_COLORs.png"
|
||||||
|
|
||||||
local s = string.sub(def.palette, 21)
|
local s = string.sub(def.palette, 21)
|
||||||
@ -1206,14 +1161,6 @@ for _, h in ipairs(unifieddyes.HUES_EXTENDED) do
|
|||||||
end
|
end
|
||||||
end
|
end
|
||||||
minetest.register_alias("unifieddyes:"..val..hue, "dye:"..val..hue)
|
minetest.register_alias("unifieddyes:"..val..hue, "dye:"..val..hue)
|
||||||
if h[1] == "spring" then
|
|
||||||
minetest.register_alias("unifieddyes:"..val.."aqua", "dye:"..val.."spring")
|
|
||||||
elseif h[1] == "azure" then
|
|
||||||
minetest.register_alias("unifieddyes:"..val.."skyblue", "dye:"..val.."azure")
|
|
||||||
elseif h[1] == "rose" then
|
|
||||||
minetest.register_alias("unifieddyes:"..val.."redviolet", "dye:"..val.."rose")
|
|
||||||
end
|
|
||||||
|
|
||||||
|
|
||||||
if v > 3 then -- also register the low-sat version
|
if v > 3 then -- also register the low-sat version
|
||||||
|
|
||||||
@ -1234,13 +1181,6 @@ for _, h in ipairs(unifieddyes.HUES_EXTENDED) do
|
|||||||
groups = { dye=1, not_in_creative_inventory=1 },
|
groups = { dye=1, not_in_creative_inventory=1 },
|
||||||
})
|
})
|
||||||
minetest.register_alias("unifieddyes:"..val..hue.."_s50", "dye:"..val..hue.."_s50")
|
minetest.register_alias("unifieddyes:"..val..hue.."_s50", "dye:"..val..hue.."_s50")
|
||||||
if h[1] == "spring" then
|
|
||||||
minetest.register_alias("unifieddyes:"..val.."aqua_s50", "dye:"..val.."spring_s50")
|
|
||||||
elseif h[1] == "azure" then
|
|
||||||
minetest.register_alias("unifieddyes:"..val.."skyblue_s50", "dye:"..val.."azure_s50")
|
|
||||||
elseif h[1] == "rose" then
|
|
||||||
minetest.register_alias("unifieddyes:"..val.."redviolet_s50", "dye:"..val.."rose_s50")
|
|
||||||
end
|
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
BIN
textures/unifieddyes_palette_ambers.png
Normal file
After Width: | Height: | Size: 93 B |
BIN
textures/unifieddyes_palette_azures.png
Normal file
After Width: | Height: | Size: 91 B |
Before Width: | Height: | Size: 99 B After Width: | Height: | Size: 91 B |
BIN
textures/unifieddyes_palette_ceruleans.png
Normal file
After Width: | Height: | Size: 93 B |
BIN
textures/unifieddyes_palette_chartreuses.png
Normal file
After Width: | Height: | Size: 91 B |
BIN
textures/unifieddyes_palette_crimsons.png
Normal file
After Width: | Height: | Size: 91 B |
Before Width: | Height: | Size: 101 B After Width: | Height: | Size: 91 B |
BIN
textures/unifieddyes_palette_fuchsias.png
Normal file
After Width: | Height: | Size: 93 B |
Before Width: | Height: | Size: 91 B After Width: | Height: | Size: 91 B |
BIN
textures/unifieddyes_palette_harlequins.png
Normal file
After Width: | Height: | Size: 91 B |
BIN
textures/unifieddyes_palette_indigos.png
Normal file
After Width: | Height: | Size: 91 B |
Before Width: | Height: | Size: 99 B After Width: | Height: | Size: 93 B |
Before Width: | Height: | Size: 101 B After Width: | Height: | Size: 91 B |
BIN
textures/unifieddyes_palette_malachites.png
Normal file
After Width: | Height: | Size: 91 B |
BIN
textures/unifieddyes_palette_mulberrys.png
Normal file
After Width: | Height: | Size: 93 B |
Before Width: | Height: | Size: 99 B After Width: | Height: | Size: 91 B |
Before Width: | Height: | Size: 99 B After Width: | Height: | Size: 91 B |
Before Width: | Height: | Size: 99 B |
BIN
textures/unifieddyes_palette_roses.png
Normal file
After Width: | Height: | Size: 91 B |
BIN
textures/unifieddyes_palette_sapphires.png
Normal file
After Width: | Height: | Size: 91 B |
Before Width: | Height: | Size: 99 B |
BIN
textures/unifieddyes_palette_springs.png
Normal file
After Width: | Height: | Size: 91 B |
BIN
textures/unifieddyes_palette_turquoises.png
Normal file
After Width: | Height: | Size: 93 B |
BIN
textures/unifieddyes_palette_vermilions.png
Normal file
After Width: | Height: | Size: 91 B |
Before Width: | Height: | Size: 99 B After Width: | Height: | Size: 91 B |
Before Width: | Height: | Size: 101 B After Width: | Height: | Size: 91 B |