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) | ||||
| end | ||||
|  | ||||
| function mesecon.tablecopy(table) -- deep table copy | ||||
| 	if type(table) ~= "table" then return table end -- no need to copy | ||||
| 	local newtable = {} | ||||
|  | ||||
| 	for idx, item in pairs(table) do | ||||
| 		if type(item) == "table" then | ||||
| 			newtable[idx] = mesecon.tablecopy(item) | ||||
| 		else | ||||
| 			newtable[idx] = item | ||||
| function mesecon.tablecopy(obj) -- deep copy | ||||
| 	if type(obj) == "table" then | ||||
| 		return table.copy(obj) | ||||
| 	end | ||||
| 	end | ||||
|  | ||||
| 	return newtable | ||||
| 	return obj | ||||
| end | ||||
|  | ||||
| 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 | ||||
| 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 | ||||
| respond with the detected nodename or you can send any other string and it will | ||||
| set this string as the node to scan for. | ||||
| It can also receive digiline signals. For example, you can send | ||||
| <code>{distance=4, scanname="default:dirt"}</code> | ||||
| 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. | ||||
| 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. | ||||
|   | ||||
| 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,29 +189,50 @@ local function node_detector_scan(pos) | ||||
| 		(frontname ~= "air" and frontname ~= "ignore" and scanname == "") | ||||
| 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 | ||||
| local node_detector_digiline = { | ||||
| 	effector = { | ||||
| 		action = function(pos, node, channel, msg) | ||||
| 			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 type(msg) == "table" then | ||||
| 				if msg.distance or msg.scanname then | ||||
| 					if msg.distance then | ||||
| 						meta:set_string("distance", msg.distance) | ||||
| 					end | ||||
| 					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 | ||||
| 				if msg == GET_COMMAND then | ||||
| 				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) | ||||
| 					node_detector_send_node_name(pos, node, channel, meta) | ||||
| 				else | ||||
| 					meta:set_string("scanname", msg) | ||||
| 					node_detector_make_formspec(pos) | ||||
| 				end | ||||
| 			end | ||||
| 		end, | ||||
| 	}, | ||||
| 	receptor = {} | ||||
|   | ||||
| 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 |