mirror of
				https://github.com/mt-mods/unifieddyes.git
				synced 2025-10-26 13:35:28 +01:00 
			
		
		
		
	Compare commits
	
		
			5 Commits
		
	
	
		
			2018-09-13
			...
			2018-11-09
		
	
	| Author | SHA1 | Date | |
|---|---|---|---|
|  | 334de564fd | ||
|  | 545968517b | ||
|  | 368205d3b8 | ||
|  | feed6d5aae | ||
|  | 4811847655 | 
							
								
								
									
										125
									
								
								init.lua
									
									
									
									
									
								
							
							
						
						
									
										125
									
								
								init.lua
									
									
									
									
									
								
							| @@ -99,6 +99,14 @@ unifieddyes.VALS = { | |||||||
| 	"dark_" | 	"dark_" | ||||||
| } | } | ||||||
|  |  | ||||||
|  | unifieddyes.VALS_SPLIT = { | ||||||
|  | 	"faint_", | ||||||
|  | 	"light_", | ||||||
|  | 	"", | ||||||
|  | 	"medium_", | ||||||
|  | 	"dark_" | ||||||
|  | } | ||||||
|  |  | ||||||
| unifieddyes.VALS_EXTENDED = { | unifieddyes.VALS_EXTENDED = { | ||||||
| 	"faint_", | 	"faint_", | ||||||
| 	"pastel_", | 	"pastel_", | ||||||
| @@ -164,20 +172,25 @@ minetest.register_on_placenode( | |||||||
| 		end | 		end | ||||||
|  |  | ||||||
| 		if not string.find(itemstack:to_string(), "palette_index") then | 		if not string.find(itemstack:to_string(), "palette_index") then | ||||||
| 			local param2 = 0 | 			local param2 | ||||||
| 			local color = 0 | 			local color = 0 | ||||||
|  |  | ||||||
| 			if def.palette == "unifieddyes_palette_extended.png" then | 			if def.palette == "unifieddyes_palette_extended.png" | ||||||
|  | 			  and def.paramtype2 == "color" then | ||||||
| 				param2 = 240 | 				param2 = 240 | ||||||
| 				color = 240 | 				color = 240 | ||||||
| 			elseif def.palette == "unifieddyes_palette_colorwallmounted.png" then | 			elseif def.palette == "unifieddyes_palette_colorwallmounted.png" | ||||||
|  | 			  and def.paramtype2 == "colorwallmounted" then | ||||||
| 				param2 = newnode.param2 % 8 | 				param2 = newnode.param2 % 8 | ||||||
| 			else  -- it's a split palette | 			elseif string.find(def.palette, "unifieddyes_palette_") | ||||||
|  | 			  and def.paramtype2 == "colorfacedir" then -- it's a split palette | ||||||
| 				param2 = newnode.param2 % 32 | 				param2 = newnode.param2 % 32 | ||||||
| 			end | 			end | ||||||
|  |  | ||||||
| 			minetest.swap_node(pos, {name = newnode.name, param2 = param2}) | 			if param2 then | ||||||
| 			minetest.get_meta(pos):set_int("palette_index", color) | 				minetest.swap_node(pos, {name = newnode.name, param2 = param2}) | ||||||
|  | 				minetest.get_meta(pos):set_int("palette_index", color) | ||||||
|  | 			end | ||||||
| 		end | 		end | ||||||
| 	end | 	end | ||||||
| ) | ) | ||||||
| @@ -282,7 +295,7 @@ end | |||||||
| function unifieddyes.register_color_craft(craft) | function unifieddyes.register_color_craft(craft) | ||||||
| 	local hues_table = unifieddyes.HUES_EXTENDED | 	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_SPLIT | ||||||
| 	local greys_table = unifieddyes.GREYS | 	local greys_table = unifieddyes.GREYS | ||||||
|  |  | ||||||
| 	if craft.palette == "wallmounted" then | 	if craft.palette == "wallmounted" then | ||||||
| @@ -654,12 +667,17 @@ function unifieddyes.on_airbrush(itemstack, player, pointed_thing) | |||||||
|  |  | ||||||
| 	local palette = nil | 	local palette = nil | ||||||
| 	local fdir = 0 | 	local fdir = 0 | ||||||
| 	if def.paramtype2 == "color" then | 	if not def or not def.palette then | ||||||
|  | 		minetest.chat_send_player(player_name, "*** That node can't be colored -- it's either undefined or has no palette.") | ||||||
|  | 		return | ||||||
|  | 	elseif def.palette == "unifieddyes_palette_extended.png" then | ||||||
| 		palette = "extended" | 		palette = "extended" | ||||||
| 	elseif def.paramtype2 == "colorwallmounted" then | 	elseif def.palette == "unifieddyes_palette_colorwallmounted.png" then | ||||||
| 		palette = "wallmounted" | 		palette = "wallmounted" | ||||||
| 		fdir = node.param2 % 8 | 		fdir = node.param2 % 8 | ||||||
| 	elseif def.paramtype2 ==  "colorfacedir" then | 	elseif def.palette ~= "unifieddyes_palette_extended.png" | ||||||
|  | 	  and def.palette ~= "unifieddyes_palette_colorwallmounted.png" | ||||||
|  | 	  and string.find(def.palette, "unifieddyes_palette_") then | ||||||
| 		palette = "split" | 		palette = "split" | ||||||
| 		fdir = node.param2 % 32 | 		fdir = node.param2 % 32 | ||||||
| 	else | 	else | ||||||
| @@ -804,10 +822,17 @@ end | |||||||
|  |  | ||||||
| local hps = 0.6 -- horizontal position scale | local hps = 0.6 -- horizontal position scale | ||||||
| local vps = 1.3 -- vertical position scale | local vps = 1.3 -- vertical position scale | ||||||
| local vs = 0.3  -- vertical shift/offset | local vs = 0.1 -- vertical shift/offset | ||||||
|  |  | ||||||
| local color_button_size = ";0.75,0.75;" | local color_button_size = ";0.75,0.75;" | ||||||
| local color_square_size = ";0.69,0.69;" | local color_square_size = ";0.69,0.69;" | ||||||
|  |  | ||||||
|  | function unifieddyes.make_readable_color(color) | ||||||
|  | 	local s = string.gsub(color, "_", " ") | ||||||
|  | 	s = string.gsub(s, "s50", "(low saturation)") | ||||||
|  | 	return s | ||||||
|  | end | ||||||
|  |  | ||||||
| function unifieddyes.make_colored_square(hexcolor, colorname, showall, creative, painting_with, nodepalette, hp, v2, selindic, inv, explist) | function unifieddyes.make_colored_square(hexcolor, colorname, showall, creative, painting_with, nodepalette, hp, v2, selindic, inv, explist) | ||||||
|  |  | ||||||
| 	local dye = "dye:"..colorname | 	local dye = "dye:"..colorname | ||||||
| @@ -829,26 +854,29 @@ function unifieddyes.make_colored_square(hexcolor, colorname, showall, creative, | |||||||
| 		end | 		end | ||||||
| 	end | 	end | ||||||
|  |  | ||||||
|  | 	local tooltip = "tooltip["..colorname..";".. | ||||||
|  | 					unifieddyes.make_readable_color(colorname).. | ||||||
|  | 					"\n(dye:"..colorname..")]" | ||||||
|  |  | ||||||
| 	if dye == painting_with then | 	if dye == painting_with then | ||||||
| 		overlay = "^unifieddyes_select_overlay.png" | 		overlay = "^unifieddyes_select_overlay.png" | ||||||
| 		selindic = "unifieddyes_white_square.png"..colorize..overlay..unavail_overlay.."]".. | 		selindic = "unifieddyes_white_square.png"..colorize..overlay..unavail_overlay.."]"..tooltip | ||||||
| 					"tooltip["..colorname..";"..colorname.."]" |  | ||||||
| 	end | 	end | ||||||
| 	local form |  | ||||||
|  |  | ||||||
|  | 	local form | ||||||
| 	if unavail_overlay == "" then | 	if unavail_overlay == "" then | ||||||
| 		form = "image_button[".. | 		form = "image_button[".. | ||||||
| 					(hp*hps)..","..(v2*vps+vs).. | 					(hp*hps)..","..(v2*vps+vs).. | ||||||
| 					color_button_size.. | 					color_button_size.. | ||||||
| 					"unifieddyes_white_square.png"..colorize..overlay..unavail_overlay..";".. | 					"unifieddyes_white_square.png"..colorize..overlay..unavail_overlay..";".. | ||||||
| 					colorname..";]".. | 					colorname..";]".. | ||||||
| 					"tooltip["..colorname..";"..colorname.."]" | 					tooltip | ||||||
| 	else | 	else | ||||||
| 		form = "image[".. | 		form = "image[".. | ||||||
| 					(hp*hps)..","..(v2*vps+vs).. | 					(hp*hps)..","..(v2*vps+vs).. | ||||||
| 					color_square_size.. | 					color_square_size.. | ||||||
| 					"unifieddyes_white_square.png"..colorize..overlay..unavail_overlay.."]".. | 					"unifieddyes_white_square.png"..colorize..overlay..unavail_overlay.."]".. | ||||||
| 					"tooltip["..colorname.." (unavailable);"..colorname.."]" | 					tooltip | ||||||
| 	end | 	end | ||||||
|  |  | ||||||
| 	return form, selindic | 	return form, selindic | ||||||
| @@ -866,24 +894,29 @@ function unifieddyes.show_airbrush_form(player) | |||||||
| 	local nodepalette = "extended" | 	local nodepalette = "extended" | ||||||
| 	local showall = unifieddyes.player_showall[player_name] | 	local showall = unifieddyes.player_showall[player_name] | ||||||
|  |  | ||||||
| 	t[1] = "size[15,8.5]label[7,-0.25;Select a color:]" | 	t[1] = "size[14.5,8.5]label[7,-0.3;Select a color:]" | ||||||
| 	local selindic = "unifieddyes_select_overlay.png^unifieddyes_question.png]" | 	local selindic = "unifieddyes_select_overlay.png^unifieddyes_question.png]" | ||||||
|  |  | ||||||
| 	local last_right_click = unifieddyes.player_last_right_clicked[player_name] | 	local last_right_click = unifieddyes.player_last_right_clicked[player_name] | ||||||
| 	if last_right_click then | 	if last_right_click then | ||||||
| 		if last_right_click.def and last_right_click.def.paramtype2 then | 		if last_right_click.def and last_right_click.def.palette then | ||||||
| 			if last_right_click.def.paramtype2 == "colorwallmounted" then | 			if last_right_click.def.palette == "unifieddyes_palette_colorwallmounted.png" then | ||||||
| 				nodepalette = "wallmounted" | 				nodepalette = "wallmounted" | ||||||
| 			elseif last_right_click.def.paramtype2 == "color" then | 			elseif last_right_click.def.palette == "unifieddyes_palette_extended.png" then | ||||||
| 				t[#t+1] = "label[0.5,8.25;(Right-clicked a node that supports all 256 colors, showing them all)]" | 				t[#t+1] = "label[0.5,8.25;(Right-clicked a node that supports all 256 colors, showing them all)]" | ||||||
| 				showall = true | 				showall = true | ||||||
| 			elseif last_right_click.def.paramtype2 == "colorfacedir" then | 			elseif last_right_click.def.palette ~= "unifieddyes_palette_extended.png" | ||||||
|  | 			  and last_right_click.def.palette ~= "unifieddyes_palette_colorwallmounted.png" | ||||||
|  | 			  and string.find(last_right_click.def.palette, "unifieddyes_palette_") then | ||||||
| 				nodepalette = "split" | 				nodepalette = "split" | ||||||
| 			end | 			end | ||||||
| 		end | 		end | ||||||
| 	end | 	end | ||||||
|  |  | ||||||
| 	if not last_right_click.def.groups or not last_right_click.def.groups.ud_param2_colorable then | 	if not last_right_click.def.groups | ||||||
|  | 	  or not last_right_click.def.groups.ud_param2_colorable | ||||||
|  | 	  or not last_right_click.def.palette | ||||||
|  | 	  or not string.find(last_right_click.def.palette, "unifieddyes_palette_") then | ||||||
| 		t[#t+1] = "label[0.5,8.25;(Right-clicked a node not supported by the Airbrush, showing all colors)]" | 		t[#t+1] = "label[0.5,8.25;(Right-clicked a node not supported by the Airbrush, showing all colors)]" | ||||||
| 	end | 	end | ||||||
|  |  | ||||||
| @@ -897,7 +930,7 @@ function unifieddyes.show_airbrush_form(player) | |||||||
|  |  | ||||||
| 		for hi, h in ipairs(unifieddyes.HUES_EXTENDED) do | 		for hi, h in ipairs(unifieddyes.HUES_EXTENDED) do | ||||||
| 			local hue = h[1] | 			local hue = h[1] | ||||||
| 			local hp=hi-0.5 | 			local hp=hi-1 | ||||||
|  |  | ||||||
| 			local r = h[2] | 			local r = h[2] | ||||||
| 			local g = h[3] | 			local g = h[3] | ||||||
| @@ -925,7 +958,7 @@ function unifieddyes.show_airbrush_form(player) | |||||||
|  |  | ||||||
| 			for hi, h in ipairs(unifieddyes.HUES_EXTENDED) do | 			for hi, h in ipairs(unifieddyes.HUES_EXTENDED) do | ||||||
| 				local hue = h[1] | 				local hue = h[1] | ||||||
| 				local hp=hi-0.5 | 				local hp=hi-1 | ||||||
|  |  | ||||||
| 				local r = h[2] | 				local r = h[2] | ||||||
| 				local g = h[3] | 				local g = h[3] | ||||||
| @@ -957,7 +990,7 @@ function unifieddyes.show_airbrush_form(player) | |||||||
| 	local v2=5 | 	local v2=5 | ||||||
| 	for y = 0, 15 do | 	for y = 0, 15 do | ||||||
|  |  | ||||||
| 		local hp=(15-y)+0.5 | 		local hp=15-y | ||||||
|  |  | ||||||
| 		local hexgrey = string.format("%02x", y*17)..string.format("%02x", y*17)..string.format("%02x", y*17) | 		local hexgrey = string.format("%02x", y*17)..string.format("%02x", y*17)..string.format("%02x", y*17) | ||||||
| 		local grey = "grey_"..y | 		local grey = "grey_"..y | ||||||
| @@ -976,48 +1009,52 @@ function unifieddyes.show_airbrush_form(player) | |||||||
| 	end | 	end | ||||||
|  |  | ||||||
| 	if not creative then | 	if not creative then | ||||||
| 		t[#t+1] = "image[10.3," | 		t[#t+1] = "image[10," | ||||||
| 		t[#t+1] = (vps*5+vs) | 		t[#t+1] = (vps*5.55+vs) | ||||||
| 		t[#t+1] = color_button_size | 		t[#t+1] = color_button_size | ||||||
| 		t[#t+1] = "unifieddyes_onhand_overlay.png]label[11.0," | 		t[#t+1] = "unifieddyes_onhand_overlay.png]label[10.7," | ||||||
| 		t[#t+1] = (vps*5.02+vs) | 		t[#t+1] = (vps*5.51+vs) | ||||||
| 		t[#t+1] = ";Dyes]" | 		t[#t+1] = ";Dyes]" | ||||||
| 		t[#t+1] = "label[11.0," | 		t[#t+1] = "label[10.7," | ||||||
| 		t[#t+1] = (vps*5.18+vs) | 		t[#t+1] = (vps*5.67+vs) | ||||||
| 		t[#t+1] = ";on hand]" | 		t[#t+1] = ";on hand]" | ||||||
|  |  | ||||||
| 	end | 	end | ||||||
|  |  | ||||||
| 	t[#t+1] = "image[11.9," | 	t[#t+1] = "image[10," | ||||||
| 	t[#t+1] = (vps*5+vs) | 	t[#t+1] = (vps*5+vs) | ||||||
| 	t[#t+1] = color_button_size | 	t[#t+1] = color_button_size | ||||||
| 	t[#t+1] = selindic | 	t[#t+1] = selindic | ||||||
|  |  | ||||||
| 	if painting_with then | 	if painting_with then | ||||||
| 		t[#t+1] = "label[12.6," | 		t[#t+1] = "label[10.7," | ||||||
| 		t[#t+1] = (vps*5.02+vs) | 		t[#t+1] = (vps*4.90+vs) | ||||||
| 		t[#t+1] = ";Your selection:]" | 		t[#t+1] = ";Your selection:]" | ||||||
| 		t[#t+1] = "label[12.6," | 		t[#t+1] = "label[10.7," | ||||||
| 		t[#t+1] = (vps*5.18+vs) | 		t[#t+1] = (vps*5.07+vs) | ||||||
| 		t[#t+1] = ";" | 		t[#t+1] = ";" | ||||||
|  | 		t[#t+1] = unifieddyes.make_readable_color(string.sub(painting_with, 5)) | ||||||
|  | 		t[#t+1] = "]label[10.7," | ||||||
|  | 		t[#t+1] = (vps*5.24+vs) | ||||||
|  | 		t[#t+1] = ";(" | ||||||
| 		t[#t+1] = painting_with | 		t[#t+1] = painting_with | ||||||
| 		t[#t+1] = "]" | 		t[#t+1] = ")]" | ||||||
| 	else | 	else | ||||||
| 		t[#t+1] = "label[12.6," | 		t[#t+1] = "label[10.7," | ||||||
| 		t[#t+1] = (vps*5.1+vs) | 		t[#t+1] = (vps*5.07+vs) | ||||||
| 		t[#t+1] = ";Your selection]" | 		t[#t+1] = ";Your selection]" | ||||||
| 	end | 	end | ||||||
|  |  | ||||||
| 	t[#t+1] = "button_exit[11,8;2,1;cancel;Cancel]button_exit[13,8;2,1;accept;Accept]" | 	t[#t+1] = "button_exit[10.5,8;2,1;cancel;Cancel]button_exit[12.5,8;2,1;accept;Accept]" | ||||||
|  |  | ||||||
|  |  | ||||||
| 	if last_right_click and last_right_click.def and nodepalette ~= "extended" then | 	if last_right_click and last_right_click.def and nodepalette ~= "extended" then | ||||||
| 		if showall then | 		if showall then | ||||||
| 			t[#t+1] = "button[0.5,8;2,1;show_avail;Show Available]" | 			t[#t+1] = "button[0,8;2,1;show_avail;Show Available]" | ||||||
| 			t[#t+1] = "label[2.5,8.25;(Currently showing all 256 colors)]" | 			t[#t+1] = "label[2,8.25;(Currently showing all 256 colors)]" | ||||||
| 		else | 		else | ||||||
| 			t[#t+1] = "button[0.5,8;2,1;show_all;Show All Colors]" | 			t[#t+1] = "button[0,8;2,1;show_all;Show All Colors]" | ||||||
| 			t[#t+1] = "label[2.5,8.25;(Currently only showing what the right-clicked node can use)]" | 			t[#t+1] = "label[2,8.25;(Currently only showing what the right-clicked node can use)]" | ||||||
| 		end | 		end | ||||||
| 	end | 	end | ||||||
|  |  | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user