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

◆ Step_WireCutter()

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

Definition at line 1399 of file SmartCursorHelper.cs.

1400 {
1401 if (providedInfo.item.type != 510 || focusedX != -1 || focusedY != -1)
1402 {
1403 return;
1404 }
1405 _targets.Clear();
1406 for (int i = providedInfo.reachableStartX; i <= providedInfo.reachableEndX; i++)
1407 {
1408 for (int j = providedInfo.reachableStartY; j <= providedInfo.reachableEndY; j++)
1409 {
1410 Tile tile = Main.tile[i, j];
1411 if (tile.wire() || tile.wire2() || tile.wire3() || tile.wire4() || tile.actuator())
1412 {
1413 _targets.Add(new Tuple<int, int>(i, j));
1414 }
1415 }
1416 }
1417 if (_targets.Count > 0)
1418 {
1419 float num = -1f;
1421 for (int k = 0; k < _targets.Count; k++)
1422 {
1423 float num2 = Vector2.Distance(new Vector2(_targets[k].Item1, _targets[k].Item2) * 16f + Vector2.One * 8f, providedInfo.mouse);
1424 if (num == -1f || num2 < num)
1425 {
1426 num = num2;
1427 tuple = _targets[k];
1428 }
1429 }
1430 if (Collision.InTileBounds(tuple.Item1, tuple.Item2, providedInfo.reachableStartX, providedInfo.reachableStartY, providedInfo.reachableEndX, providedInfo.reachableEndY))
1431 {
1432 focusedX = tuple.Item1;
1433 focusedY = tuple.Item2;
1434 }
1435 }
1436 _targets.Clear();
1437 }
static List< Tuple< int, int > > _targets
static float Distance(Vector2 value1, Vector2 value2)
Definition Vector2.cs:91

References Terraria.GameContent.SmartCursorHelper._targets, 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().