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

◆ Check1x2()

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

Definition at line 34517 of file WorldGen.cs.

34518 {
34519 if (destroyObject)
34520 {
34521 return;
34522 }
34523 int num = j;
34524 bool flag = true;
34525 if (Main.tile[x, num] == null)
34526 {
34527 Main.tile[x, num] = new Tile();
34528 }
34529 if (Main.tile[x, num + 1] == null)
34530 {
34531 Main.tile[x, num + 1] = new Tile();
34532 }
34533 int num2 = Main.tile[x, num].frameY;
34534 int num3 = 0;
34535 while (num2 >= 40)
34536 {
34537 num2 -= 40;
34538 num3++;
34539 }
34540 if (num2 == 18)
34541 {
34542 num--;
34543 }
34544 int num4 = Main.tile[x, num].frameX / 18;
34545 if (Main.tile[x, num].frameX == -1)
34546 {
34547 num4 = Main.tile[x, num + 1].frameX / 18;
34548 }
34549 if (Main.tile[x, num] == null)
34550 {
34551 Main.tile[x, num] = new Tile();
34552 }
34553 if (Main.tile[x, num].frameY == 40 * num3 && Main.tile[x, num + 1].frameY == 40 * num3 + 18 && Main.tile[x, num].type == type && Main.tile[x, num + 1].type == type)
34554 {
34555 flag = false;
34556 }
34557 if (Main.tile[x, num + 2] == null)
34558 {
34559 Main.tile[x, num + 2] = new Tile();
34560 }
34561 if (!SolidTileAllowBottomSlope(x, num + 2) && !TileID.Sets.Platforms[Main.tile[x, num + 2].type])
34562 {
34563 flag = true;
34564 }
34565 if (Main.tile[x, num].type == 20)
34566 {
34567 int num5 = Main.tile[x, num].frameX / 54;
34568 int type2 = Main.tile[x, num + 2].type;
34569 int num6 = -1;
34570 switch (type2)
34571 {
34572 case 2:
34573 case 477:
34574 num6 = 0;
34575 break;
34576 case 147:
34577 num6 = 1;
34578 break;
34579 case 60:
34580 num6 = 2;
34581 break;
34582 case 23:
34583 case 661:
34584 num6 = 3;
34585 break;
34586 case 199:
34587 case 662:
34588 num6 = 4;
34589 break;
34590 case 109:
34591 case 492:
34592 num6 = 5;
34593 break;
34594 case 53:
34595 num6 = 6;
34596 break;
34597 case 116:
34598 num6 = 7;
34599 break;
34600 case 234:
34601 num6 = 8;
34602 break;
34603 case 112:
34604 num6 = 9;
34605 break;
34606 case 633:
34607 num6 = 10;
34608 break;
34609 default:
34610 flag = true;
34611 break;
34612 }
34613 if (!flag && num5 != num6)
34614 {
34615 int num7 = 54 * num6;
34616 num7 += genRand.Next(3) * 18;
34617 Main.tile[x, num].frameX = (short)num7;
34618 Main.tile[x, num + 1].frameX = (short)num7;
34619 }
34620 }
34621 if (!flag)
34622 {
34623 return;
34624 }
34625 destroyObject = true;
34626 if (Main.tile[x, num].type == type)
34627 {
34628 KillTile(x, num);
34629 }
34630 if (Main.tile[x, num + 1].type == type)
34631 {
34632 KillTile(x, num + 1);
34633 }
34634 if (type == 216)
34635 {
34636 Item.NewItem(GetItemSource_FromTileBreak(x, num), x * 16, num * 16, 32, 32, 970 + num3);
34637 }
34638 if (type == 338)
34639 {
34640 Item.NewItem(GetItemSource_FromTileBreak(x, num), x * 16, num * 16, 32, 32, 2738);
34641 }
34642 if (type == 390)
34643 {
34644 Item.NewItem(GetItemSource_FromTileBreak(x, num), x * 16, num * 16, 16, 32, 3253);
34645 }
34646 if (type == 493)
34647 {
34648 int num8 = 0;
34649 switch (num4)
34650 {
34651 case 0:
34652 num8 = 4083;
34653 break;
34654 case 1:
34655 num8 = 4084;
34656 break;
34657 case 2:
34658 num8 = 4085;
34659 break;
34660 case 3:
34661 num8 = 4086;
34662 break;
34663 case 4:
34664 num8 = 4087;
34665 break;
34666 case 5:
34667 num8 = 4088;
34668 break;
34669 }
34670 if (num8 > 0)
34671 {
34672 Item.NewItem(GetItemSource_FromTileBreak(x, num), x * 16, num * 16, 32, 32, num8);
34673 }
34674 }
34675 if (type == 15)
34676 {
34678 Item.NewItem(GetItemSource_FromTileBreak(x, num), x * 16, num * 16, 32, 32, itemDrop_Chair);
34679 }
34680 switch (type)
34681 {
34682 case 497:
34683 {
34685 Item.NewItem(GetItemSource_FromTileBreak(x, num), x * 16, num * 16, 32, 32, itemDrop_Toilet);
34686 break;
34687 }
34688 case 134:
34689 if (num3 == 1)
34690 {
34691 Item.NewItem(GetItemSource_FromTileBreak(x, num), x * 16, num * 16, 32, 32, 1220);
34692 }
34693 else
34694 {
34695 Item.NewItem(GetItemSource_FromTileBreak(x, num), x * 16, num * 16, 32, 32, 525);
34696 }
34697 break;
34698 }
34699 destroyObject = false;
34700 }
static bool[] Platforms
Definition TileID.cs:163
static bool destroyObject
Definition WorldGen.cs:1020
static void KillTile(int i, int j, bool fail=false, bool effectOnly=false, bool noItem=false)
static int GetItemDrop_Chair(int style)
static UnifiedRandom genRand
Definition WorldGen.cs:1215
static bool SolidTileAllowBottomSlope(int i, int j)
static IEntitySource GetItemSource_FromTileBreak(int x, int y)
static int GetItemDrop_Toilet(int style)

References Terraria.Item.NewItem(), Terraria.ID.TileID.Sets.Platforms, Terraria.DataStructures.Tile, Terraria.Main.tile, and System.type.