mirror of
				https://github.com/mt-mods/coloredwood.git
				synced 2025-10-31 21:35:23 +01:00 
			
		
		
		
	Compare commits
	
		
			9 Commits
		
	
	
		
			2018-08-22
			...
			2018-09-13
		
	
	| Author | SHA1 | Date | |
|---|---|---|---|
|  | e7ef0cf91e | ||
|  | ec415e4e37 | ||
|  | cd24616e9d | ||
|  | 5d3ca897dd | ||
|  | c9fdb82c47 | ||
|  | 34de518802 | ||
|  | 3b60c6eeee | ||
|  | 3686422613 | ||
|  | 882a332c59 | 
							
								
								
									
										282
									
								
								init.lua
									
									
									
									
									
								
							
							
						
						
									
										282
									
								
								init.lua
									
									
									
									
									
								
							| @@ -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!") | ||||
|   | ||||
		Reference in New Issue
	
	Block a user