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

◆ CheckTreeWithSettings()

static void Terraria.WorldGen.CheckTreeWithSettings ( int x,
int y,
CheckTreeSettings settings )
inlinestatic

Definition at line 48474 of file WorldGen.cs.

48475 {
48476 int num = -1;
48477 int num2 = -1;
48478 int num3 = -1;
48479 int num4 = -1;
48480 Tile tile = Main.tile[x, y];
48481 int type = tile.type;
48482 int frameX = tile.frameX;
48483 int frameY = tile.frameY;
48484 if (Main.tile[x - 1, y] != null && Main.tile[x - 1, y].active())
48485 {
48486 num2 = Main.tile[x - 1, y].type;
48487 }
48488 if (Main.tile[x + 1, y] != null && Main.tile[x + 1, y].active())
48489 {
48490 num3 = Main.tile[x + 1, y].type;
48491 }
48492 if (Main.tile[x, y - 1] != null && Main.tile[x, y - 1].active())
48493 {
48494 num = Main.tile[x, y - 1].type;
48495 }
48496 if (Main.tile[x, y + 1] != null && Main.tile[x, y + 1].active())
48497 {
48498 num4 = Main.tile[x, y + 1].type;
48499 }
48500 bool flag = settings.IsGroundValid(num4);
48501 bool flag2 = num3 == type;
48502 bool flag3 = num2 == type;
48503 if (!flag && num4 != type && ((tile.frameX == 0 && tile.frameY <= 130) || (tile.frameX == 22 && tile.frameY <= 130) || (tile.frameX == 44 && tile.frameY <= 130)))
48504 {
48505 KillTile(x, y);
48506 }
48507 if (tile.frameX >= 22 && tile.frameX <= 44 && tile.frameY >= 132 && tile.frameY <= 176)
48508 {
48509 if (!flag)
48510 {
48511 KillTile(x, y);
48512 }
48513 else if (!(tile.frameX == 22 && flag3) && !(tile.frameX == 44 && flag2))
48514 {
48515 KillTile(x, y);
48516 }
48517 }
48518 else if ((tile.frameX == 88 && tile.frameY >= 0 && tile.frameY <= 44) || (tile.frameX == 66 && tile.frameY >= 66 && tile.frameY <= 130) || (tile.frameX == 110 && tile.frameY >= 66 && tile.frameY <= 110) || (tile.frameX == 132 && tile.frameY >= 0 && tile.frameY <= 176))
48519 {
48520 if (flag3 && flag2)
48521 {
48522 if (tile.frameNumber() == 0)
48523 {
48524 tile.frameX = 110;
48525 tile.frameY = 66;
48526 }
48527 if (tile.frameNumber() == 1)
48528 {
48529 tile.frameX = 110;
48530 tile.frameY = 88;
48531 }
48532 if (tile.frameNumber() == 2)
48533 {
48534 tile.frameX = 110;
48535 tile.frameY = 110;
48536 }
48537 }
48538 else if (flag3)
48539 {
48540 if (tile.frameNumber() == 0)
48541 {
48542 tile.frameX = 88;
48543 tile.frameY = 0;
48544 }
48545 if (tile.frameNumber() == 1)
48546 {
48547 tile.frameX = 88;
48548 tile.frameY = 22;
48549 }
48550 if (tile.frameNumber() == 2)
48551 {
48552 tile.frameX = 88;
48553 tile.frameY = 44;
48554 }
48555 }
48556 else if (flag2)
48557 {
48558 if (tile.frameNumber() == 0)
48559 {
48560 tile.frameX = 66;
48561 tile.frameY = 66;
48562 }
48563 if (tile.frameNumber() == 1)
48564 {
48565 tile.frameX = 66;
48566 tile.frameY = 88;
48567 }
48568 if (tile.frameNumber() == 2)
48569 {
48570 tile.frameX = 66;
48571 tile.frameY = 110;
48572 }
48573 }
48574 else
48575 {
48576 if (tile.frameNumber() == 0)
48577 {
48578 tile.frameX = 0;
48579 tile.frameY = 0;
48580 }
48581 if (tile.frameNumber() == 1)
48582 {
48583 tile.frameX = 0;
48584 tile.frameY = 22;
48585 }
48586 if (tile.frameNumber() == 2)
48587 {
48588 tile.frameX = 0;
48589 tile.frameY = 44;
48590 }
48591 }
48592 }
48593 if (tile.frameY >= 132 && tile.frameY <= 176 && (tile.frameX == 0 || tile.frameX == 66 || tile.frameX == 88))
48594 {
48595 if (!flag)
48596 {
48597 KillTile(x, y);
48598 }
48599 if (!flag3 && !flag2)
48600 {
48601 if (tile.frameNumber() == 0)
48602 {
48603 tile.frameX = 0;
48604 tile.frameY = 0;
48605 }
48606 if (tile.frameNumber() == 1)
48607 {
48608 tile.frameX = 0;
48609 tile.frameY = 22;
48610 }
48611 if (tile.frameNumber() == 2)
48612 {
48613 tile.frameX = 0;
48614 tile.frameY = 44;
48615 }
48616 }
48617 else if (!flag3)
48618 {
48619 if (tile.frameNumber() == 0)
48620 {
48621 tile.frameX = 0;
48622 tile.frameY = 132;
48623 }
48624 if (tile.frameNumber() == 1)
48625 {
48626 tile.frameX = 0;
48627 tile.frameY = 154;
48628 }
48629 if (tile.frameNumber() == 2)
48630 {
48631 tile.frameX = 0;
48632 tile.frameY = 176;
48633 }
48634 }
48635 else if (!flag2)
48636 {
48637 if (tile.frameNumber() == 0)
48638 {
48639 tile.frameX = 66;
48640 tile.frameY = 132;
48641 }
48642 if (tile.frameNumber() == 1)
48643 {
48644 tile.frameX = 66;
48645 tile.frameY = 154;
48646 }
48647 if (tile.frameNumber() == 2)
48648 {
48649 tile.frameX = 66;
48650 tile.frameY = 176;
48651 }
48652 }
48653 else
48654 {
48655 if (tile.frameNumber() == 0)
48656 {
48657 tile.frameX = 88;
48658 tile.frameY = 132;
48659 }
48660 if (tile.frameNumber() == 1)
48661 {
48662 tile.frameX = 88;
48663 tile.frameY = 154;
48664 }
48665 if (tile.frameNumber() == 2)
48666 {
48667 tile.frameX = 88;
48668 tile.frameY = 176;
48669 }
48670 }
48671 }
48672 if ((tile.frameX == 66 && (tile.frameY == 0 || tile.frameY == 22 || tile.frameY == 44)) || (tile.frameX == 44 && (tile.frameY == 198 || tile.frameY == 220 || tile.frameY == 242)))
48673 {
48674 if (!flag2)
48675 {
48676 KillTile(x, y);
48677 }
48678 }
48679 else if ((tile.frameX == 88 && (tile.frameY == 66 || tile.frameY == 88 || tile.frameY == 110)) || (tile.frameX == 66 && (tile.frameY == 198 || tile.frameY == 220 || tile.frameY == 242)))
48680 {
48681 if (!flag3)
48682 {
48683 KillTile(x, y);
48684 }
48685 }
48686 else if (num4 == -1)
48687 {
48688 KillTile(x, y);
48689 }
48690 else if (num != type && tile.frameY < 198 && ((tile.frameX != 22 && tile.frameX != 44) || tile.frameY < 132))
48691 {
48692 if (flag3 || flag2)
48693 {
48694 if (num4 == type)
48695 {
48696 if (flag3 && flag2)
48697 {
48698 if (tile.frameNumber() == 0)
48699 {
48700 tile.frameX = 132;
48701 tile.frameY = 132;
48702 }
48703 if (tile.frameNumber() == 1)
48704 {
48705 tile.frameX = 132;
48706 tile.frameY = 154;
48707 }
48708 if (tile.frameNumber() == 2)
48709 {
48710 tile.frameX = 132;
48711 tile.frameY = 176;
48712 }
48713 }
48714 else if (flag3)
48715 {
48716 if (tile.frameNumber() == 0)
48717 {
48718 tile.frameX = 132;
48719 tile.frameY = 0;
48720 }
48721 if (tile.frameNumber() == 1)
48722 {
48723 tile.frameX = 132;
48724 tile.frameY = 22;
48725 }
48726 if (tile.frameNumber() == 2)
48727 {
48728 tile.frameX = 132;
48729 tile.frameY = 44;
48730 }
48731 }
48732 else if (flag2)
48733 {
48734 if (tile.frameNumber() == 0)
48735 {
48736 tile.frameX = 132;
48737 tile.frameY = 66;
48738 }
48739 if (tile.frameNumber() == 1)
48740 {
48741 tile.frameX = 132;
48742 tile.frameY = 88;
48743 }
48744 if (tile.frameNumber() == 2)
48745 {
48746 tile.frameX = 132;
48747 tile.frameY = 110;
48748 }
48749 }
48750 }
48751 else if (flag3 && flag2)
48752 {
48753 if (tile.frameNumber() == 0)
48754 {
48755 tile.frameX = 154;
48756 tile.frameY = 132;
48757 }
48758 if (tile.frameNumber() == 1)
48759 {
48760 tile.frameX = 154;
48761 tile.frameY = 154;
48762 }
48763 if (tile.frameNumber() == 2)
48764 {
48765 tile.frameX = 154;
48766 tile.frameY = 176;
48767 }
48768 }
48769 else if (flag3)
48770 {
48771 if (tile.frameNumber() == 0)
48772 {
48773 tile.frameX = 154;
48774 tile.frameY = 0;
48775 }
48776 if (tile.frameNumber() == 1)
48777 {
48778 tile.frameX = 154;
48779 tile.frameY = 22;
48780 }
48781 if (tile.frameNumber() == 2)
48782 {
48783 tile.frameX = 154;
48784 tile.frameY = 44;
48785 }
48786 }
48787 else if (flag2)
48788 {
48789 if (tile.frameNumber() == 0)
48790 {
48791 tile.frameX = 154;
48792 tile.frameY = 66;
48793 }
48794 if (tile.frameNumber() == 1)
48795 {
48796 tile.frameX = 154;
48797 tile.frameY = 88;
48798 }
48799 if (tile.frameNumber() == 2)
48800 {
48801 tile.frameX = 154;
48802 tile.frameY = 110;
48803 }
48804 }
48805 }
48806 else
48807 {
48808 if (tile.frameNumber() == 0)
48809 {
48810 tile.frameX = 110;
48811 tile.frameY = 0;
48812 }
48813 if (tile.frameNumber() == 1)
48814 {
48815 tile.frameX = 110;
48816 tile.frameY = 22;
48817 }
48818 if (tile.frameNumber() == 2)
48819 {
48820 tile.frameX = 110;
48821 tile.frameY = 44;
48822 }
48823 }
48824 }
48825 if (tile.frameX != frameX && tile.frameY != frameY && frameX >= 0 && frameY >= 0)
48826 {
48827 TileFrame(x - 1, y);
48828 TileFrame(x + 1, y);
48829 TileFrame(x, y - 1);
48830 TileFrame(x, y + 1);
48831 }
48832 }
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.Tile.frameNumber(), Terraria.Tile.frameX, Terraria.Tile.frameY, Terraria.Main.tile, and Terraria.Tile.type.

+ Here is the call graph for this function: