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

◆ ShimmerCleanUp()

static void Terraria.WorldGen.ShimmerCleanUp ( )
inlinestaticprivate

Definition at line 26169 of file WorldGen.cs.

26170 {
26172 int num = 120;
26173 int num2 = 90;
26174 int num3 = (int)GenVars.shimmerPosition.X - num;
26175 int num4 = (int)GenVars.shimmerPosition.X + num;
26176 int num5 = (int)GenVars.shimmerPosition.Y - num;
26177 int num6 = (int)GenVars.shimmerPosition.Y + num;
26178 _ = num / 4;
26179 for (int i = num5; i <= num6; i++)
26180 {
26181 for (int j = num3; j <= num4; j++)
26182 {
26183 int num7 = (int)Math.Sqrt(Math.Pow(Math.Abs((double)j - GenVars.shimmerPosition.X), 2.0) + Math.Pow(Math.Abs((double)i - GenVars.shimmerPosition.Y), 2.0));
26184 if (num7 < num)
26185 {
26186 if (Main.tile[j, i].type == 22 || Main.tile[j, i].type == 204)
26187 {
26188 Main.tile[j, i].type = 1;
26189 }
26190 if (Main.tile[j, i].type == 51 || Main.tile[j, i].type == 56 || Main.tile[j, i].type == 229 || Main.tile[j, i].type == 230 || Main.tile[j, i].type == 659)
26191 {
26192 Main.tile[j, i].active(active: false);
26193 }
26194 if (TileID.Sets.Conversion.Moss[Main.tile[j, i].type])
26195 {
26196 Main.tile[j, i].type = 1;
26197 }
26198 if (Main.tile[j, i].type == 184)
26199 {
26200 Main.tile[j, i].active(active: false);
26201 }
26202 }
26203 num7 = ((!((double)i > GenVars.shimmerPosition.Y)) ? ((int)Math.Sqrt(Math.Pow(Math.Abs((double)j - GenVars.shimmerPosition.X) * (1.0 + genRand.NextDouble() * 0.02), 2.0) + Math.Pow(Math.Abs((double)i - GenVars.shimmerPosition.Y) * 1.4 * (1.0 + genRand.NextDouble() * 0.02), 2.0))) : ((int)Math.Sqrt(Math.Pow(Math.Abs((double)j - GenVars.shimmerPosition.X) * (1.0 + genRand.NextDouble() * 0.02), 2.0) + Math.Pow(Math.Abs((double)i - GenVars.shimmerPosition.Y) * 1.2 * (1.0 + genRand.NextDouble() * 0.02), 2.0))));
26204 if (num7 < num2)
26205 {
26206 Convert(j, i, 0, 3);
26207 }
26208 }
26209 }
26210 int num8 = (int)GenVars.shimmerPosition.X;
26211 int num9 = (int)GenVars.shimmerPosition.Y;
26212 byte b = 127;
26213 Liquid.tilesIgnoreWater(ignoreSolids: true);
26214 while (Main.tile[num8, num9].liquid <= b || !Main.tile[num8, num9].shimmer())
26215 {
26216 while (!Main.tile[num8, num9].active())
26217 {
26218 Main.tile[num8, num9].liquid = b;
26219 Main.tile[num8, num9].shimmer(shimmer: true);
26220 num8--;
26221 }
26222 for (num8 = (int)GenVars.shimmerPosition.X; !Main.tile[num8, num9].active(); num8++)
26223 {
26224 Main.tile[num8, num9].liquid = b;
26225 Main.tile[num8, num9].shimmer(shimmer: true);
26226 }
26227 num8 = (int)GenVars.shimmerPosition.X;
26228 num9++;
26229 b = byte.MaxValue;
26230 if (Main.tile[num8, num9].active())
26231 {
26232 break;
26233 }
26234 }
26236 {
26237 int num10 = 170;
26238 for (int k = (int)GenVars.shimmerPosition.X - num10; (double)k <= GenVars.shimmerPosition.X + (double)num10; k++)
26239 {
26240 for (int l = (int)GenVars.shimmerPosition.Y + 40; l < Main.maxTilesY - 330 - 100; l++)
26241 {
26242 if (InWorld(k, l))
26243 {
26244 if (Main.tile[k, l].type == 375 || Main.tile[k, l].type == 374 || Main.tile[k, l].type == 373)
26245 {
26246 Main.tile[k, l].active(active: false);
26247 }
26248 if (Main.tile[k, l].liquid > 0 && !Main.tile[k, l].shimmer())
26249 {
26250 Shimmerator(k, l);
26251 }
26252 }
26253 }
26254 }
26255 }
26256 Liquid.tilesIgnoreWater(ignoreSolids: false);
26257 for (int m = 10; m < Main.maxTilesX - 10; m++)
26258 {
26259 for (int n = 10; n < Main.maxTilesY - 10; n++)
26260 {
26261 if (Main.tile[m, n].liquid > 0 && Main.tile[m, n].shimmer() && Main.tile[m, n].type == 5)
26262 {
26263 KillTile(m, n);
26264 }
26265 }
26266 }
26267 }
static double Sqrt(double d)
static double Pow(double x, double y)
static double Abs(double value)
static Vector2D shimmerPosition
Definition GenVars.cs:310
static void KillTile(int i, int j, bool fail=false, bool effectOnly=false, bool noItem=false)
static bool tenthAnniversaryWorldGen
Definition WorldGen.cs:1160
static UnifiedRandom genRand
Definition WorldGen.cs:1215
static void Convert(int i, int j, int conversionType, int size=4)
static void Shimmerator(int x, int y, bool jungle=false, bool lavaOk=false)
static void ShimmerRemoveWater()
static bool InWorld(int x, int y, int fluff=0)
Definition WorldGen.cs:5816

References System.Math.Abs(), Terraria.ID.TileID.Sets.Conversion.Moss, System.Math.Pow(), Terraria.WorldBuilding.GenVars.shimmerPosition, System.Math.Sqrt(), Terraria.Main.tile, and Terraria.Liquid.tilesIgnoreWater().