In other languages:

Virtual signals: Difference between revisions

From Official Factorio Wiki
Jump to navigation Jump to search
(Improved page, moved some information form the automatic control section here)
m (Small cleanup)
Line 1: Line 1:
{{Languages}}
{{Languages}}
[[File:virtual_signals.png|thumb|300px]][[File:logic_signals.png|300px|thumb|There are three types of logic signals]]
[[File:virtual_signals.png|thumb|300px]][[File:logic_signals.png|300px|thumb|There are three types of logic signals]]
'''Virtual signals''' can used as signals in [[Circuit network]]s. If a circuit network contains virtual signals, they act like a normal item signal, so you can perform comparisons and arithmetical operations.
'''Virtual signals''' can used as signals in [[Circuit network]]s. They are signals that are not associated with a certain item type, and therefore are immune to non-player based changes. If a circuit network contains virtual signals, they act like a normal item signal, so one can perform comparisons and arithmetical operations.


== Containing signals ==
== Containing signals ==
Currently Factorio has 45 virtual signals:
Currently Factorio has 45 virtual signals:
* numbers 0-9
* Numbers 0-9
* letters A-Z
* Letters A-Z
* colors (red, green, blue, yellow, magenta, cyan, white, gray, black)
* Colors (red, green, blue, yellow, magenta, cyan, white, gray, black)


Each signal has:
Each signal has:
* a ''name'' (for example "N") and
* A ''name'' (for example "N") and
* a ''value'' (for example "19").
* A ''value'' (for example "19").
 
This is similar to a map in programming, where a key holds a value, and the value can be accessed by that key.


== Logic signals ==
== Logic signals ==
There are also some logic signals in Factorio which are accessible by clicking certain signal slots on devices. They have special functions to control information with multiple signals. These three signals are:
There are also some logic signals in Factorio which are accessible by clicking certain signal slots on devices. They have special functions to control information with multiple signals. These three signals are:
* Everything (red)
* <span style="color:#ff0000">Everything</span>
* Anything (green)
* <span style="color:#548b54">Anything</span>
* Each (yellow)
* <span style="color:#eeb422">Each</span>


=== Everything ===
=== Everything ===
; As input
==== As input ====
{| class="wikitable"
{| class="wikitable"
| {{imagelink|basic-transport-belt|Transport belts}} | {{imagelink|basic-inserter|Inserters}} | {{imagelink|gate|Gate}} | {{imagelink|rail-signal|Rail signal}} | {{imagelink|lamp|Lamp}} | {{imagelink|offshore-pump|Offshore Pump}} | {{imagelink|small-pump|Small pump}} | {{imagelink|decider-combinator|Decider Combinator}} | {{imagelink|power-switch|Power switch}} |-
| {{imagelink|basic-transport-belt|Transport belts}} | {{imagelink|basic-inserter|Inserters}} | {{imagelink|gate|Gate}} | {{imagelink|rail-signal|Rail signal}} | {{imagelink|lamp|Lamp}} | {{imagelink|offshore-pump|Offshore Pump}} | {{imagelink|small-pump|Small pump}} | {{imagelink|decider-combinator|Decider Combinator}} | {{imagelink|power-switch|Power switch}} |-
|}
|}
The "Everything" signal works like a logical AND. It can only be used as the left term of the circuit condition. The condition will only be true if the condition is true for all signals the device receives. Be careful with signals with amount 0, because these signals will not considered by "Everything".
The "Everything" signal works like a logical AND. It can only be used as the left term of the circuit condition. The condition will only be true if the condition is true for all signals the device receives. Be careful with signals with amount 0, because these signals will not considered by "Everything", as they are considered 'inactive'.


If the decider combinator output is set as "Input count" and not "Everything", there will be no output even if the condition is true.
If the decider combinator output is set as "Input count" and not "Everything", there will be no output even if the condition is true.
; As output
==== As output ====
{| class="wikitable"
{| class="wikitable"
| {{imagelink|decider-combinator|Decider Combinator}} |-
| {{imagelink|decider-combinator|Decider Combinator}} |-
|}
|}
If the condition is true, all input signals are outputted, either with amount 1 or with their input amount.
If the condition is true, ''all input signals are outputted'', either with amount 1 or with their input amount.
=== Anything ===
=== Anything ===
; As input
==== As input ====
{| class="wikitable"
{| class="wikitable"
| {{imagelink|basic-transport-belt|Transport belts}} | {{imagelink|basic-inserter|Inserters}} | {{imagelink|gate|Gate}} | {{imagelink|rail-signal|Rail signal}} | {{imagelink|lamp|Lamp}} | {{imagelink|offshore-pump|Offshore Pump}} | {{imagelink|small-pump|Small pump}} | {{imagelink|decider-combinator|Decider Combinator}} | {{imagelink|power-switch|Power switch}} |-
| {{imagelink|basic-transport-belt|Transport belts}} | {{imagelink|basic-inserter|Inserters}} | {{imagelink|gate|Gate}} | {{imagelink|rail-signal|Rail signal}} | {{imagelink|lamp|Lamp}} | {{imagelink|offshore-pump|Offshore Pump}} | {{imagelink|small-pump|Small pump}} | {{imagelink|decider-combinator|Decider Combinator}} | {{imagelink|power-switch|Power switch}} |-
|}
|}
It works similar as "Everything", but the condition is true if the condition for at least one input signal is true (logical OR).
It works similar as "Everything", but the condition is true if the condition for at least one input signal is true. (logical OR)
 
==== As output ====
 
''Anything cannot be used as output, will output nothing.''
 
=== Each ===
=== Each ===
; As input
==== As input ====
{| class="wikitable"
{| class="wikitable"
| {{imagelink|arithmetic-combinator|Arithmetic Combinator}} | {{imagelink|decider-combinator|Decider Combinator}} |-
| {{imagelink|arithmetic-combinator|Arithmetic Combinator}} | {{imagelink|decider-combinator|Decider Combinator}} |-
Line 46: Line 55:


If the output is "1" and not "Each" (decider combinators only), the signal will only be outputted if at least one condition is true. If the output is "Input count" and not "Each", all amounts of input signals whose condition is true or (for arithmetic combinators) the results of mathematical operations for each input signal are summed and outputted.
If the output is "1" and not "Each" (decider combinators only), the signal will only be outputted if at least one condition is true. If the output is "Input count" and not "Each", all amounts of input signals whose condition is true or (for arithmetic combinators) the results of mathematical operations for each input signal are summed and outputted.
; As output
==== As output ====
{| class="wikitable"
{| class="wikitable"
| {{imagelink|arithmetic-combinator|Arithmetic Combinator}} | {{imagelink|decider-combinator|Decider Combinator}} |-
| {{imagelink|arithmetic-combinator|Arithmetic Combinator}} | {{imagelink|decider-combinator|Decider Combinator}} |-
|}
|}
The "Each" signal can only be set as output if the left input signal is also "Each". A decider combinator outputs only the input signals whose condition is true. An arithmetic combinator ouputs each input signals with an amount that is the result of the operation.
The "Each" signal can only be set as output if the left input signal is also "Each". A decider combinator outputs only the input signals whose condition is true. An arithmetic combinator outputs each input signals with an amount that is the result of the operation.

Revision as of 03:28, 21 January 2017


There are three types of logic signals

Virtual signals can used as signals in Circuit networks. They are signals that are not associated with a certain item type, and therefore are immune to non-player based changes. If a circuit network contains virtual signals, they act like a normal item signal, so one can perform comparisons and arithmetical operations.

Containing signals

Currently Factorio has 45 virtual signals:

  • Numbers 0-9
  • Letters A-Z
  • Colors (red, green, blue, yellow, magenta, cyan, white, gray, black)

Each signal has:

  • A name (for example "N") and
  • A value (for example "19").

This is similar to a map in programming, where a key holds a value, and the value can be accessed by that key.

Logic signals

There are also some logic signals in Factorio which are accessible by clicking certain signal slots on devices. They have special functions to control information with multiple signals. These three signals are:

  • Everything
  • Anything
  • Each

Everything

As input

Transport belts | Inserters |
Gate.png
Gate | Rail signal |
Lamp.png
Lamp | Offshore Pump | Small pump | Decider Combinator | Power switch |-

The "Everything" signal works like a logical AND. It can only be used as the left term of the circuit condition. The condition will only be true if the condition is true for all signals the device receives. Be careful with signals with amount 0, because these signals will not considered by "Everything", as they are considered 'inactive'.

If the decider combinator output is set as "Input count" and not "Everything", there will be no output even if the condition is true.

As output

Decider Combinator |-

If the condition is true, all input signals are outputted, either with amount 1 or with their input amount.

Anything

As input

Transport belts | Inserters |
Gate.png
Gate | Rail signal |
Lamp.png
Lamp | Offshore Pump | Small pump | Decider Combinator | Power switch |-

It works similar as "Everything", but the condition is true if the condition for at least one input signal is true. (logical OR)

As output

Anything cannot be used as output, will output nothing.

Each

As input

Arithmetic Combinator | Decider Combinator |-

The "Each" signal also performs the operation for all input signals, but the condition is not true or false once, but true or false for each input signal individually.

If the output is "1" and not "Each" (decider combinators only), the signal will only be outputted if at least one condition is true. If the output is "Input count" and not "Each", all amounts of input signals whose condition is true or (for arithmetic combinators) the results of mathematical operations for each input signal are summed and outputted.

As output

Arithmetic Combinator | Decider Combinator |-

The "Each" signal can only be set as output if the left input signal is also "Each". A decider combinator outputs only the input signals whose condition is true. An arithmetic combinator outputs each input signals with an amount that is the result of the operation.