1
0
mirror of https://github.com/mt-mods/coloredwood.git synced 2025-06-30 15:10:37 +02:00

9 Commits

Author SHA1 Message Date
e7ef0cf91e add palette to cut stairsplus nodes 2018-09-13 22:33:11 -04:00
ec415e4e37 assign a proper paramtype2 and replacement node
to cut slabs etc so that airbrush works
2018-09-12 18:10:36 -04:00
cd24616e9d assign a proper paramtype2 and airbrush replacement node
to cut slabs etc
2018-09-12 17:46:25 -04:00
5d3ca897dd fix my name 2018-09-12 16:25:42 -04:00
c9fdb82c47 remove outdated comment 2018-09-12 16:25:13 -04:00
34de518802 use official Unified Dyes hue+grey table, not local copies 2018-09-12 16:23:39 -04:00
3b60c6eeee remove a bunch of cruft leftover from the since-deleted LBMs 2018-09-12 16:17:27 -04:00
3686422613 got rid of the old conversion LBMs.
They've served their purpose

Anyway, UD doesn't support the old all-in-one 89-color palette anymore,
just the "split" version.

Also, adjusted for UD changing from `true` to `"split"` for the split
palette type.
2018-09-08 12:05:24 -04:00
882a332c59 replace default:wood with "wood block" on airbrush 2018-08-26 07:24:24 -04:00

282
init.lua
View File

@ -1,4 +1,4 @@
-- Colored Wood mod by Vanessa Ezekowitz
-- Colored Wood mod by Vanessa "VanessaE" Dannenberg
-- based on my unifieddyes template.
--
-- License: WTFPL
@ -9,11 +9,7 @@
-- Colored wood is created by placing a regular wood block on the ground
-- and then right-clicking on it with some dye.
-- All materials are flammable and can be used as fuel.
--
-- Hues are on a 30 degree spacing starting at red = 0 degrees.
-- "s50" in a file/item name means "saturation: 50%".
-- Texture brightness levels for the colors are 100%, 66% ("medium"),
-- and 33% ("dark").
coloredwood = {}
@ -22,96 +18,6 @@ if minetest.settings:get_bool("coloredwood_enable_stairsplus") == false or not m
coloredwood.enable_stairsplus = false
end
coloredwood.shades = {
"dark_",
"medium_",
"" -- represents "no special shade name", e.g. full.
}
coloredwood.shades2 = {
"Dark ",
"Medium ",
"" -- represents "no special shade name", e.g. full.
}
coloredwood.default_hues = {
"white",
"grey",
"dark_grey",
"black",
"violet",
"blue",
"cyan",
"dark_green",
"green",
"yellow",
"orange",
"red",
"magenta"
}
coloredwood.hues = {
"red",
"orange",
"yellow",
"lime",
"green",
"aqua",
"cyan",
"skyblue",
"blue",
"violet",
"magenta",
"redviolet"
}
coloredwood.hues2 = {
"Red ",
"Orange ",
"Yellow ",
"Lime ",
"Green ",
"Aqua ",
"Cyan ",
"Sky Blue ",
"Blue ",
"Violet ",
"Magenta ",
"Red-violet "
}
coloredwood.greys = {
"black",
"darkgrey",
"grey",
"lightgrey",
"white"
}
coloredwood.greys2 = {
"Black ",
"Dark Grey ",
"Medium Grey ",
"Light Grey ",
"White "
}
coloredwood.greys3 = {
"dye:black",
"dye:dark_grey",
"dye:grey",
"dye:light_grey",
"dye:white"
}
coloredwood.hues_plus_greys = {}
for _, hue in ipairs(coloredwood.hues) do
table.insert(coloredwood.hues_plus_greys, hue)
end
table.insert(coloredwood.hues_plus_greys, "grey")
-- helper functions
local function is_stairsplus(name, colorized)
@ -161,7 +67,7 @@ minetest.register_node("coloredwood:wood_block", {
sounds = default.node_sound_wood_defaults(),
})
for _, color in ipairs(coloredwood.hues_plus_greys) do
for _, color in ipairs(unifieddyes.HUES_WITH_GREY) do
-- moreblocks/stairsplus support
@ -197,17 +103,30 @@ if coloredwood.enable_stairsplus then
for _, i in pairs(minetest.registered_nodes) do
if (string.find(i.name, "moreblocks:stair_wood")
or string.find(i.name, "moreblocks:slab_wood")
or string.find(i.name, "moreblocks:panel_wood")
or string.find(i.name, "moreblocks:micro_wood")
or string.find(i.name, "moreblocks:slope_wood"))
local chk = string.sub(i.name, 1, 20)
if chk == "moreblocks:stair_woo"
or chk == "moreblocks:slab_wood"
or chk == "moreblocks:panel_woo"
or chk == "moreblocks:micro_woo"
or chk == "moreblocks:slope_woo"
and not string.find(i.name, "wood_tile") then
local class = string.sub(i.name, 12, 15)
local shape = string.sub(i.name, 22)
table.insert(coloredwood_cuts, i.name)
if chk ~= "moreblocks:slab_wood" then
class = string.sub(i.name, 12, 16)
shape = string.sub(i.name, 23)
end
minetest.override_item(i.name, {
groups = {choppy = 2, oddly_breakable_by_hand = 2, flammable = 2, wood = 1, not_in_creative_inventory=1, ud_param2_colorable = 1},
paramtype2 = "colorfacedir",
palette = "unifieddyes_palette_greys.png",
airbrush_replacement_node = "coloredwood:"..class.."_wood_grey_"..shape
})
end
end
@ -222,7 +141,7 @@ for _, mname in ipairs(coloredwood_cuts) do
unifieddyes.register_color_craft({
output_prefix = "coloredwood:"..class.."_wood_",
output_suffix = shape,
palette = true,
palette = "split",
type = "shapeless",
neutral_node = mname,
recipe = {
@ -234,6 +153,7 @@ end
minetest.override_item("default:wood", {
palette = "unifieddyes_palette_extended.png",
airbrush_replacement_node = "coloredwood:wood_block",
groups = {choppy = 2, oddly_breakable_by_hand = 2, flammable = 2, wood = 1, ud_param2_colorable = 1},
})
@ -276,160 +196,4 @@ unifieddyes.register_color_craft({
}
})
-- ============================
-- convert the old static nodes
coloredwood.old_static_nodes = {}
coloredwood.old_13_color_nodes = {}
for _, hue in ipairs(coloredwood.hues) do
table.insert(coloredwood.old_13_color_nodes, "coloredwood:wood_"..hue)
for _, sat in ipairs({"", "_s50"}) do
for _, val in ipairs ({"dark_", "medium_", "light_", ""}) do
table.insert(coloredwood.old_static_nodes, "coloredwood:wood_"..val..hue..sat)
table.insert(coloredwood.old_static_nodes, "coloredwood:fence_"..val..hue..sat)
end
end
end
for _, shade in ipairs(coloredwood.greys) do
table.insert(coloredwood.old_static_nodes, "coloredwood:wood_"..shade)
table.insert(coloredwood.old_static_nodes, "coloredwood:fence_"..shade)
end
table.insert(coloredwood.old_13_color_nodes, "coloredwood:wood_grey")
-- add all of the stairsplus nodes, if moreblocks is installed.
if coloredwood.enable_stairsplus then
for _, shape in ipairs(circular_saw.names) do
local a = shape[1]
local b = shape[2]
for _, hue in ipairs(coloredwood.hues) do
for _, shade in ipairs(coloredwood.shades) do
table.insert(coloredwood.old_static_nodes, "coloredwood:"..a.."_wood_"..shade..hue..b)
table.insert(coloredwood.old_static_nodes, "coloredwood:"..a.."_wood_"..shade..hue.."_s50"..b)
end
table.insert(coloredwood.old_static_nodes, "coloredwood:"..a.."_wood_light_"..hue..b) -- light doesn't have extra shades or s50
end
end
for _, shape in ipairs(circular_saw.names) do
local a = shape[1]
local b = shape[2]
for _, hue in ipairs(coloredwood.greys) do
for _, shade in ipairs(coloredwood.shades) do
table.insert(coloredwood.old_static_nodes, "coloredwood:"..a.."_wood_"..hue..b)
end
end
end
end
local old_shades = {
"",
"",
"",
"light_",
"medium_",
"medium_",
"dark_",
"dark_"
}
local old_greys = {
"white",
"white",
"light_grey",
"grey",
"dark_grey",
"black",
"white",
"white"
}
minetest.register_lbm({
name = "coloredwood:convert",
label = "Convert wood blocks, fences, stairsplus stuff, etc to use param2 color",
run_at_every_load = false,
nodenames = coloredwood.old_static_nodes,
action = function(pos, node)
local meta = minetest.get_meta(pos)
local name = node.name
local hue, sat, val = unifieddyes.get_hsv(name)
local color = val..hue..sat
local s1, s2 = is_stairsplus(name, true)
if meta and (meta:get_string("dye") ~= "") then return end -- node has already been converted before.
if s1 then
if not s2 then print("impossible conversion request! name = "..node.name.." --> ".."coloredwood:"..s1.."_wood_"..hue.."*nil*") return end
local paletteidx, _ = unifieddyes.getpaletteidx("unifieddyes:"..color, true)
local cfdir = paletteidx + (node.param2 % 32)
local newname = "coloredwood:"..s1.."_wood_"..hue..s2
minetest.set_node(pos, { name = newname, param2 = cfdir })
local meta = minetest.get_meta(pos)
meta:set_string("dye", "unifieddyes:"..color)
elseif string.find(name, ":fence") then
local paletteidx, hue = unifieddyes.getpaletteidx("unifieddyes:"..color, "extended")
minetest.set_node(pos, { name = "coloredwood:fence", param2 = paletteidx })
meta:set_string("dye", "unifieddyes:"..color)
meta:set_string("palette", "ext")
else
if hue == "aqua" then
hue = "spring"
elseif hue == "skyblue" then
hue = "azure"
elseif hue == "redviolet" then
hue = "rose"
end
color = val..hue..sat
local paletteidx, hue = unifieddyes.getpaletteidx("unifieddyes:"..color, "extended")
minetest.set_node(pos, { name = "coloredwood:wood_block", param2 = paletteidx })
meta:set_string("dye", "unifieddyes:"..color)
meta:set_string("palette", "ext")
end
end
})
table.insert(coloredwood.old_13_color_nodes, "coloredwood:fence")
minetest.register_lbm({
name = "coloredwood:recolor_basics",
label = "Convert fences and base 13-color wood to use UD extended palette",
run_at_every_load = false,
nodenames = coloredwood.old_13_color_nodes,
action = function(pos, node)
local meta = minetest.get_meta(pos)
if meta:get_string("palette") ~= "ext" then
if node.name == "coloredwood:fence" then
minetest.swap_node(pos, { name = node.name, param2 = unifieddyes.convert_classic_palette[node.param2] })
else
local hue = string.sub(node.name, 18)
local shadenum = math.floor(node.param2/32) + 1
local shade = old_shades[shadenum]
local sat = ""
if hue == "grey" then
hue = old_greys[shadenum]
shade = ""
sat = ""
elseif shadenum == 3 or shadenum == 6 or shadenum == 8 then
sat = "_s50"
end
local newcolor = unifieddyes.convert_classic_palette[unifieddyes.getpaletteidx("unifieddyes:"..shade..hue..sat)]
minetest.swap_node(pos, { name = "coloredwood:wood_block", param2 = newcolor })
end
meta:set_string("palette", "ext")
end
end
})
print("[Colored Wood] Loaded!")