Definition at line 66402 of file WorldGen.cs.
66403 {
66404
66405
66406
66407
66408
66409
66410
66411
66412
66413
66414
66415
66416
66417
66418
66419
66420
66421
66422
66423
66424
66425
66426
66427
66428
66429
66430
66431
66432
66433
66434
66435
66436
66437
66438
66439
66440
66441
66442
66443
66444
66446 {
66447 GenVars.numOceanCaveTreasure = 0;
66448 }
66453 if (i < Main.maxTilesX / 2)
66454 {
66455 val2.X = 0.25 +
genRand.NextDouble() * 0.25;
66456 }
66457 else
66458 {
66459 val2.X = -0.35 -
genRand.NextDouble() * 0.5;
66460 }
66461 val2.Y = 0.4 +
genRand.NextDouble() * 0.25;
66462 ushort num = 264;
66468 bool flag = true;
66470 {
66475 {
66478 }
66480 {
66482 }
66483 if (flag)
66484 {
66487 }
66488 else
66489 {
66492 }
66494 {
66497 }
66503 {
66505 }
66506 if (
num8 > Main.maxTilesX - 1)
66507 {
66508 num8 = Main.maxTilesX - 1;
66509 }
66511 {
66513 }
66514 if (
num10 > Main.maxTilesY - 1)
66515 {
66516 num10 = Main.maxTilesY - 1;
66517 }
66519 {
66521 {
66523 {
66524 continue;
66525 }
66529 {
66530 Main.tile[
k,
l].type = num;
66531 Main.tile[
k,
l].active(active:
false);
66532 }
66533 else if (
num11 <
num4 * 1.5 + 1.0 && Main.tile[
k,
l].type != num)
66534 {
66535 if ((
double)
l < val.
Y)
66536 {
66537 if ((
val2.X < 0.0 && (
double)
k < val.
X) || (
val2.X > 0.0 && (
double)
k > val.
X))
66538 {
66540 {
66541 Main.tile[
k,
l].type =
num3;
66542 if (Main.tile[
k,
l].liquid ==
byte.MaxValue)
66543 {
66544 Main.tile[
k,
l].wall = 0;
66545 }
66546 }
66547 else if (Main.tile[
k,
l].type !=
num3)
66548 {
66549 Main.tile[
k,
l].type =
num2;
66550 }
66551 }
66552 }
66553 else if ((
val2.X < 0.0 &&
k < i) || (
val2.X > 0.0 &&
k > i))
66554 {
66555 if (Main.tile[
k,
l].liquid ==
byte.MaxValue)
66556 {
66557 Main.tile[
k,
l].wall = 0;
66558 }
66559 Main.tile[
k,
l].type =
num2;
66560 Main.tile[
k,
l].active(active:
true);
66561 if (
k == (
int)val.
X &&
flag2)
66562 {
66570 {
66573 }
66575 {
66579 }
66581 {
66586 }
66588 {
66590 {
66592 {
66594 {
66595 break;
66596 }
66597 Main.tile[
m,
n].type =
num3;
66598 }
66599 else
66600 {
66601 Main.tile[
m,
n].type =
num2;
66602 }
66603 Main.tile[
m,
n].active(active:
true);
66605 {
66606 Main.tile[
m - 1,
n].type =
num2;
66607 Main.tile[
m - 1,
n].active(active:
true);
66608 }
66610 {
66611 Main.tile[
m + 1,
n].type =
num2;
66612 Main.tile[
m + 1,
n].active(active:
true);
66613 }
66614 }
66615 }
66616 }
66617 }
66618 }
66620 {
66621 Main.tile[
k,
l].liquid =
byte.MaxValue;
66622 }
66623 if (!
flag3 ||
k != (
int)val.
X || !((
double)
l > val.
Y))
66624 {
66625 continue;
66626 }
66631 {
66633 {
66635 {
66636 Main.tile[
num20,
num21].liquid =
byte.MaxValue;
66637 }
66638 }
66639 }
66640 }
66641 }
66643 val2.X +=
genRand.NextDouble() * 0.1 - 0.05;
66644 val2.Y +=
genRand.NextDouble() * 0.1 - 0.05;
66645 if (flag)
66646 {
66647 if (val.
Y > (Main.worldSurface * 2.0 + Main.rockLayer) / 3.0 && val.
Y > (
double)(
j + 30))
66648 {
66649 flag = false;
66650 }
66651 val2.Y = Utils.Clamp(
val2.Y, 0.35, 1.0);
66652 }
66653 else
66654 {
66655 if (val.
X < (
double)(Main.maxTilesX / 2))
66656 {
66658 {
66659 val2.X += 0.02;
66660 }
66661 }
66662 else if (
val2.X > -0.5)
66663 {
66664 val2.X -= 0.02;
66665 }
66667 {
66669 {
66670 val2.Y *= 0.95;
66671 }
66672 val2.Y += 0.04;
66673 }
66674 else if (val.
Y < (Main.worldSurface * 4.0 + Main.rockLayer) / 5.0)
66675 {
66677 {
66678 val2.Y *= 0.97;
66679 }
66680 val2.Y += 0.02;
66681 }
66682 else if (
val2.Y > -0.1)
66683 {
66684 val2.Y *= 0.99;
66685 val2.Y -= 0.01;
66686 }
66687 val2.Y = Utils.Clamp(
val2.Y, -1.0, 1.0);
66688 }
66689 if (val.
X < (
double)(Main.maxTilesX / 2))
66690 {
66691 val2.X = Utils.Clamp(
val2.X, 0.1, 1.0);
66692 }
66693 else
66694 {
66695 val2.X = Utils.Clamp(
val2.X, -1.0, -0.1);
66696 }
66697 }
66699 }
static double Abs(double value)
static readonly int maxOceanCaveTreasure
static Point[] oceanCaveTreasure
static int numOceanCaveTreasure
static UnifiedRandom genRand
static bool badOceanCaveTiles(int x, int y)
static readonly int beachDistance
References System.Math.Abs(), Terraria.WorldBuilding.GenVars.maxOceanCaveTreasure, Terraria.Main.maxTilesX, Terraria.Main.maxTilesY, Terraria.WorldBuilding.GenVars.numOceanCaveTreasure, Terraria.WorldBuilding.GenVars.oceanCaveTreasure, Terraria.Main.rockLayer, Terraria.Enums.SolidTile, Terraria.Main.tile, Terraria.Main.worldSurface, ReLogic.Utilities.Vector2D.X, and ReLogic.Utilities.Vector2D.Y.