Elin Modding Docs Doc
Loading...
Searching...
No Matches
TileTypeWallHang.cs
1using System;
2using UnityEngine;
3
4// Token: 0x020006D9 RID: 1753
6{
7 // Token: 0x17000F23 RID: 3875
8 // (get) Token: 0x060032B6 RID: 12982 RVA: 0x00116DCE File Offset: 0x00114FCE
9 public override string LangPlaceType
10 {
11 get
12 {
13 return "place_WallMount";
14 }
15 }
16
17 // Token: 0x17000F24 RID: 3876
18 // (get) Token: 0x060032B7 RID: 12983 RVA: 0x00116DD5 File Offset: 0x00114FD5
19 public override bool CanStack
20 {
21 get
22 {
23 return true;
24 }
25 }
26
27 // Token: 0x17000F25 RID: 3877
28 // (get) Token: 0x060032B8 RID: 12984 RVA: 0x00116DD8 File Offset: 0x00114FD8
29 public override bool IsBlockMount
30 {
31 get
32 {
33 return true;
34 }
35 }
36
37 // Token: 0x17000F26 RID: 3878
38 // (get) Token: 0x060032B9 RID: 12985 RVA: 0x00116DDB File Offset: 0x00114FDB
39 public override bool UseMountHeight
40 {
41 get
42 {
43 return true;
44 }
45 }
46
47 // Token: 0x17000F27 RID: 3879
48 // (get) Token: 0x060032BA RID: 12986 RVA: 0x00116DDE File Offset: 0x00114FDE
49 public override bool UseHangZFix
50 {
51 get
52 {
53 return true;
54 }
55 }
56
57 // Token: 0x17000F28 RID: 3880
58 // (get) Token: 0x060032BB RID: 12987 RVA: 0x00116DE1 File Offset: 0x00114FE1
59 public virtual bool NoBackSide
60 {
61 get
62 {
63 return false;
64 }
65 }
66
67 // Token: 0x060032BC RID: 12988 RVA: 0x00116DE4 File Offset: 0x00114FE4
68 public override int GetDesiredDir(Point p, int d)
69 {
70 if (EClass.scene.actionMode != null && EClass.scene.actionMode.IsRoofEditMode(null))
71 {
72 return -1;
73 }
74 Cell cell = p.cell;
75 TileTypeWallHang.DIRS[0] = (cell.Back.sourceBlock.tileType.IsMountBlock && (!cell.Back.sourceBlock.tileType.IsWallOrFence || cell.Back.blockDir != 1));
76 TileTypeWallHang.DIRS[1] = (cell.Left.sourceBlock.tileType.IsMountBlock && (!cell.Left.sourceBlock.tileType.IsWallOrFence || cell.Left.blockDir != 0));
77 if (this.NoBackSide)
78 {
79 TileTypeWallHang.DIRS[2] = false;
80 TileTypeWallHang.DIRS[3] = false;
81 }
82 else
83 {
84 TileTypeWallHang.DIRS[2] = (cell.Front.sourceBlock.tileType.IsMountBlock && (!cell.Front.sourceBlock.tileType.IsWallOrFence || cell.Front.blockDir != 1));
85 TileTypeWallHang.DIRS[3] = (cell.Right.sourceBlock.tileType.IsMountBlock && (!cell.Right.sourceBlock.tileType.IsWallOrFence || cell.Right.blockDir != 0));
86 }
87 if (d == -1 || !TileTypeWallHang.DIRS[d])
88 {
89 if (d == -1)
90 {
91 d = 0;
92 }
93 for (int i = 0; i < 4; i++)
94 {
95 if (TileTypeWallHang.DIRS[(i + d) % 4])
96 {
97 return (i + d) % 4;
98 }
99 }
100 }
101 if (TileTypeWallHang.DIRS[d])
102 {
103 return d;
104 }
105 return -1;
106 }
107
108 // Token: 0x060032BD RID: 12989 RVA: 0x00116FA0 File Offset: 0x001151A0
109 public unsafe override void GetMountHeight(ref Vector3 v, Point p, int d, Card target = null)
110 {
111 if (d == 0 && p.z < EClass._map.Size - 1)
112 {
113 Point.shared2.Set(p.x, p.z + 1);
114 Vector3 vector = *Point.shared2.Position();
115 v.x = vector.x;
116 v.y = vector.y + Point.shared2.sourceBlock.tileType.MountHeight;
117 v.z = vector.z;
118 if (Point.shared2.HasWallOrFence)
119 {
120 v += EClass.screen.tileMap.wallHangFix[0];
121 }
122 v += EClass.screen.tileMap.altitudeFix * (float)target.altitude;
123 return;
124 }
125 if (d == 1 && p.x > 0)
126 {
127 Point.shared2.Set(p.x - 1, p.z);
128 Vector3 vector2 = *Point.shared2.Position();
129 v.x = vector2.x;
130 v.y = vector2.y + Point.shared2.sourceBlock.tileType.MountHeight;
131 v.z = vector2.z;
132 if (Point.shared2.HasWallOrFence)
133 {
134 v += EClass.screen.tileMap.wallHangFix[1];
135 }
136 v += EClass.screen.tileMap.altitudeFix * (float)target.altitude;
137 return;
138 }
139 if (d == 2 && p.z > 0)
140 {
141 Point.shared2.Set(p.x, p.z - 1);
142 Vector3 vector3 = *p.Position();
143 v.x = vector3.x;
144 v.y = vector3.y + p.sourceBlock.tileType.MountHeight;
145 v.z = vector3.z;
146 if (Point.shared2.HasWallOrFence)
147 {
148 v += EClass.screen.tileMap.wallHangFix[2];
149 }
150 v += EClass.screen.tileMap.altitudeFix * (float)target.altitude;
151 return;
152 }
153 if (d == 3 && p.x < EClass._map.Size - 1)
154 {
155 Point.shared2.Set(p.x + 1, p.z);
156 Vector3 vector4 = *p.Position();
157 v.x = vector4.x;
158 v.y = vector4.y + p.sourceBlock.tileType.MountHeight;
159 v.z = vector4.z;
160 if (Point.shared2.HasWallOrFence)
161 {
162 v += EClass.screen.tileMap.wallHangFix[3];
163 }
164 v += EClass.screen.tileMap.altitudeFix * (float)target.altitude;
165 return;
166 }
167 v.y += p.sourceBlock.tileType.MountHeight;
168 }
169
170 // Token: 0x060032BE RID: 12990 RVA: 0x00117320 File Offset: 0x00115520
171 protected override HitResult HitTest(Point pos)
172 {
173 if (this.GetDesiredDir(pos, -1) == -1)
174 {
175 return HitResult.Invalid;
176 }
177 return base.HitTest(pos);
178 }
179
180 // Token: 0x04001BF4 RID: 7156
181 public static bool[] DIRS = new bool[4];
182}
Definition Card.cs:13
Definition Cell.cs:10
Definition Point.cs:11