Compare commits
	
		
			8 Commits
		
	
	
		
			302a28934d
			...
			numzero-fi
		
	
	| Author | SHA1 | Date | |
|---|---|---|---|
|  | 7888566b2f | ||
|  | 15e743629e | ||
|  | 1bf862f932 | ||
|  | 1a9704f184 | ||
|  | 8baa789eb1 | ||
|  | b0158f5674 | ||
|  | 073c92d487 | ||
|  | 737f366741 | 
| Before Width: | Height: | Size: 323 B After Width: | Height: | Size: 191 B | 
| Before Width: | Height: | Size: 1.2 KiB After Width: | Height: | Size: 844 B | 
| Before Width: | Height: | Size: 1.2 KiB After Width: | Height: | Size: 838 B | 
| Before Width: | Height: | Size: 1.2 KiB After Width: | Height: | Size: 851 B | 
| Before Width: | Height: | Size: 1.2 KiB After Width: | Height: | Size: 846 B | 
| Before Width: | Height: | Size: 550 B After Width: | Height: | Size: 222 B | 
| Before Width: | Height: | Size: 613 B After Width: | Height: | Size: 504 B | 
| Before Width: | Height: | Size: 204 B After Width: | Height: | Size: 144 B | 
| Before Width: | Height: | Size: 465 B After Width: | Height: | Size: 377 B | 
| Before Width: | Height: | Size: 464 B After Width: | Height: | Size: 362 B | 
| @@ -186,19 +186,11 @@ function mesecon.invertRule(r) | |||||||
| 	return vector.multiply(r, -1) | 	return vector.multiply(r, -1) | ||||||
| end | end | ||||||
|  |  | ||||||
| function mesecon.tablecopy(table) -- deep table copy | function mesecon.tablecopy(obj) -- deep copy | ||||||
| 	if type(table) ~= "table" then return table end -- no need to copy | 	if type(obj) == "table" then | ||||||
| 	local newtable = {} | 		return table.copy(obj) | ||||||
|  |  | ||||||
| 	for idx, item in pairs(table) do |  | ||||||
| 		if type(item) == "table" then |  | ||||||
| 			newtable[idx] = mesecon.tablecopy(item) |  | ||||||
| 		else |  | ||||||
| 			newtable[idx] = item |  | ||||||
| 		end |  | ||||||
| 	end | 	end | ||||||
|  | 	return obj | ||||||
| 	return newtable |  | ||||||
| end | end | ||||||
|  |  | ||||||
| function mesecon.cmpAny(t1, t2) | function mesecon.cmpAny(t1, t2) | ||||||
|   | |||||||
							
								
								
									
										
											BIN
										
									
								
								mesecons_blinkyplant/doc/blinkyplant/preview.png
									
									
									
									
									
										
										
										Executable file → Normal file
									
								
							
							
						
						| Before Width: | Height: | Size: 65 KiB After Width: | Height: | Size: 54 KiB | 
| Before Width: | Height: | Size: 2.9 KiB After Width: | Height: | Size: 1.7 KiB | 
| Before Width: | Height: | Size: 454 B After Width: | Height: | Size: 367 B | 
| Before Width: | Height: | Size: 463 B After Width: | Height: | Size: 394 B | 
| Before Width: | Height: | Size: 78 KiB After Width: | Height: | Size: 68 KiB | 
| Before Width: | Height: | Size: 7.8 KiB After Width: | Height: | Size: 4.3 KiB | 
| Before Width: | Height: | Size: 411 B After Width: | Height: | Size: 371 B | 
| Before Width: | Height: | Size: 449 B After Width: | Height: | Size: 409 B | 
| Before Width: | Height: | Size: 434 B After Width: | Height: | Size: 220 B | 
| Before Width: | Height: | Size: 36 KiB After Width: | Height: | Size: 33 KiB | 
| Before Width: | Height: | Size: 282 B After Width: | Height: | Size: 183 B | 
| Before Width: | Height: | Size: 278 B After Width: | Height: | Size: 183 B | 
| Before Width: | Height: | Size: 61 KiB After Width: | Height: | Size: 50 KiB | 
| Before Width: | Height: | Size: 8.3 KiB After Width: | Height: | Size: 4.2 KiB | 
| Before Width: | Height: | Size: 438 B After Width: | Height: | Size: 221 B | 
| Before Width: | Height: | Size: 226 B After Width: | Height: | Size: 176 B | 
| Before Width: | Height: | Size: 228 B After Width: | Height: | Size: 187 B | 
| Before Width: | Height: | Size: 562 B After Width: | Height: | Size: 448 B | 
| Before Width: | Height: | Size: 558 B After Width: | Height: | Size: 449 B | 
| Before Width: | Height: | Size: 561 B After Width: | Height: | Size: 448 B | 
| Before Width: | Height: | Size: 556 B After Width: | Height: | Size: 446 B | 
| Before Width: | Height: | Size: 635 B After Width: | Height: | Size: 541 B | 
| Before Width: | Height: | Size: 632 B After Width: | Height: | Size: 541 B | 
| Before Width: | Height: | Size: 635 B After Width: | Height: | Size: 541 B | 
| Before Width: | Height: | Size: 630 B After Width: | Height: | Size: 538 B | 
| Before Width: | Height: | Size: 229 B After Width: | Height: | Size: 173 B | 
| Before Width: | Height: | Size: 234 B After Width: | Height: | Size: 181 B | 
| @@ -1,8 +1,11 @@ | |||||||
| The node detector is a receptor. It changes its state when either any node | The node detector is a receptor. It changes its state when either any node | ||||||
| or a specific node is detected. Right-click it to set a nodename to scan for. | or a specific node is detected. Right-click it to set a nodename to scan for. | ||||||
| It can also receive digiline signals. You can either send "GET" and it will | It can also receive digiline signals. For example, you can send | ||||||
| respond with the detected nodename or you can send any other string and it will | <code>{distance=4, scanname="default:dirt"}</code> | ||||||
| set this string as the node to scan for. | to set distance to 4 and scan for dirt. You can omit either parameter. | ||||||
|  | There is also a command parameter: <code>{command="get"}</code> will respond | ||||||
|  | with the detected nodename and <code>{command="scan"}</code> will respond with | ||||||
|  | a boolean using the distance and nodename of the detector. | ||||||
| Nodenames must include the mod they reside in, so for instance default:dirt, not just dirt. | Nodenames must include the mod they reside in, so for instance default:dirt, not just dirt. | ||||||
| The distance parameter specifies how many blocks are between the node detector and the node to detect. | The distance parameter specifies how many blocks are between the node detector and the node to detect. | ||||||
| Automatic scanning with Mesecons output only works when the detector is in an active block, but Digilines queries always work. | Automatic scanning with Mesecons output only works when the detector is in an active block, but Digilines queries always work. | ||||||
|   | |||||||
| Before Width: | Height: | Size: 48 KiB After Width: | Height: | Size: 43 KiB | 
| Before Width: | Height: | Size: 9.8 KiB After Width: | Height: | Size: 7.3 KiB | 
| Before Width: | Height: | Size: 84 KiB After Width: | Height: | Size: 78 KiB | 
| Before Width: | Height: | Size: 9.6 KiB After Width: | Height: | Size: 7.1 KiB | 
| @@ -189,28 +189,49 @@ local function node_detector_scan(pos) | |||||||
| 		(frontname ~= "air" and frontname ~= "ignore" and scanname == "") | 		(frontname ~= "air" and frontname ~= "ignore" and scanname == "") | ||||||
| end | end | ||||||
|  |  | ||||||
|  | local function node_detector_send_node_name(pos, node, channel, meta) | ||||||
|  | 	local distance = meta:get_int("distance") | ||||||
|  | 	local distance_max = mesecon.setting("node_detector_distance_max", 10) | ||||||
|  | 	if distance < 0 then distance = 0 end | ||||||
|  | 	if distance > distance_max then distance = distance_max end | ||||||
|  | 	local nodename = minetest.get_node( | ||||||
|  | 		vector.subtract(pos, vector.multiply(minetest.facedir_to_dir(node.param2), distance + 1)) | ||||||
|  | 	).name | ||||||
|  |  | ||||||
|  | 	digiline:receptor_send(pos, digiline.rules.default, channel, nodename) | ||||||
|  | end | ||||||
|  |  | ||||||
| -- set player name when receiving a digiline signal on a specific channel | -- set player name when receiving a digiline signal on a specific channel | ||||||
| local node_detector_digiline = { | local node_detector_digiline = { | ||||||
| 	effector = { | 	effector = { | ||||||
| 		action = function(pos, node, channel, msg) | 		action = function(pos, node, channel, msg) | ||||||
| 			local meta = minetest.get_meta(pos) | 			local meta = minetest.get_meta(pos) | ||||||
|  |  | ||||||
| 			local distance = meta:get_int("distance") |  | ||||||
| 			local distance_max = mesecon.setting("node_detector_distance_max", 10) |  | ||||||
| 			if distance < 0 then distance = 0 end |  | ||||||
| 			if distance > distance_max then distance = distance_max end |  | ||||||
|  |  | ||||||
| 			if channel ~= meta:get_string("digiline_channel") then return end | 			if channel ~= meta:get_string("digiline_channel") then return end | ||||||
|  |  | ||||||
| 			if msg == GET_COMMAND then | 			if type(msg) == "table" then | ||||||
| 				local nodename = minetest.get_node( | 				if msg.distance or msg.scanname then | ||||||
| 					vector.subtract(pos, vector.multiply(minetest.facedir_to_dir(node.param2), distance + 1)) | 					if msg.distance then | ||||||
| 				).name | 						meta:set_string("distance", msg.distance) | ||||||
|  | 					end | ||||||
| 				digiline:receptor_send(pos, digiline.rules.default, channel, nodename) | 					if msg.scanname then | ||||||
|  | 						meta:set_string("scanname", msg.scanname) | ||||||
|  | 					end | ||||||
|  | 					node_detector_make_formspec(pos) | ||||||
|  | 				end | ||||||
|  | 				if msg.command == "get" then | ||||||
|  | 					node_detector_send_node_name(pos, node, channel, meta) | ||||||
|  | 				elseif msg.command == "scan" then | ||||||
|  | 					local result = node_detector_scan(pos) | ||||||
|  | 					digiline:receptor_send(pos, digiline.rules.default, channel, result) | ||||||
|  | 				end | ||||||
| 			else | 			else | ||||||
| 				meta:set_string("scanname", msg) | 				if msg == GET_COMMAND then | ||||||
| 				node_detector_make_formspec(pos) | 					node_detector_send_node_name(pos, node, channel, meta) | ||||||
|  | 				else | ||||||
|  | 					meta:set_string("scanname", msg) | ||||||
|  | 					node_detector_make_formspec(pos) | ||||||
|  | 				end | ||||||
| 			end | 			end | ||||||
| 		end, | 		end, | ||||||
| 	}, | 	}, | ||||||
|   | |||||||
| Before Width: | Height: | Size: 717 B After Width: | Height: | Size: 640 B | 
| Before Width: | Height: | Size: 727 B After Width: | Height: | Size: 687 B | 
| Before Width: | Height: | Size: 712 B After Width: | Height: | Size: 655 B | 
| Before Width: | Height: | Size: 735 B After Width: | Height: | Size: 693 B | 
| Before Width: | Height: | Size: 41 KiB After Width: | Height: | Size: 36 KiB | 
| Before Width: | Height: | Size: 3.8 KiB After Width: | Height: | Size: 1.9 KiB | 
| Before Width: | Height: | Size: 61 KiB After Width: | Height: | Size: 58 KiB | 
| Before Width: | Height: | Size: 3.7 KiB After Width: | Height: | Size: 1.7 KiB | 
| Before Width: | Height: | Size: 30 KiB After Width: | Height: | Size: 28 KiB | 
| Before Width: | Height: | Size: 6.1 KiB After Width: | Height: | Size: 2.5 KiB | 
| Before Width: | Height: | Size: 54 KiB After Width: | Height: | Size: 47 KiB | 
| Before Width: | Height: | Size: 3.9 KiB After Width: | Height: | Size: 1.9 KiB | 
| Before Width: | Height: | Size: 14 KiB After Width: | Height: | Size: 11 KiB | 
| Before Width: | Height: | Size: 3.0 KiB After Width: | Height: | Size: 1.9 KiB | 
| Before Width: | Height: | Size: 21 KiB After Width: | Height: | Size: 20 KiB | 
| Before Width: | Height: | Size: 3.1 KiB After Width: | Height: | Size: 2.9 KiB | 
| Before Width: | Height: | Size: 598 B After Width: | Height: | Size: 519 B | 
| Before Width: | Height: | Size: 1.9 KiB After Width: | Height: | Size: 1.7 KiB | 
| Before Width: | Height: | Size: 311 B After Width: | Height: | Size: 256 B | 
| Before Width: | Height: | Size: 536 B After Width: | Height: | Size: 480 B | 
| Before Width: | Height: | Size: 816 B After Width: | Height: | Size: 760 B | 
| Before Width: | Height: | Size: 68 KiB After Width: | Height: | Size: 52 KiB | 
| Before Width: | Height: | Size: 2.7 KiB After Width: | Height: | Size: 1.7 KiB | 
| Before Width: | Height: | Size: 71 KiB After Width: | Height: | Size: 54 KiB | 
| Before Width: | Height: | Size: 2.0 KiB After Width: | Height: | Size: 1.3 KiB | 
| Before Width: | Height: | Size: 62 KiB After Width: | Height: | Size: 47 KiB | 
| Before Width: | Height: | Size: 2.7 KiB After Width: | Height: | Size: 1.7 KiB | 
| Before Width: | Height: | Size: 26 KiB After Width: | Height: | Size: 21 KiB | 
| Before Width: | Height: | Size: 2.4 KiB After Width: | Height: | Size: 1.1 KiB | 
| Before Width: | Height: | Size: 69 KiB After Width: | Height: | Size: 53 KiB | 
| Before Width: | Height: | Size: 2.0 KiB After Width: | Height: | Size: 1.3 KiB | 
| Before Width: | Height: | Size: 26 KiB After Width: | Height: | Size: 21 KiB | 
| Before Width: | Height: | Size: 2.4 KiB After Width: | Height: | Size: 1.1 KiB | 
| Before Width: | Height: | Size: 69 KiB After Width: | Height: | Size: 53 KiB | 
| Before Width: | Height: | Size: 2.6 KiB After Width: | Height: | Size: 1.6 KiB | 
| Before Width: | Height: | Size: 233 B After Width: | Height: | Size: 123 B | 
| Before Width: | Height: | Size: 231 B After Width: | Height: | Size: 128 B | 
| Before Width: | Height: | Size: 251 B After Width: | Height: | Size: 127 B | 
| Before Width: | Height: | Size: 251 B After Width: | Height: | Size: 127 B | 
| Before Width: | Height: | Size: 241 B After Width: | Height: | Size: 128 B | 
| Before Width: | Height: | Size: 195 B After Width: | Height: | Size: 84 B | 
| Before Width: | Height: | Size: 195 B After Width: | Height: | Size: 84 B | 
| Before Width: | Height: | Size: 243 B After Width: | Height: | Size: 127 B | 
| Before Width: | Height: | Size: 245 B After Width: | Height: | Size: 128 B | 
| Before Width: | Height: | Size: 33 KiB After Width: | Height: | Size: 32 KiB | 
| Before Width: | Height: | Size: 8.0 KiB After Width: | Height: | Size: 7.0 KiB | 
| Before Width: | Height: | Size: 4.8 KiB After Width: | Height: | Size: 4.7 KiB | 
| Before Width: | Height: | Size: 782 B After Width: | Height: | Size: 776 B | 
| Before Width: | Height: | Size: 758 B After Width: | Height: | Size: 754 B | 
| Before Width: | Height: | Size: 820 B After Width: | Height: | Size: 729 B | 
| Before Width: | Height: | Size: 6.8 KiB After Width: | Height: | Size: 1.7 KiB | 
| Before Width: | Height: | Size: 5.0 KiB After Width: | Height: | Size: 1.6 KiB | 
| Before Width: | Height: | Size: 43 KiB After Width: | Height: | Size: 40 KiB | 
| Before Width: | Height: | Size: 4.6 KiB After Width: | Height: | Size: 2.5 KiB | 
| Before Width: | Height: | Size: 253 B After Width: | Height: | Size: 136 B | 
| Before Width: | Height: | Size: 196 B After Width: | Height: | Size: 136 B |