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

◆ WavyCaverer()

static void Terraria.WorldGen.WavyCaverer ( int startX,
int startY,
double waveStrengthScalar,
double wavePercentScalar,
int steps,
int type )
inlinestatic

Definition at line 66701 of file WorldGen.cs.

66702 {
66703 //IL_01c7: Unknown result type (might be due to invalid IL or missing references)
66704 //IL_01d0: Unknown result type (might be due to invalid IL or missing references)
66705 Vector2D val = default(Vector2D);
66706 ((Vector2D)(ref val))._002Ector((double)startX, (double)startY);
66707 bool flag = ((startX > Main.maxTilesX / 2) ? true : false);
66708 int num = 2 + genRand.Next(2);
66709 int num2 = 15 + genRand.Next(11);
66710 int num3 = 1 + genRand.Next(2);
66711 int num4 = (int)Math.Ceiling((double)num2 / (double)num3);
66712 double num5 = 1.0;
66713 double num6 = 1.0;
66714 int num7 = (int)(-1.0 + genRand.NextDouble() * 3.0);
66715 int num8 = num;
66716 int num9 = 0;
66717 for (int i = 0; i < steps; i++)
66718 {
66719 bool flag2 = i < num4;
66720 bool flag3 = i >= steps - num4;
66721 val.X += ((!flag) ? 1 : (-1));
66722 if (!flag2 && !flag3)
66723 {
66724 num9++;
66725 num5 = Math.Min(2.0, Math.Max(0.5, num5 + (-0.5 + genRand.NextDouble()) * 0.25));
66726 num6 = Math.Min(1.1, Math.Max(0.9, num6 + (-0.5 + genRand.NextDouble()) * 0.02));
66727 }
66728 double num10 = Math.Sin((double)num9 * 0.1 * num6 * wavePercentScalar) * num5 * waveStrengthScalar;
66729 val.Y = (double)startY + num10 + (double)(num9 * num7);
66730 int num11 = num8;
66731 if (flag2)
66732 {
66733 num8 = Math.Min(num2, num8 + num3);
66734 }
66735 else if (flag3)
66736 {
66737 num8 = Math.Max(num, num8 - num3);
66738 }
66739 val.Y -= (num11 + num8) / 4;
66740 for (int j = 0; j < num8; j++)
66741 {
66742 int num12 = (int)val.X;
66743 int num13 = (int)val.Y + j;
66744 if (InWorld(num12, num13, 20))
66745 {
66746 if (type >= 0)
66747 {
66749 }
66750 else
66751 {
66753 }
66754 }
66755 }
66756 }
66757 }
static byte Min(byte val1, byte val2)
Definition Math.cs:912
static double Ceiling(double a)
static double Sin(double a)
static byte Max(byte val1, byte val2)
Definition Math.cs:738
static void KillTile(int i, int j, bool fail=false, bool effectOnly=false, bool noItem=false)
static bool PlaceTile(int i, int j, int Type, bool mute=false, bool forced=false, int plr=-1, int style=0)
static UnifiedRandom genRand
Definition WorldGen.cs:1215
static bool InWorld(int x, int y, int fluff=0)
Definition WorldGen.cs:5816

References System.Math.Ceiling(), System.Math.Max(), System.Math.Min(), System.Math.Sin(), System.type, ReLogic.Utilities.Vector2D.X, and ReLogic.Utilities.Vector2D.Y.

Referenced by Terraria.WorldGen.GenerateWorld().