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

◆ Check3x5()

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

Definition at line 45049 of file WorldGen.cs.

45050 {
45051 if (destroyObject)
45052 {
45053 return;
45054 }
45055 bool flag = false;
45056 int num = i;
45057 int num2 = j;
45058 num = Main.tile[i, j].frameX / 18;
45059 int num3 = 0;
45060 while (num >= 3)
45061 {
45062 num3++;
45063 num -= 3;
45064 }
45065 int num4 = i - num;
45066 int num5 = 54 * num3;
45067 int num6 = Main.tile[i, j].frameY % 90 / 18;
45068 if (num >= 4)
45069 {
45070 num -= 3;
45071 }
45072 num = i - num;
45073 num2 -= num6;
45074 for (int k = num; k < num + 3; k++)
45075 {
45076 for (int l = num2; l < num2 + 5; l++)
45077 {
45078 if (Main.tile[k, l] == null)
45079 {
45080 Main.tile[k, l] = new Tile();
45081 }
45082 if (!Main.tile[k, l].active() || Main.tile[k, l].type != type || Main.tile[k, l].frameX != (k - num4) * 18 + num5 || Main.tile[k, l].frameY != (l - num2) * 18)
45083 {
45084 flag = true;
45085 }
45086 }
45087 }
45088 for (int m = num; m < num + 3; m++)
45089 {
45090 if (Main.tile[m, num2 + 5] == null)
45091 {
45092 Main.tile[m, num2 + 5] = new Tile();
45093 }
45094 if (!SolidTileAllowBottomSlope(m, num2 + 5))
45095 {
45096 flag = true;
45097 break;
45098 }
45099 }
45100 if (!flag)
45101 {
45102 return;
45103 }
45104 destroyObject = true;
45105 for (int n = num; n < num + 3; n++)
45106 {
45107 for (int num7 = num2; num7 < num2 + 5; num7++)
45108 {
45109 if (Main.tile[n, num7].type == type && Main.tile[n, num7].active())
45110 {
45111 KillTile(n, num7);
45112 }
45113 }
45114 }
45115 if (type == 613)
45116 {
45117 Item.NewItem(GetItemSource_FromTileBreak(i, j), i * 16, j * 16, 32, 32, 4904 + num3);
45118 }
45119 destroyObject = false;
45120 for (int num8 = num - 1; num8 < num + 4; num8++)
45121 {
45122 for (int num9 = num2 - 1; num9 < num2 + 6; num9++)
45123 {
45125 }
45126 }
45127 }
static bool destroyObject
Definition WorldGen.cs:1020
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.Item.NewItem(), Terraria.DataStructures.Tile, Terraria.Main.tile, and System.type.