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

◆ Check1x2Top()

static void Terraria.WorldGen.Check1x2Top ( int x,
int j,
ushort type )
inlinestatic

Definition at line 39292 of file WorldGen.cs.

39293 {
39294 if (destroyObject)
39295 {
39296 return;
39297 }
39298 int num = j;
39299 bool flag = true;
39300 int num2 = Main.tile[x, num].frameY / 18;
39301 int num3 = 0;
39302 while (num2 >= 2)
39303 {
39304 num2 -= 2;
39305 num3++;
39306 }
39307 num -= num2;
39308 num2 = num3 * 36;
39309 if (Main.tile[x, num] == null)
39310 {
39311 Main.tile[x, num] = default(Tile);
39312 }
39313 if (Main.tile[x, num + 1] == null)
39314 {
39315 Main.tile[x, num + 1] = default(Tile);
39316 }
39317 if (Main.tile[x, num] == null)
39318 {
39319 Main.tile[x, num] = default(Tile);
39320 }
39321 if (Main.tile[x, num].frameY == num2 && Main.tile[x, num + 1].frameY == num2 + 18 && Main.tile[x, num].type == type && Main.tile[x, num + 1].type == type)
39322 {
39323 flag = false;
39324 }
39325 if (Main.tile[x, num - 1] == null)
39326 {
39327 Main.tile[x, num - 1] = default(Tile);
39328 }
39329 bool flag2 = false;
39330 switch (type)
39331 {
39332 case 42:
39333 case 270:
39334 case 271:
39335 case 572:
39336 case 581:
39337 case 660:
39338 flag2 = true;
39339 break;
39340 }
39341 bool flag3 = Main.tile[x, num - 1].active() && (TileID.Sets.Platforms[Main.tile[x, num - 1].type] || Main.tile[x, num - 1].type == 380);
39342 if ((!flag2 || !flag3) && (!Main.tile[x, num - 1].nactive() || !Main.tileSolid[Main.tile[x, num - 1].type] || Main.tileSolidTop[Main.tile[x, num - 1].type]))
39343 {
39344 flag = true;
39345 }
39346 if (!flag)
39347 {
39348 return;
39349 }
39350 destroyObject = true;
39351 bool drop = TileLoader.Drop(x, j, type);
39352 if (Main.tile[x, num].type == type)
39353 {
39354 KillTile(x, num);
39355 }
39356 if (Main.tile[x, num + 1].type == type)
39357 {
39358 KillTile(x, num + 1);
39359 }
39360 using (new Item.DisableNewItemMethod(!drop))
39361 {
39362 switch (type)
39363 {
39364 case 42:
39365 {
39366 int type2 = 0;
39367 if (num3 == 0)
39368 {
39369 type2 = 136;
39370 }
39371 else if (num3 == 7)
39372 {
39373 type2 = 1431;
39374 }
39375 else if (num3 == 8)
39376 {
39377 type2 = 1808;
39378 }
39379 else if (num3 == 9)
39380 {
39381 type2 = 1859;
39382 }
39383 else if (num3 < 10)
39384 {
39385 type2 = 1389 + num3;
39386 }
39387 else
39388 {
39389 switch (num3)
39390 {
39391 case 10:
39392 type2 = 2032;
39393 break;
39394 case 11:
39395 type2 = 2033;
39396 break;
39397 case 12:
39398 type2 = 2034;
39399 break;
39400 case 13:
39401 type2 = 2035;
39402 break;
39403 case 14:
39404 type2 = 2036;
39405 break;
39406 case 15:
39407 type2 = 2037;
39408 break;
39409 case 16:
39410 type2 = 2038;
39411 break;
39412 case 17:
39413 type2 = 2039;
39414 break;
39415 case 18:
39416 type2 = 2040;
39417 break;
39418 case 19:
39419 type2 = 2041;
39420 break;
39421 case 20:
39422 type2 = 2042;
39423 break;
39424 case 21:
39425 type2 = 2043;
39426 break;
39427 case 22:
39428 case 23:
39429 case 24:
39430 case 25:
39431 type2 = 2145 + num3 - 22;
39432 break;
39433 case 26:
39434 type2 = 2226;
39435 break;
39436 case 27:
39437 type2 = 2530;
39438 break;
39439 case 28:
39440 type2 = 2546;
39441 break;
39442 case 29:
39443 type2 = 2564;
39444 break;
39445 case 30:
39446 type2 = 2579;
39447 break;
39448 case 31:
39449 type2 = 2641;
39450 break;
39451 case 32:
39452 type2 = 2642;
39453 break;
39454 case 33:
39455 type2 = 2820;
39456 break;
39457 case 34:
39458 type2 = 3138;
39459 break;
39460 case 35:
39461 type2 = 3140;
39462 break;
39463 case 36:
39464 type2 = 3139;
39465 break;
39466 case 37:
39467 type2 = 3891;
39468 break;
39469 case 38:
39470 type2 = 3943;
39471 break;
39472 case 39:
39473 type2 = 3970;
39474 break;
39475 case 40:
39476 type2 = 4157;
39477 break;
39478 case 41:
39479 type2 = 4178;
39480 break;
39481 case 42:
39482 type2 = 4199;
39483 break;
39484 case 43:
39485 type2 = 4220;
39486 break;
39487 case 44:
39488 type2 = 4309;
39489 break;
39490 case 45:
39491 type2 = 4578;
39492 break;
39493 case 46:
39494 type2 = 5160;
39495 break;
39496 case 47:
39497 type2 = 5181;
39498 break;
39499 case 48:
39500 type2 = 5202;
39501 break;
39502 }
39503 }
39504 Item.NewItem(GetItemSource_FromTileBreak(x, num), x * 16, num * 16, 32, 32, type2);
39505 break;
39506 }
39507 case 270:
39508 Item.NewItem(GetItemSource_FromTileBreak(x, num), x * 16, num * 16, 32, 32, 1993);
39509 break;
39510 case 271:
39511 Item.NewItem(GetItemSource_FromTileBreak(x, num), x * 16, num * 16, 32, 32, 2005);
39512 break;
39513 case 581:
39514 Item.NewItem(GetItemSource_FromTileBreak(x, num), x * 16, num * 16, 32, 32, 4848);
39515 break;
39516 case 660:
39517 Item.NewItem(GetItemSource_FromTileBreak(x, num), x * 16, num * 16, 32, 32, 5351);
39518 break;
39519 case 572:
39520 Item.NewItem(GetItemSource_FromTileBreak(x, num), x * 16, num * 16, 32, 32, 4695 + num3);
39521 break;
39522 }
39523 destroyObject = false;
39524 }
39525 }
static bool[] Platforms
Definition TileID.cs:219
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 IEntitySource GetItemSource_FromTileBreak(int x, int y)

References Terraria.ModLoader.TileLoader.Drop(), Terraria.Item.NewItem(), Terraria.ID.TileID.Sets.Platforms, Terraria.Main.tile, Terraria.Main.tileSolid, and Terraria.Main.tileSolidTop.

+ Here is the call graph for this function: