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

◆ Step_Actuators()

static void Terraria.GameContent.SmartCursorHelper.Step_Actuators ( SmartCursorUsageInfo providedInfo,
ref int focusedX,
ref int focusedY )
inlinestaticprivate

Definition at line 550 of file SmartCursorHelper.cs.

551 {
552 if (providedInfo.item.type != 849 || focusedX != -1 || focusedY != -1)
553 {
554 return;
555 }
556 _targets.Clear();
557 for (int i = providedInfo.reachableStartX; i <= providedInfo.reachableEndX; i++)
558 {
559 for (int j = providedInfo.reachableStartY; j <= providedInfo.reachableEndY; j++)
560 {
561 Tile tile = Main.tile[i, j];
562 if ((tile.wire() || tile.wire2() || tile.wire3() || tile.wire4()) && !tile.actuator() && tile.active())
563 {
564 _targets.Add(new Tuple<int, int>(i, j));
565 }
566 }
567 }
568 if (_targets.Count > 0)
569 {
570 float num = -1f;
572 for (int k = 0; k < _targets.Count; k++)
573 {
574 float num2 = Vector2.Distance(new Vector2(_targets[k].Item1, _targets[k].Item2) * 16f + Vector2.One * 8f, providedInfo.mouse);
575 if (num == -1f || num2 < num)
576 {
577 num = num2;
578 tuple = _targets[k];
579 }
580 }
581 if (Collision.InTileBounds(tuple.Item1, tuple.Item2, providedInfo.reachableStartX, providedInfo.reachableStartY, providedInfo.reachableEndX, providedInfo.reachableEndY))
582 {
583 focusedX = tuple.Item1;
584 focusedY = tuple.Item2;
585 }
586 }
587 _targets.Clear();
588 }
static List< Tuple< int, int > > _targets
static float Distance(Vector2 value1, Vector2 value2)
Definition Vector2.cs:91

References Terraria.GameContent.SmartCursorHelper._targets, Terraria.Tile.active(), Terraria.Tile.actuator(), Microsoft.Xna.Framework.Vector2.Distance(), Terraria.Collision.InTileBounds(), Terraria.Main.tile, Terraria.Tile.wire(), Terraria.Tile.wire2(), Terraria.Tile.wire3(), and Terraria.Tile.wire4().

Referenced by Terraria.GameContent.SmartCursorHelper.SmartCursorLookup().