Elin Modding Docs Doc
Loading...
Searching...
No Matches
AM_Terrain.cs
1using System;
2using UnityEngine;
3
4// Token: 0x02000157 RID: 343
6{
7 // Token: 0x17000285 RID: 645
8 // (get) Token: 0x06000A0E RID: 2574 RVA: 0x0003C128 File Offset: 0x0003A328
9 public override int SubMenuModeIndex
10 {
11 get
12 {
13 return (int)this.mode;
14 }
15 }
16
17 // Token: 0x06000A0F RID: 2575 RVA: 0x0003C130 File Offset: 0x0003A330
18 public override int TopHeight(Point p)
19 {
20 return (int)p.cell.height;
21 }
22
23 // Token: 0x17000286 RID: 646
24 // (get) Token: 0x06000A10 RID: 2576 RVA: 0x0003C13D File Offset: 0x0003A33D
25 public override bool FixedPointer
26 {
27 get
28 {
29 return true;
30 }
31 }
32
33 // Token: 0x06000A11 RID: 2577 RVA: 0x0003C140 File Offset: 0x0003A340
34 public override string OnSetSubMenuButton(int a, UIButton b)
35 {
36 if (a < 3)
37 {
38 return "terrain" + a.ToEnum<AM_Terrain.Mode>().ToString();
39 }
40 return null;
41 }
42
43 // Token: 0x06000A12 RID: 2578 RVA: 0x0003C171 File Offset: 0x0003A371
44 public override void OnClickSubMenu(int a)
45 {
46 this.mode = a.ToEnum<AM_Terrain.Mode>();
47 }
48
49 // Token: 0x06000A13 RID: 2579 RVA: 0x0003C180 File Offset: 0x0003A380
50 public override void OnProcessTiles(Point point, int dir)
51 {
52 if (this.timer < 0.1f)
53 {
54 return;
55 }
56 if (this.lastPoint != null)
57 {
58 point = this.lastPoint;
59 }
60 else
61 {
62 this.lastPoint = new Point(point);
63 }
64 this.timer = 0f;
65 Cell cell = point.cell;
66 EClass._map.ForeachSphere(point.x, point.z, (float)this.brushRadius, delegate(Point p)
67 {
68 int num = p.Distance(point);
69 if (this.mode == AM_Terrain.Mode.Flatten)
70 {
71 Cell cell;
72 if (p.cell.IsFloorWater != cell.IsFloorWater)
73 {
74 return;
75 }
76 int num2 = (int)(p.cell.height - cell.height);
77 if (!EInput.isShiftDown)
78 {
79 num2 = ((num2 >= 0) ? Mathf.Clamp(this.brushRadius - num, 1, num2) : Mathf.Clamp((this.brushRadius - num) * -1, num2, -1));
80 }
81 cell = p.cell;
82 cell.height -= (byte)num2;
83 if (p.cell._bridge != 0)
84 {
85 Cell cell2 = p.cell;
86 cell2.bridgeHeight -= (byte)num2;
87 }
88 }
89 else
90 {
91 int num3 = this.brushRadius - num;
92 if (EInput.isShiftDown)
93 {
94 num3 = 1;
95 }
96 if (this.mode == AM_Terrain.Mode.Down)
97 {
98 num3 *= -1;
99 }
100 if ((int)p.cell.height + num3 < 0)
101 {
102 num3 = (int)(-(int)p.cell.height);
103 }
104 else if ((int)p.cell.height + num3 > EClass.setting.maxGenHeight)
105 {
106 num3 = EClass.setting.maxGenHeight - (int)p.cell.height;
107 }
108 Cell cell3 = p.cell;
109 cell3.height += (byte)num3;
110 if (p.cell._bridge != 0)
111 {
112 Cell cell4 = p.cell;
113 cell4.bridgeHeight += (byte)num3;
114 }
115 }
116 p.RefreshNeighborTiles();
117 if (p.cell.room != null)
118 {
119 p.cell.room.SetDirty();
120 }
121 });
122 }
123
124 // Token: 0x04000902 RID: 2306
125 public AM_Terrain.Mode mode;
126
127 // Token: 0x0200086F RID: 2159
128 public enum Mode
129 {
130 // Token: 0x0400240E RID: 9230
131 Flatten,
132 // Token: 0x0400240F RID: 9231
133 Up,
134 // Token: 0x04002410 RID: 9232
135 Down
136 }
137}
Definition Cell.cs:10
Definition Point.cs:11