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

◆ ExplodeTiles()

void Terraria.Projectile.ExplodeTiles ( Vector2 compareSpot,
int radius,
int minI,
int maxI,
int minJ,
int maxJ,
bool wallSplode )
inline

Definition at line 67076 of file Projectile.cs.

67077 {
67078 AchievementsHelper.CurrentlyMining = true;
67079 for (int i = minI; i <= maxI; i++)
67080 {
67081 for (int j = minJ; j <= maxJ; j++)
67082 {
67083 float num = Math.Abs((float)i - compareSpot.X / 16f);
67084 float num2 = Math.Abs((float)j - compareSpot.Y / 16f);
67085 if (!(Math.Sqrt(num * num + num2 * num2) < (double)radius))
67086 {
67087 continue;
67088 }
67089 bool flag = true;
67090 if (Main.tile[i, j] != null && Main.tile[i, j].active())
67091 {
67092 flag = CanExplodeTile(i, j);
67093 if (flag)
67094 {
67095 WorldGen.KillTile(i, j);
67096 if (!Main.tile[i, j].active() && Main.netMode != 0)
67097 {
67098 NetMessage.SendData(17, -1, -1, null, 0, i, j);
67099 }
67100 }
67101 }
67102 if (!flag)
67103 {
67104 continue;
67105 }
67106 for (int k = i - 1; k <= i + 1; k++)
67107 {
67108 for (int l = j - 1; l <= j + 1; l++)
67109 {
67110 if (Main.tile[k, l] != null && Main.tile[k, l].wall > 0 && wallSplode)
67111 {
67112 WorldGen.KillWall(k, l);
67113 if (Main.tile[k, l].wall == 0 && Main.netMode != 0)
67114 {
67115 NetMessage.SendData(17, -1, -1, null, 2, k, l);
67116 }
67117 }
67118 }
67119 }
67120 }
67121 }
67122 AchievementsHelper.CurrentlyMining = false;
67123 }
static double Sqrt(double d)
static double Abs(double value)
bool CanExplodeTile(int x, int y)

References System.Math.Abs(), Terraria.WorldGen.KillTile(), Terraria.WorldGen.KillWall(), Terraria.Main.netMode, Terraria.NetMessage.SendData(), System.Math.Sqrt(), and Terraria.Main.tile.