forked from mtcontrib/homedecor_modpack
		
	make wooden banister colorable via Unified Dyes
This commit is contained in:
		@@ -3273,6 +3273,19 @@ for i in ipairs(homedecor.banister_materials) do
 | 
				
			|||||||
	})
 | 
						})
 | 
				
			||||||
end
 | 
					end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					unifieddyes.register_color_craft({
 | 
				
			||||||
 | 
						output = "",
 | 
				
			||||||
 | 
						palette = "split",
 | 
				
			||||||
 | 
						neutral_node = "homedecor:banister_wood_horizontal",
 | 
				
			||||||
 | 
						type = "shapeless",
 | 
				
			||||||
 | 
						output_prefix = "homedecor:banister_wood_horizontal_",
 | 
				
			||||||
 | 
						output_suffix = "",
 | 
				
			||||||
 | 
						recipe = {
 | 
				
			||||||
 | 
							"NEUTRAL_NODE",
 | 
				
			||||||
 | 
							"MAIN_DYE",
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
					})
 | 
				
			||||||
 | 
					
 | 
				
			||||||
if (minetest.get_modpath("technic") and minetest.get_modpath("dye") and minetest.get_modpath("bees")) then
 | 
					if (minetest.get_modpath("technic") and minetest.get_modpath("dye") and minetest.get_modpath("bees")) then
 | 
				
			||||||
	technic.register_separating_recipe({ input = {"bees:wax 1"}, output = {"homedecor:oil_extract 2","dye:yellow 1"} })
 | 
						technic.register_separating_recipe({ input = {"bees:wax 1"}, output = {"homedecor:oil_extract 2","dye:yellow 1"} })
 | 
				
			||||||
end
 | 
					end
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -257,6 +257,8 @@ function homedecor.place_banister(itemstack, placer, pointed_thing)
 | 
				
			|||||||
	if not pos then return itemstack end
 | 
						if not pos then return itemstack end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	local fdir = minetest.dir_to_facedir(placer:get_look_dir())
 | 
						local fdir = minetest.dir_to_facedir(placer:get_look_dir())
 | 
				
			||||||
 | 
						local meta = itemstack:get_meta()
 | 
				
			||||||
 | 
						local pindex = meta:get_int("palette_index")
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	local abovepos  = { x=pos.x, y=pos.y+1, z=pos.z }
 | 
						local abovepos  = { x=pos.x, y=pos.y+1, z=pos.z }
 | 
				
			||||||
	local abovenode = minetest.get_node(abovepos)
 | 
						local abovenode = minetest.get_node(abovepos)
 | 
				
			||||||
@@ -371,7 +373,7 @@ function homedecor.place_banister(itemstack, placer, pointed_thing)
 | 
				
			|||||||
		end
 | 
							end
 | 
				
			||||||
	end
 | 
						end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	minetest.set_node(pos, {name = new_place_name, param2 = fdir})
 | 
						minetest.set_node(pos, {name = new_place_name, param2 = fdir+pindex})
 | 
				
			||||||
	itemstack:take_item()
 | 
						itemstack:take_item()
 | 
				
			||||||
	return itemstack
 | 
						return itemstack
 | 
				
			||||||
end
 | 
					end
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -483,23 +483,19 @@ for _, side in ipairs({"diagonal_left", "diagonal_right", "horizontal"}) do
 | 
				
			|||||||
		local name, matdesc, tile1, tile2 = unpack(mat)
 | 
							local name, matdesc, tile1, tile2 = unpack(mat)
 | 
				
			||||||
		local nodename = "banister_"..name.."_"..side
 | 
							local nodename = "banister_"..name.."_"..side
 | 
				
			||||||
 | 
					
 | 
				
			||||||
		local groups = { snappy = 3, not_in_creative_inventory = 1 }
 | 
					 | 
				
			||||||
		local cbox = {
 | 
							local cbox = {
 | 
				
			||||||
			type = "fixed",
 | 
								type = "fixed",
 | 
				
			||||||
			fixed = { -9/16, -3/16, 5/16, 9/16, 24/16, 8/16 }
 | 
								fixed = { -9/16, -3/16, 5/16, 9/16, 24/16, 8/16 }
 | 
				
			||||||
		}
 | 
							}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
		if side == "horizontal" then
 | 
							if side == "horizontal" then
 | 
				
			||||||
			groups = { snappy = 3 }
 | 
					 | 
				
			||||||
			cbox = {
 | 
								cbox = {
 | 
				
			||||||
				type = "fixed",
 | 
									type = "fixed",
 | 
				
			||||||
				fixed = { -8/16, -8/16, 5/16, 8/16, 8/16, 8/16 }
 | 
									fixed = { -8/16, -8/16, 5/16, 8/16, 8/16, 8/16 }
 | 
				
			||||||
			}
 | 
								}
 | 
				
			||||||
		else
 | 
					 | 
				
			||||||
			minetest.register_alias(string.gsub("homedecor:"..nodename, "diagonal_", ""), "homedecor:"..nodename)
 | 
					 | 
				
			||||||
		end
 | 
							end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
		homedecor.register(nodename, {
 | 
							local def = {
 | 
				
			||||||
			description = S("Banister for Stairs (@1, @2)", matdesc, sidedesc),
 | 
								description = S("Banister for Stairs (@1, @2)", matdesc, sidedesc),
 | 
				
			||||||
			mesh = "homedecor_banister_"..side..".obj",
 | 
								mesh = "homedecor_banister_"..side..".obj",
 | 
				
			||||||
			tiles = {
 | 
								tiles = {
 | 
				
			||||||
@@ -507,12 +503,35 @@ for _, side in ipairs({"diagonal_left", "diagonal_right", "horizontal"}) do
 | 
				
			|||||||
				tile2,
 | 
									tile2,
 | 
				
			||||||
			},
 | 
								},
 | 
				
			||||||
			inventory_image = "homedecor_banister_"..name.."_inv.png",
 | 
								inventory_image = "homedecor_banister_"..name.."_inv.png",
 | 
				
			||||||
			groups = groups,
 | 
					 | 
				
			||||||
			selection_box = cbox,
 | 
								selection_box = cbox,
 | 
				
			||||||
			collision_box = cbox,
 | 
								collision_box = cbox,
 | 
				
			||||||
 | 
								groups = { snappy = 3},
 | 
				
			||||||
			on_place = homedecor.place_banister,
 | 
								on_place = homedecor.place_banister,
 | 
				
			||||||
			drop = "homedecor:banister_"..name.."_horizontal",
 | 
								drop = "homedecor:banister_"..name.."_horizontal",
 | 
				
			||||||
		})
 | 
							}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							if side ~= "horizontal" then
 | 
				
			||||||
 | 
								def.groups.not_in_creative_inventory = 1 
 | 
				
			||||||
 | 
							end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							if name == "wood" then
 | 
				
			||||||
 | 
								def.airbrush_replacement_node = "homedecor:banister_wood_"..side.."_grey"
 | 
				
			||||||
 | 
								def.groups.ud_param2_colorable = 1
 | 
				
			||||||
 | 
								def.paramtype2 = "colorfacedir"
 | 
				
			||||||
 | 
							end
 | 
				
			||||||
 | 
							homedecor.register(nodename, def)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							if name == "wood" then
 | 
				
			||||||
 | 
								local nn = "homedecor:"..nodename
 | 
				
			||||||
 | 
								local def2 = table.copy(minetest.registered_items[nn])
 | 
				
			||||||
 | 
								def2.tiles = {
 | 
				
			||||||
 | 
									homedecor.white_wood,
 | 
				
			||||||
 | 
									homedecor.white_wood
 | 
				
			||||||
 | 
								}
 | 
				
			||||||
 | 
								def2.inventory_image = "homedecor_banister_wood_colored_inv.png"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
								unifieddyes.generate_split_palette_nodes(nn, def2, "homedecor:banister_"..name.."_horizontal")
 | 
				
			||||||
 | 
							end
 | 
				
			||||||
	end
 | 
						end
 | 
				
			||||||
end
 | 
					end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 
 | 
				
			|||||||
							
								
								
									
										
											BIN
										
									
								
								homedecor/textures/homedecor_banister_wood_colored_inv.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								homedecor/textures/homedecor_banister_wood_colored_inv.png
									
									
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							| 
		 After Width: | Height: | Size: 2.4 KiB  | 
		Reference in New Issue
	
	Block a user