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

◆ Check3x4()

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

Definition at line 43575 of file WorldGen.cs.

43576 {
43577 if (destroyObject)
43578 {
43579 return;
43580 }
43581 bool flag = false;
43582 int num = i;
43583 int num2 = j;
43584 int num3 = 0;
43585 int num4 = 0;
43586 int num5 = Main.tile[i, j].frameX / 18;
43587 int num6 = Main.tile[i, j].frameY / 18;
43588 while (num5 >= 3)
43589 {
43590 num3++;
43591 num5 -= 3;
43592 }
43593 while (num6 >= 4)
43594 {
43595 num4++;
43596 num6 -= 4;
43597 }
43598 num -= num5;
43599 num2 -= num6;
43600 for (int k = num; k < num + 3; k++)
43601 {
43602 for (int l = num2; l < num2 + 4; l++)
43603 {
43604 if (Main.tile[k, l] == null)
43605 {
43606 Main.tile[k, l] = default(Tile);
43607 }
43608 if (!Main.tile[k, l].active() || Main.tile[k, l].type != type || Main.tile[k, l].frameX != num3 * 54 + (k - num) * 18 || Main.tile[k, l].frameY != num4 * 72 + (l - num2) * 18)
43609 {
43610 flag = true;
43611 }
43612 }
43613 if (Main.tile[k, num2 + 4] == null)
43614 {
43615 Main.tile[k, num2 + 4] = default(Tile);
43616 }
43617 if (!SolidTileAllowBottomSlope(k, num2 + 4))
43618 {
43619 flag = true;
43620 }
43621 }
43622 if (!flag)
43623 {
43624 return;
43625 }
43626 destroyObject = true;
43627 bool drop = TileLoader.Drop(i, j, type);
43628 for (int m = num; m < num + 3; m++)
43629 {
43630 for (int n = num2; n < num2 + 4; n++)
43631 {
43632 if (Main.tile[m, n].type == type && Main.tile[m, n].active())
43633 {
43634 KillTile(m, n);
43635 }
43636 }
43637 }
43638 using (new Item.DisableNewItemMethod(!drop))
43639 {
43640 switch (type)
43641 {
43642 case 101:
43643 {
43644 int type4;
43645 switch (num3)
43646 {
43647 case 1:
43648 type4 = 1414;
43649 break;
43650 case 2:
43651 type4 = 1415;
43652 break;
43653 case 3:
43654 type4 = 1416;
43655 break;
43656 case 4:
43657 type4 = 1463;
43658 break;
43659 case 5:
43660 type4 = 1512;
43661 break;
43662 case 6:
43663 type4 = 2020;
43664 break;
43665 case 7:
43666 type4 = 2021;
43667 break;
43668 case 8:
43669 type4 = 2022;
43670 break;
43671 case 9:
43672 type4 = 2023;
43673 break;
43674 case 10:
43675 type4 = 2024;
43676 break;
43677 case 11:
43678 type4 = 2025;
43679 break;
43680 case 12:
43681 type4 = 2026;
43682 break;
43683 case 13:
43684 type4 = 2027;
43685 break;
43686 case 14:
43687 type4 = 2028;
43688 break;
43689 case 15:
43690 type4 = 2029;
43691 break;
43692 case 16:
43693 type4 = 2030;
43694 break;
43695 case 17:
43696 type4 = 2031;
43697 break;
43698 case 18:
43699 case 19:
43700 case 20:
43701 case 21:
43702 type4 = 2135 + num3 - 18;
43703 break;
43704 case 22:
43705 type4 = 2233;
43706 break;
43707 case 23:
43708 type4 = 2536;
43709 break;
43710 case 24:
43711 type4 = 2540;
43712 break;
43713 case 25:
43714 type4 = 2554;
43715 break;
43716 case 26:
43717 type4 = 2569;
43718 break;
43719 case 27:
43720 type4 = 2670;
43721 break;
43722 case 28:
43723 type4 = 2817;
43724 break;
43725 case 29:
43726 type4 = 3165;
43727 break;
43728 case 30:
43729 type4 = 3167;
43730 break;
43731 case 31:
43732 type4 = 3166;
43733 break;
43734 case 32:
43735 type4 = 3917;
43736 break;
43737 case 33:
43738 type4 = 3933;
43739 break;
43740 case 34:
43741 type4 = 3960;
43742 break;
43743 case 35:
43744 type4 = 4147;
43745 break;
43746 case 36:
43747 type4 = 4168;
43748 break;
43749 case 37:
43750 type4 = 4189;
43751 break;
43752 case 38:
43753 type4 = 4210;
43754 break;
43755 case 39:
43756 type4 = 4300;
43757 break;
43758 case 40:
43759 type4 = 4568;
43760 break;
43761 case 41:
43762 type4 = 5150;
43763 break;
43764 case 42:
43765 type4 = 5171;
43766 break;
43767 case 43:
43768 type4 = 5192;
43769 break;
43770 default:
43771 type4 = 354;
43772 break;
43773 }
43774 Item.NewItem(GetItemSource_FromTileBreak(i, j), i * 16, j * 16, 32, 32, type4);
43775 break;
43776 }
43777 case 102:
43778 Item.NewItem(GetItemSource_FromTileBreak(i, j), i * 16, j * 16, 32, 32, 355);
43779 break;
43780 case 463:
43781 Item.NewItem(GetItemSource_FromTileBreak(i, j), i * 16, j * 16, 32, 32, 3813);
43782 break;
43783 case 617:
43784 if (num3 == 27)
43785 {
43786 short type2 = 5110;
43787 Item.NewItem(GetItemSource_FromTileBreak(i, j), i * 16, j * 16, 32, 32, type2);
43788 }
43789 else
43790 {
43791 int type3 = 4924 + num3;
43792 Item.NewItem(GetItemSource_FromTileBreak(i, j), i * 16, j * 16, 32, 32, type3);
43793 }
43794 break;
43795 }
43796 destroyObject = false;
43797 for (int num7 = num - 1; num7 < num + 4; num7++)
43798 {
43799 for (int num8 = num2 - 1; num8 < num2 + 4; num8++)
43800 {
43802 }
43803 }
43804 }
43805 }
static bool Drop(int i, int j, int type, bool includeLargeObjectDrops=true)
This serves as the central class from which tile-related functions are supported and carried out.
Definition TileLoader.cs:23
static bool destroyObject
Definition WorldGen.cs:1258
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)
static bool SolidTileAllowBottomSlope(int i, int j)
static IEntitySource GetItemSource_FromTileBreak(int x, int y)

References Terraria.ModLoader.TileLoader.Drop(), Terraria.Item.NewItem(), and Terraria.Main.tile.

+ Here is the call graph for this function: