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

◆ placeLavaTrap()

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

Definition at line 5016 of file WorldGen.cs.

5017 {
5018 int num = 5;
5019 int num2 = 50;
5020 int num3 = 40;
5021 int num4 = 20;
5022 int num5 = 4;
5023 if (Main.tile[x, y].active() || Main.tile[x, y].liquid < byte.MaxValue || !Main.tile[x, y].lava())
5024 {
5025 return false;
5026 }
5027 int num6 = 0;
5028 for (int i = x - num; i <= x + num; i++)
5029 {
5030 for (int j = y - num; j <= y + num; j++)
5031 {
5032 if (Main.tile[i, j].lava() && !Main.tile[i, j].active() && Main.tile[i, j].liquid == byte.MaxValue)
5033 {
5034 num6++;
5035 }
5036 }
5037 }
5038 if (num6 < num2)
5039 {
5040 return false;
5041 }
5042 int num7 = y;
5043 while (!Main.tile[x, num7].active())
5044 {
5045 num7++;
5046 if (num7 > Main.maxTilesY - 200)
5047 {
5048 return false;
5049 }
5050 }
5051 if (!Main.tileSolid[Main.tile[x, num7].type] || Main.tileSolidTop[Main.tile[x, num7].type])
5052 {
5053 return false;
5054 }
5055 int num8 = num7;
5056 for (int k = x - num4; k <= x + num4; k++)
5057 {
5058 for (int l = num7 - num4; l <= num7 + num4; l++)
5059 {
5060 if (Main.tile[k, l].wire())
5061 {
5062 return false;
5063 }
5064 }
5065 }
5066 while (Main.tile[x, num7].active() && Main.tileSolid[Main.tile[x, num7].type] && !Main.tileSolidTop[Main.tile[x, num7].type])
5067 {
5068 num7++;
5069 if (num7 > Main.maxTilesY - 200)
5070 {
5071 return false;
5072 }
5073 }
5074 Tile tile = Main.tile[x, num7 - 1];
5075 if (Main.tileDungeon[tile.type] || tile.type == 225 || tile.type == 226)
5076 {
5077 return false;
5078 }
5079 int num9 = num7;
5080 while (!Main.tile[x, num7].active())
5081 {
5082 num7++;
5083 if (num7 > Main.maxTilesY - 200 || Main.tile[x, num7].liquid > 0)
5084 {
5085 return false;
5086 }
5087 }
5088 if (!Main.tileSolid[Main.tile[x, num7].type] || Main.tileSolidTop[Main.tile[x, num7].type] || Main.tile[x, num7].type == 162)
5089 {
5090 return false;
5091 }
5092 int num10 = num7 - 1;
5093 if (num10 - num8 > num3)
5094 {
5095 return false;
5096 }
5097 if (num10 - num9 < num5)
5098 {
5099 return false;
5100 }
5101 Main.tile[x, num7].slope(0);
5102 Main.tile[x, num7].halfBrick(halfBrick: false);
5103 PlaceTile(x, num10, 135, mute: false, forced: true, -1, 7);
5104 for (int m = num8; m <= num10; m++)
5105 {
5106 Main.tile[x, m].wire(wire: true);
5107 if (m < num9)
5108 {
5109 Main.tile[x, m].slope(0);
5110 Main.tile[x, m].halfBrick(halfBrick: false);
5111 Main.tile[x, m].actuator(actuator: true);
5112 }
5113 }
5114 return true;
5115 }
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.