I'll just do the main ones:
Logic_Auto:Used for its "OnMapSpawn" or "OnNewGame" to trigger other entities on game initialization.
Logic_Branch:A "OR" gate. A simple 2-way branch depending on whether the input trigger has "With a parameter override of:" set to "1" or "0". See Logic_Case.
Logic_Case:Similar to Logic_Branch, but with up to 16 different outputs. With just a standard "Trigger" input, can be made to PickRandom (can even pick the same one again) or PickShuffel, which would (randomly) cycle through the one's that have not been picked before a repeat can be made. Note that blank (empty) Case outputs will not be chosen. So if there are only three Outputs set, it'll randomly pick between only those three.
The input may choose the "InValue" of the Logic_Case which would pick the corresponding Case to Output.
The Logic_Case needs each "OnCase" outputs set to link to other entities.
Logic_Compare:This is your 'IF' function. You can set it's values ("SetValue" and "SetCompareValue") via input Triggers, and then trigger it with "Compare" which will 'run' the IF statement, and give the appropriate output. A compare can be automatically done when setting the "Compare Value" with "SetValueCompare" (note different from above).
Lets make an example. Say you want to turn on a light when a player pushes a button 10 times.
Logic_Compare:
SetValue = 10
OnEqualTo -> Light_Dynamic -> TurnOn
Button:
OnPressed -> Math_Counter -> Add -> 1
Math_Counter:
OutValue-> Logic_Compare -> SetValueCompare (Parameter should automatically be the value)
[UNTESTED]
Logic_Relay:The Logic_Relay is (or should be) the most used Entity. It is used between Entity Inputs and Outputs to 'ease the burden' of the outputting Entity. It's properties are best shown in an example:
Say i have a button, and when i press it i would like 10 wheels to start to turn, each a second after the previous.
Without a Logic_Relay, the Button would contain all ten outputs, each with a larger delay than the last.
Instead of a long list of outputs from the Button, the Button could have a single output to Trigger a Logic_Relay. The Logic_Relay will hold all the Trigger Outputs for the wheels, with their delay functions.
This allows many things:
The Logic_Relay will "unburden" the Button, so that it may perform another, different, action.
The Logic_Relay could be triggered by many different Entites to have the same output, EG a Trigger_Once "OnTouch" as well as the Button. This saves setting up the 10 outputs on two Entities.
If there is more than one output from an Entity from the same input (EG: OnTouch, OnPressed, etc) or multiple Inputs to have the same Output on another Entity, then it
should pass through a Logic_Relay.
Logic_Timer:The Logic_Timer is used to automatically perform the same task many times, either regually, or randomly.
For example if you want to spawn something every 10 seconds, or if you want to make a lightning sprite flash randomly, etc, than Logic_Timer is your Entity.
Logic_Timer has three major applications. The first is a simple Trigger Input (Enable) with a "RefireInterval" set. This will repeatedly output "OnTimer" every interval in seconds set by the RefireInterval.
The second function is similar to the above, but with "UseRandomTime" set to true, to perform the output "OnTimer" every interval set by the "Minimum Random Interval" and "Maximum Random Interval". For example, say i want to randomly spawn a Zombie at least every minute, but with at least 30 seconds between them. This would have a "Minimum" of 30 and a "Maximum" of 60 seconds, with the "OnTimer" Output pointing to the spawner.
The third option is the Oscillator option. This is set in the Logic_Timer's Flags. It can be used with either of the above, but can be used to oscillate between two outputs, "OnTimerHigh" (first) and "OnTimerLow" instead of the single output "OnTimer".