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

◆ CheckTree()

static void Terraria.WorldGen.CheckTree ( int i,
int j )
inlinestatic

Definition at line 46399 of file WorldGen.cs.

46400 {
46401 int num = -1;
46402 int num2 = -1;
46403 int num3 = -1;
46404 int num4 = -1;
46405 int type = Main.tile[i, j].type;
46406 int frameX = Main.tile[i, j].frameX;
46407 int frameY = Main.tile[i, j].frameY;
46408 if (Main.tile[i - 1, j] != null && Main.tile[i - 1, j].active())
46409 {
46410 num2 = Main.tile[i - 1, j].type;
46411 }
46412 if (Main.tile[i + 1, j] != null && Main.tile[i + 1, j].active())
46413 {
46414 num3 = Main.tile[i + 1, j].type;
46415 }
46416 if (Main.tile[i, j - 1] != null && Main.tile[i, j - 1].active())
46417 {
46418 num = Main.tile[i, j - 1].type;
46419 }
46420 if (Main.tile[i, j + 1] != null && Main.tile[i, j + 1].active())
46421 {
46422 num4 = Main.tile[i, j + 1].type;
46423 }
46424 if (Main.tile[i - 1, j - 1] != null && Main.tile[i - 1, j - 1].active())
46425 {
46426 _ = Main.tile[i - 1, j - 1].type;
46427 }
46428 if (Main.tile[i + 1, j - 1] != null && Main.tile[i + 1, j - 1].active())
46429 {
46430 _ = Main.tile[i + 1, j - 1].type;
46431 }
46432 if (Main.tile[i - 1, j + 1] != null && Main.tile[i - 1, j + 1].active())
46433 {
46434 _ = Main.tile[i - 1, j + 1].type;
46435 }
46436 if (Main.tile[i + 1, j + 1] != null && Main.tile[i + 1, j + 1].active())
46437 {
46438 _ = Main.tile[i + 1, j + 1].type;
46439 }
46440 if (num4 == 23 || num4 == 661)
46441 {
46442 num4 = 2;
46443 }
46444 if (num4 == 477)
46445 {
46446 num4 = 2;
46447 }
46448 if (num4 == 60)
46449 {
46450 num4 = 2;
46451 }
46452 if (num4 == 70)
46453 {
46454 num4 = 2;
46455 }
46456 if (num4 == 109)
46457 {
46458 num4 = 2;
46459 }
46460 if (num4 == 147)
46461 {
46462 num4 = 2;
46463 }
46464 if (num4 == 199 || num4 == 662)
46465 {
46466 num4 = 2;
46467 }
46468 if (num4 == 492)
46469 {
46470 num4 = 2;
46471 }
46472 if (num4 != 2 && num4 != type && ((Main.tile[i, j].frameX == 0 && Main.tile[i, j].frameY <= 130) || (Main.tile[i, j].frameX == 22 && Main.tile[i, j].frameY <= 130) || (Main.tile[i, j].frameX == 44 && Main.tile[i, j].frameY <= 130)))
46473 {
46474 KillTile(i, j);
46475 }
46476 if (Main.tile[i, j].frameX >= 22 && Main.tile[i, j].frameX <= 44 && Main.tile[i, j].frameY >= 132 && Main.tile[i, j].frameY <= 176)
46477 {
46478 if (num4 != 2)
46479 {
46480 KillTile(i, j);
46481 }
46482 else if ((Main.tile[i, j].frameX != 22 || num2 != type) && (Main.tile[i, j].frameX != 44 || num3 != type))
46483 {
46484 KillTile(i, j);
46485 }
46486 }
46487 else if ((Main.tile[i, j].frameX == 88 && Main.tile[i, j].frameY >= 0 && Main.tile[i, j].frameY <= 44) || (Main.tile[i, j].frameX == 66 && Main.tile[i, j].frameY >= 66 && Main.tile[i, j].frameY <= 130) || (Main.tile[i, j].frameX == 110 && Main.tile[i, j].frameY >= 66 && Main.tile[i, j].frameY <= 110) || (Main.tile[i, j].frameX == 132 && Main.tile[i, j].frameY >= 0 && Main.tile[i, j].frameY <= 176))
46488 {
46489 if (num2 == type && num3 == type)
46490 {
46491 if (Main.tile[i, j].frameNumber() == 0)
46492 {
46493 Main.tile[i, j].frameX = 110;
46494 Main.tile[i, j].frameY = 66;
46495 }
46496 if (Main.tile[i, j].frameNumber() == 1)
46497 {
46498 Main.tile[i, j].frameX = 110;
46499 Main.tile[i, j].frameY = 88;
46500 }
46501 if (Main.tile[i, j].frameNumber() == 2)
46502 {
46503 Main.tile[i, j].frameX = 110;
46504 Main.tile[i, j].frameY = 110;
46505 }
46506 }
46507 else if (num2 == type)
46508 {
46509 if (Main.tile[i, j].frameNumber() == 0)
46510 {
46511 Main.tile[i, j].frameX = 88;
46512 Main.tile[i, j].frameY = 0;
46513 }
46514 if (Main.tile[i, j].frameNumber() == 1)
46515 {
46516 Main.tile[i, j].frameX = 88;
46517 Main.tile[i, j].frameY = 22;
46518 }
46519 if (Main.tile[i, j].frameNumber() == 2)
46520 {
46521 Main.tile[i, j].frameX = 88;
46522 Main.tile[i, j].frameY = 44;
46523 }
46524 }
46525 else if (num3 == type)
46526 {
46527 if (Main.tile[i, j].frameNumber() == 0)
46528 {
46529 Main.tile[i, j].frameX = 66;
46530 Main.tile[i, j].frameY = 66;
46531 }
46532 if (Main.tile[i, j].frameNumber() == 1)
46533 {
46534 Main.tile[i, j].frameX = 66;
46535 Main.tile[i, j].frameY = 88;
46536 }
46537 if (Main.tile[i, j].frameNumber() == 2)
46538 {
46539 Main.tile[i, j].frameX = 66;
46540 Main.tile[i, j].frameY = 110;
46541 }
46542 }
46543 else
46544 {
46545 if (Main.tile[i, j].frameNumber() == 0)
46546 {
46547 Main.tile[i, j].frameX = 0;
46548 Main.tile[i, j].frameY = 0;
46549 }
46550 if (Main.tile[i, j].frameNumber() == 1)
46551 {
46552 Main.tile[i, j].frameX = 0;
46553 Main.tile[i, j].frameY = 22;
46554 }
46555 if (Main.tile[i, j].frameNumber() == 2)
46556 {
46557 Main.tile[i, j].frameX = 0;
46558 Main.tile[i, j].frameY = 44;
46559 }
46560 }
46561 }
46562 if (Main.tile[i, j].frameY >= 132 && Main.tile[i, j].frameY <= 176 && (Main.tile[i, j].frameX == 0 || Main.tile[i, j].frameX == 66 || Main.tile[i, j].frameX == 88))
46563 {
46564 if (num4 != 2)
46565 {
46566 KillTile(i, j);
46567 }
46568 if (num2 != type && num3 != type)
46569 {
46570 if (Main.tile[i, j].frameNumber() == 0)
46571 {
46572 Main.tile[i, j].frameX = 0;
46573 Main.tile[i, j].frameY = 0;
46574 }
46575 if (Main.tile[i, j].frameNumber() == 1)
46576 {
46577 Main.tile[i, j].frameX = 0;
46578 Main.tile[i, j].frameY = 22;
46579 }
46580 if (Main.tile[i, j].frameNumber() == 2)
46581 {
46582 Main.tile[i, j].frameX = 0;
46583 Main.tile[i, j].frameY = 44;
46584 }
46585 }
46586 else if (num2 != type)
46587 {
46588 if (Main.tile[i, j].frameNumber() == 0)
46589 {
46590 Main.tile[i, j].frameX = 0;
46591 Main.tile[i, j].frameY = 132;
46592 }
46593 if (Main.tile[i, j].frameNumber() == 1)
46594 {
46595 Main.tile[i, j].frameX = 0;
46596 Main.tile[i, j].frameY = 154;
46597 }
46598 if (Main.tile[i, j].frameNumber() == 2)
46599 {
46600 Main.tile[i, j].frameX = 0;
46601 Main.tile[i, j].frameY = 176;
46602 }
46603 }
46604 else if (num3 != type)
46605 {
46606 if (Main.tile[i, j].frameNumber() == 0)
46607 {
46608 Main.tile[i, j].frameX = 66;
46609 Main.tile[i, j].frameY = 132;
46610 }
46611 if (Main.tile[i, j].frameNumber() == 1)
46612 {
46613 Main.tile[i, j].frameX = 66;
46614 Main.tile[i, j].frameY = 154;
46615 }
46616 if (Main.tile[i, j].frameNumber() == 2)
46617 {
46618 Main.tile[i, j].frameX = 66;
46619 Main.tile[i, j].frameY = 176;
46620 }
46621 }
46622 else
46623 {
46624 if (Main.tile[i, j].frameNumber() == 0)
46625 {
46626 Main.tile[i, j].frameX = 88;
46627 Main.tile[i, j].frameY = 132;
46628 }
46629 if (Main.tile[i, j].frameNumber() == 1)
46630 {
46631 Main.tile[i, j].frameX = 88;
46632 Main.tile[i, j].frameY = 154;
46633 }
46634 if (Main.tile[i, j].frameNumber() == 2)
46635 {
46636 Main.tile[i, j].frameX = 88;
46637 Main.tile[i, j].frameY = 176;
46638 }
46639 }
46640 }
46641 if ((Main.tile[i, j].frameX == 66 && (Main.tile[i, j].frameY == 0 || Main.tile[i, j].frameY == 22 || Main.tile[i, j].frameY == 44)) || (Main.tile[i, j].frameX == 44 && (Main.tile[i, j].frameY == 198 || Main.tile[i, j].frameY == 220 || Main.tile[i, j].frameY == 242)))
46642 {
46643 if (num3 != type)
46644 {
46645 KillTile(i, j);
46646 }
46647 }
46648 else if ((Main.tile[i, j].frameX == 88 && (Main.tile[i, j].frameY == 66 || Main.tile[i, j].frameY == 88 || Main.tile[i, j].frameY == 110)) || (Main.tile[i, j].frameX == 66 && (Main.tile[i, j].frameY == 198 || Main.tile[i, j].frameY == 220 || Main.tile[i, j].frameY == 242)))
46649 {
46650 if (num2 != type)
46651 {
46652 KillTile(i, j);
46653 }
46654 }
46655 else if (num4 == -1 || num4 == 23)
46656 {
46657 KillTile(i, j);
46658 }
46659 else if (num != type && Main.tile[i, j].frameY < 198 && ((Main.tile[i, j].frameX != 22 && Main.tile[i, j].frameX != 44) || Main.tile[i, j].frameY < 132))
46660 {
46661 if (num2 == type || num3 == type)
46662 {
46663 if (num4 == type)
46664 {
46665 if (num2 == type && num3 == type)
46666 {
46667 if (Main.tile[i, j].frameNumber() == 0)
46668 {
46669 Main.tile[i, j].frameX = 132;
46670 Main.tile[i, j].frameY = 132;
46671 }
46672 if (Main.tile[i, j].frameNumber() == 1)
46673 {
46674 Main.tile[i, j].frameX = 132;
46675 Main.tile[i, j].frameY = 154;
46676 }
46677 if (Main.tile[i, j].frameNumber() == 2)
46678 {
46679 Main.tile[i, j].frameX = 132;
46680 Main.tile[i, j].frameY = 176;
46681 }
46682 }
46683 else if (num2 == type)
46684 {
46685 if (Main.tile[i, j].frameNumber() == 0)
46686 {
46687 Main.tile[i, j].frameX = 132;
46688 Main.tile[i, j].frameY = 0;
46689 }
46690 if (Main.tile[i, j].frameNumber() == 1)
46691 {
46692 Main.tile[i, j].frameX = 132;
46693 Main.tile[i, j].frameY = 22;
46694 }
46695 if (Main.tile[i, j].frameNumber() == 2)
46696 {
46697 Main.tile[i, j].frameX = 132;
46698 Main.tile[i, j].frameY = 44;
46699 }
46700 }
46701 else if (num3 == type)
46702 {
46703 if (Main.tile[i, j].frameNumber() == 0)
46704 {
46705 Main.tile[i, j].frameX = 132;
46706 Main.tile[i, j].frameY = 66;
46707 }
46708 if (Main.tile[i, j].frameNumber() == 1)
46709 {
46710 Main.tile[i, j].frameX = 132;
46711 Main.tile[i, j].frameY = 88;
46712 }
46713 if (Main.tile[i, j].frameNumber() == 2)
46714 {
46715 Main.tile[i, j].frameX = 132;
46716 Main.tile[i, j].frameY = 110;
46717 }
46718 }
46719 }
46720 else if (num2 == type && num3 == type)
46721 {
46722 if (Main.tile[i, j].frameNumber() == 0)
46723 {
46724 Main.tile[i, j].frameX = 154;
46725 Main.tile[i, j].frameY = 132;
46726 }
46727 if (Main.tile[i, j].frameNumber() == 1)
46728 {
46729 Main.tile[i, j].frameX = 154;
46730 Main.tile[i, j].frameY = 154;
46731 }
46732 if (Main.tile[i, j].frameNumber() == 2)
46733 {
46734 Main.tile[i, j].frameX = 154;
46735 Main.tile[i, j].frameY = 176;
46736 }
46737 }
46738 else if (num2 == type)
46739 {
46740 if (Main.tile[i, j].frameNumber() == 0)
46741 {
46742 Main.tile[i, j].frameX = 154;
46743 Main.tile[i, j].frameY = 0;
46744 }
46745 if (Main.tile[i, j].frameNumber() == 1)
46746 {
46747 Main.tile[i, j].frameX = 154;
46748 Main.tile[i, j].frameY = 22;
46749 }
46750 if (Main.tile[i, j].frameNumber() == 2)
46751 {
46752 Main.tile[i, j].frameX = 154;
46753 Main.tile[i, j].frameY = 44;
46754 }
46755 }
46756 else if (num3 == type)
46757 {
46758 if (Main.tile[i, j].frameNumber() == 0)
46759 {
46760 Main.tile[i, j].frameX = 154;
46761 Main.tile[i, j].frameY = 66;
46762 }
46763 if (Main.tile[i, j].frameNumber() == 1)
46764 {
46765 Main.tile[i, j].frameX = 154;
46766 Main.tile[i, j].frameY = 88;
46767 }
46768 if (Main.tile[i, j].frameNumber() == 2)
46769 {
46770 Main.tile[i, j].frameX = 154;
46771 Main.tile[i, j].frameY = 110;
46772 }
46773 }
46774 }
46775 else
46776 {
46777 if (Main.tile[i, j].frameNumber() == 0)
46778 {
46779 Main.tile[i, j].frameX = 110;
46780 Main.tile[i, j].frameY = 0;
46781 }
46782 if (Main.tile[i, j].frameNumber() == 1)
46783 {
46784 Main.tile[i, j].frameX = 110;
46785 Main.tile[i, j].frameY = 22;
46786 }
46787 if (Main.tile[i, j].frameNumber() == 2)
46788 {
46789 Main.tile[i, j].frameX = 110;
46790 Main.tile[i, j].frameY = 44;
46791 }
46792 }
46793 }
46794 if (Main.tile[i, j].frameX != frameX && Main.tile[i, j].frameY != frameY && frameX >= 0 && frameY >= 0)
46795 {
46796 TileFrame(i - 1, j);
46797 TileFrame(i + 1, j);
46798 TileFrame(i, j - 1);
46799 TileFrame(i, j + 1);
46800 }
46801 }
static void KillTile(int i, int j, bool fail=false, bool effectOnly=false, bool noItem=false)
static void TileFrame(int i, int j, bool resetFrame=false, bool noBreak=false)

References Terraria.Main.tile, and System.type.