add green and yellow wall signs
(intended for traffic signage or similar) Rework related textures. Use steel ingots and green, white, black, yellow dyes to craft. Can also use "sheet metal" from my fork of Zeg9's steel mod.
@@ -484,13 +484,16 @@ signs_lib.update_sign = function(pos, fields)
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
	-- if there is no entity
 | 
						-- if there is no entity
 | 
				
			||||||
	local sign_info
 | 
						local sign_info
 | 
				
			||||||
	if minetest.get_node(pos).name == "signs:sign_yard" then
 | 
						local signnode = minetest.get_node(pos)
 | 
				
			||||||
 | 
						if signnode.name == "signs:sign_yard" then
 | 
				
			||||||
		sign_info = signs_lib.yard_sign_model.textpos[minetest.get_node(pos).param2 + 1]
 | 
							sign_info = signs_lib.yard_sign_model.textpos[minetest.get_node(pos).param2 + 1]
 | 
				
			||||||
	elseif minetest.get_node(pos).name == "signs:sign_hanging" then
 | 
						elseif signnode.name == "signs:sign_hanging" then
 | 
				
			||||||
		sign_info = signs_lib.hanging_sign_model.textpos[minetest.get_node(pos).param2 + 1]
 | 
							sign_info = signs_lib.hanging_sign_model.textpos[minetest.get_node(pos).param2 + 1]
 | 
				
			||||||
	elseif minetest.get_node(pos).name == "default:sign_wall" then
 | 
						elseif signnode.name == "default:sign_wall" 
 | 
				
			||||||
 | 
							or signnode.name == "signs:sign_wall_green"
 | 
				
			||||||
 | 
							or signnode.name == "signs:sign_wall_yellow" then
 | 
				
			||||||
		sign_info = signs_lib.wall_sign_model.textpos[minetest.get_node(pos).param2 + 1]
 | 
							sign_info = signs_lib.wall_sign_model.textpos[minetest.get_node(pos).param2 + 1]
 | 
				
			||||||
	else --if minetest.get_node(pos).name == "signs:sign_post" then
 | 
						else -- ...it must be a sign on a fence post.
 | 
				
			||||||
		sign_info = signs_lib.sign_post_model.textpos[minetest.get_node(pos).param2 + 1]
 | 
							sign_info = signs_lib.sign_post_model.textpos[minetest.get_node(pos).param2 + 1]
 | 
				
			||||||
	end
 | 
						end
 | 
				
			||||||
	if sign_info == nil then
 | 
						if sign_info == nil then
 | 
				
			||||||
@@ -553,19 +556,22 @@ function signs_lib.determine_sign_type(itemstack, placer, pointed_thing)
 | 
				
			|||||||
		local sign_info
 | 
							local sign_info
 | 
				
			||||||
		local pt_name = minetest.get_node(under).name
 | 
							local pt_name = minetest.get_node(under).name
 | 
				
			||||||
		print(dump(pt_name))
 | 
							print(dump(pt_name))
 | 
				
			||||||
 | 
							local signname = itemstack:get_name()
 | 
				
			||||||
 | 
					
 | 
				
			||||||
		if fences_with_sign[pt_name] then
 | 
							if fences_with_sign[pt_name] and signname == "default:sign_wall" then
 | 
				
			||||||
			minetest.add_node(under, {name = fences_with_sign[pt_name], param2 = fdir})
 | 
								minetest.add_node(under, {name = fences_with_sign[pt_name], param2 = fdir})
 | 
				
			||||||
			sign_info = signs_lib.sign_post_model.textpos[fdir + 1]
 | 
								sign_info = signs_lib.sign_post_model.textpos[fdir + 1]
 | 
				
			||||||
 | 
					
 | 
				
			||||||
		elseif wdir == 0 then
 | 
							elseif wdir == 0 and signname == "default:sign_wall" then
 | 
				
			||||||
			minetest.add_node(above, {name = "signs:sign_hanging", param2 = fdir})
 | 
								minetest.add_node(above, {name = "signs:sign_hanging", param2 = fdir})
 | 
				
			||||||
			sign_info = signs_lib.hanging_sign_model.textpos[fdir + 1]
 | 
								sign_info = signs_lib.hanging_sign_model.textpos[fdir + 1]
 | 
				
			||||||
		elseif wdir == 1 then
 | 
					
 | 
				
			||||||
 | 
							elseif wdir == 1 and signname == "default:sign_wall" then
 | 
				
			||||||
			minetest.add_node(above, {name = "signs:sign_yard", param2 = fdir})
 | 
								minetest.add_node(above, {name = "signs:sign_yard", param2 = fdir})
 | 
				
			||||||
			sign_info = signs_lib.yard_sign_model.textpos[fdir + 1]
 | 
								sign_info = signs_lib.yard_sign_model.textpos[fdir + 1]
 | 
				
			||||||
 | 
					
 | 
				
			||||||
		else
 | 
							else
 | 
				
			||||||
			minetest.add_node(above, {name = "default:sign_wall", param2 = fdir})
 | 
								minetest.add_node(above, {name = signname, param2 = fdir})
 | 
				
			||||||
			sign_info = signs_lib.wall_sign_model.textpos[fdir + 1]
 | 
								sign_info = signs_lib.wall_sign_model.textpos[fdir + 1]
 | 
				
			||||||
		end
 | 
							end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@@ -714,6 +720,78 @@ minetest.register_node(":signs:sign_post", {
 | 
				
			|||||||
    },
 | 
					    },
 | 
				
			||||||
})
 | 
					})
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					minetest.register_node(":signs:sign_wall_green", {
 | 
				
			||||||
 | 
						description = S("Sign (green, metal)"),
 | 
				
			||||||
 | 
						inventory_image = "signs_green_inv.png",
 | 
				
			||||||
 | 
						wield_image = "signs_green_inv.png",
 | 
				
			||||||
 | 
						node_placement_prediction = "",
 | 
				
			||||||
 | 
						paramtype = "light",
 | 
				
			||||||
 | 
						sunlight_propagates = true,
 | 
				
			||||||
 | 
						paramtype2 = "facedir",
 | 
				
			||||||
 | 
						drawtype = "nodebox",
 | 
				
			||||||
 | 
						node_box = signs_lib.wall_sign_model.nodebox,
 | 
				
			||||||
 | 
						tiles = {
 | 
				
			||||||
 | 
							"signs_green_top.png",
 | 
				
			||||||
 | 
							"signs_green_bottom.png",
 | 
				
			||||||
 | 
							"signs_green_sides.png",
 | 
				
			||||||
 | 
							"signs_green_sides.png",
 | 
				
			||||||
 | 
							"signs_back_metal.png",
 | 
				
			||||||
 | 
							"signs_green_front.png"
 | 
				
			||||||
 | 
						},
 | 
				
			||||||
 | 
						groups = sign_groups,
 | 
				
			||||||
 | 
						on_place = function(itemstack, placer, pointed_thing)
 | 
				
			||||||
 | 
							return signs_lib.determine_sign_type(itemstack, placer, pointed_thing)
 | 
				
			||||||
 | 
						end,
 | 
				
			||||||
 | 
						on_construct = function(pos)
 | 
				
			||||||
 | 
							signs_lib.construct_sign(pos)
 | 
				
			||||||
 | 
						end,
 | 
				
			||||||
 | 
						on_destruct = function(pos)
 | 
				
			||||||
 | 
							signs_lib.destruct_sign(pos)
 | 
				
			||||||
 | 
						end,
 | 
				
			||||||
 | 
						on_receive_fields = function(pos, formname, fields, sender)
 | 
				
			||||||
 | 
							signs_lib.receive_fields(pos, formname, fields, sender)
 | 
				
			||||||
 | 
						end,
 | 
				
			||||||
 | 
						on_punch = function(pos, node, puncher)
 | 
				
			||||||
 | 
							signs_lib.update_sign(pos)
 | 
				
			||||||
 | 
						end,
 | 
				
			||||||
 | 
					})
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					minetest.register_node(":signs:sign_wall_yellow", {
 | 
				
			||||||
 | 
						description = S("Sign (yellow, metal)"),
 | 
				
			||||||
 | 
						inventory_image = "signs_yellow_inv.png",
 | 
				
			||||||
 | 
						wield_image = "signs_yellow_inv.png",
 | 
				
			||||||
 | 
						node_placement_prediction = "",
 | 
				
			||||||
 | 
						paramtype = "light",
 | 
				
			||||||
 | 
						sunlight_propagates = true,
 | 
				
			||||||
 | 
						paramtype2 = "facedir",
 | 
				
			||||||
 | 
						drawtype = "nodebox",
 | 
				
			||||||
 | 
						node_box = signs_lib.wall_sign_model.nodebox,
 | 
				
			||||||
 | 
						tiles = {
 | 
				
			||||||
 | 
							"signs_yellow_top.png",
 | 
				
			||||||
 | 
							"signs_yellow_bottom.png",
 | 
				
			||||||
 | 
							"signs_yellow_sides.png",
 | 
				
			||||||
 | 
							"signs_yellow_sides.png",
 | 
				
			||||||
 | 
							"signs_back_metal.png",
 | 
				
			||||||
 | 
							"signs_yellow_front.png"
 | 
				
			||||||
 | 
						},
 | 
				
			||||||
 | 
						groups = sign_groups,
 | 
				
			||||||
 | 
						on_place = function(itemstack, placer, pointed_thing)
 | 
				
			||||||
 | 
							return signs_lib.determine_sign_type(itemstack, placer, pointed_thing)
 | 
				
			||||||
 | 
						end,
 | 
				
			||||||
 | 
						on_construct = function(pos)
 | 
				
			||||||
 | 
							signs_lib.construct_sign(pos)
 | 
				
			||||||
 | 
						end,
 | 
				
			||||||
 | 
						on_destruct = function(pos)
 | 
				
			||||||
 | 
							signs_lib.destruct_sign(pos)
 | 
				
			||||||
 | 
						end,
 | 
				
			||||||
 | 
						on_receive_fields = function(pos, formname, fields, sender)
 | 
				
			||||||
 | 
							signs_lib.receive_fields(pos, formname, fields, sender)
 | 
				
			||||||
 | 
						end,
 | 
				
			||||||
 | 
						on_punch = function(pos, node, puncher)
 | 
				
			||||||
 | 
							signs_lib.update_sign(pos)
 | 
				
			||||||
 | 
						end,
 | 
				
			||||||
 | 
					})
 | 
				
			||||||
 | 
					
 | 
				
			||||||
local signs_text_on_activate
 | 
					local signs_text_on_activate
 | 
				
			||||||
 | 
					
 | 
				
			||||||
signs_text_on_activate = function(self)
 | 
					signs_text_on_activate = function(self)
 | 
				
			||||||
@@ -811,6 +889,40 @@ minetest.register_alias("homedecor:fence_wood_with_sign", "signs:sign_post")
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
signs_lib.register_fence_with_sign("default:fence_wood", "signs:sign_post")
 | 
					signs_lib.register_fence_with_sign("default:fence_wood", "signs:sign_post")
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					-- craft recipes for the green and yellow signs
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					minetest.register_craft( {
 | 
				
			||||||
 | 
					        output = "signs:sign_wall_green 4",
 | 
				
			||||||
 | 
					        recipe = {
 | 
				
			||||||
 | 
								{ "dye:dark_green", "dye:white", "dye:dark_green" },
 | 
				
			||||||
 | 
								{ "default:steel_ingot", "default:steel_ingot", "default:steel_ingot" }
 | 
				
			||||||
 | 
					        },
 | 
				
			||||||
 | 
					})
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					minetest.register_craft( {
 | 
				
			||||||
 | 
					        output = "signs:sign_wall_green 2",
 | 
				
			||||||
 | 
					        recipe = {
 | 
				
			||||||
 | 
								{ "dye:dark_green", "dye:white", "dye:dark_green" },
 | 
				
			||||||
 | 
								{ "steel:sheet_metal", "steel:sheet_metal", "steel:sheet_metal" }
 | 
				
			||||||
 | 
					        },
 | 
				
			||||||
 | 
					})
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					minetest.register_craft( {
 | 
				
			||||||
 | 
					        output = "signs:sign_wall_yellow 4",
 | 
				
			||||||
 | 
					        recipe = {
 | 
				
			||||||
 | 
								{ "dye:yellow", "dye:black", "dye:yellow" },
 | 
				
			||||||
 | 
								{ "default:steel_ingot", "default:steel_ingot", "default:steel_ingot" }
 | 
				
			||||||
 | 
					        },
 | 
				
			||||||
 | 
					})
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					minetest.register_craft( {
 | 
				
			||||||
 | 
					        output = "signs:sign_wall_yellow 2",
 | 
				
			||||||
 | 
					        recipe = {
 | 
				
			||||||
 | 
								{ "dye:yellow", "dye:black", "dye:yellow" },
 | 
				
			||||||
 | 
								{ "steel:sheet_metal", "steel:sheet_metal", "steel:sheet_metal" }
 | 
				
			||||||
 | 
					        },
 | 
				
			||||||
 | 
					})
 | 
				
			||||||
 | 
					
 | 
				
			||||||
if minetest.setting_get("log_mods") then
 | 
					if minetest.setting_get("log_mods") then
 | 
				
			||||||
	minetest.log("action", S("signs loaded"))
 | 
						minetest.log("action", S("signs loaded"))
 | 
				
			||||||
end
 | 
					end
 | 
				
			||||||
 
 | 
				
			|||||||
| 
		 Before Width: | Height: | Size: 127 B After Width: | Height: | Size: 118 B  | 
| 
		 Before Width: | Height: | Size: 122 B After Width: | Height: | Size: 95 B  | 
| 
		 Before Width: | Height: | Size: 127 B After Width: | Height: | Size: 118 B  | 
| 
		 Before Width: | Height: | Size: 118 B After Width: | Height: | Size: 110 B  | 
| 
		 Before Width: | Height: | Size: 93 B After Width: | Height: | Size: 89 B  | 
| 
		 Before Width: | Height: | Size: 95 B After Width: | Height: | Size: 95 B  | 
| 
		 Before Width: | Height: | Size: 117 B After Width: | Height: | Size: 98 B  | 
| 
		 Before Width: | Height: | Size: 133 B After Width: | Height: | Size: 120 B  | 
| 
		 Before Width: | Height: | Size: 121 B After Width: | Height: | Size: 111 B  | 
| 
		 Before Width: | Height: | Size: 96 B After Width: | Height: | Size: 94 B  | 
| 
		 Before Width: | Height: | Size: 100 B After Width: | Height: | Size: 95 B  |