mirror of
https://github.com/mt-mods/unifieddyes.git
synced 2025-06-28 14:26:21 +02:00
Compare commits
3 Commits
2018-08-24
...
2018-08-25
Author | SHA1 | Date | |
---|---|---|---|
c005dc358a | |||
c7fc48c8d0 | |||
de5f73e976 |
4
API.md
4
API.md
@ -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.
|
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
|
#### Tables
|
||||||
|
|
||||||
In addition to the above API calls, Unified Dyes provides several useful tables
|
In addition to the above API calls, Unified Dyes provides several useful tables
|
||||||
|
43
init.lua
43
init.lua
@ -198,7 +198,7 @@ function unifieddyes.make_colored_itemstack(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)
|
||||||
return stack:to_string()
|
return stack:to_string(),paletteidx
|
||||||
end
|
end
|
||||||
|
|
||||||
-- if your node was once 89-color and uses an LBM to convert to the 256-color palette,
|
-- 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
|
end
|
||||||
|
|
||||||
local dye = "dye:"..color
|
local dye = "dye:"..color
|
||||||
|
|
||||||
local recipe = minetest.serialize(craft.recipe)
|
local recipe = minetest.serialize(craft.recipe)
|
||||||
recipe = string.gsub(recipe, "MAIN_DYE", dye)
|
recipe = string.gsub(recipe, "MAIN_DYE", dye)
|
||||||
recipe = string.gsub(recipe, "NEUTRAL_NODE", craft.neutral_node)
|
recipe = string.gsub(recipe, "NEUTRAL_NODE", craft.neutral_node)
|
||||||
@ -265,6 +264,8 @@ function unifieddyes.register_color_craft(craft)
|
|||||||
local greys_table = unifieddyes.GREYS
|
local greys_table = unifieddyes.GREYS
|
||||||
|
|
||||||
if craft.palette == "wallmounted" then
|
if craft.palette == "wallmounted" then
|
||||||
|
register_c(craft, "green", "", "light_")
|
||||||
|
register_c(craft, "azure", "", "")
|
||||||
hues_table = unifieddyes.HUES_WALLMOUNTED
|
hues_table = unifieddyes.HUES_WALLMOUNTED
|
||||||
sats_table = {""}
|
sats_table = {""}
|
||||||
vals_table = unifieddyes.VALS
|
vals_table = unifieddyes.VALS
|
||||||
@ -411,6 +412,7 @@ function unifieddyes.getpaletteidx(color, palette_type)
|
|||||||
local aliases = {
|
local aliases = {
|
||||||
["pink"] = "light_red",
|
["pink"] = "light_red",
|
||||||
["brown"] = "medium_orange",
|
["brown"] = "medium_orange",
|
||||||
|
["azure"] = "light_blue"
|
||||||
}
|
}
|
||||||
|
|
||||||
local grayscale = {
|
local grayscale = {
|
||||||
@ -585,9 +587,10 @@ function unifieddyes.getpaletteidx(color, palette_type)
|
|||||||
end
|
end
|
||||||
|
|
||||||
if palette_type == "wallmounted" then
|
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 == "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
|
elseif hues_wallmounted[color] and shades_wallmounted[shade] then
|
||||||
return (shades_wallmounted[shade] * 64 + hues_wallmounted[color] * 8), hues_wallmounted[color]
|
return (shades_wallmounted[shade] * 64 + hues_wallmounted[color] * 8), hues_wallmounted[color]
|
||||||
end
|
end
|
||||||
@ -599,7 +602,20 @@ function unifieddyes.getpaletteidx(color, palette_type)
|
|||||||
color = "red"
|
color = "red"
|
||||||
shade = "light"
|
shade = "light"
|
||||||
end
|
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
|
if hues[color] and shades[shade] then
|
||||||
return (shades[shade] * 32), hues[color]
|
return (shades[shade] * 32), hues[color]
|
||||||
end
|
end
|
||||||
@ -607,10 +623,7 @@ function unifieddyes.getpaletteidx(color, palette_type)
|
|||||||
if hues_extended[color] and shades_extended[shade] then
|
if hues_extended[color] and shades_extended[shade] then
|
||||||
return (hues_extended[color] + shades_extended[shade]*24), hues_extended[color]
|
return (hues_extended[color] + shades_extended[shade]*24), hues_extended[color]
|
||||||
end
|
end
|
||||||
else -- it's the 89-color palette
|
else -- it's the regular 89-color palette, do the same translation if needed
|
||||||
|
|
||||||
-- If using this palette, translate new color names back to old.
|
|
||||||
|
|
||||||
if shade == "" then
|
if shade == "" then
|
||||||
if color == "spring" then
|
if color == "spring" then
|
||||||
color = "aqua"
|
color = "aqua"
|
||||||
@ -938,9 +951,15 @@ minetest.register_alias("unifieddyes:carbon_black", "dye:black")
|
|||||||
-- note that technically, lime should be aliased, but can't be (there IS
|
-- 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)
|
-- lime in the new color table, it's just shifted up a bit)
|
||||||
|
|
||||||
minetest.register_alias("unifieddyes:aqua", "unifieddyes:spring")
|
minetest.register_alias("unifieddyes:aqua", "dye:spring")
|
||||||
minetest.register_alias("unifieddyes:skyblue", "unifieddyes:azure")
|
minetest.register_alias("dye:aqua", "dye:spring")
|
||||||
minetest.register_alias("unifieddyes:redviolet", "unifieddyes:rose")
|
|
||||||
|
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")
|
minetest.register_alias("unifieddyes:brown", "dye:brown")
|
||||||
|
|
||||||
print(S("[UnifiedDyes] Loaded!"))
|
print(S("[UnifiedDyes] Loaded!"))
|
||||||
|
Binary file not shown.
Before Width: | Height: | Size: 136 B After Width: | Height: | Size: 136 B |
Reference in New Issue
Block a user