TModLoader v1.4.4.9
TModLoader source code documentation
Loading...
Searching...
No Matches

◆ LogicGatePass()

static void Terraria.Wiring.LogicGatePass ( )
inlinestaticprivate

Definition at line 784 of file Wiring.cs.

785 {
786 if (_GatesCurrent.Count != 0)
787 {
788 return;
789 }
790 _GatesDone.Clear();
791 while (_LampsToCheck.Count > 0)
792 {
793 while (_LampsToCheck.Count > 0)
794 {
795 Point16 point = _LampsToCheck.Dequeue();
796 CheckLogicGate(point.X, point.Y);
797 }
798 while (_GatesNext.Count > 0)
799 {
800 Utils.Swap(ref _GatesCurrent, ref _GatesNext);
801 while (_GatesCurrent.Count > 0)
802 {
803 Point16 key = _GatesCurrent.Peek();
804 if (_GatesDone.TryGetValue(key, out var value) && value)
805 {
806 _GatesCurrent.Dequeue();
807 continue;
808 }
809 _GatesDone.Add(key, value: true);
810 TripWire(key.X, key.Y, 1, 1);
811 _GatesCurrent.Dequeue();
812 }
813 }
814 }
815 _GatesDone.Clear();
817 {
819 }
820 }
static Queue< Point16 > _LampsToCheck
Definition Wiring.cs:34
static Queue< Point16 > _GatesCurrent
Definition Wiring.cs:32
static void CheckLogicGate(int lampX, int lampY)
Definition Wiring.cs:822
static Dictionary< Point16, bool > _GatesDone
Definition Wiring.cs:38
static void TripWire(int left, int top, int width, int height)
Used to send a single to wiring wired up to the specified area. The parameters represent the tile coo...
Definition Wiring.cs:607
static Queue< Point16 > _GatesNext
Definition Wiring.cs:36
static bool blockPlayerTeleportationForOneIteration
Definition Wiring.cs:16

References Terraria.Wiring._GatesCurrent, Terraria.Wiring._GatesDone, Terraria.Wiring._GatesNext, Terraria.Wiring._LampsToCheck, Terraria.Wiring.blockPlayerTeleportationForOneIteration, Terraria.Wiring.CheckLogicGate(), Terraria.Wiring.TripWire(), Terraria.DataStructures.Point16.X, and Terraria.DataStructures.Point16.Y.

Referenced by Terraria.Wiring.PokeLogicGate(), and Terraria.Wiring.TripWire().

+ Here is the call graph for this function:
+ Here is the caller graph for this function: