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

◆ Check1x2Top()

static void Terraria.WorldGen.Check1x2Top ( int x,
int j,
ushort type )
inlinestatic

Definition at line 37615 of file WorldGen.cs.

37616 {
37617 if (destroyObject)
37618 {
37619 return;
37620 }
37621 int num = j;
37622 bool flag = true;
37623 int num2 = Main.tile[x, num].frameY / 18;
37624 int num3 = 0;
37625 while (num2 >= 2)
37626 {
37627 num2 -= 2;
37628 num3++;
37629 }
37630 num -= num2;
37631 num2 = num3 * 36;
37632 if (Main.tile[x, num] == null)
37633 {
37634 Main.tile[x, num] = new Tile();
37635 }
37636 if (Main.tile[x, num + 1] == null)
37637 {
37638 Main.tile[x, num + 1] = new Tile();
37639 }
37640 if (Main.tile[x, num] == null)
37641 {
37642 Main.tile[x, num] = new Tile();
37643 }
37644 if (Main.tile[x, num].frameY == num2 && Main.tile[x, num + 1].frameY == num2 + 18 && Main.tile[x, num].type == type && Main.tile[x, num + 1].type == type)
37645 {
37646 flag = false;
37647 }
37648 if (Main.tile[x, num - 1] == null)
37649 {
37650 Main.tile[x, num - 1] = new Tile();
37651 }
37652 bool flag2 = false;
37653 switch (type)
37654 {
37655 case 42:
37656 case 270:
37657 case 271:
37658 case 572:
37659 case 581:
37660 case 660:
37661 flag2 = true;
37662 break;
37663 }
37664 bool flag3 = Main.tile[x, num - 1].active() && (TileID.Sets.Platforms[Main.tile[x, num - 1].type] || Main.tile[x, num - 1].type == 380);
37665 if ((!flag2 || !flag3) && (!Main.tile[x, num - 1].nactive() || !Main.tileSolid[Main.tile[x, num - 1].type] || Main.tileSolidTop[Main.tile[x, num - 1].type]))
37666 {
37667 flag = true;
37668 }
37669 if (!flag)
37670 {
37671 return;
37672 }
37673 destroyObject = true;
37674 if (Main.tile[x, num].type == type)
37675 {
37676 KillTile(x, num);
37677 }
37678 if (Main.tile[x, num + 1].type == type)
37679 {
37680 KillTile(x, num + 1);
37681 }
37682 switch (type)
37683 {
37684 case 42:
37685 {
37686 int type2 = 0;
37687 if (num3 == 0)
37688 {
37689 type2 = 136;
37690 }
37691 else if (num3 == 7)
37692 {
37693 type2 = 1431;
37694 }
37695 else if (num3 == 8)
37696 {
37697 type2 = 1808;
37698 }
37699 else if (num3 == 9)
37700 {
37701 type2 = 1859;
37702 }
37703 else if (num3 < 10)
37704 {
37705 type2 = 1389 + num3;
37706 }
37707 else
37708 {
37709 switch (num3)
37710 {
37711 case 10:
37712 type2 = 2032;
37713 break;
37714 case 11:
37715 type2 = 2033;
37716 break;
37717 case 12:
37718 type2 = 2034;
37719 break;
37720 case 13:
37721 type2 = 2035;
37722 break;
37723 case 14:
37724 type2 = 2036;
37725 break;
37726 case 15:
37727 type2 = 2037;
37728 break;
37729 case 16:
37730 type2 = 2038;
37731 break;
37732 case 17:
37733 type2 = 2039;
37734 break;
37735 case 18:
37736 type2 = 2040;
37737 break;
37738 case 19:
37739 type2 = 2041;
37740 break;
37741 case 20:
37742 type2 = 2042;
37743 break;
37744 case 21:
37745 type2 = 2043;
37746 break;
37747 case 22:
37748 case 23:
37749 case 24:
37750 case 25:
37751 type2 = 2145 + num3 - 22;
37752 break;
37753 default:
37754 switch (num3)
37755 {
37756 case 26:
37757 type2 = 2226;
37758 break;
37759 case 27:
37760 type2 = 2530;
37761 break;
37762 case 28:
37763 type2 = 2546;
37764 break;
37765 case 29:
37766 type2 = 2564;
37767 break;
37768 case 30:
37769 type2 = 2579;
37770 break;
37771 case 31:
37772 type2 = 2641;
37773 break;
37774 case 32:
37775 type2 = 2642;
37776 break;
37777 case 33:
37778 type2 = 2820;
37779 break;
37780 case 34:
37781 type2 = 3138;
37782 break;
37783 case 35:
37784 type2 = 3140;
37785 break;
37786 case 36:
37787 type2 = 3139;
37788 break;
37789 case 37:
37790 type2 = 3891;
37791 break;
37792 case 38:
37793 type2 = 3943;
37794 break;
37795 case 39:
37796 type2 = 3970;
37797 break;
37798 case 40:
37799 type2 = 4157;
37800 break;
37801 case 41:
37802 type2 = 4178;
37803 break;
37804 case 42:
37805 type2 = 4199;
37806 break;
37807 case 43:
37808 type2 = 4220;
37809 break;
37810 case 44:
37811 type2 = 4309;
37812 break;
37813 case 45:
37814 type2 = 4578;
37815 break;
37816 case 46:
37817 type2 = 5160;
37818 break;
37819 case 47:
37820 type2 = 5181;
37821 break;
37822 case 48:
37823 type2 = 5202;
37824 break;
37825 }
37826 break;
37827 }
37828 }
37829 Item.NewItem(GetItemSource_FromTileBreak(x, num), x * 16, num * 16, 32, 32, type2);
37830 break;
37831 }
37832 case 270:
37833 Item.NewItem(GetItemSource_FromTileBreak(x, num), x * 16, num * 16, 32, 32, 1993);
37834 break;
37835 case 271:
37836 Item.NewItem(GetItemSource_FromTileBreak(x, num), x * 16, num * 16, 32, 32, 2005);
37837 break;
37838 case 581:
37839 Item.NewItem(GetItemSource_FromTileBreak(x, num), x * 16, num * 16, 32, 32, 4848);
37840 break;
37841 case 660:
37842 Item.NewItem(GetItemSource_FromTileBreak(x, num), x * 16, num * 16, 32, 32, 5351);
37843 break;
37844 case 572:
37845 Item.NewItem(GetItemSource_FromTileBreak(x, num), x * 16, num * 16, 32, 32, 4695 + num3);
37846 break;
37847 }
37848 destroyObject = false;
37849 }
static bool[] Platforms
Definition TileID.cs:163
static bool destroyObject
Definition WorldGen.cs:1020
static void KillTile(int i, int j, bool fail=false, bool effectOnly=false, bool noItem=false)
static IEntitySource GetItemSource_FromTileBreak(int x, int y)

References Terraria.Item.NewItem(), Terraria.ID.TileID.Sets.Platforms, Terraria.DataStructures.Tile, Terraria.Main.tile, Terraria.Main.tileSolid, Terraria.Main.tileSolidTop, and System.type.