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

◆ ClearBrokenTraps()

static void Terraria.WorldGen.ClearBrokenTraps ( Point startTileCoords,
List< Point > pointsWeAlreadyWentOver )
inlinestatic

Definition at line 18520 of file WorldGen.cs.

18521 {
18522 List<Point> t = new List<Point>();
18523 List<Point> t2 = new List<Point>();
18525 bool flag = false;
18526 bool flag2 = false;
18528 while (t2.Count > 0)
18529 {
18530 Utils.Swap(ref t, ref t2);
18531 while (t.Count > 0)
18532 {
18533 Point item = t[0];
18534 t.RemoveAt(0);
18535 if (!InWorld(item.X, item.Y, 5))
18536 {
18537 continue;
18538 }
18539 Tile tile = Main.tile[item.X, item.Y];
18540 if (tile.wire())
18541 {
18543 list.Add(item);
18544 if (IsItATrap(tile))
18545 {
18546 flag = true;
18547 }
18548 if (IsItATrigger(tile))
18549 {
18550 flag2 = true;
18551 }
18552 if (flag2 && flag)
18553 {
18554 break;
18555 }
18556 Point item2 = new Point(item.X - 1, item.Y);
18557 if (!list.Contains(item2))
18558 {
18559 t2.Add(item2);
18560 }
18561 item2 = new Point(item.X + 1, item.Y);
18562 if (!list.Contains(item2))
18563 {
18564 t2.Add(item2);
18565 }
18566 item2 = new Point(item.X, item.Y - 1);
18567 if (!list.Contains(item2))
18568 {
18569 t2.Add(item2);
18570 }
18571 item2 = new Point(item.X, item.Y + 1);
18572 if (!list.Contains(item2))
18573 {
18574 t2.Add(item2);
18575 }
18576 }
18577 }
18578 if (flag2 && flag)
18579 {
18580 break;
18581 }
18582 }
18583 if (flag2 && flag)
18584 {
18585 return;
18586 }
18587 foreach (Point item3 in list)
18588 {
18589 Tile tile2 = Main.tile[item3.X, item3.Y];
18590 tile2.wire(wire: false);
18591 if (IsItATrap(tile2))
18592 {
18593 if (tile2.actuator())
18594 {
18595 Main.tile[item3.X, item3.Y].actuator(actuator: false);
18596 }
18597 else if (tile2.type != 105)
18598 {
18599 KillTile(item3.X, item3.Y);
18600 }
18601 }
18602 else if (IsItATrigger(tile2))
18603 {
18604 if (tile2.type == 314)
18605 {
18606 tile2.frameX = 1;
18607 }
18608 else
18609 {
18610 KillTile(item3.X, item3.Y);
18611 }
18612 }
18613 }
18614 }
void Add(TKey key, TValue value)
static bool IsItATrap(Tile tile)
static void KillTile(int i, int j, bool fail=false, bool effectOnly=false, bool noItem=false)
static bool IsItATrigger(Tile tile)
static bool InWorld(int x, int y, int fluff=0)
Definition WorldGen.cs:5816

References System.Collections.Generic.Dictionary< TKey, TValue >.Add(), System.Collections.Generic.Dictionary< TKey, TValue >.Count, System.item, System.list, Terraria.Main.tile, and Terraria.Tile.wire().