forked from mtcontrib/signs_lib
		
	Compare commits
	
		
			1 Commits
		
	
	
		
			1327cb2112
			...
			fix1
		
	
	| Author | SHA1 | Date | |
|---|---|---|---|
| 
						 | 
					dd2e71e5a9 | 
							
								
								
									
										48
									
								
								init.lua
									
									
									
									
									
								
							
							
						
						
									
										48
									
								
								init.lua
									
									
									
									
									
								
							@@ -487,24 +487,7 @@ signs_lib.update_sign = function(pos, fields, owner)
 | 
				
			|||||||
	end
 | 
						end
 | 
				
			||||||
	local text = meta:get_string("text")
 | 
						local text = meta:get_string("text")
 | 
				
			||||||
	if text == nil then return end
 | 
						if text == nil then return end
 | 
				
			||||||
	local objects = minetest.get_objects_inside_radius(pos, 0.5)
 | 
					 | 
				
			||||||
	local found
 | 
					 | 
				
			||||||
	for _, v in ipairs(objects) do
 | 
					 | 
				
			||||||
		local e = v:get_luaentity()
 | 
					 | 
				
			||||||
		if e and e.name == "signs:text" then
 | 
					 | 
				
			||||||
			if found then
 | 
					 | 
				
			||||||
				v:remove()
 | 
					 | 
				
			||||||
			else
 | 
					 | 
				
			||||||
				set_obj_text(v, text, new)
 | 
					 | 
				
			||||||
				found = true
 | 
					 | 
				
			||||||
			end
 | 
					 | 
				
			||||||
		end
 | 
					 | 
				
			||||||
	end
 | 
					 | 
				
			||||||
	if found then
 | 
					 | 
				
			||||||
		return
 | 
					 | 
				
			||||||
	end
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
	-- if there is no entity
 | 
					 | 
				
			||||||
	local sign_info
 | 
						local sign_info
 | 
				
			||||||
	local signnode = minetest.get_node(pos)
 | 
						local signnode = minetest.get_node(pos)
 | 
				
			||||||
	if signnode.name == "signs:sign_yard" then
 | 
						if signnode.name == "signs:sign_yard" then
 | 
				
			||||||
@@ -524,10 +507,33 @@ signs_lib.update_sign = function(pos, fields, owner)
 | 
				
			|||||||
	if sign_info == nil then
 | 
						if sign_info == nil then
 | 
				
			||||||
		return
 | 
							return
 | 
				
			||||||
	end
 | 
						end
 | 
				
			||||||
	local text = minetest.add_entity({x = pos.x + sign_info.delta.x,
 | 
					
 | 
				
			||||||
										y = pos.y + sign_info.delta.y,
 | 
						local objects = minetest.get_objects_inside_radius(pos, 0.5)
 | 
				
			||||||
										z = pos.z + sign_info.delta.z}, "signs:text")
 | 
						local sign_obj
 | 
				
			||||||
	text:setyaw(sign_info.yaw)
 | 
						for _, v in ipairs(objects) do
 | 
				
			||||||
 | 
							local e = v:get_luaentity()
 | 
				
			||||||
 | 
							if e and e.name == "signs:text" then
 | 
				
			||||||
 | 
								if sign_obj then
 | 
				
			||||||
 | 
									v:remove()
 | 
				
			||||||
 | 
								else
 | 
				
			||||||
 | 
									set_obj_text(v, text, new)
 | 
				
			||||||
 | 
									sign_obj = v
 | 
				
			||||||
 | 
								end
 | 
				
			||||||
 | 
							end
 | 
				
			||||||
 | 
						end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						-- if there is no entity, create one
 | 
				
			||||||
 | 
						if not sign_obj then
 | 
				
			||||||
 | 
							sign_obj = minetest.add_entity(pos, "signs:text")
 | 
				
			||||||
 | 
						end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						-- set pos and yaw here. solves issue #2
 | 
				
			||||||
 | 
						sign_obj:setpos({
 | 
				
			||||||
 | 
							x = pos.x + sign_info.delta.x,
 | 
				
			||||||
 | 
							y = pos.y + sign_info.delta.y,
 | 
				
			||||||
 | 
							z = pos.z + sign_info.delta.z,
 | 
				
			||||||
 | 
						})
 | 
				
			||||||
 | 
						sign_obj:setyaw(sign_info.yaw)
 | 
				
			||||||
end
 | 
					end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
-- What kind of sign do we need to place, anyway?
 | 
					-- What kind of sign do we need to place, anyway?
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user