TModLoader v1.4.4.9
TModLoader source code documentation
Loading...
Searching...
No Matches

◆ UpdateMech()

static void Terraria.Wiring.UpdateMech ( )
inlinestatic

Definition at line 152 of file Wiring.cs.

153 {
155 for (int num = _numMechs - 1; num >= 0; num--)
156 {
157 _mechTime[num]--;
158 int num2 = _mechX[num];
159 int num3 = _mechY[num];
160 if (!WorldGen.InWorld(num2, num3, 1))
161 {
162 _numMechs--;
163 }
164 else
165 {
166 Tile tile = Main.tile[num2, num3];
167 if (tile == null)
168 {
169 _numMechs--;
170 }
171 else
172 {
173 if (tile.active() && tile.type == 144)
174 {
175 if (tile.frameY == 0)
176 {
177 _mechTime[num] = 0;
178 }
179 else
180 {
181 int num4 = tile.frameX / 18;
182 switch (num4)
183 {
184 case 0:
185 num4 = 60;
186 break;
187 case 1:
188 num4 = 180;
189 break;
190 case 2:
191 num4 = 300;
192 break;
193 case 3:
194 num4 = 30;
195 break;
196 case 4:
197 num4 = 15;
198 break;
199 }
200 if (Math.IEEERemainder(_mechTime[num], num4) == 0.0)
201 {
202 _mechTime[num] = 18000;
203 TripWire(_mechX[num], _mechY[num], 1, 1);
204 }
205 }
206 }
207 if (_mechTime[num] <= 0)
208 {
209 if (tile.active() && tile.type == 144)
210 {
211 tile.frameY = 0;
212 NetMessage.SendTileSquare(-1, _mechX[num], _mechY[num]);
213 }
214 if (tile.active() && tile.type == 411)
215 {
216 int num5 = tile.frameX % 36 / 18;
217 int num6 = tile.frameY % 36 / 18;
218 int num7 = _mechX[num] - num5;
219 int num8 = _mechY[num] - num6;
220 int num9 = 36;
221 if (Main.tile[num7, num8].frameX >= 36)
222 {
223 num9 = -36;
224 }
225 for (int i = num7; i < num7 + 2; i++)
226 {
227 for (int j = num8; j < num8 + 2; j++)
228 {
229 if (WorldGen.InWorld(i, j, 1))
230 {
231 Tile tile2 = Main.tile[i, j];
232 if (tile2 != null)
233 {
234 tile2.frameX = (short)(tile2.frameX + num9);
235 }
236 }
237 }
238 }
239 NetMessage.SendTileSquare(-1, num7, num8, 2, 2);
240 }
241 for (int k = num; k < _numMechs; k++)
242 {
243 _mechX[k] = _mechX[k + 1];
244 _mechY[k] = _mechY[k + 1];
245 _mechTime[k] = _mechTime[k + 1];
246 }
247 _numMechs--;
248 }
249 }
250 }
251 }
252 }
static int _numMechs
Definition Wiring.cs:64
static int[] _mechX
Definition Wiring.cs:60
static int[] _mechTime
Definition Wiring.cs:66
static int[] _mechY
Definition Wiring.cs:62
static void SetCurrentUser(int plr=-1)
Definition Wiring.cs:72
static void TripWire(int left, int top, int width, int height)
Used to send a single to wiring wired up to the specified area. The parameters represent the tile coo...
Definition Wiring.cs:607

References Terraria.Wiring._mechTime, Terraria.Wiring._mechX, Terraria.Wiring._mechY, Terraria.Wiring._numMechs, Terraria.Tile.active(), Terraria.Tile.frameY, Terraria.WorldGen.InWorld(), Terraria.NetMessage.SendTileSquare(), Terraria.Wiring.SetCurrentUser(), Terraria.Main.tile, Terraria.Wiring.TripWire(), and Terraria.Tile.type.

Referenced by Terraria.WorldGen.UpdateWorld_Inner().

+ Here is the call graph for this function:
+ Here is the caller graph for this function: