mirror of
				https://github.com/mt-mods/unifieddyes.git
				synced 2025-10-27 05:55:19 +01:00 
			
		
		
		
	Compare commits
	
		
			3 Commits
		
	
	
		
			2018-08-24
			...
			2018-08-25
		
	
	| Author | SHA1 | Date | |
|---|---|---|---|
|  | c7fc48c8d0 | ||
|  | de5f73e976 | ||
|  | 0d00a7eae6 | 
							
								
								
									
										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. | ||||
|  | ||||
| **`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 | ||||
|  | ||||
| In addition to the above API calls, Unified Dyes provides several useful tables | ||||
|   | ||||
							
								
								
									
										66
									
								
								init.lua
									
									
									
									
									
								
							
							
						
						
									
										66
									
								
								init.lua
									
									
									
									
									
								
							| @@ -153,6 +153,36 @@ local default_dyes = { | ||||
| 	"yellow" | ||||
| } | ||||
|  | ||||
| -- if a node with a palette is placed in the world, | ||||
| -- but the itemstack used to place it has no palette_index (color byte), | ||||
| -- create something appropriate to make it officially white. | ||||
|  | ||||
| minetest.register_on_placenode( | ||||
| 	function(pos, newnode, placer, oldnode, itemstack, pointed_thing) | ||||
| 		local def = minetest.registered_items[newnode.name] | ||||
| 		if not def or not def.palette then return false end | ||||
| 		if string.find(itemstack:to_string(), "palette_index") then | ||||
| 			minetest.swap_node(pos, {name = newnode.name, param2 = newnode.param2}) | ||||
| 			return | ||||
| 		end | ||||
|  | ||||
| 		local param2 = 0 | ||||
| 		local color = 0 | ||||
|  | ||||
| 		if def.palette == "unifieddyes_palette_extended.png" then | ||||
| 			param2 = 240 | ||||
| 			color = 240 | ||||
| 		elseif def.palette == "unifieddyes_palette_colorwallmounted.png" then | ||||
| 			param2 = newnode.param2 % 8 | ||||
| 		elseif def.palette ~= "unifieddyes_palette.png" then -- it's a split palette | ||||
| 			param2 = newnode.param2 % 32 | ||||
| 		end | ||||
|  | ||||
| 		minetest.swap_node(pos, {name = newnode.name, param2 = param2}) | ||||
| 		minetest.get_meta(pos):set_int("palette_index", color) | ||||
| 	end | ||||
| ) | ||||
|  | ||||
| -- just stubs to keep old mods from crashing when expecting auto-coloring | ||||
| -- or getting back the dye on dig. | ||||
|  | ||||
| @@ -168,7 +198,7 @@ function unifieddyes.make_colored_itemstack(item, palette, color) | ||||
| 	local paletteidx = unifieddyes.getpaletteidx(color, palette) | ||||
| 	local stack = ItemStack(item) | ||||
| 	stack:get_meta():set_int("palette_index", paletteidx) | ||||
| 	return stack:to_string() | ||||
| 	return stack:to_string(),paletteidx | ||||
| end | ||||
|  | ||||
| -- if your node was once 89-color and uses an LBM to convert to the 256-color palette, | ||||
| @@ -569,7 +599,20 @@ function unifieddyes.getpaletteidx(color, palette_type) | ||||
| 			color = "red" | ||||
| 			shade = "light" | ||||
| 		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 | ||||
| 				return (shades[shade] * 32), hues[color] | ||||
| 			end | ||||
| @@ -577,10 +620,7 @@ function unifieddyes.getpaletteidx(color, palette_type) | ||||
| 			if hues_extended[color] and shades_extended[shade] then | ||||
| 				return (hues_extended[color] + shades_extended[shade]*24), hues_extended[color] | ||||
| 			end | ||||
| 		else -- it's the 89-color palette | ||||
|  | ||||
| 			-- If using this palette, translate new color names back to old. | ||||
|  | ||||
| 		else -- it's the regular 89-color palette, do the same translation if needed | ||||
| 			if shade == "" then | ||||
| 				if color == "spring" then | ||||
| 					color = "aqua" | ||||
| @@ -908,10 +948,16 @@ minetest.register_alias("unifieddyes:carbon_black", "dye:black") | ||||
| -- 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) | ||||
|  | ||||
| minetest.register_alias("unifieddyes:aqua", "unifieddyes:spring") | ||||
| minetest.register_alias("unifieddyes:skyblue", "unifieddyes:azure") | ||||
| minetest.register_alias("unifieddyes:redviolet", "unifieddyes:rose") | ||||
| minetest.register_alias("unifieddyes:brown", 	  "dye:brown") | ||||
| minetest.register_alias("unifieddyes:aqua", "dye:spring") | ||||
| minetest.register_alias("dye:aqua", "dye:spring") | ||||
|  | ||||
| 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") | ||||
|  | ||||
| print(S("[UnifiedDyes] Loaded!")) | ||||
|  | ||||
|   | ||||
		Reference in New Issue
	
	Block a user