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

◆ LogicGatePass()

static void Terraria.Wiring.LogicGatePass ( )
inlinestaticprivate

Definition at line 656 of file Wiring.cs.

657 {
658 if (_GatesCurrent.Count != 0)
659 {
660 return;
661 }
662 _GatesDone.Clear();
663 while (_LampsToCheck.Count > 0)
664 {
665 while (_LampsToCheck.Count > 0)
666 {
667 Point16 point = _LampsToCheck.Dequeue();
668 CheckLogicGate(point.X, point.Y);
669 }
670 while (_GatesNext.Count > 0)
671 {
672 Utils.Swap(ref _GatesCurrent, ref _GatesNext);
673 while (_GatesCurrent.Count > 0)
674 {
675 Point16 key = _GatesCurrent.Peek();
676 if (_GatesDone.TryGetValue(key, out var value) && value)
677 {
678 _GatesCurrent.Dequeue();
679 continue;
680 }
681 _GatesDone.Add(key, value: true);
682 TripWire(key.X, key.Y, 1, 1);
683 _GatesCurrent.Dequeue();
684 }
685 }
686 }
687 _GatesDone.Clear();
689 {
691 }
692 }
static Queue< Point16 > _LampsToCheck
Definition Wiring.cs:29
static Queue< Point16 > _GatesCurrent
Definition Wiring.cs:27
static void CheckLogicGate(int lampX, int lampY)
Definition Wiring.cs:694
static Dictionary< Point16, bool > _GatesDone
Definition Wiring.cs:33
static void TripWire(int left, int top, int width, int height)
Definition Wiring.cs:499
static Queue< Point16 > _GatesNext
Definition Wiring.cs:31
static bool blockPlayerTeleportationForOneIteration
Definition Wiring.cs:15

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

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