Terraria
v1.4.4.9
Terraria source code documentation
Loading...
Searching...
No Matches
PitEntrance.cs
Go to the documentation of this file.
1
using
System
;
2
using
Microsoft.Xna.Framework
;
3
4
namespace
Terraria.GameContent.Biomes.Desert
;
5
6
public
static
class
PitEntrance
7
{
8
public
static
void
Place
(
DesertDescription
description)
9
{
10
int
holeRadius =
WorldGen
.
genRand
.Next(6, 9);
11
Point
center = description.
CombinedArea
.
Center
;
12
center.Y = description.
Surface
[center.
X
];
13
PlaceAt
(description, center, holeRadius);
14
}
15
16
private
static
void
PlaceAt
(
DesertDescription
description,
Point
position,
int
holeRadius)
17
{
18
for
(
int
i = -holeRadius - 3; i < holeRadius + 3; i++)
19
{
20
for
(
int
j = description.
Surface
[i + position.
X
]; j <= description.Hive.Top + 10; j++)
21
{
22
double
value
= (double)(j - description.
Surface
[i + position.
X
]) / (double)(description.
Hive
.
Top
- description.
Desert
.
Top
);
23
value
=
Utils
.Clamp(
value
, 0.0, 1.0);
24
int
num = (int)(
GetHoleRadiusScaleAt
(
value
) * (double)holeRadius);
25
if
(
Math
.
Abs
(i) < num)
26
{
27
Main
.
tile
[i + position.
X
, j].ClearEverything();
28
}
29
else
if
(
Math
.
Abs
(i) < num + 3 &&
value
> 0.35)
30
{
31
Main
.
tile
[i + position.
X
, j].ResetToType(397);
32
}
33
double
num2 =
Math
.
Abs
((
double
)i / (double)holeRadius);
34
num2 *= num2;
35
if
(
Math
.
Abs
(i) < num + 3 && (double)(j - position.
Y
) > 15.0 - 3.0 * num2)
36
{
37
Main
.
tile
[i + position.
X
, j].wall = 187;
38
WorldGen
.
SquareWallFrame
(i + position.
X
, j - 1);
39
WorldGen
.
SquareWallFrame
(i + position.
X
, j);
40
}
41
}
42
}
43
holeRadius += 4;
44
for
(
int
k = -holeRadius; k < holeRadius; k++)
45
{
46
int
num3 = holeRadius -
Math
.
Abs
(k);
47
num3 =
Math
.
Min
(10, num3 * num3);
48
for
(
int
l = 0; l < num3; l++)
49
{
50
Main
.
tile
[k + position.
X
, l + description.
Surface
[k + position.
X
]].ClearEverything();
51
}
52
}
53
}
54
55
private
static
double
GetHoleRadiusScaleAt
(
double
yProgress)
56
{
57
if
(yProgress < 0.6)
58
{
59
return
1.0;
60
}
61
return
(1.0 -
SmootherStep
((yProgress - 0.6) / 0.4)) * 0.5 + 0.5;
62
}
63
64
private
static
double
SmootherStep
(
double
delta)
65
{
66
delta =
Utils
.Clamp(delta, 0.0, 1.0);
67
return
1.0 -
Math
.
Cos
(delta * 3.1415927410125732) * 0.5 - 0.5;
68
}
69
}
System.Math.Cos
static double Cos(double d)
System.Math.Min
static byte Min(byte val1, byte val2)
Definition
Math.cs:912
System.Math.Abs
static double Abs(double value)
System.Math
Definition
Math.cs:13
Terraria.GameContent.Biomes.Desert.DesertDescription.Hive
Rectangle Hive
Definition
DesertDescription.cs:22
Terraria.GameContent.Biomes.Desert.DesertDescription.Desert
Rectangle Desert
Definition
DesertDescription.cs:20
Terraria.GameContent.Biomes.Desert.DesertDescription.Surface
SurfaceMap Surface
Definition
DesertDescription.cs:32
Terraria.GameContent.Biomes.Desert.DesertDescription.CombinedArea
Rectangle CombinedArea
Definition
DesertDescription.cs:18
Terraria.GameContent.Biomes.Desert.DesertDescription
Definition
DesertDescription.cs:8
Terraria.GameContent.Biomes.Desert.PitEntrance.PlaceAt
static void PlaceAt(DesertDescription description, Point position, int holeRadius)
Definition
PitEntrance.cs:16
Terraria.GameContent.Biomes.Desert.PitEntrance.Place
static void Place(DesertDescription description)
Definition
PitEntrance.cs:8
Terraria.GameContent.Biomes.Desert.PitEntrance.SmootherStep
static double SmootherStep(double delta)
Definition
PitEntrance.cs:64
Terraria.GameContent.Biomes.Desert.PitEntrance.GetHoleRadiusScaleAt
static double GetHoleRadiusScaleAt(double yProgress)
Definition
PitEntrance.cs:55
Terraria.GameContent.Biomes.Desert.PitEntrance
Definition
PitEntrance.cs:7
Terraria.Main.tile
static Tile[,] tile
Definition
Main.cs:1675
Terraria.Main
Definition
Main.cs:79
Terraria.Utils
Definition
Utils.cs:29
Terraria.WorldGen.genRand
static UnifiedRandom genRand
Definition
WorldGen.cs:1215
Terraria.WorldGen.SquareWallFrame
static void SquareWallFrame(int i, int j, bool resetFrame=true)
Definition
WorldGen.cs:70375
Terraria.WorldGen
Definition
WorldGen.cs:32
Microsoft.Xna.Framework
Definition
AlphaTestEffect.cs:1
System.ExceptionArgument.value
@ value
System
Definition
BlockingCollection.cs:8
Terraria.GameContent.Biomes.Desert
Definition
AnthillEntrance.cs:5
Microsoft.Xna.Framework.Point.X
int X
Definition
Point.cs:14
Microsoft.Xna.Framework.Point.Y
int Y
Definition
Point.cs:17
Microsoft.Xna.Framework.Point
Definition
Point.cs:12
Microsoft.Xna.Framework.Rectangle.Center
Point Center
Definition
Rectangle.cs:48
Microsoft.Xna.Framework.Rectangle.Top
int Top
Definition
Rectangle.cs:31
source
Terraria.GameContent.Biomes.Desert
PitEntrance.cs
Generated by
1.10.0