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

◆ CheckDoorOpen()

static void Terraria.WorldGen.CheckDoorOpen ( int i,
int j,
Tile tileCache )
inlinestaticprivate

Definition at line 80067 of file WorldGen.cs.

80068 {
80069 if (destroyObject)
80070 {
80071 return;
80072 }
80073 int num = 0;
80074 int num2 = i;
80075 int num3 = j;
80076 short frameX = tileCache.frameX;
80077 int frameY = tileCache.frameY;
80078 int num4 = frameY / 54;
80079 num4 += tileCache.frameX / 72 * 36;
80080 num3 = j - frameY % 54 / 18;
80081 bool flag = false;
80082 switch (frameX % 72)
80083 {
80084 case 0:
80085 num2 = i;
80086 num = 1;
80087 break;
80088 case 18:
80089 num2 = i - 1;
80090 num = 1;
80091 break;
80092 case 36:
80093 num2 = i + 1;
80094 num = -1;
80095 break;
80096 case 54:
80097 num2 = i;
80098 num = -1;
80099 break;
80100 }
80101 Tile tile = Main.tile[num2, num3 - 1];
80102 Tile tile2 = Main.tile[num2, num3 + 3];
80103 if (tile == null)
80104 {
80105 tile = (Main.tile[num2, num3 - 1] = default(Tile));
80106 }
80107 if (tile2 == null)
80108 {
80109 tile2 = (Main.tile[num2, num3 + 3] = default(Tile));
80110 }
80111 if (!SolidTile(tile) || !SolidTile(tile2))
80112 {
80113 flag = true;
80114 destroyObject = true;
80115 if (TileLoader.Drop(i, j, tileCache.type))
80116 {
80117 DropDoorItem(i, j, num4);
80118 }
80119 }
80120 int num5 = num2;
80121 if (num == -1)
80122 {
80123 num5 = num2 - 1;
80124 }
80125 for (int k = num5; k < num5 + 2; k++)
80126 {
80127 for (int l = num3; l < num3 + 3; l++)
80128 {
80129 if (!flag)
80130 {
80131 Tile tile3 = Main.tile[k, l];
80132 if (!tile3.active() || tile3.type != 11)
80133 {
80134 destroyObject = true;
80135 if (TileLoader.Drop(i, j, tileCache.type))
80136 {
80137 DropDoorItem(i, j, num4);
80138 }
80139 flag = true;
80140 k = num5;
80141 l = num3;
80142 }
80143 }
80144 if (flag)
80145 {
80146 KillTile(k, l);
80147 }
80148 }
80149 }
80150 destroyObject = false;
80151 }
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 DropDoorItem(int x, int y, int doorStyle)

References Terraria.ModLoader.TileLoader.Drop(), Terraria.Tile.frameX, Terraria.Tile.frameY, Terraria.Enums.SolidTile, Terraria.Main.tile, and Terraria.Tile.type.

+ Here is the call graph for this function: