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

◆ Step_LawnMower()

static void Terraria.GameContent.SmartCursorHelper.Step_LawnMower ( SmartCursorUsageInfo providedInfo,
ref int fX,
ref int fY )
inlinestaticprivate

Definition at line 2800 of file SmartCursorHelper.cs.

2801 {
2802 int reachableStartX = providedInfo.reachableStartX;
2803 int reachableStartY = providedInfo.reachableStartY;
2804 int reachableEndX = providedInfo.reachableEndX;
2805 int reachableEndY = providedInfo.reachableEndY;
2806 _ = providedInfo.screenTargetX;
2807 _ = providedInfo.screenTargetY;
2808 if (providedInfo.item.type != 4049 || fX != -1 || fY != -1)
2809 {
2810 return;
2811 }
2812 _targets.Clear();
2813 for (int i = reachableStartX; i <= reachableEndX; i++)
2814 {
2815 for (int j = reachableStartY; j <= reachableEndY; j++)
2816 {
2817 Tile tile = Main.tile[i, j];
2818 if (tile.active() && (tile.type == 2 || tile.type == 109))
2819 {
2820 _targets.Add(new Tuple<int, int>(i, j));
2821 }
2822 }
2823 }
2824 if (_targets.Count > 0)
2825 {
2826 float num = -1f;
2828 for (int k = 0; k < _targets.Count; k++)
2829 {
2830 float num2 = Vector2.Distance(new Vector2(_targets[k].Item1, _targets[k].Item2) * 16f + Vector2.One * 8f, providedInfo.mouse);
2831 if (num == -1f || num2 < num)
2832 {
2833 num = num2;
2834 tuple = _targets[k];
2835 }
2836 }
2837 if (Collision.InTileBounds(tuple.Item1, tuple.Item2, reachableStartX, reachableStartY, reachableEndX, reachableEndY))
2838 {
2839 fX = tuple.Item1;
2840 fY = tuple.Item2;
2841 }
2842 }
2843 _targets.Clear();
2844 }
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(), Microsoft.Xna.Framework.Vector2.Distance(), Terraria.Collision.InTileBounds(), Microsoft.Xna.Framework.Vector2.One, Terraria.Main.tile, and Terraria.Tile.type.

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