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

◆ Check2x3Wall()

static void Terraria.WorldGen.Check2x3Wall ( int x,
int y )
inlinestatic

Definition at line 35717 of file WorldGen.cs.

35718 {
35719 if (destroyObject)
35720 {
35721 return;
35722 }
35723 bool flag = false;
35724 int type = Main.tile[x, y].type;
35725 int num = 0;
35726 int num2 = Main.tile[x, y].frameX / 18;
35727 while (num2 >= 2)
35728 {
35729 num2 -= 2;
35730 num++;
35731 }
35732 int num3 = x - num2;
35733 int num4 = y - Main.tile[x, y].frameY / 18;
35734 num2 = num * 36;
35735 for (int i = num3; i < num3 + 2; i++)
35736 {
35737 for (int j = num4; j < num4 + 3; j++)
35738 {
35739 if (Main.tile[i, j].type != type || !Main.tile[i, j].active() || Main.tile[i, j].wall <= 0 || Main.tile[i, j].frameX != num2 + (i - num3) * 18 || Main.tile[i, j].frameY != (j - num4) * 18)
35740 {
35741 flag = true;
35742 break;
35743 }
35744 }
35745 }
35746 if (!flag)
35747 {
35748 return;
35749 }
35750 destroyObject = true;
35751 for (int k = num3; k < num3 + 2; k++)
35752 {
35753 for (int l = num4; l < num4 + 3; l++)
35754 {
35755 if (Main.tile[k, l].type == type && Main.tile[k, l].active())
35756 {
35757 KillTile(k, l);
35758 }
35759 }
35760 }
35761 if (type == 245)
35762 {
35763 if (num >= 19 && num <= 28)
35764 {
35765 Item.NewItem(GetItemSource_FromTileBreak(x, y), x * 16, y * 16, 32, 32, 5248 + num - 19);
35766 }
35767 else if (num >= 15 && num <= 18)
35768 {
35769 Item.NewItem(GetItemSource_FromTileBreak(x, y), x * 16, y * 16, 32, 32, 5247);
35770 }
35771 else
35772 {
35773 switch (num)
35774 {
35775 case 14:
35776 Item.NewItem(GetItemSource_FromTileBreak(x, y), x * 16, y * 16, 32, 32, 5246);
35777 break;
35778 case 13:
35779 Item.NewItem(GetItemSource_FromTileBreak(x, y), x * 16, y * 16, 32, 32, 5086);
35780 break;
35781 case 12:
35782 Item.NewItem(GetItemSource_FromTileBreak(x, y), x * 16, y * 16, 32, 32, 4728);
35783 break;
35784 case 11:
35785 Item.NewItem(GetItemSource_FromTileBreak(x, y), x * 16, y * 16, 32, 32, 4727);
35786 break;
35787 case 10:
35788 Item.NewItem(GetItemSource_FromTileBreak(x, y), x * 16, y * 16, 32, 32, 4726);
35789 break;
35790 case 9:
35791 Item.NewItem(GetItemSource_FromTileBreak(x, y), x * 16, y * 16, 32, 32, 4659);
35792 break;
35793 case 8:
35794 Item.NewItem(GetItemSource_FromTileBreak(x, y), x * 16, y * 16, 32, 32, 4639);
35795 break;
35796 case 7:
35797 Item.NewItem(GetItemSource_FromTileBreak(x, y), x * 16, y * 16, 32, 32, 4638);
35798 break;
35799 case 6:
35800 Item.NewItem(GetItemSource_FromTileBreak(x, y), x * 16, y * 16, 32, 32, 1577);
35801 break;
35802 case 5:
35803 Item.NewItem(GetItemSource_FromTileBreak(x, y), x * 16, y * 16, 32, 32, 1495);
35804 break;
35805 default:
35806 Item.NewItem(GetItemSource_FromTileBreak(x, y), x * 16, y * 16, 32, 32, 1474 + num);
35807 break;
35808 }
35809 }
35810 }
35811 destroyObject = false;
35812 }
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.Main.tile, and System.type.