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

◆ Step_StaffOfRegrowth()

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

Definition at line 239 of file SmartCursorHelper.cs.

240 {
241 if ((providedInfo.item.type != 213 && providedInfo.item.type != 5295) || focusedX != -1 || focusedY != -1)
242 {
243 return;
244 }
245 _targets.Clear();
246 for (int i = providedInfo.reachableStartX; i <= providedInfo.reachableEndX; i++)
247 {
248 for (int j = providedInfo.reachableStartY; j <= providedInfo.reachableEndY; j++)
249 {
250 Tile tile = Main.tile[i, j];
251 bool flag = !Main.tile[i - 1, j].active() || !Main.tile[i, j + 1].active() || !Main.tile[i + 1, j].active() || !Main.tile[i, j - 1].active();
252 bool flag2 = !Main.tile[i - 1, j - 1].active() || !Main.tile[i - 1, j + 1].active() || !Main.tile[i + 1, j + 1].active() || !Main.tile[i + 1, j - 1].active();
253 if (tile.active() && !tile.inActive() && tile.type == 0 && (flag || (tile.type == 0 && flag2)))
254 {
255 _targets.Add(new Tuple<int, int>(i, j));
256 }
257 }
258 }
259 if (_targets.Count > 0)
260 {
261 float num = -1f;
263 for (int k = 0; k < _targets.Count; k++)
264 {
265 float num2 = Vector2.Distance(new Vector2(_targets[k].Item1, _targets[k].Item2) * 16f + Vector2.One * 8f, providedInfo.mouse);
266 if (num == -1f || num2 < num)
267 {
268 num = num2;
269 tuple = _targets[k];
270 }
271 }
272 if (Collision.InTileBounds(tuple.Item1, tuple.Item2, providedInfo.reachableStartX, providedInfo.reachableStartY, providedInfo.reachableEndX, providedInfo.reachableEndY))
273 {
274 focusedX = tuple.Item1;
275 focusedY = tuple.Item2;
276 }
277 }
278 _targets.Clear();
279 }
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.Tile.inActive(), Terraria.Collision.InTileBounds(), and Terraria.Main.tile.

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