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

◆ placeLavaTrap()

static bool Terraria.WorldGen.placeLavaTrap ( int x,
int y )
inlinestatic

Definition at line 5527 of file WorldGen.cs.

5528 {
5529 int num = 5;
5530 int num3 = 50;
5531 int num4 = 40;
5532 int num5 = 20;
5533 int num6 = 4;
5534 if (Main.tile[x, y].active() || Main.tile[x, y].liquid < byte.MaxValue || !Main.tile[x, y].lava())
5535 {
5536 return false;
5537 }
5538 int num7 = 0;
5539 for (int i = x - num; i <= x + num; i++)
5540 {
5541 for (int j = y - num; j <= y + num; j++)
5542 {
5543 if (Main.tile[i, j].lava() && !Main.tile[i, j].active() && Main.tile[i, j].liquid == byte.MaxValue)
5544 {
5545 num7++;
5546 }
5547 }
5548 }
5549 if (num7 < num3)
5550 {
5551 return false;
5552 }
5553 int num8 = y;
5554 while (!Main.tile[x, num8].active())
5555 {
5556 num8++;
5557 if (num8 > Main.maxTilesY - 200)
5558 {
5559 return false;
5560 }
5561 }
5562 if (!Main.tileSolid[Main.tile[x, num8].type] || Main.tileSolidTop[Main.tile[x, num8].type])
5563 {
5564 return false;
5565 }
5566 int num9 = num8;
5567 for (int k = x - num5; k <= x + num5; k++)
5568 {
5569 for (int l = num8 - num5; l <= num8 + num5; l++)
5570 {
5571 if (Main.tile[k, l].wire())
5572 {
5573 return false;
5574 }
5575 }
5576 }
5577 while (Main.tile[x, num8].active() && Main.tileSolid[Main.tile[x, num8].type] && !Main.tileSolidTop[Main.tile[x, num8].type])
5578 {
5579 num8++;
5580 if (num8 > Main.maxTilesY - 200)
5581 {
5582 return false;
5583 }
5584 }
5585 Tile tile = Main.tile[x, num8 - 1];
5586 if (Main.tileDungeon[tile.type] || tile.type == 225 || tile.type == 226)
5587 {
5588 return false;
5589 }
5590 int num10 = num8;
5591 while (!Main.tile[x, num8].active())
5592 {
5593 num8++;
5594 if (num8 > Main.maxTilesY - 200 || Main.tile[x, num8].liquid > 0)
5595 {
5596 return false;
5597 }
5598 }
5599 if (!Main.tileSolid[Main.tile[x, num8].type] || Main.tileSolidTop[Main.tile[x, num8].type] || Main.tile[x, num8].type == 162)
5600 {
5601 return false;
5602 }
5603 int num2 = num8 - 1;
5604 if (num2 - num9 > num4)
5605 {
5606 return false;
5607 }
5608 if (num2 - num10 < num6)
5609 {
5610 return false;
5611 }
5612 Main.tile[x, num8].slope(0);
5613 Main.tile[x, num8].halfBrick(halfBrick: false);
5614 PlaceTile(x, num2, 135, mute: false, forced: true, -1, 7);
5615 for (int m = num9; m <= num2; m++)
5616 {
5617 Main.tile[x, m].wire(wire: true);
5618 if (m < num10)
5619 {
5620 Main.tile[x, m].slope(0);
5621 Main.tile[x, m].halfBrick(halfBrick: false);
5622 Main.tile[x, m].actuator(actuator: true);
5623 }
5624 }
5625 return true;
5626 }
static bool PlaceTile(int i, int j, int Type, bool mute=false, bool forced=false, int plr=-1, int style=0)

References Terraria.Main.maxTilesY, Terraria.WorldGen.PlaceTile(), Terraria.Main.tile, Terraria.Main.tileDungeon, Terraria.Main.tileSolid, Terraria.Main.tileSolidTop, and Terraria.Tile.type.

+ Here is the call graph for this function: