Terraria v1.4.4.9
Terraria source code documentation
Loading...
Searching...
No Matches
DesertDescription.cs
Go to the documentation of this file.
4
6
7public class DesertDescription
8{
9 public static readonly DesertDescription Invalid = new DesertDescription
10 {
11 IsValid = false
12 };
13
14 private static readonly Vector2D DefaultBlockScale = new Vector2D(4.0, 2.0);
15
16 private const int SCAN_PADDING = 5;
17
18 public Rectangle CombinedArea { get; private set; }
19
20 public Rectangle Desert { get; private set; }
21
22 public Rectangle Hive { get; private set; }
23
24 public Vector2D BlockScale { get; private set; }
25
26 public int BlockColumnCount { get; private set; }
27
28 public int BlockRowCount { get; private set; }
29
30 public bool IsValid { get; private set; }
31
32 public SurfaceMap Surface { get; private set; }
33
35 {
36 }
37
42
44 {
45 //IL_0000: Unknown result type (might be due to invalid IL or missing references)
46 //IL_0005: Unknown result type (might be due to invalid IL or missing references)
47 //IL_0064: Unknown result type (might be due to invalid IL or missing references)
48 //IL_0070: Unknown result type (might be due to invalid IL or missing references)
49 //IL_016e: Unknown result type (might be due to invalid IL or missing references)
50 Vector2D defaultBlockScale = DefaultBlockScale;
51 double num = (double)Main.maxTilesX / 4200.0;
52 int num2 = (int)(80.0 * num);
53 int num3 = (int)((WorldGen.genRand.NextDouble() * 0.5 + 1.5) * 170.0 * num);
55 {
56 num3 = (int)(340.0 * num);
57 }
58 int num4 = (int)(defaultBlockScale.X * (double)num2);
59 int num5 = (int)(defaultBlockScale.Y * (double)num3);
60 origin.X -= num4 / 2;
61 SurfaceMap surfaceMap = SurfaceMap.FromArea(origin.X - 5, num4 + 10);
62 if (RowHasInvalidTiles(origin.X, surfaceMap.Bottom, num4))
63 {
64 return Invalid;
65 }
66 int num6 = (int)(surfaceMap.Average + (double)surfaceMap.Bottom) / 2;
67 origin.Y = num6 + WorldGen.genRand.Next(40, 60);
68 int num7 = 0;
70 {
71 num7 = (int)(20.0 * num);
72 }
73 return new DesertDescription
74 {
75 CombinedArea = new Rectangle(origin.X, num6, num4, origin.Y + num5 - num6),
76 Hive = new Rectangle(origin.X, origin.Y + num7, num4, num5 - num7),
77 Desert = new Rectangle(origin.X, num6, num4, origin.Y + num5 / 2 - num6 + num7),
78 BlockScale = defaultBlockScale,
79 BlockColumnCount = num2,
80 BlockRowCount = num3,
81 Surface = surfaceMap,
82 IsValid = true
83 };
84 }
85
86 private static bool RowHasInvalidTiles(int startX, int startY, int width)
87 {
89 {
90 return false;
91 }
92 for (int i = startX; i < startX + width; i++)
93 {
94 switch (Main.tile[i, startY].type)
95 {
96 case 59:
97 case 60:
98 return true;
99 case 147:
100 case 161:
101 return true;
102 }
103 }
104 return false;
105 }
106}
static bool RowHasInvalidTiles(int startX, int startY, int width)
static DesertDescription CreateFromPlacement(Point origin)
static SurfaceMap FromArea(int startX, int width)
Definition SurfaceMap.cs:43
static int maxTilesX
Definition Main.cs:1114
static Tile[,] tile
Definition Main.cs:1675
static bool tenthAnniversaryWorld
Definition Main.cs:343
static bool remixWorldGen
Definition WorldGen.cs:1148
static UnifiedRandom genRand
Definition WorldGen.cs:1215