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

◆ ShroomPatch()

static void Terraria.WorldGen.ShroomPatch ( int i,
int j )
inlinestatic

Definition at line 73599 of file WorldGen.cs.

73600 {
73601 double num = genRand.Next(80, 100);
73602 double num7 = genRand.Next(20, 26);
73603 double num8 = (double)Main.maxTilesX / 4200.0;
73604 if (getGoodWorldGen && !Main.remixWorld)
73605 {
73606 num8 *= 1.5;
73607 }
73608 num *= num8;
73609 num7 *= num8;
73610 double num9 = num7 - 1.0;
73611 double num10 = num;
73612 Vector2D vector2D = default(Vector2D);
73613 vector2D.X = i;
73614 vector2D.Y = (double)j - num7 * 0.3;
73615 Vector2D vector2D2 = default(Vector2D);
73616 vector2D2.X = (double)genRand.Next(-100, 101) * 0.005;
73617 vector2D2.Y = (double)genRand.Next(-200, -100) * 0.005;
73618 while (num > 0.0 && num7 > 0.0)
73619 {
73620 num -= (double)genRand.Next(3);
73621 num7 -= 1.0;
73622 int num11 = (int)(vector2D.X - num * 0.5);
73623 int num12 = (int)(vector2D.X + num * 0.5);
73624 int num13 = (int)(vector2D.Y - num * 0.5);
73625 int num14 = (int)(vector2D.Y + num * 0.5);
73626 if (num11 < 0)
73627 {
73628 num11 = 0;
73629 }
73630 if (num12 > Main.maxTilesX)
73631 {
73632 num12 = Main.maxTilesX;
73633 }
73634 if (num13 < 0)
73635 {
73636 num13 = 0;
73637 }
73638 if (num14 > Main.maxTilesY)
73639 {
73640 num14 = Main.maxTilesY;
73641 }
73642 num10 = num * (double)genRand.Next(80, 120) * 0.01;
73643 for (int k = num11; k < num12; k++)
73644 {
73645 for (int l = num13; l < num14; l++)
73646 {
73647 double num15 = Math.Abs((double)k - vector2D.X);
73648 double num2 = Math.Abs(((double)l - vector2D.Y) * 2.3);
73649 double num3 = Math.Sqrt(num15 * num15 + num2 * num2);
73650 if (num3 < num10 * 0.8 && Main.tile[k, l].lava())
73651 {
73652 Main.tile[k, l].liquid = 0;
73653 }
73654 if (num3 < num10 * 0.2 && (double)l < vector2D.Y)
73655 {
73656 Main.tile[k, l].active(active: false);
73657 if (Main.tile[k, l].wall > 0)
73658 {
73659 Main.tile[k, l].wall = 80;
73660 }
73661 }
73662 else if (num3 < num10 * 0.4 * (0.95 + genRand.NextDouble() * 0.1))
73663 {
73664 Main.tile[k, l].type = 59;
73665 if (num7 == num9 && (double)l > vector2D.Y)
73666 {
73667 Main.tile[k, l].active(active: true);
73668 }
73669 if (Main.tile[k, l].wall > 0)
73670 {
73671 Main.tile[k, l].wall = 80;
73672 }
73673 }
73674 }
73675 }
73677 vector2D.X += vector2D2.X;
73678 vector2D2.X += (double)genRand.Next(-100, 110) * 0.005;
73679 vector2D2.Y -= (double)genRand.Next(110) * 0.005;
73680 if (vector2D2.X > -0.5 && vector2D2.X < 0.5)
73681 {
73682 if (vector2D2.X < 0.0)
73683 {
73684 vector2D2.X = -0.5;
73685 }
73686 else
73687 {
73688 vector2D2.X = 0.5;
73689 }
73690 }
73691 if (vector2D2.X > 0.5)
73692 {
73693 vector2D2.X = 0.5;
73694 }
73695 if (vector2D2.X < -0.5)
73696 {
73697 vector2D2.X = -0.5;
73698 }
73699 if (vector2D2.Y > 0.5)
73700 {
73701 vector2D2.Y = 0.5;
73702 }
73703 if (vector2D2.Y < -0.5)
73704 {
73705 vector2D2.Y = -0.5;
73706 }
73707 for (int m = 0; m < 2; m++)
73708 {
73709 int num4 = (int)vector2D.X + genRand.Next(-20, 20);
73710 int num5 = (int)vector2D.Y + genRand.Next(0, 20);
73711 while (!Main.tile[num4, num5].active() && Main.tile[num4, num5].type != 59)
73712 {
73713 num4 = (int)vector2D.X + genRand.Next(-20, 20);
73714 num5 = (int)vector2D.Y + genRand.Next(0, 20);
73715 }
73716 int num6 = genRand.Next(10, 20);
73717 int steps = genRand.Next(10, 20);
73718 TileRunner(num4, num5, num6, steps, 59, addTile: false, 0.0, 2.0, noYChange: true);
73719 }
73720 }
73721 }
static UnifiedRandom genRand
Definition WorldGen.cs:1455
static void TileRunner(int i, int j, double strength, int steps, int type, bool addTile=false, double speedX=0.0, double speedY=0.0, bool noYChange=false, bool overRide=true, int ignoreTileType=-1)
static bool getGoodWorldGen
Definition WorldGen.cs:1394

References Terraria.Main.maxTilesX, Terraria.Main.maxTilesY, Terraria.Main.remixWorld, and Terraria.Main.tile.

Referenced by Terraria.WorldGen.AddGenPasses().

+ Here is the caller graph for this function: