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

◆ Step_ClayPots()

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

Definition at line 349 of file SmartCursorHelper.cs.

350 {
351 if (providedInfo.item.createTile != 78 || focusedX != -1 || focusedY != -1)
352 {
353 return;
354 }
355 _targets.Clear();
356 bool flag = false;
357 if (Main.tile[providedInfo.screenTargetX, providedInfo.screenTargetY].active())
358 {
359 flag = true;
360 }
361 if (!Collision.InTileBounds(providedInfo.screenTargetX, providedInfo.screenTargetY, providedInfo.reachableStartX, providedInfo.reachableStartY, providedInfo.reachableEndX, providedInfo.reachableEndY))
362 {
363 flag = true;
364 }
365 if (!flag)
366 {
367 for (int i = providedInfo.reachableStartX; i <= providedInfo.reachableEndX; i++)
368 {
369 for (int j = providedInfo.reachableStartY; j <= providedInfo.reachableEndY; j++)
370 {
371 Tile tile = Main.tile[i, j];
372 Tile tile2 = Main.tile[i, j + 1];
373 if ((!tile.active() || Main.tileCut[tile.type] || TileID.Sets.BreakableWhenPlacing[tile.type]) && tile2.nactive() && !tile2.halfBrick() && tile2.slope() == 0 && Main.tileSolid[tile2.type])
374 {
375 _targets.Add(new Tuple<int, int>(i, j));
376 }
377 }
378 }
379 }
380 if (_targets.Count > 0)
381 {
382 float num = -1f;
384 for (int k = 0; k < _targets.Count; k++)
385 {
386 if (Collision.EmptyTile(_targets[k].Item1, _targets[k].Item2, ignoreTiles: true))
387 {
388 float num2 = Vector2.Distance(new Vector2(_targets[k].Item1, _targets[k].Item2) * 16f + Vector2.One * 8f, providedInfo.mouse);
389 if (num == -1f || num2 < num)
390 {
391 num = num2;
392 tuple = _targets[k];
393 }
394 }
395 }
396 if (Collision.InTileBounds(tuple.Item1, tuple.Item2, providedInfo.reachableStartX, providedInfo.reachableStartY, providedInfo.reachableEndX, providedInfo.reachableEndY) && num != -1f)
397 {
398 focusedX = tuple.Item1;
399 focusedY = tuple.Item2;
400 }
401 }
402 _targets.Clear();
403 }
static List< Tuple< int, int > > _targets
static bool[] BreakableWhenPlacing
Definition TileID.cs:277
static float Distance(Vector2 value1, Vector2 value2)
Definition Vector2.cs:91

References Terraria.GameContent.SmartCursorHelper._targets, Terraria.Tile.active(), Terraria.ID.TileID.Sets.BreakableWhenPlacing, Microsoft.Xna.Framework.Vector2.Distance(), Terraria.Collision.EmptyTile(), Terraria.Collision.InTileBounds(), Terraria.Main.tile, Terraria.Main.tileCut, Terraria.Main.tileSolid, and Terraria.Tile.type.

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