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

◆ CheckWeaponsRack()

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

Definition at line 37301 of file WorldGen.cs.

37302 {
37303 if (destroyObject)
37304 {
37305 return;
37306 }
37307 int num = i;
37308 int num2 = j - Main.tile[i, j].frameY / 18;
37309 int num3 = Main.tile[i, j].frameX;
37310 int num4 = 0;
37311 while (num3 >= 5000)
37312 {
37313 num3 -= 5000;
37314 num4++;
37315 }
37316 if (num4 != 0)
37317 {
37318 num3 = (num4 - 1) * 18;
37319 }
37320 num3 %= 54;
37321 num -= num3 / 18;
37322 bool flag = false;
37323 for (int k = 0; k < 3; k++)
37324 {
37325 for (int l = 0; l < 3; l++)
37326 {
37327 int num5 = num + k;
37328 int num6 = num2 + l;
37329 int num7 = Main.tile[num5, num6].frameX;
37330 int num8 = 0;
37331 while (num7 >= 5000)
37332 {
37333 num7 -= 5000;
37334 num8++;
37335 }
37336 if (num8 != 0)
37337 {
37338 num7 = (num8 - 1) * 18;
37339 }
37340 num7 %= 54;
37341 if (!Main.tile[num5, num6].active() || Main.tile[num5, num6].type != 334 || Main.tile[num5, num6].wall <= 0 || Main.tile[num5, num6].frameY != l * 18 || num7 != k * 18)
37342 {
37343 flag = true;
37344 }
37345 }
37346 }
37347 if (!flag)
37348 {
37349 return;
37350 }
37351 int num9 = TEWeaponsRack.Find(num, num2);
37352 if (num9 != -1 && ((TEWeaponsRack)TileEntity.ByID[num9]).item.stack > 0)
37353 {
37354 ((TEWeaponsRack)TileEntity.ByID[num9]).DropItem();
37355 if (Main.netMode != 2)
37356 {
37357 Main.LocalPlayer.InterruptItemUsageIfOverTile(471);
37358 }
37359 }
37360 destroyObject = true;
37361 Item.NewItem(GetItemSource_FromTileBreak(i, j), i * 16, j * 16, 48, 48, 2699);
37362 TEWeaponsRack.Kill(num, num2);
37363 for (int m = 0; m < 3; m++)
37364 {
37365 for (int n = 0; n < 3; n++)
37366 {
37367 int num10 = num + m;
37368 int num11 = num2 + n;
37369 if (Main.tile[num10, num11].active() && Main.tile[num10, num11].type == 334)
37370 {
37372 }
37373 }
37374 }
37375 destroyObject = false;
37376 }
static Dictionary< int, TileEntity > ByID
Definition TileEntity.cs:18
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.DataStructures.TileEntity.ByID, Terraria.GameContent.Tile_Entities.TEWeaponsRack.Find(), System.item, Terraria.GameContent.Tile_Entities.TEWeaponsRack.Kill(), Terraria.Main.LocalPlayer, Terraria.Main.netMode, Terraria.Item.NewItem(), and Terraria.Main.tile.