diff options
| -rw-r--r-- | init.lua | 27 | 
1 files changed, 22 insertions, 5 deletions
| @@ -191,8 +191,7 @@ function unifieddyes.on_destruct(pos)  	end  end -function unifieddyes.on_rightclick(pos, node, player, stack, pointed_thing, newnode) -	local colorfdir = (minetest.registered_nodes[minetest.get_node(pos).name].paramtype2 == "colorfacedir") +function unifieddyes.on_rightclick(pos, node, player, stack, pointed_thing, newnode, colorfdir)  	local name = player:get_player_name()  	if minetest.is_protected(pos,name) and not minetest.check_player_privs(name,{protection_bypass=true}) then  		minetest.record_protection_violation(pos,name) @@ -222,13 +221,31 @@ function unifieddyes.on_rightclick(pos, node, player, stack, pointed_thing, newn  		if newnode then  			node.name = newnode -			if colorfdir then  -- we probably need to change the color of the node too +			if colorfdir then  -- we probably need to change the hue of the node too  				if oldhue ~=0 then -- it's colored, not grey -					node.name = string.gsub(node.name, "_"..HUES[oldhue], "_"..HUES[hue]) +					print("at line 226") +					print("prevdye = "..dump(prevdye)) +					print("oldhue = "..dump(oldhue).." "..dump(HUES[oldhue])) +					print("hue = "..dump(hue).." "..dump(HUES[hue])) +					print("node.name = "..dump(node.name)) +					if oldhue ~= nil then -- it's been painted before +						if hue ~= 0 then -- the player's wielding a colored dye +							node.name = string.gsub(node.name, "_"..HUES[oldhue], "_"..HUES[hue]) +						else -- it's a greyscale dye +							node.name = string.gsub(node.name, "_"..HUES[oldhue], "_grey") +						end +					else -- it's never had a color at all +						if hue ~= 0 then -- and if the wield is greyscale, don't change the node name +							node.name = string.gsub(node.name, "_grey", "_"..HUES[hue]) +						end +					end  				else -					node.name = string.gsub(node.name, "_grey", "_"..HUES[hue]) +					if hue ~= 0 then  -- greyscale dye on greyscale node = no hue change +						node.name = string.gsub(node.name, "_grey", "_"..HUES[hue]) +					end  				end  			end +  			minetest.swap_node(pos, node)  		else  			if colorfdir then  -- we probably need to change the color of the node too | 
