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

◆ SendData()

static void Terraria.NetMessage.SendData ( int msgType,
int remoteClient = -1,
int ignoreClient = -1,
NetworkText text = null,
int number = 0,
float number2 = 0f,
float number3 = 0f,
float number4 = 0f,
int number5 = 0,
int number6 = 0,
int number7 = 0 )
inlinestatic

Definition at line 101 of file NetMessage.cs.

102 {
103 //IL_38e5: Unknown result type (might be due to invalid IL or missing references)
104 //IL_38ea: Unknown result type (might be due to invalid IL or missing references)
105 //IL_38ee: Unknown result type (might be due to invalid IL or missing references)
106 //IL_38f3: Unknown result type (might be due to invalid IL or missing references)
107 //IL_3937: Unknown result type (might be due to invalid IL or missing references)
108 //IL_17e2: Unknown result type (might be due to invalid IL or missing references)
109 //IL_17ef: Unknown result type (might be due to invalid IL or missing references)
110 //IL_18f6: Unknown result type (might be due to invalid IL or missing references)
111 //IL_1903: Unknown result type (might be due to invalid IL or missing references)
112 //IL_1c01: Unknown result type (might be due to invalid IL or missing references)
113 //IL_1c0e: Unknown result type (might be due to invalid IL or missing references)
114 //IL_2796: Unknown result type (might be due to invalid IL or missing references)
115 //IL_27a6: Unknown result type (might be due to invalid IL or missing references)
116 //IL_2b8e: Unknown result type (might be due to invalid IL or missing references)
117 //IL_2bcb: Unknown result type (might be due to invalid IL or missing references)
118 //IL_2c2b: Unknown result type (might be due to invalid IL or missing references)
119 //IL_2d23: Unknown result type (might be due to invalid IL or missing references)
120 //IL_2d28: Unknown result type (might be due to invalid IL or missing references)
121 //IL_27cd: Unknown result type (might be due to invalid IL or missing references)
122 //IL_27dd: Unknown result type (might be due to invalid IL or missing references)
123 //IL_338d: Unknown result type (might be due to invalid IL or missing references)
124 //IL_33a2: Unknown result type (might be due to invalid IL or missing references)
125 //IL_0420: Unknown result type (might be due to invalid IL or missing references)
126 //IL_042d: Unknown result type (might be due to invalid IL or missing references)
127 //IL_043a: Unknown result type (might be due to invalid IL or missing references)
128 //IL_0447: Unknown result type (might be due to invalid IL or missing references)
129 //IL_0454: Unknown result type (might be due to invalid IL or missing references)
130 //IL_0461: Unknown result type (might be due to invalid IL or missing references)
131 //IL_046e: Unknown result type (might be due to invalid IL or missing references)
132 //IL_1206: Unknown result type (might be due to invalid IL or missing references)
133 //IL_120b: Unknown result type (might be due to invalid IL or missing references)
134 //IL_1377: Unknown result type (might be due to invalid IL or missing references)
135 //IL_3b0a: Unknown result type (might be due to invalid IL or missing references)
136 //IL_3b0f: Unknown result type (might be due to invalid IL or missing references)
137 //IL_3b13: Unknown result type (might be due to invalid IL or missing references)
138 //IL_3b18: Unknown result type (might be due to invalid IL or missing references)
139 //IL_3b5c: Unknown result type (might be due to invalid IL or missing references)
140 //IL_138e: Unknown result type (might be due to invalid IL or missing references)
141 //IL_378f: Unknown result type (might be due to invalid IL or missing references)
142 //IL_3794: Unknown result type (might be due to invalid IL or missing references)
143 //IL_3798: Unknown result type (might be due to invalid IL or missing references)
144 //IL_379d: Unknown result type (might be due to invalid IL or missing references)
145 //IL_37e1: Unknown result type (might be due to invalid IL or missing references)
146 //IL_13ad: Unknown result type (might be due to invalid IL or missing references)
147 //IL_13bf: Unknown result type (might be due to invalid IL or missing references)
148 if (Main.netMode == 0)
149 {
150 return;
151 }
152 if (msgType == 21 && (Main.item[number].shimmerTime > 0f || Main.item[number].shimmered))
153 {
154 msgType = 145;
155 }
156 int num = 256;
157 if (text == null)
158 {
159 text = NetworkText.Empty;
160 }
161 if (Main.netMode == 2 && remoteClient >= 0)
162 {
164 }
166 {
167 return;
168 }
169 lock (buffer[num])
170 {
171 BinaryWriter writer = buffer[num].writer;
172 if (writer == null)
173 {
174 buffer[num].ResetWriter();
175 writer = buffer[num].writer;
176 }
177 writer.BaseStream.Position = 0L;
178 long position = writer.BaseStream.Position;
179 writer.BaseStream.Position += 2L;
180 writer.Write((byte)msgType);
181 switch (msgType)
182 {
183 case 1:
184 writer.Write(ModNet.NetVersionString);
185 break;
186 case 2:
187 text.Serialize(writer);
188 if (Main.dedServ)
189 {
190 Logging.ServerConsoleLine(Language.GetTextValue("CLI.ClientWasBooted", Netplay.Clients[num].Socket.GetRemoteAddress().ToString(), text));
191 }
192 break;
193 case 3:
194 writer.Write((byte)remoteClient);
195 writer.Write(value: false);
196 break;
197 case 4:
198 {
199 Player player4 = Main.player[number];
200 writer.Write((byte)number);
201 writer.Write((byte)player4.skinVariant);
202 writer.Write((byte)player4.hair);
203 writer.Write(player4.name);
205 {
206 writer.Write7BitEncodedInt(player4.hairDye);
207 }
208 else
209 {
210 writer.Write((byte)player4.hairDye);
211 }
212 WriteAccessoryVisibility(writer, player4.hideVisibleAccessory);
213 writer.Write(player4.hideMisc);
214 writer.WriteRGB(player4.hairColor);
215 writer.WriteRGB(player4.skinColor);
216 writer.WriteRGB(player4.eyeColor);
217 writer.WriteRGB(player4.shirtColor);
218 writer.WriteRGB(player4.underShirtColor);
219 writer.WriteRGB(player4.pantsColor);
220 writer.WriteRGB(player4.shoeColor);
221 BitsByte bitsByte8 = (byte)0;
222 if (player4.difficulty == 1)
223 {
224 bitsByte8[0] = true;
225 }
226 else if (player4.difficulty == 2)
227 {
228 bitsByte8[1] = true;
229 }
230 else if (player4.difficulty == 3)
231 {
232 bitsByte8[3] = true;
233 }
234 bitsByte8[2] = player4.extraAccessory;
235 writer.Write(bitsByte8);
236 BitsByte bitsByte9 = (byte)0;
237 bitsByte9[0] = player4.UsingBiomeTorches;
238 bitsByte9[1] = player4.happyFunTorchTime;
239 bitsByte9[2] = player4.unlockedBiomeTorches;
240 bitsByte9[3] = player4.unlockedSuperCart;
241 bitsByte9[4] = player4.enabledSuperCart;
242 writer.Write(bitsByte9);
243 BitsByte bitsByte10 = (byte)0;
244 bitsByte10[0] = player4.usedAegisCrystal;
245 bitsByte10[1] = player4.usedAegisFruit;
246 bitsByte10[2] = player4.usedArcaneCrystal;
247 bitsByte10[3] = player4.usedGalaxyPearl;
248 bitsByte10[4] = player4.usedGummyWorm;
249 bitsByte10[5] = player4.usedAmbrosia;
250 bitsByte10[6] = player4.ateArtisanBread;
251 writer.Write(bitsByte10);
252 break;
253 }
254 case 5:
255 {
256 writer.Write((byte)number);
257 writer.Write((short)number2);
258 Player player5 = Main.player[number];
259 Item item6 = null;
260 int num3 = 0;
261 int num4 = 0;
262 item6 = ((number2 >= (float)PlayerItemSlotID.Loadout3_Dye_0) ? player5.Loadouts[2].Dye[(int)number2 - PlayerItemSlotID.Loadout3_Dye_0] : ((number2 >= (float)PlayerItemSlotID.Loadout3_Armor_0) ? player5.Loadouts[2].Armor[(int)number2 - PlayerItemSlotID.Loadout3_Armor_0] : ((number2 >= (float)PlayerItemSlotID.Loadout2_Dye_0) ? player5.Loadouts[1].Dye[(int)number2 - PlayerItemSlotID.Loadout2_Dye_0] : ((number2 >= (float)PlayerItemSlotID.Loadout2_Armor_0) ? player5.Loadouts[1].Armor[(int)number2 - PlayerItemSlotID.Loadout2_Armor_0] : ((number2 >= (float)PlayerItemSlotID.Loadout1_Dye_0) ? player5.Loadouts[0].Dye[(int)number2 - PlayerItemSlotID.Loadout1_Dye_0] : ((number2 >= (float)PlayerItemSlotID.Loadout1_Armor_0) ? player5.Loadouts[0].Armor[(int)number2 - PlayerItemSlotID.Loadout1_Armor_0] : ((number2 >= (float)PlayerItemSlotID.Bank4_0) ? player5.bank4.item[(int)number2 - PlayerItemSlotID.Bank4_0] : ((number2 >= (float)PlayerItemSlotID.Bank3_0) ? player5.bank3.item[(int)number2 - PlayerItemSlotID.Bank3_0] : ((number2 >= (float)PlayerItemSlotID.TrashItem) ? player5.trashItem : ((number2 >= (float)PlayerItemSlotID.Bank2_0) ? player5.bank2.item[(int)number2 - PlayerItemSlotID.Bank2_0] : ((number2 >= (float)PlayerItemSlotID.Bank1_0) ? player5.bank.item[(int)number2 - PlayerItemSlotID.Bank1_0] : ((number2 >= (float)PlayerItemSlotID.MiscDye0) ? player5.miscDyes[(int)number2 - PlayerItemSlotID.MiscDye0] : ((number2 >= (float)PlayerItemSlotID.Misc0) ? player5.miscEquips[(int)number2 - PlayerItemSlotID.Misc0] : ((number2 >= (float)PlayerItemSlotID.Dye0) ? player5.dye[(int)number2 - PlayerItemSlotID.Dye0] : ((!(number2 >= (float)PlayerItemSlotID.Armor0)) ? player5.inventory[(int)number2 - PlayerItemSlotID.Inventory0] : player5.armor[(int)number2 - PlayerItemSlotID.Armor0])))))))))))))));
263 if (item6.Name == "" || item6.stack == 0 || item6.type == 0)
264 {
265 item6.SetDefaults(0, noMatCheck: true);
266 }
267 num3 = item6.stack;
268 num4 = item6.netID;
269 if (num3 < 0)
270 {
271 num3 = 0;
272 }
274 {
275 ItemIO.Send(item6, writer, writeStack: true);
276 break;
277 }
278 writer.Write((short)num3);
279 writer.Write((byte)number3);
280 writer.Write((short)num4);
281 break;
282 }
283 case 7:
284 {
285 writer.Write((int)Main.time);
286 BitsByte bitsByte25 = (byte)0;
287 bitsByte25[0] = Main.dayTime;
288 bitsByte25[1] = Main.bloodMoon;
289 bitsByte25[2] = Main.eclipse;
290 writer.Write(bitsByte25);
291 writer.Write((byte)Main.moonPhase);
292 writer.Write((short)Main.maxTilesX);
293 writer.Write((short)Main.maxTilesY);
294 writer.Write((short)Main.spawnTileX);
295 writer.Write((short)Main.spawnTileY);
296 writer.Write((short)Main.worldSurface);
297 writer.Write((short)Main.rockLayer);
298 writer.Write(Main.worldID);
299 writer.Write(Main.worldName);
300 writer.Write((byte)Main.GameMode);
301 writer.Write(Main.ActiveWorldFileData.UniqueId.ToByteArray());
302 writer.Write(Main.ActiveWorldFileData.WorldGeneratorVersion);
303 writer.Write((byte)Main.moonType);
304 writer.Write((byte)WorldGen.treeBG1);
305 writer.Write((byte)WorldGen.treeBG2);
306 writer.Write((byte)WorldGen.treeBG3);
307 writer.Write((byte)WorldGen.treeBG4);
308 writer.Write((byte)WorldGen.corruptBG);
309 writer.Write((byte)WorldGen.jungleBG);
310 writer.Write((byte)WorldGen.snowBG);
311 writer.Write((byte)WorldGen.hallowBG);
312 writer.Write((byte)WorldGen.crimsonBG);
313 writer.Write((byte)WorldGen.desertBG);
314 writer.Write((byte)WorldGen.oceanBG);
315 writer.Write((byte)WorldGen.mushroomBG);
316 writer.Write((byte)WorldGen.underworldBG);
317 writer.Write((byte)Main.iceBackStyle);
318 writer.Write((byte)Main.jungleBackStyle);
319 writer.Write((byte)Main.hellBackStyle);
320 writer.Write(Main.windSpeedTarget);
321 writer.Write((byte)Main.numClouds);
322 for (int n = 0; n < 3; n++)
323 {
324 writer.Write(Main.treeX[n]);
325 }
326 for (int num29 = 0; num29 < 4; num29++)
327 {
328 writer.Write((byte)Main.treeStyle[num29]);
329 }
330 for (int num30 = 0; num30 < 3; num30++)
331 {
332 writer.Write(Main.caveBackX[num30]);
333 }
334 for (int num2 = 0; num2 < 4; num2++)
335 {
336 writer.Write((byte)Main.caveBackStyle[num2]);
337 }
338 WorldGen.TreeTops.SyncSend(writer);
339 if (!Main.raining)
340 {
341 Main.maxRaining = 0f;
342 }
343 writer.Write(Main.maxRaining);
344 BitsByte bitsByte26 = (byte)0;
345 bitsByte26[0] = WorldGen.shadowOrbSmashed;
346 bitsByte26[1] = NPC.downedBoss1;
347 bitsByte26[2] = NPC.downedBoss2;
348 bitsByte26[3] = NPC.downedBoss3;
349 bitsByte26[4] = Main.hardMode;
350 bitsByte26[5] = NPC.downedClown;
351 bitsByte26[7] = NPC.downedPlantBoss;
352 writer.Write(bitsByte26);
353 BitsByte bitsByte27 = (byte)0;
354 bitsByte27[0] = NPC.downedMechBoss1;
355 bitsByte27[1] = NPC.downedMechBoss2;
356 bitsByte27[2] = NPC.downedMechBoss3;
357 bitsByte27[3] = NPC.downedMechBossAny;
358 bitsByte27[4] = Main.cloudBGActive >= 1f;
359 bitsByte27[5] = WorldGen.crimson;
360 bitsByte27[6] = Main.pumpkinMoon;
361 bitsByte27[7] = Main.snowMoon;
362 writer.Write(bitsByte27);
363 BitsByte bitsByte28 = (byte)0;
364 bitsByte28[1] = Main.fastForwardTimeToDawn;
365 bitsByte28[2] = Main.slimeRain;
366 bitsByte28[3] = NPC.downedSlimeKing;
367 bitsByte28[4] = NPC.downedQueenBee;
368 bitsByte28[5] = NPC.downedFishron;
369 bitsByte28[6] = NPC.downedMartians;
370 bitsByte28[7] = NPC.downedAncientCultist;
371 writer.Write(bitsByte28);
372 BitsByte bitsByte29 = (byte)0;
373 bitsByte29[0] = NPC.downedMoonlord;
374 bitsByte29[1] = NPC.downedHalloweenKing;
375 bitsByte29[2] = NPC.downedHalloweenTree;
376 bitsByte29[3] = NPC.downedChristmasIceQueen;
377 bitsByte29[4] = NPC.downedChristmasSantank;
378 bitsByte29[5] = NPC.downedChristmasTree;
379 bitsByte29[6] = NPC.downedGolemBoss;
381 writer.Write(bitsByte29);
382 BitsByte bitsByte2 = (byte)0;
383 bitsByte2[0] = NPC.downedPirates;
384 bitsByte2[1] = NPC.downedFrost;
385 bitsByte2[2] = NPC.downedGoblins;
391 writer.Write(bitsByte2);
392 BitsByte bitsByte3 = (byte)0;
393 bitsByte3[0] = NPC.combatBookWasUsed;
395 bitsByte3[2] = NPC.downedTowerSolar;
396 bitsByte3[3] = NPC.downedTowerVortex;
397 bitsByte3[4] = NPC.downedTowerNebula;
398 bitsByte3[5] = NPC.downedTowerStardust;
399 bitsByte3[6] = Main.forceHalloweenForToday;
400 bitsByte3[7] = Main.forceXMasForToday;
401 writer.Write(bitsByte3);
402 BitsByte bitsByte4 = (byte)0;
403 bitsByte4[0] = NPC.boughtCat;
404 bitsByte4[1] = NPC.boughtDog;
405 bitsByte4[2] = NPC.boughtBunny;
406 bitsByte4[3] = NPC.freeCake;
407 bitsByte4[4] = Main.drunkWorld;
408 bitsByte4[5] = NPC.downedEmpressOfLight;
409 bitsByte4[6] = NPC.downedQueenSlime;
410 bitsByte4[7] = Main.getGoodWorld;
411 writer.Write(bitsByte4);
412 BitsByte bitsByte5 = (byte)0;
413 bitsByte5[0] = Main.tenthAnniversaryWorld;
414 bitsByte5[1] = Main.dontStarveWorld;
415 bitsByte5[2] = NPC.downedDeerclops;
416 bitsByte5[3] = Main.notTheBeesWorld;
417 bitsByte5[4] = Main.remixWorld;
418 bitsByte5[5] = NPC.unlockedSlimeBlueSpawn;
419 bitsByte5[6] = NPC.combatBookVolumeTwoWasUsed;
420 bitsByte5[7] = NPC.peddlersSatchelWasUsed;
421 writer.Write(bitsByte5);
422 BitsByte bitsByte6 = (byte)0;
423 bitsByte6[0] = NPC.unlockedSlimeGreenSpawn;
424 bitsByte6[1] = NPC.unlockedSlimeOldSpawn;
425 bitsByte6[2] = NPC.unlockedSlimePurpleSpawn;
426 bitsByte6[3] = NPC.unlockedSlimeRainbowSpawn;
427 bitsByte6[4] = NPC.unlockedSlimeRedSpawn;
428 bitsByte6[5] = NPC.unlockedSlimeYellowSpawn;
429 bitsByte6[6] = NPC.unlockedSlimeCopperSpawn;
430 bitsByte6[7] = Main.fastForwardTimeToDusk;
431 writer.Write(bitsByte6);
432 BitsByte bitsByte7 = (byte)0;
433 bitsByte7[0] = Main.noTrapsWorld;
434 bitsByte7[1] = Main.zenithWorld;
435 bitsByte7[2] = NPC.unlockedTruffleSpawn;
436 writer.Write(bitsByte7);
437 writer.Write((byte)Main.sundialCooldown);
438 writer.Write((byte)Main.moondialCooldown);
439 writer.Write((short)WorldGen.SavedOreTiers.Copper);
440 writer.Write((short)WorldGen.SavedOreTiers.Iron);
441 writer.Write((short)WorldGen.SavedOreTiers.Silver);
442 writer.Write((short)WorldGen.SavedOreTiers.Gold);
443 writer.Write((short)WorldGen.SavedOreTiers.Cobalt);
444 writer.Write((short)WorldGen.SavedOreTiers.Mythril);
445 writer.Write((short)WorldGen.SavedOreTiers.Adamantite);
446 writer.Write((sbyte)Main.invasionType);
447 if (SocialAPI.Network != null)
448 {
449 writer.Write(SocialAPI.Network.GetLobbyId());
450 }
451 else
452 {
453 writer.Write(0uL);
454 }
455 writer.Write(Sandstorm.IntendedSeverity);
457 {
458 WorldIO.SendModData(writer);
459 }
460 break;
461 }
462 case 8:
463 writer.Write(number);
464 writer.Write((int)number2);
465 break;
466 case 9:
467 {
468 writer.Write(number);
469 text.Serialize(writer);
470 BitsByte bitsByte15 = (byte)number2;
471 writer.Write(bitsByte15);
472 break;
473 }
474 case 10:
475 CompressTileBlock(number, (int)number2, (short)number3, (short)number4, writer.BaseStream);
476 break;
477 case 11:
478 writer.Write((short)number);
479 writer.Write((short)number2);
480 writer.Write((short)number3);
481 writer.Write((short)number4);
482 break;
483 case 12:
484 {
485 Player player6 = Main.player[number];
486 writer.Write((byte)number);
487 writer.Write((short)player6.SpawnX);
488 writer.Write((short)player6.SpawnY);
489 writer.Write(player6.respawnTimer);
490 writer.Write((short)player6.numberOfDeathsPVE);
491 writer.Write((short)player6.numberOfDeathsPVP);
492 writer.Write((byte)number2);
493 break;
494 }
495 case 13:
496 {
497 Player player7 = Main.player[number];
498 writer.Write((byte)number);
499 BitsByte bitsByte18 = (byte)0;
500 bitsByte18[0] = player7.controlUp;
501 bitsByte18[1] = player7.controlDown;
502 bitsByte18[2] = player7.controlLeft;
503 bitsByte18[3] = player7.controlRight;
504 bitsByte18[4] = player7.controlJump;
505 bitsByte18[5] = player7.controlUseItem;
506 bitsByte18[6] = player7.direction == 1;
507 writer.Write(bitsByte18);
508 BitsByte bitsByte19 = (byte)0;
509 bitsByte19[0] = player7.pulley;
510 bitsByte19[1] = player7.pulley && player7.pulleyDir == 2;
511 bitsByte19[2] = player7.velocity != Vector2.Zero;
512 bitsByte19[3] = player7.vortexStealthActive;
513 bitsByte19[4] = player7.gravDir == 1f;
514 bitsByte19[5] = player7.shieldRaised;
515 bitsByte19[6] = player7.ghost;
516 writer.Write(bitsByte19);
517 BitsByte bitsByte20 = (byte)0;
518 bitsByte20[0] = player7.tryKeepingHoveringUp;
519 bitsByte20[1] = player7.IsVoidVaultEnabled;
520 bitsByte20[2] = player7.sitting.isSitting;
521 bitsByte20[3] = player7.downedDD2EventAnyDifficulty;
522 bitsByte20[4] = player7.isPettingAnimal;
523 bitsByte20[5] = player7.isTheAnimalBeingPetSmall;
524 bitsByte20[6] = player7.PotionOfReturnOriginalUsePosition.HasValue;
525 bitsByte20[7] = player7.tryKeepingHoveringDown;
526 writer.Write(bitsByte20);
527 BitsByte bitsByte21 = (byte)0;
528 bitsByte21[0] = player7.sleeping.isSleeping;
529 bitsByte21[1] = player7.autoReuseAllWeapons;
530 bitsByte21[2] = player7.controlDownHold;
531 bitsByte21[3] = player7.isOperatingAnotherEntity;
532 bitsByte21[4] = player7.controlUseTile;
533 writer.Write(bitsByte21);
534 writer.Write((byte)player7.selectedItem);
535 writer.WriteVector2(player7.position);
536 if (bitsByte19[2])
537 {
538 writer.WriteVector2(player7.velocity);
539 }
540 if (bitsByte20[6])
541 {
542 writer.WriteVector2(player7.PotionOfReturnOriginalUsePosition.Value);
543 writer.WriteVector2(player7.PotionOfReturnHomePosition.Value);
544 }
545 break;
546 }
547 case 14:
548 writer.Write((byte)number);
549 writer.Write((byte)number2);
550 break;
551 case 16:
552 writer.Write((byte)number);
553 writer.Write((short)Main.player[number].statLife);
554 writer.Write((short)Main.player[number].statLifeMax);
555 break;
556 case 17:
557 writer.Write((byte)number);
558 writer.Write((short)number2);
559 writer.Write((short)number3);
560 writer.Write((short)number4);
561 writer.Write((byte)number5);
562 break;
563 case 18:
564 writer.Write((byte)(Main.dayTime ? 1u : 0u));
565 writer.Write((int)Main.time);
566 writer.Write(Main.sunModY);
567 writer.Write(Main.moonModY);
568 break;
569 case 19:
570 writer.Write((byte)number);
571 writer.Write((short)number2);
572 writer.Write((short)number3);
573 writer.Write((number4 == 1f) ? ((byte)1) : ((byte)0));
574 break;
575 case 20:
576 {
577 int num5 = number;
578 int num6 = (int)number2;
579 int num7 = (int)number3;
580 if (num7 < 0)
581 {
582 num7 = 0;
583 }
584 int num8 = (int)number4;
585 if (num8 < 0)
586 {
587 num8 = 0;
588 }
589 if (num5 < num7)
590 {
591 num5 = num7;
592 }
593 if (num5 >= Main.maxTilesX + num7)
594 {
595 num5 = Main.maxTilesX - num7 - 1;
596 }
597 if (num6 < num8)
598 {
599 num6 = num8;
600 }
601 if (num6 >= Main.maxTilesY + num8)
602 {
603 num6 = Main.maxTilesY - num8 - 1;
604 }
605 writer.Write((short)num5);
606 writer.Write((short)num6);
607 writer.Write((byte)num7);
608 writer.Write((byte)num8);
609 writer.Write((byte)number5);
610 for (int num9 = num5; num9 < num5 + num7; num9++)
611 {
612 for (int num10 = num6; num10 < num6 + num8; num10++)
613 {
614 BitsByte bitsByte11 = (byte)0;
615 BitsByte bitsByte13 = (byte)0;
616 BitsByte bitsByte14 = (byte)0;
617 byte b3 = 0;
618 byte b4 = 0;
619 Tile tile2 = Main.tile[num9, num10];
620 bitsByte11[0] = tile2.active();
621 bitsByte11[2] = tile2.wall > 0;
622 bitsByte11[3] = tile2.liquid > 0 && Main.netMode == 2;
623 bitsByte11[4] = tile2.wire();
624 bitsByte11[5] = tile2.halfBrick();
625 bitsByte11[6] = tile2.actuator();
626 bitsByte11[7] = tile2.inActive();
627 bitsByte13[0] = tile2.wire2();
628 bitsByte13[1] = tile2.wire3();
629 if (tile2.active() && tile2.color() > 0)
630 {
631 bitsByte13[2] = true;
632 b3 = tile2.color();
633 }
634 if (tile2.wall > 0 && tile2.wallColor() > 0)
635 {
636 bitsByte13[3] = true;
637 b4 = tile2.wallColor();
638 }
639 bitsByte13 = (byte)((byte)bitsByte13 + (byte)(tile2.slope() << 4));
640 bitsByte13[7] = tile2.wire4();
641 bitsByte14[0] = tile2.fullbrightBlock();
642 bitsByte14[1] = tile2.fullbrightWall();
643 bitsByte14[2] = tile2.invisibleBlock();
644 bitsByte14[3] = tile2.invisibleWall();
645 writer.Write(bitsByte11);
646 writer.Write(bitsByte13);
647 writer.Write(bitsByte14);
648 if (b3 > 0)
649 {
650 writer.Write(b3);
651 }
652 if (b4 > 0)
653 {
654 writer.Write(b4);
655 }
656 if (tile2.active())
657 {
658 writer.Write(tile2.type);
659 if (Main.tileFrameImportant[tile2.type])
660 {
661 writer.Write(tile2.frameX);
662 writer.Write(tile2.frameY);
663 }
664 }
665 if (tile2.wall > 0)
666 {
667 writer.Write(tile2.wall);
668 }
669 if (tile2.liquid > 0 && Main.netMode == 2)
670 {
671 writer.Write(tile2.liquid);
672 writer.Write(tile2.liquidType());
673 }
674 }
675 }
676 break;
677 }
678 case 21:
679 case 90:
680 case 145:
681 case 148:
682 {
683 Item item3 = Main.item[number];
684 writer.Write((short)number);
685 writer.WriteVector2(item3.position);
686 writer.WriteVector2(item3.velocity);
688 {
689 writer.Write7BitEncodedInt(item3.stack);
690 writer.Write7BitEncodedInt(item3.prefix);
691 }
692 else
693 {
694 writer.Write((short)item3.stack);
695 writer.Write((byte)item3.prefix);
696 }
697 writer.Write((byte)number2);
698 short value2 = 0;
699 if (item3.active && item3.stack > 0)
700 {
701 value2 = (short)item3.netID;
702 }
703 writer.Write(value2);
704 if (msgType == 145)
705 {
706 writer.Write(item3.shimmered);
707 writer.Write(item3.shimmerTime);
708 }
709 if (msgType == 148)
710 {
711 writer.Write((byte)MathHelper.Clamp((float)item3.timeLeftInWhichTheItemCannotBeTakenByEnemies, 0f, 255f));
712 }
713 ItemIO.SendModData(item3, writer);
714 break;
715 }
716 case 22:
717 writer.Write((short)number);
718 writer.Write((byte)Main.item[number].playerIndexTheItemIsReservedFor);
719 break;
720 case 23:
721 {
722 NPC nPC2 = Main.npc[number];
723 writer.Write((short)number);
724 writer.WriteVector2(nPC2.position);
725 writer.WriteVector2(nPC2.velocity);
726 writer.Write((ushort)nPC2.target);
727 int num25 = nPC2.life;
728 if (!nPC2.active)
729 {
730 num25 = 0;
731 }
732 if (!nPC2.active || nPC2.life <= 0)
733 {
734 nPC2.netSkip = 0;
735 }
736 short value3 = (short)nPC2.netID;
737 bool[] array = new bool[4];
738 BitsByte bitsByte23 = (byte)0;
739 bitsByte23[0] = nPC2.direction > 0;
740 bitsByte23[1] = nPC2.directionY > 0;
741 bitsByte23[2] = (array[0] = nPC2.ai[0] != 0f);
742 bitsByte23[3] = (array[1] = nPC2.ai[1] != 0f);
743 bitsByte23[4] = (array[2] = nPC2.ai[2] != 0f);
744 bitsByte23[5] = (array[3] = nPC2.ai[3] != 0f);
745 bitsByte23[6] = nPC2.spriteDirection > 0;
746 bitsByte23[7] = num25 == nPC2.lifeMax;
747 writer.Write(bitsByte23);
748 BitsByte bitsByte24 = (byte)0;
749 bitsByte24[0] = nPC2.statsAreScaledForThisManyPlayers > 1;
750 bitsByte24[1] = nPC2.SpawnedFromStatue;
751 bitsByte24[2] = nPC2.strengthMultiplier != 1f;
752 writer.Write(bitsByte24);
753 for (int m = 0; m < NPC.maxAI; m++)
754 {
755 if (array[m])
756 {
757 writer.Write(nPC2.ai[m]);
758 }
759 }
760 writer.Write(value3);
761 if (bitsByte24[0])
762 {
763 writer.Write((byte)nPC2.statsAreScaledForThisManyPlayers);
764 }
765 if (bitsByte24[2])
766 {
767 writer.Write(nPC2.strengthMultiplier);
768 }
769 if (!bitsByte23[7])
770 {
771 byte b2 = 1;
772 if (nPC2.lifeMax > 32767)
773 {
774 b2 = 4;
775 }
776 else if (nPC2.lifeMax > 127)
777 {
778 b2 = 2;
779 }
780 writer.Write(b2);
781 switch (b2)
782 {
783 case 2:
784 writer.Write((short)num25);
785 break;
786 case 4:
787 writer.Write(num25);
788 break;
789 default:
790 writer.Write((sbyte)num25);
791 break;
792 }
793 }
794 if (nPC2.type >= 0 && Main.npcCatchable[nPC2.type])
795 {
796 writer.Write((byte)nPC2.releaseOwner);
797 }
799 {
801 }
802 break;
803 }
804 case 24:
805 writer.Write((short)number);
806 writer.Write((byte)number2);
807 break;
808 case 107:
809 writer.Write((byte)number2);
810 writer.Write((byte)number3);
811 writer.Write((byte)number4);
812 text.Serialize(writer);
813 writer.Write((short)number5);
814 break;
815 case 27:
816 {
817 Projectile projectile = Main.projectile[number];
818 writer.Write((short)projectile.identity);
819 writer.WriteVector2(projectile.position);
820 writer.WriteVector2(projectile.velocity);
821 writer.Write((byte)projectile.owner);
822 writer.Write((short)projectile.type);
823 BitsByte bitsByte16 = (byte)0;
824 BitsByte bitsByte17 = (byte)0;
825 bitsByte16[0] = projectile.ai[0] != 0f;
826 bitsByte16[1] = projectile.ai[1] != 0f;
827 bitsByte17[0] = projectile.ai[2] != 0f;
828 if (projectile.bannerIdToRespondTo != 0)
829 {
830 bitsByte16[3] = true;
831 }
832 if (projectile.damage != 0)
833 {
834 bitsByte16[4] = true;
835 }
836 if (projectile.knockBack != 0f)
837 {
838 bitsByte16[5] = true;
839 }
840 if (projectile.type > 0 && ProjectileID.Sets.NeedsUUID[projectile.type])
841 {
842 bitsByte16[7] = true;
843 }
844 if (projectile.originalDamage != 0)
845 {
846 bitsByte16[6] = true;
847 }
848 byte[] extraAI = ((!ModNet.AllowVanillaClients) ? ProjectileLoader.WriteExtraAI(projectile) : null);
849 bool hasExtraAI = (bitsByte17[1] = extraAI != null && extraAI.Length != 0);
850 if ((byte)bitsByte17 != 0)
851 {
852 bitsByte16[2] = true;
853 }
854 writer.Write(bitsByte16);
855 if (bitsByte16[2])
856 {
857 writer.Write(bitsByte17);
858 }
859 if (bitsByte16[0])
860 {
861 writer.Write(projectile.ai[0]);
862 }
863 if (bitsByte16[1])
864 {
865 writer.Write(projectile.ai[1]);
866 }
867 if (bitsByte16[3])
868 {
869 writer.Write((ushort)projectile.bannerIdToRespondTo);
870 }
871 if (bitsByte16[4])
872 {
873 writer.Write((short)projectile.damage);
874 }
875 if (bitsByte16[5])
876 {
877 writer.Write(projectile.knockBack);
878 }
879 if (bitsByte16[6])
880 {
881 writer.Write((short)projectile.originalDamage);
882 }
883 if (bitsByte16[7])
884 {
885 writer.Write((short)projectile.projUUID);
886 }
887 if (bitsByte17[0])
888 {
889 writer.Write(projectile.ai[2]);
890 }
891 if (hasExtraAI)
892 {
894 }
895 break;
896 }
897 case 28:
898 {
899 writer.Write((short)number);
900 if (number2 < 0f)
901 {
902 if (Main.netMode != 2)
903 {
904 throw new ArgumentException("Packet 28 (StrikeNPC) can only be sent with negative damage (silent insta-kill) from the server.");
905 }
906 writer.Write7BitEncodedInt((int)number2);
907 break;
908 }
909 NPC.HitInfo hit = ((number7 == 1) ? _currentStrike : _lastLegacyStrike);
910 writer.Write7BitEncodedInt(hit.Damage);
911 writer.Write7BitEncodedInt(hit.SourceDamage);
912 writer.Write7BitEncodedInt(hit.DamageType.Type);
913 writer.Write((sbyte)hit.HitDirection);
914 writer.Write(hit.Knockback);
915 BitsByte flags = new BitsByte(hit.Crit, hit.InstantKill, hit.HideCombatText);
916 writer.Write(flags);
917 break;
918 }
919 case 29:
920 writer.Write((short)number);
921 writer.Write((byte)number2);
922 break;
923 case 30:
924 writer.Write((byte)number);
925 writer.Write(Main.player[number].hostile);
926 break;
927 case 31:
928 writer.Write((short)number);
929 writer.Write((short)number2);
930 break;
931 case 32:
932 {
933 Item item7 = Main.chest[number].item[(byte)number2];
934 writer.Write((short)number);
935 writer.Write((byte)number2);
937 {
938 ItemIO.Send(item7, writer, writeStack: true);
939 break;
940 }
941 short value4 = (short)item7.netID;
942 if (item7.Name == null)
943 {
944 value4 = 0;
945 }
946 writer.Write((short)item7.stack);
947 writer.Write((byte)item7.prefix);
948 writer.Write(value4);
949 break;
950 }
951 case 33:
952 {
953 int num26 = 0;
954 int num27 = 0;
955 int num28 = 0;
956 string text2 = null;
957 if (number > -1)
958 {
959 num26 = Main.chest[number].x;
960 num27 = Main.chest[number].y;
961 }
962 if (number2 == 1f)
963 {
964 string text3 = text.ToString();
965 num28 = (byte)text3.Length;
966 if (num28 == 0 || num28 > 20)
967 {
968 num28 = 255;
969 }
970 else
971 {
972 text2 = text3;
973 }
974 }
975 writer.Write((short)number);
976 writer.Write((short)num26);
977 writer.Write((short)num27);
978 writer.Write((byte)num28);
979 if (text2 != null)
980 {
981 writer.Write(text2);
982 }
983 break;
984 }
985 case 34:
986 writer.Write((byte)number);
987 writer.Write((short)number2);
988 writer.Write((short)number3);
989 writer.Write((short)number4);
990 if (Main.netMode == 2)
991 {
992 Netplay.GetSectionX((int)number2);
993 Netplay.GetSectionY((int)number3);
994 writer.Write((short)number5);
995 }
996 else
997 {
998 writer.Write((short)0);
999 }
1000 if (number >= 100)
1001 {
1002 writer.Write((ushort)number6);
1003 }
1004 break;
1005 case 35:
1006 writer.Write((byte)number);
1007 writer.Write((short)number2);
1008 break;
1009 case 36:
1010 {
1011 Player player3 = Main.player[number];
1012 writer.Write((byte)number);
1013 writer.Write(player3.zone1);
1014 writer.Write(player3.zone2);
1015 writer.Write(player3.zone3);
1016 writer.Write(player3.zone4);
1017 writer.Write(player3.zone5);
1019 {
1021 }
1022 break;
1023 }
1024 case 38:
1025 writer.Write(Netplay.ServerPassword);
1026 break;
1027 case 39:
1028 writer.Write((short)number);
1029 break;
1030 case 40:
1031 writer.Write((byte)number);
1032 writer.Write((short)Main.player[number].talkNPC);
1033 break;
1034 case 41:
1035 writer.Write((byte)number);
1036 writer.Write(Main.player[number].itemRotation);
1037 writer.Write((short)Main.player[number].itemAnimation);
1038 break;
1039 case 42:
1040 writer.Write((byte)number);
1041 writer.Write((short)Main.player[number].statMana);
1042 writer.Write((short)Main.player[number].statManaMax);
1043 break;
1044 case 43:
1045 writer.Write((byte)number);
1046 writer.Write((short)number2);
1047 break;
1048 case 45:
1049 writer.Write((byte)number);
1050 writer.Write((byte)Main.player[number].team);
1051 break;
1052 case 46:
1053 writer.Write((short)number);
1054 writer.Write((short)number2);
1055 break;
1056 case 47:
1057 writer.Write((short)number);
1058 writer.Write((short)Main.sign[number].x);
1059 writer.Write((short)Main.sign[number].y);
1060 writer.Write(Main.sign[number].text);
1061 writer.Write((byte)number2);
1062 writer.Write((byte)number3);
1063 break;
1064 case 48:
1065 {
1066 Tile tile = Main.tile[number, (int)number2];
1067 writer.Write((short)number);
1068 writer.Write((short)number2);
1069 writer.Write(tile.liquid);
1070 writer.Write(tile.liquidType());
1071 break;
1072 }
1073 case 50:
1074 {
1075 writer.Write((byte)number);
1076 for (int l = 0; l < Player.maxBuffs; l++)
1077 {
1078 writer.Write((ushort)Main.player[number].buffType[l]);
1079 }
1080 break;
1081 }
1082 case 51:
1083 writer.Write((byte)number);
1084 writer.Write((byte)number2);
1085 break;
1086 case 52:
1087 writer.Write((byte)number2);
1088 writer.Write((short)number3);
1089 writer.Write((short)number4);
1090 break;
1091 case 53:
1092 writer.Write((short)number);
1093 writer.Write((ushort)number2);
1094 writer.Write((short)number3);
1095 break;
1096 case 54:
1097 {
1098 writer.Write((short)number);
1099 for (int k = 0; k < NPC.maxBuffs; k++)
1100 {
1101 writer.Write((ushort)Main.npc[number].buffType[k]);
1102 writer.Write((short)Main.npc[number].buffTime[k]);
1103 }
1104 break;
1105 }
1106 case 55:
1107 writer.Write((byte)number);
1108 writer.Write((ushort)number2);
1109 writer.Write((int)number3);
1110 break;
1111 case 56:
1112 writer.Write((short)number);
1113 if (Main.netMode == 2)
1114 {
1115 string givenName = Main.npc[number].GivenName;
1116 writer.Write(givenName);
1117 writer.Write(Main.npc[number].townNpcVariationIndex);
1118 }
1119 break;
1120 case 57:
1121 writer.Write(WorldGen.tGood);
1122 writer.Write(WorldGen.tEvil);
1123 writer.Write(WorldGen.tBlood);
1124 break;
1125 case 58:
1126 writer.Write((byte)number);
1127 writer.Write(number2);
1128 break;
1129 case 59:
1130 writer.Write((short)number);
1131 writer.Write((short)number2);
1132 break;
1133 case 60:
1134 writer.Write((short)number);
1135 writer.Write((short)number2);
1136 writer.Write((short)number3);
1137 writer.Write((byte)number4);
1138 break;
1139 case 61:
1140 writer.Write((short)number);
1141 writer.Write((short)number2);
1142 break;
1143 case 62:
1144 writer.Write((byte)number);
1145 writer.Write((byte)number2);
1146 break;
1147 case 63:
1148 case 64:
1149 writer.Write((short)number);
1150 writer.Write((short)number2);
1151 writer.Write((byte)number3);
1152 writer.Write((byte)number4);
1153 break;
1154 case 65:
1155 {
1156 BitsByte bitsByte22 = (byte)0;
1157 bitsByte22[0] = (number & 1) == 1;
1158 bitsByte22[1] = (number & 2) == 2;
1159 bitsByte22[2] = number6 == 1;
1160 bitsByte22[3] = number7 != 0;
1161 writer.Write(bitsByte22);
1162 writer.Write((short)number2);
1163 writer.Write(number3);
1164 writer.Write(number4);
1165 writer.Write((byte)number5);
1166 if (bitsByte22[3])
1167 {
1168 writer.Write(number7);
1169 }
1170 break;
1171 }
1172 case 66:
1173 writer.Write((byte)number);
1174 writer.Write((short)number2);
1175 break;
1176 case 68:
1177 writer.Write(Main.clientUUID);
1178 break;
1179 case 69:
1180 Netplay.GetSectionX((int)number2);
1181 Netplay.GetSectionY((int)number3);
1182 writer.Write((short)number);
1183 writer.Write((short)number2);
1184 writer.Write((short)number3);
1185 writer.Write(Main.chest[(short)number].name);
1186 break;
1187 case 70:
1188 writer.Write((short)number);
1189 writer.Write((byte)number2);
1190 break;
1191 case 71:
1192 writer.Write(number);
1193 writer.Write((int)number2);
1194 writer.Write((short)number3);
1195 writer.Write((byte)number4);
1196 break;
1197 case 72:
1198 {
1199 for (int num13 = 0; num13 < 40; num13++)
1200 {
1201 writer.Write((short)Main.travelShop[num13]);
1202 }
1203 break;
1204 }
1205 case 73:
1206 writer.Write((byte)number);
1207 break;
1208 case 74:
1209 {
1210 writer.Write((byte)Main.anglerQuest);
1211 bool value7 = Main.anglerWhoFinishedToday.Contains(text.ToString());
1212 writer.Write(value7);
1213 break;
1214 }
1215 case 76:
1216 writer.Write((byte)number);
1217 writer.Write(Main.player[number].anglerQuestsFinished);
1218 writer.Write(Main.player[number].golferScoreAccumulated);
1219 break;
1220 case 77:
1221 writer.Write((short)number);
1222 writer.Write((ushort)number2);
1223 writer.Write((short)number3);
1224 writer.Write((short)number4);
1225 break;
1226 case 78:
1227 writer.Write(number);
1228 writer.Write((int)number2);
1229 writer.Write((sbyte)number3);
1230 writer.Write((sbyte)number4);
1231 break;
1232 case 79:
1233 writer.Write((short)number);
1234 writer.Write((short)number2);
1235 writer.Write((short)number3);
1236 writer.Write((short)number4);
1237 writer.Write((byte)number5);
1238 writer.Write((sbyte)number6);
1239 writer.Write(number7 == 1);
1240 break;
1241 case 80:
1242 writer.Write((byte)number);
1243 writer.Write((short)number2);
1244 break;
1245 case 81:
1246 {
1247 writer.Write(number2);
1248 writer.Write(number3);
1249 Color c2 = default(Color);
1250 ((Color)(ref c2)).PackedValue = (uint)number;
1251 writer.WriteRGB(c2);
1252 writer.Write((int)number4);
1253 break;
1254 }
1255 case 119:
1256 {
1257 writer.Write(number2);
1258 writer.Write(number3);
1259 Color c = default(Color);
1260 ((Color)(ref c)).PackedValue = (uint)number;
1261 writer.WriteRGB(c);
1262 text.Serialize(writer);
1263 break;
1264 }
1265 case 83:
1266 {
1267 int num11 = number;
1268 if (num11 < 0 && num11 >= 290)
1269 {
1270 num11 = 1;
1271 }
1272 int value6 = NPC.killCount[num11];
1273 writer.Write((short)num11);
1274 writer.Write(value6);
1275 break;
1276 }
1277 case 84:
1278 {
1279 byte b5 = (byte)number;
1280 float stealth = Main.player[b5].stealth;
1281 writer.Write(b5);
1282 writer.Write(stealth);
1283 break;
1284 }
1285 case 85:
1286 {
1287 short value5 = (short)number;
1288 writer.Write(value5);
1289 break;
1290 }
1291 case 86:
1292 {
1293 writer.Write(number);
1294 bool flag3 = TileEntity.ByID.ContainsKey(number);
1295 writer.Write(flag3);
1296 if (flag3)
1297 {
1299 }
1300 break;
1301 }
1302 case 87:
1303 writer.Write((short)number);
1304 writer.Write((short)number2);
1305 writer.Write((byte)number3);
1306 break;
1307 case 88:
1308 {
1309 BitsByte bitsByte = (byte)number2;
1310 BitsByte bitsByte12 = (byte)number3;
1311 writer.Write((short)number);
1312 writer.Write(bitsByte);
1313 Item item5 = Main.item[number];
1314 if (bitsByte[0])
1315 {
1316 writer.Write(((Color)(ref item5.color)).PackedValue);
1317 }
1318 if (bitsByte[1])
1319 {
1320 writer.Write((ushort)item5.damage);
1321 }
1322 if (bitsByte[2])
1323 {
1324 writer.Write(item5.knockBack);
1325 }
1326 if (bitsByte[3])
1327 {
1328 writer.Write((ushort)item5.useAnimation);
1329 }
1330 if (bitsByte[4])
1331 {
1332 writer.Write((ushort)item5.useTime);
1333 }
1334 if (bitsByte[5])
1335 {
1336 writer.Write((short)item5.shoot);
1337 }
1338 if (bitsByte[6])
1339 {
1340 writer.Write(item5.shootSpeed);
1341 }
1342 if (bitsByte[7])
1343 {
1344 writer.Write(bitsByte12);
1345 if (bitsByte12[0])
1346 {
1347 writer.Write((ushort)item5.width);
1348 }
1349 if (bitsByte12[1])
1350 {
1351 writer.Write((ushort)item5.height);
1352 }
1353 if (bitsByte12[2])
1354 {
1355 writer.Write(item5.scale);
1356 }
1357 if (bitsByte12[3])
1358 {
1359 writer.Write((short)item5.ammo);
1360 }
1361 if (bitsByte12[4])
1362 {
1363 writer.Write((short)item5.useAmmo);
1364 }
1365 if (bitsByte12[5])
1366 {
1367 writer.Write(item5.notAmmo);
1368 }
1369 }
1370 break;
1371 }
1372 case 89:
1373 {
1374 writer.Write((short)number);
1375 writer.Write((short)number2);
1376 Item item4 = Main.player[(int)number4].inventory[(int)number3];
1378 {
1379 ItemIO.Send(item4, writer);
1380 writer.Write7BitEncodedInt(number5);
1381 }
1382 else
1383 {
1384 writer.Write((short)item4.netID);
1385 writer.Write((byte)item4.prefix);
1386 writer.Write((short)number5);
1387 }
1388 break;
1389 }
1390 case 91:
1391 writer.Write(number);
1392 writer.Write((byte)number2);
1393 if (!ModNet.AllowVanillaClients && (byte)number2 == 2)
1394 {
1395 writer.Write((byte)((int)number2 >> 8));
1396 }
1397 if (number2 != 255f)
1398 {
1399 writer.Write((ushort)number3);
1400 writer.Write((ushort)number4);
1401 writer.Write((byte)number5);
1402 if (number5 < 0)
1403 {
1404 writer.Write((short)number6);
1405 }
1406 }
1407 break;
1408 case 92:
1409 writer.Write((short)number);
1410 writer.Write((int)number2);
1411 writer.Write(number3);
1412 writer.Write(number4);
1413 break;
1414 case 95:
1415 writer.Write((ushort)number);
1416 writer.Write((byte)number2);
1417 break;
1418 case 96:
1419 {
1420 writer.Write((byte)number);
1421 Player player2 = Main.player[number];
1422 writer.Write((short)number4);
1423 writer.Write(number2);
1424 writer.Write(number3);
1425 writer.WriteVector2(player2.velocity);
1426 break;
1427 }
1428 case 97:
1429 writer.Write((short)number);
1430 break;
1431 case 98:
1432 writer.Write((short)number);
1433 break;
1434 case 99:
1435 writer.Write((byte)number);
1436 writer.WriteVector2(Main.player[number].MinionRestTargetPoint);
1437 break;
1438 case 115:
1439 writer.Write((byte)number);
1440 writer.Write((short)Main.player[number].MinionAttackTargetNPC);
1441 break;
1442 case 100:
1443 {
1444 writer.Write((ushort)number);
1445 NPC nPC = Main.npc[number];
1446 writer.Write((short)number4);
1447 writer.Write(number2);
1448 writer.Write(number3);
1449 writer.WriteVector2(nPC.velocity);
1450 break;
1451 }
1452 case 101:
1453 writer.Write((ushort)NPC.ShieldStrengthTowerSolar);
1454 writer.Write((ushort)NPC.ShieldStrengthTowerVortex);
1455 writer.Write((ushort)NPC.ShieldStrengthTowerNebula);
1456 writer.Write((ushort)NPC.ShieldStrengthTowerStardust);
1457 break;
1458 case 102:
1459 writer.Write((byte)number);
1460 writer.Write((ushort)number2);
1461 writer.Write(number3);
1462 writer.Write(number4);
1463 break;
1464 case 103:
1465 writer.Write(NPC.MaxMoonLordCountdown);
1466 writer.Write(NPC.MoonLordCountdown);
1467 break;
1468 case 104:
1469 writer.Write((byte)number);
1470 writer.Write((short)number2);
1471 writer.Write(((short)number3 < 0) ? 0f : number3);
1472 writer.Write((byte)number4);
1473 writer.Write(number5);
1474 writer.Write((byte)number6);
1475 break;
1476 case 105:
1477 writer.Write((short)number);
1478 writer.Write((short)number2);
1479 writer.Write(number3 == 1f);
1480 break;
1481 case 106:
1482 {
1483 BinaryWriter binaryWriter = writer;
1484 HalfVector2 val = new HalfVector2((float)number, number2);
1486 break;
1487 }
1488 case 108:
1489 writer.Write((short)number);
1490 writer.Write(number2);
1491 writer.Write((short)number3);
1492 writer.Write((short)number4);
1493 writer.Write((short)number5);
1494 writer.Write((short)number6);
1495 writer.Write((byte)number7);
1496 break;
1497 case 109:
1498 writer.Write((short)number);
1499 writer.Write((short)number2);
1500 writer.Write((short)number3);
1501 writer.Write((short)number4);
1502 writer.Write((byte)number5);
1503 break;
1504 case 110:
1505 writer.Write((short)number);
1506 writer.Write((short)number2);
1507 writer.Write((byte)number3);
1508 break;
1509 case 112:
1510 writer.Write((byte)number);
1511 writer.Write((int)number2);
1512 writer.Write((int)number3);
1513 writer.Write((byte)number4);
1514 writer.Write((short)number5);
1515 break;
1516 case 113:
1517 writer.Write((short)number);
1518 writer.Write((short)number2);
1519 break;
1520 case 116:
1521 writer.Write(number);
1522 break;
1523 case 117:
1524 if (number7 == 1)
1525 {
1526 writer.Write(byte.MaxValue);
1527 writer.Write((byte)number);
1528 Player.HurtInfo args = _currentPlayerHurtInfo;
1529 BitsByte pack = new BitsByte(args.PvP, args.Dodgeable, args.DustDisabled, args.SoundDisabled);
1530 writer.Write(pack);
1531 args.DamageSource.WriteSelfTo(writer);
1532 writer.Write((sbyte)args.CooldownCounter);
1533 writer.Write7BitEncodedInt(args.SourceDamage);
1534 writer.Write7BitEncodedInt(args.Damage);
1535 writer.Write((sbyte)args.HitDirection);
1536 writer.Write(args.Knockback);
1537 }
1538 else
1539 {
1540 writer.Write((byte)number);
1541 _currentPlayerDeathReason.WriteSelfTo(writer);
1542 writer.Write((short)number2);
1543 writer.Write((byte)(number3 + 1f));
1544 writer.Write((byte)number4);
1545 writer.Write((sbyte)number5);
1546 }
1547 break;
1548 case 118:
1549 writer.Write((byte)number);
1550 _currentPlayerDeathReason.WriteSelfTo(writer);
1551 writer.Write((short)number2);
1552 writer.Write((byte)(number3 + 1f));
1553 writer.Write((byte)number4);
1554 break;
1555 case 120:
1556 writer.Write((byte)number);
1557 writer.Write((byte)number2);
1558 break;
1559 case 121:
1560 {
1561 int num23 = (int)number3;
1562 bool flag2 = number4 == 1f;
1563 if (flag2)
1564 {
1565 num23 += 8;
1566 }
1567 writer.Write((byte)number);
1568 writer.Write((int)number2);
1569 writer.Write((byte)num23);
1571 {
1572 tEDisplayDoll.WriteItem((int)number3, writer, flag2);
1573 break;
1574 }
1575 writer.Write(0);
1576 writer.Write((byte)0);
1577 break;
1578 }
1579 case 122:
1580 writer.Write(number);
1581 writer.Write((byte)number2);
1582 break;
1583 case 123:
1584 {
1585 writer.Write((short)number);
1586 writer.Write((short)number2);
1587 Item item2 = Main.player[(int)number4].inventory[(int)number3];
1589 {
1590 ItemIO.Send(item2, writer, writeStack: true);
1591 break;
1592 }
1593 writer.Write((short)item2.netID);
1594 writer.Write((byte)item2.prefix);
1595 writer.Write((short)number5);
1596 break;
1597 }
1598 case 124:
1599 {
1600 int num12 = (int)number3;
1601 bool flag = number4 == 1f;
1602 if (flag)
1603 {
1604 num12 += 2;
1605 }
1606 writer.Write((byte)number);
1607 writer.Write((int)number2);
1608 writer.Write((byte)num12);
1610 {
1611 tEHatRack.WriteItem((int)number3, writer, flag);
1612 break;
1613 }
1614 writer.Write(0);
1615 writer.Write((byte)0);
1616 break;
1617 }
1618 case 125:
1619 writer.Write((byte)number);
1620 writer.Write((short)number2);
1621 writer.Write((short)number3);
1622 writer.Write((byte)number4);
1623 break;
1624 case 126:
1625 _currentRevengeMarker.WriteSelfTo(writer);
1626 break;
1627 case 127:
1628 writer.Write(number);
1629 break;
1630 case 128:
1631 writer.Write((byte)number);
1632 writer.Write((ushort)number5);
1633 writer.Write((ushort)number6);
1634 writer.Write((ushort)number2);
1635 writer.Write((ushort)number3);
1636 break;
1637 case 130:
1638 writer.Write((ushort)number);
1639 writer.Write((ushort)number2);
1640 writer.Write((short)number3);
1641 break;
1642 case 131:
1643 writer.Write((ushort)number);
1644 writer.Write((byte)number2);
1645 if ((byte)number2 == 1)
1646 {
1647 writer.Write((int)number3);
1648 writer.Write((short)number4);
1649 }
1650 break;
1651 case 132:
1652 _currentNetSoundInfo.WriteSelfTo(writer);
1653 break;
1654 case 133:
1655 {
1656 writer.Write((short)number);
1657 writer.Write((short)number2);
1658 Item item = Main.player[(int)number4].inventory[(int)number3];
1660 {
1661 ItemIO.Send(item, writer, writeStack: true);
1662 break;
1663 }
1664 writer.Write((short)item.netID);
1665 writer.Write((byte)item.prefix);
1666 writer.Write((short)number5);
1667 break;
1668 }
1669 case 134:
1670 {
1671 writer.Write((byte)number);
1672 Player player = Main.player[number];
1673 writer.Write(player.ladyBugLuckTimeLeft);
1674 writer.Write(player.torchLuck);
1675 writer.Write(player.luckPotion);
1676 writer.Write(player.HasGardenGnomeNearby);
1677 writer.Write(player.equipmentBasedLuckBonus);
1678 writer.Write(player.coinLuck);
1679 break;
1680 }
1681 case 135:
1682 writer.Write((byte)number);
1683 break;
1684 case 136:
1685 {
1686 for (int i = 0; i < 2; i++)
1687 {
1688 for (int j = 0; j < 3; j++)
1689 {
1690 writer.Write((ushort)NPC.cavernMonsterType[i, j]);
1691 }
1692 }
1693 break;
1694 }
1695 case 137:
1696 writer.Write((short)number);
1697 writer.Write((ushort)number2);
1698 break;
1699 case 139:
1700 {
1701 writer.Write((byte)number);
1702 bool value = number2 == 1f;
1703 writer.Write(value);
1704 break;
1705 }
1706 case 140:
1707 writer.Write((byte)number);
1708 writer.Write((int)number2);
1709 break;
1710 case 141:
1711 writer.Write((byte)number);
1712 writer.Write((byte)number2);
1713 writer.Write(number3);
1714 writer.Write(number4);
1715 writer.Write(number5);
1716 writer.Write(number6);
1717 break;
1718 case 142:
1719 {
1720 writer.Write((byte)number);
1721 Player obj = Main.player[number];
1722 obj.piggyBankProjTracker.Write(writer);
1723 obj.voidLensChest.Write(writer);
1724 break;
1725 }
1726 case 146:
1727 writer.Write((byte)number);
1728 switch (number)
1729 {
1730 case 0:
1731 writer.WriteVector2(new Vector2((float)(int)number2, (float)(int)number3));
1732 break;
1733 case 1:
1734 writer.WriteVector2(new Vector2((float)(int)number2, (float)(int)number3));
1735 writer.Write((int)number4);
1736 break;
1737 case 2:
1738 writer.Write((int)number2);
1739 break;
1740 }
1741 break;
1742 case 147:
1743 writer.Write((byte)number);
1744 writer.Write((byte)number2);
1745 WriteAccessoryVisibility(writer, Main.player[number].hideVisibleAccessory);
1746 break;
1747 }
1748 int num14 = (int)writer.BaseStream.Position;
1749 if (num14 > 65535)
1750 {
1751 throw new Exception("Maximum packet length exceeded. id: " + msgType + " length: " + num14);
1752 }
1753 writer.BaseStream.Position = position;
1754 if (num14 > 65535)
1755 {
1756 throw new IndexOutOfRangeException($"Maximum packet length exceeded {num14} > {65535}");
1757 }
1759 {
1760 ModNet.LogSend(remoteClient, ignoreClient, $"SendData {MessageID.GetName(msgType)}({msgType})", num14);
1761 }
1762 writer.Write((ushort)num14);
1763 writer.BaseStream.Position = num14;
1764 if (Main.netMode == 1)
1765 {
1766 if (Netplay.Connection.Socket.IsConnected())
1767 {
1768 try
1769 {
1770 buffer[num].spamCount++;
1771 Main.ActiveNetDiagnosticsUI.CountSentMessage(msgType, num14);
1772 Netplay.Connection.Socket.AsyncSend(buffer[num].writeBuffer, 0, num14, Netplay.Connection.ClientWriteCallBack);
1773 }
1774 catch
1775 {
1776 }
1777 }
1778 }
1779 else if (remoteClient == -1)
1780 {
1781 switch (msgType)
1782 {
1783 case 34:
1784 case 69:
1785 {
1786 for (int num16 = 0; num16 < 256; num16++)
1787 {
1788 if (num16 != ignoreClient && buffer[num16].broadcast && Netplay.Clients[num16].IsConnected())
1789 {
1790 try
1791 {
1792 buffer[num16].spamCount++;
1793 Main.ActiveNetDiagnosticsUI.CountSentMessage(msgType, num14);
1794 Netplay.Clients[num16].Socket.AsyncSend(buffer[num].writeBuffer, 0, num14, Netplay.Clients[num16].ServerWriteCallBack);
1795 }
1796 catch
1797 {
1798 }
1799 }
1800 }
1801 break;
1802 }
1803 case 20:
1804 {
1805 for (int num20 = 0; num20 < 256; num20++)
1806 {
1807 if (num20 != ignoreClient && buffer[num20].broadcast && Netplay.Clients[num20].IsConnected() && Netplay.Clients[num20].SectionRange((int)Math.Max(number3, number4), number, (int)number2))
1808 {
1809 try
1810 {
1811 buffer[num20].spamCount++;
1812 Main.ActiveNetDiagnosticsUI.CountSentMessage(msgType, num14);
1813 Netplay.Clients[num20].Socket.AsyncSend(buffer[num].writeBuffer, 0, num14, Netplay.Clients[num20].ServerWriteCallBack);
1814 }
1815 catch
1816 {
1817 }
1818 }
1819 }
1820 break;
1821 }
1822 case 23:
1823 {
1824 NPC nPC4 = Main.npc[number];
1825 for (int num21 = 0; num21 < 256; num21++)
1826 {
1827 if (num21 == ignoreClient || !buffer[num21].broadcast || !Netplay.Clients[num21].IsConnected())
1828 {
1829 continue;
1830 }
1831 bool flag6 = false;
1832 if (nPC4.boss || nPC4.netAlways || nPC4.townNPC || !nPC4.active)
1833 {
1834 flag6 = true;
1835 }
1836 else if (nPC4.netSkip <= 0)
1837 {
1838 Rectangle rect5 = Main.player[num21].getRect();
1839 Rectangle rect6 = nPC4.getRect();
1840 rect6.X -= 2500;
1841 rect6.Y -= 2500;
1842 rect6.Width += 5000;
1843 rect6.Height += 5000;
1844 if (((Rectangle)(ref rect5)).Intersects(rect6))
1845 {
1846 flag6 = true;
1847 }
1848 }
1849 else
1850 {
1851 flag6 = true;
1852 }
1853 if (flag6)
1854 {
1855 try
1856 {
1857 buffer[num21].spamCount++;
1858 Main.ActiveNetDiagnosticsUI.CountSentMessage(msgType, num14);
1859 Netplay.Clients[num21].Socket.AsyncSend(buffer[num].writeBuffer, 0, num14, Netplay.Clients[num21].ServerWriteCallBack);
1860 }
1861 catch
1862 {
1863 }
1864 }
1865 }
1866 nPC4.netSkip++;
1867 if (nPC4.netSkip > 4)
1868 {
1869 nPC4.netSkip = 0;
1870 }
1871 break;
1872 }
1873 case 28:
1874 {
1875 NPC nPC3 = Main.npc[number];
1876 for (int num18 = 0; num18 < 256; num18++)
1877 {
1878 if (num18 == ignoreClient || !buffer[num18].broadcast || !Netplay.Clients[num18].IsConnected())
1879 {
1880 continue;
1881 }
1882 bool flag5 = false;
1883 if (nPC3.life <= 0)
1884 {
1885 flag5 = true;
1886 }
1887 else
1888 {
1889 Rectangle rect3 = Main.player[num18].getRect();
1890 Rectangle rect4 = nPC3.getRect();
1891 rect4.X -= 3000;
1892 rect4.Y -= 3000;
1893 rect4.Width += 6000;
1894 rect4.Height += 6000;
1895 if (((Rectangle)(ref rect3)).Intersects(rect4))
1896 {
1897 flag5 = true;
1898 }
1899 }
1900 if (flag5)
1901 {
1902 try
1903 {
1904 buffer[num18].spamCount++;
1905 Main.ActiveNetDiagnosticsUI.CountSentMessage(msgType, num14);
1906 Netplay.Clients[num18].Socket.AsyncSend(buffer[num].writeBuffer, 0, num14, Netplay.Clients[num18].ServerWriteCallBack);
1907 }
1908 catch
1909 {
1910 }
1911 }
1912 }
1913 break;
1914 }
1915 case 13:
1916 {
1917 for (int num19 = 0; num19 < 256; num19++)
1918 {
1919 if (num19 != ignoreClient && buffer[num19].broadcast && Netplay.Clients[num19].IsConnected())
1920 {
1921 try
1922 {
1923 buffer[num19].spamCount++;
1924 Main.ActiveNetDiagnosticsUI.CountSentMessage(msgType, num14);
1925 Netplay.Clients[num19].Socket.AsyncSend(buffer[num].writeBuffer, 0, num14, Netplay.Clients[num19].ServerWriteCallBack);
1926 }
1927 catch
1928 {
1929 }
1930 }
1931 }
1932 Main.player[number].netSkip++;
1933 if (Main.player[number].netSkip > 2)
1934 {
1935 Main.player[number].netSkip = 0;
1936 }
1937 break;
1938 }
1939 case 27:
1940 {
1941 Projectile projectile2 = Main.projectile[number];
1942 for (int num17 = 0; num17 < 256; num17++)
1943 {
1944 if (num17 == ignoreClient || !buffer[num17].broadcast || !Netplay.Clients[num17].IsConnected())
1945 {
1946 continue;
1947 }
1948 bool flag4 = false;
1949 if (projectile2.type == 12 || Main.projPet[projectile2.type] || projectile2.aiStyle == 11 || projectile2.netImportant)
1950 {
1951 flag4 = true;
1952 }
1953 else
1954 {
1955 Rectangle rect = Main.player[num17].getRect();
1956 Rectangle rect2 = projectile2.getRect();
1957 rect2.X -= 5000;
1958 rect2.Y -= 5000;
1959 rect2.Width += 10000;
1960 rect2.Height += 10000;
1961 if (((Rectangle)(ref rect)).Intersects(rect2))
1962 {
1963 flag4 = true;
1964 }
1965 }
1966 if (flag4)
1967 {
1968 try
1969 {
1970 buffer[num17].spamCount++;
1971 Main.ActiveNetDiagnosticsUI.CountSentMessage(msgType, num14);
1972 Netplay.Clients[num17].Socket.AsyncSend(buffer[num].writeBuffer, 0, num14, Netplay.Clients[num17].ServerWriteCallBack);
1973 }
1974 catch
1975 {
1976 }
1977 }
1978 }
1979 break;
1980 }
1981 default:
1982 {
1983 for (int num15 = 0; num15 < 256; num15++)
1984 {
1985 if (num15 != ignoreClient && (buffer[num15].broadcast || (Netplay.Clients[num15].State >= 3 && msgType == 10)) && Netplay.Clients[num15].IsConnected())
1986 {
1987 try
1988 {
1989 buffer[num15].spamCount++;
1990 Main.ActiveNetDiagnosticsUI.CountSentMessage(msgType, num14);
1991 Netplay.Clients[num15].Socket.AsyncSend(buffer[num].writeBuffer, 0, num14, Netplay.Clients[num15].ServerWriteCallBack);
1992 }
1993 catch
1994 {
1995 }
1996 }
1997 }
1998 break;
1999 }
2000 }
2001 }
2002 else if (Netplay.Clients[remoteClient].IsConnected())
2003 {
2004 try
2005 {
2006 buffer[remoteClient].spamCount++;
2007 Main.ActiveNetDiagnosticsUI.CountSentMessage(msgType, num14);
2008 Netplay.Clients[remoteClient].Socket.AsyncSend(buffer[num].writeBuffer, 0, num14, Netplay.Clients[remoteClient].ServerWriteCallBack);
2009 }
2010 catch
2011 {
2012 }
2013 }
2014 if (Main.verboseNetplay)
2015 {
2016 for (int num22 = 0; num22 < num14; num22++)
2017 {
2018 }
2019 for (int num24 = 0; num24 < num14; num24++)
2020 {
2021 _ = buffer[num].writeBuffer[num24];
2022 }
2023 }
2024 buffer[num].writeLocked = false;
2025 if (msgType == 2 && Main.netMode == 2)
2026 {
2027 Netplay.Clients[num].SetPendingTermination("Kicked");
2028 Netplay.Clients[num].PendingTerminationApproved = true;
2029 }
2030 }
2031 }
static Dictionary< int, TileEntity > ByID
Definition TileEntity.cs:20
static void Write(BinaryWriter writer, TileEntity ent, bool networkSend=false, bool lightSend=false)
Definition TileEntity.cs:87
static readonly int Loadout3_Dye_0
static string GetTextValue(string key)
Retrieves the text value for a specified localization key. The text returned will be for the currentl...
Definition Language.cs:35
Contains methods to access or retrieve localization values. The Localization Guideteaches more about ...
Definition Language.cs:12
static readonly NetworkText Empty
void Serialize(BinaryWriter writer)
Represents text that will be sent over the network in multiplayer and displayed to the receiving user...
static void SendCustomBiomes(Player player, BinaryWriter writer)
static void SendModData(Item item, BinaryWriter writer)
Definition ItemIO.cs:239
static void Send(Item item, BinaryWriter writer, bool writeStack=false, bool writeFavorite=false)
Definition ItemIO.cs:202
static void SendModData(BinaryWriter writer)
Definition WorldIO.cs:579
static void ServerConsoleLine(string msg)
Definition Logging.cs:319
static bool HijackSendData(int whoAmI, int msgType, int remoteClient, int ignoreClient, NetworkText text, int number, float number2, float number3, float number4, int number5, int number6, int number7)
Definition ModNet.cs:613
static void LogSend(int toClient, int ignoreClient, string s, int len)
Definition ModNet.cs:713
static bool AllowVanillaClients
Definition ModNet.cs:109
static string NetVersionString
Definition ModNet.cs:117
static bool DetailedLogging
Definition ModNet.cs:106
static byte[] WriteExtraAI(NPC npc)
Definition NPCLoader.cs:595
static void SendExtraAI(BinaryWriter writer, byte[] extraAI)
Definition NPCLoader.cs:586
This serves as the central class from which NPC-related functions are carried out....
Definition NPCLoader.cs:26
static void SendExtraAI(BinaryWriter writer, byte[] extraAI)
static byte[] WriteExtraAI(Projectile projectile)
This serves as the central class from which projectile-related functions are carried out....
static NetSoundInfo _currentNetSoundInfo
Definition NetMessage.cs:78
static PlayerDeathReason _currentPlayerDeathReason
Definition NetMessage.cs:76
static void WriteAccessoryVisibility(BinaryWriter writer, bool[] hideVisibleAccessory)
static Player.HurtInfo _currentPlayerHurtInfo
Definition NetMessage.cs:82
static NPC.HitInfo _lastLegacyStrike
Definition NetMessage.cs:84
static void CompressTileBlock(int xStart, int yStart, short width, short height, Stream stream)
static MessageBuffer[] buffer
Definition NetMessage.cs:68
static NPC.HitInfo _currentStrike
Definition NetMessage.cs:86
static CoinLossRevengeSystem.RevengeMarker _currentRevengeMarker
Definition NetMessage.cs:80
static Terraria.Social.Base.NetSocialModule Network
Definition SocialAPI.cs:22

References Terraria.NetMessage._currentNetSoundInfo, Terraria.NetMessage._currentPlayerDeathReason, Terraria.NetMessage._currentPlayerHurtInfo, Terraria.NetMessage._currentRevengeMarker, Terraria.NetMessage._currentStrike, Terraria.NetMessage._lastLegacyStrike, Terraria.Main.ActiveNetDiagnosticsUI, Terraria.Main.ActiveWorldFileData, Terraria.WorldGen.SavedOreTiers.Adamantite, Terraria.Projectile.ai, Terraria.ModLoader.ModNet.AllowVanillaClients, Terraria.Main.anglerQuest, Terraria.Main.anglerWhoFinishedToday, Terraria.ID.PlayerItemSlotID.Armor0, Terraria.ID.PlayerItemSlotID.Bank1_0, Terraria.ID.PlayerItemSlotID.Bank2_0, Terraria.ID.PlayerItemSlotID.Bank3_0, Terraria.ID.PlayerItemSlotID.Bank4_0, Terraria.Projectile.bannerIdToRespondTo, Terraria.Main.bloodMoon, Terraria.NPC.boughtBunny, Terraria.NPC.boughtCat, Terraria.NPC.boughtDog, Terraria.NetMessage.buffer, Terraria.DataStructures.TileEntity.ByID, Terraria.Main.caveBackStyle, Terraria.Main.caveBackX, Terraria.NPC.cavernMonsterType, Terraria.Main.chest, Terraria.Netplay.Clients, Terraria.Main.clientUUID, Terraria.WorldGen.SavedOreTiers.Cobalt, Terraria.Player.coinLuck, Terraria.NPC.combatBookVolumeTwoWasUsed, Terraria.NPC.combatBookWasUsed, Terraria.NetMessage.CompressTileBlock(), Terraria.Netplay.Connection, Terraria.Player.HurtInfo.CooldownCounter, Terraria.WorldGen.SavedOreTiers.Copper, Terraria.WorldGen.corruptBG, Terraria.WorldGen.crimson, Terraria.WorldGen.crimsonBG, Terraria.Player.HurtInfo.Damage, Terraria.Projectile.damage, Terraria.Player.HurtInfo.DamageSource, Terraria.Main.dayTime, Terraria.Main.dedServ, Terraria.WorldGen.desertBG, Terraria.ModLoader.ModNet.DetailedLogging, Terraria.Player.HurtInfo.Dodgeable, Terraria.Main.dontStarveWorld, Terraria.NPC.downedAncientCultist, Terraria.NPC.downedBoss1, Terraria.NPC.downedBoss2, Terraria.NPC.downedBoss3, Terraria.NPC.downedChristmasIceQueen, Terraria.NPC.downedChristmasSantank, Terraria.NPC.downedChristmasTree, Terraria.NPC.downedClown, Terraria.NPC.downedDeerclops, Terraria.NPC.downedEmpressOfLight, Terraria.NPC.downedFishron, Terraria.NPC.downedFrost, Terraria.NPC.downedGoblins, Terraria.NPC.downedGolemBoss, Terraria.NPC.downedHalloweenKing, Terraria.NPC.downedHalloweenTree, Terraria.GameContent.Events.DD2Event.DownedInvasionT1, Terraria.GameContent.Events.DD2Event.DownedInvasionT2, Terraria.GameContent.Events.DD2Event.DownedInvasionT3, Terraria.NPC.downedMartians, Terraria.NPC.downedMechBoss1, Terraria.NPC.downedMechBoss2, Terraria.NPC.downedMechBoss3, Terraria.NPC.downedMechBossAny, Terraria.NPC.downedMoonlord, Terraria.NPC.downedPirates, Terraria.NPC.downedPlantBoss, Terraria.NPC.downedQueenBee, Terraria.NPC.downedQueenSlime, Terraria.NPC.downedSlimeKing, Terraria.NPC.downedTowerNebula, Terraria.NPC.downedTowerSolar, Terraria.NPC.downedTowerStardust, Terraria.NPC.downedTowerVortex, Terraria.Main.drunkWorld, Terraria.Player.HurtInfo.DustDisabled, Terraria.ID.PlayerItemSlotID.Dye0, Terraria.Main.eclipse, Terraria.Localization.NetworkText.Empty, Terraria.Player.equipmentBasedLuckBonus, Terraria.Main.fastForwardTimeToDawn, Terraria.Main.fastForwardTimeToDusk, Terraria.Main.forceHalloweenForToday, Terraria.Main.forceXMasForToday, Terraria.NPC.freeCake, Terraria.Main.GameMode, Terraria.Main.getGoodWorld, Terraria.Netplay.GetSectionX(), Terraria.Netplay.GetSectionY(), Terraria.Localization.Language.GetTextValue(), Terraria.WorldGen.SavedOreTiers.Gold, Terraria.WorldGen.hallowBG, Terraria.GameContent.Events.Sandstorm.Happening, Terraria.Main.hardMode, Terraria.Player.HasGardenGnomeNearby, Terraria.Main.hellBackStyle, Terraria.ModLoader.ModNet.HijackSendData(), Terraria.Player.HurtInfo.HitDirection, Terraria.Main.iceBackStyle, Terraria.Projectile.identity, Terraria.GameContent.Events.Sandstorm.IntendedSeverity, Terraria.Main.invasionType, Terraria.ID.PlayerItemSlotID.Inventory0, Terraria.WorldGen.SavedOreTiers.Iron, Terraria.Main.item, Terraria.Main.jungleBackStyle, Terraria.WorldGen.jungleBG, Terraria.NPC.killCount, Terraria.Player.HurtInfo.Knockback, Terraria.Projectile.knockBack, Terraria.Player.ladyBugLuckTimeLeft, Terraria.GameContent.Events.LanternNight.LanternsUp, Terraria.Tile.liquid, Terraria.Tile.liquidType(), Terraria.ID.PlayerItemSlotID.Loadout1_Armor_0, Terraria.ID.PlayerItemSlotID.Loadout1_Dye_0, Terraria.ID.PlayerItemSlotID.Loadout2_Armor_0, Terraria.ID.PlayerItemSlotID.Loadout2_Dye_0, Terraria.ID.PlayerItemSlotID.Loadout3_Armor_0, Terraria.ID.PlayerItemSlotID.Loadout3_Dye_0, Terraria.ModLoader.ModNet.LogSend(), Terraria.Player.luckPotion, Terraria.NPC.maxAI, Terraria.NPC.maxBuffs, Terraria.Player.maxBuffs, Terraria.NPC.MaxMoonLordCountdown, Terraria.Main.maxRaining, Terraria.Main.maxTilesX, Terraria.Main.maxTilesY, Terraria.ID.PlayerItemSlotID.Misc0, Terraria.ID.PlayerItemSlotID.MiscDye0, Terraria.Main.moondialCooldown, Terraria.NPC.MoonLordCountdown, Terraria.Main.moonModY, Terraria.Main.moonPhase, Terraria.Main.moonType, Terraria.WorldGen.mushroomBG, Terraria.WorldGen.SavedOreTiers.Mythril, Terraria.ID.ProjectileID.Sets.NeedsUUID, Terraria.Item.netID, Terraria.Main.netMode, Terraria.ModLoader.ModNet.NetVersionString, Terraria.Social.SocialAPI.Network, Terraria.Main.noTrapsWorld, Terraria.Main.notTheBeesWorld, Terraria.Main.npc, Terraria.Main.npcCatchable, Terraria.Main.numClouds, Terraria.WorldGen.oceanBG, Terraria.GameContent.Events.DD2Event.Ongoing, Terraria.Projectile.originalDamage, Terraria.Projectile.owner, Terraria.GameContent.Events.BirthdayParty.PartyIsUp, Terraria.NPC.peddlersSatchelWasUsed, Terraria.Main.player, Terraria.Entity.position, Terraria.Item.prefix, Terraria.Main.projectile, Terraria.Main.projPet, Terraria.Projectile.projUUID, Terraria.Main.pumpkinMoon, Terraria.Player.HurtInfo.PvP, Terraria.Main.raining, Terraria.Main.remixWorld, Terraria.Main.rockLayer, Terraria.ModLoader.IO.ItemIO.Send(), Terraria.ModLoader.BiomeLoader.SendCustomBiomes(), Terraria.ModLoader.NPCLoader.SendExtraAI(), Terraria.ModLoader.ProjectileLoader.SendExtraAI(), Terraria.ModLoader.IO.WorldIO.SendModData(), Terraria.ModLoader.IO.ItemIO.SendModData(), Terraria.ModLoader.Logging.ServerConsoleLine(), Terraria.Netplay.ServerPassword, Terraria.WorldGen.shadowOrbSmashed, Terraria.NPC.ShieldStrengthTowerNebula, Terraria.NPC.ShieldStrengthTowerSolar, Terraria.NPC.ShieldStrengthTowerStardust, Terraria.NPC.ShieldStrengthTowerVortex, Terraria.Main.sign, Terraria.WorldGen.SavedOreTiers.Silver, Terraria.Main.slimeRain, Terraria.WorldGen.snowBG, Terraria.Main.snowMoon, Terraria.Player.HurtInfo.SoundDisabled, Terraria.Player.HurtInfo.SourceDamage, Terraria.Main.spawnTileX, Terraria.Main.spawnTileY, Terraria.Main.sundialCooldown, Terraria.Main.sunModY, Terraria.WorldGen.tBlood, Terraria.Main.tenthAnniversaryWorld, Terraria.WorldGen.tEvil, Terraria.WorldGen.tGood, Terraria.Main.tile, Terraria.Main.tileFrameImportant, Terraria.Main.time, Terraria.Player.torchLuck, Terraria.ID.PlayerItemSlotID.TrashItem, Terraria.Main.travelShop, Terraria.WorldGen.treeBG1, Terraria.WorldGen.treeBG2, Terraria.WorldGen.treeBG3, Terraria.WorldGen.treeBG4, Terraria.Main.treeStyle, Terraria.WorldGen.TreeTops, Terraria.Main.treeX, Terraria.Projectile.type, Terraria.WorldGen.underworldBG, Terraria.NPC.unlockedSlimeBlueSpawn, Terraria.NPC.unlockedSlimeCopperSpawn, Terraria.NPC.unlockedSlimeGreenSpawn, Terraria.NPC.unlockedSlimeOldSpawn, Terraria.NPC.unlockedSlimePurpleSpawn, Terraria.NPC.unlockedSlimeRainbowSpawn, Terraria.NPC.unlockedSlimeRedSpawn, Terraria.NPC.unlockedSlimeYellowSpawn, Terraria.NPC.unlockedTruffleSpawn, Terraria.Entity.velocity, Terraria.Main.verboseNetplay, Terraria.Main.windSpeedTarget, Terraria.Main.worldID, Terraria.Main.worldName, Terraria.Main.worldSurface, Terraria.DataStructures.TileEntity.Write(), Terraria.NetMessage.WriteAccessoryVisibility(), Terraria.ModLoader.NPCLoader.WriteExtraAI(), Terraria.ModLoader.ProjectileLoader.WriteExtraAI(), Terraria.DataStructures.PlayerDeathReason.WriteSelfTo(), and Terraria.Main.zenithWorld.

Referenced by Terraria.GameContent.Tile_Entities.TETrainingDummy.Activate(), Terraria.NPC.AddBuff(), Terraria.Player.AddBuff(), Terraria.Liquid.AddWater(), Terraria.Chest.AfterPlacement_Hook(), Terraria.NPC.AI_000_TransformBoundNPC(), Terraria.NPC.AI_003_Fighters(), Terraria.NPC.AI_006_Worms(), Terraria.Projectile.AI_007_GrapplingHooks(), Terraria.NPC.AI_007_TownEntities(), Terraria.Projectile.AI_010(), Terraria.NPC.AI_037_Destroyer(), Terraria.Projectile.AI_061_FishingBobber_GiveItemToPlayer(), Terraria.NPC.AI_065_Butterflies(), Terraria.NPC.AI_084_LunaticCultist(), Terraria.NPC.AI_107_ImprovedWalkers(), Terraria.NPC.AI_112_FairyCritter(), Terraria.NPC.AI_120_HallowBoss(), Terraria.NPC.AI_121_QueenSlime(), Terraria.NPC.AI_123_Deerclops(), Terraria.NPC.AI_124_DeerclopsLeg(), Terraria.Projectile.AI_150_GolfClubHelper(), Terraria.Projectile.AI_155_MysticSnakeCoil(), Terraria.Projectile.AI_155_RemoveRope(), Terraria.NPC.AI_87_BigMimic_ShootItem(), Terraria.Player.ApplyNPCOnHitEffects(), Terraria.Player.ApplyTouchDamage(), Terraria.WorldGen.AttemptFossilShattering(), Terraria.Lang.BartenderHelpText(), Terraria.DataStructures.TileEntity.BasicOpenCloseInteraction(), Terraria.NPC.BeHurtByOtherNPC(), Terraria.NPC.BigMimicSpawnSmoke(), Terraria.NPC.BigMimicSummonCheck(), Terraria.NetMessage.BootPlayer(), Terraria.Player.BrainOfConfusionDodge(), Terraria.Main.BuyHairWindow(), Terraria.NPC.CatchNPC(), Terraria.GameContent.Events.Sandstorm.ChangeSeverityIntentions(), Terraria.NPC.CheckActive(), Terraria.NPC.CheckActive_WormSegments(), Terraria.WorldGen.CheckBamboo(), Terraria.WorldGen.CheckCatTail(), Terraria.Player.CheckCrackedBrickBreak(), Terraria.NPC.checkDead(), Terraria.NPC.CheckDrowning(), Terraria.Player.CheckIceBreak(), Terraria.Item.CheckLavaDeath(), Terraria.WorldGen.CheckLilyPad(), Terraria.Wiring.CheckLogicGate(), Terraria.GameContent.Events.DD2Event.CheckProgress(), Terraria.NPC.CheckProgressFrostMoon(), Terraria.NPC.CheckProgressPumpkinMoon(), Terraria.GameContent.CoinLossRevengeSystem.CheckRespawns(), Terraria.WorldGen.CheckSeaOat(), Terraria.RemoteClient.CheckSection(), Terraria.WorldGen.CheckSuper(), Terraria.WorldGen.CheckUnderwaterPlant(), Terraria.GameContent.Events.DD2Event.ClearAllDD2EnergyCrystalsInChests(), Terraria.GameContent.Events.DD2Event.ClearAllDD2EnergyCrystalsInGame(), Terraria.GameContent.Events.DD2Event.ClearAllDD2HostilesInGame(), Terraria.NPC.ClearImmuneToBuffs(), Terraria.NPC.Collision_LavaCollision(), Terraria.Item.CombineWithNearbyItems(), Terraria.WorldGen.Convert(), Terraria.NPC.CountKillForBannersAndDropThem(), Terraria.WorldGen.CountTiles(), Terraria.Recipe.Create(), Terraria.GameContent.LucyAxeMessage.Create(), Terraria.DelegateMethods.CutTiles(), Terraria.Projectile.CutTilesAt(), Terraria.Projectile.Damage(), Terraria.GameContent.Tile_Entities.TETrainingDummy.Deactivate(), Terraria.NPC.DelBuff(), Terraria.Player.DemonConch(), Terraria.UI.ChestUI.DepositAll(), Terraria.Item.DespawnIfMeetingConditions(), Terraria.GameContent.Events.DD2Event.Difficulty_1_SpawnMonsterFromGate(), Terraria.GameContent.Events.DD2Event.Difficulty_2_SpawnMonsterFromGate(), Terraria.GameContent.Events.DD2Event.Difficulty_3_SpawnMonsterFromGate(), Terraria.Mount.Dismount(), Terraria.NPC.DoDeathEvents(), Terraria.WorldGen.DontStarveTryWateringTile(), Terraria.Player.DoPotionOfReturnReturnToOriginalUsePosition(), Terraria.Player.DoPotionOfReturnTeleportationAndSetTheComebackPoint(), Terraria.Player.DoQueenSlimeHookTeleport(), Terraria.Main.DoUpdateInWorld(), Terraria.Main.DrawInventory(), Terraria.Main.DrawPVPIcons(), Terraria.ModLoader.AccessorySlotLoader.DrawVisibility(), Terraria.Player.DropCoins(), Terraria.Projectile.DropGeodeLoot(), Terraria.Player.DropItem(), Terraria.GameContent.ItemDropRules.CommonCode.DropItem(), Terraria.Player.dropItemCheck(), Terraria.Player.DropItemFromExtractinator(), Terraria.NPC.DropItemInstanced(), Terraria.GameContent.ItemDropRules.CommonCode.DropItemLocalPerClientAndSetNPCMoneyTo0(), Terraria.Player.DropSelectedItem(), Terraria.WorldGen.dropXmasTree(), Terraria.Player.EndOngoingTorchGodEvent(), Terraria.Main.ExecuteCommand(), Terraria.Projectile.ExplodeCrackedTiles(), Terraria.Projectile.ExplodeTiles(), Terraria.Item.FindOwner(), Terraria.Player.GetAnglerReward(), Terraria.MessageBuffer.GetData(), Terraria.Player.GetDyeTraderReward(), Terraria.UI.ItemSlot.GetGamepadInstructions(), Terraria.Item.GetPickedUpByMonsters_Money(), Terraria.Item.GetPickedUpByMonsters_Special(), Terraria.WorldGen.GetRidOfCultists(), Terraria.Item.GetShimmered(), Terraria.NPC.GetShimmered(), Terraria.Player.GrabItems(), Terraria.WorldGen.GrowCatTail(), Terraria.WorldGen.GrowCheckSeaweed(), Terraria.Main.GUIChatDrawInner(), Terraria.Projectile.HandleMovement(), Terraria.GameContent.TeleportPylonsSystem.HandleTeleportRequest(), Terraria.Player.HealEffect(), Terraria.NPC.HealEffect(), Terraria.Minecart.HitTrackSwitch(), Terraria.Wiring.HitWireSingle(), Terraria.ModLoader.Default.TEModdedPylon.Hook_AfterPlacement(), Terraria.GameContent.Tile_Entities.TETrainingDummy.Hook_AfterPlacement(), Terraria.GameContent.Tile_Entities.TEItemFrame.Hook_AfterPlacement(), Terraria.GameContent.Tile_Entities.TELogicSensor.Hook_AfterPlacement(), Terraria.GameContent.Tile_Entities.TEDisplayDoll.Hook_AfterPlacement(), Terraria.GameContent.Tile_Entities.TEWeaponsRack.Hook_AfterPlacement(), Terraria.GameContent.Tile_Entities.TEHatRack.Hook_AfterPlacement(), Terraria.GameContent.Tile_Entities.TEFoodPlatter.Hook_AfterPlacement(), Terraria.Player.Hurt(), Terraria.Netplay.InnerClientLoop(), Terraria.Player.ItemCheck_CheckCanUse(), Terraria.Player.ItemCheck_CheckFishingBobber_PullBobber(), Terraria.Player.ItemCheck_CutTiles(), Terraria.Player.ItemCheck_Inner(), Terraria.Player.ItemCheck_MeleeHitPVP(), Terraria.Player.ItemCheck_PlayInstruments(), Terraria.Player.ItemCheck_Shoot(), Terraria.Player.ItemCheck_TryPlacingWearablesOnMannequins(), Terraria.Player.ItemCheck_UseArtisanLoaf(), Terraria.Player.ItemCheck_UseBossSpawners(), Terraria.Player.ItemCheck_UseCombatBook(), Terraria.Player.ItemCheck_UseDemonHeart(), Terraria.Player.ItemCheck_UseEventItems(), Terraria.Player.ItemCheck_UseMinecartPowerUp(), Terraria.Player.ItemCheck_UseMiningTools_ActuallyUseMiningTool(), Terraria.Player.ItemCheck_UseMiningTools_TryPoundingTile(), Terraria.Player.ItemCheck_UsePeddlersSatchel(), Terraria.Player.ItemCheck_UseShimmerPermanentItems(), Terraria.Player.ItemCheck_UseTeleportRod(), Terraria.Player.ItemCheck_UseTorchGodsFavor(), Terraria.Player.ItemCheck_UseWiringTools(), Terraria.WorldGen.kickOut(), Terraria.Projectile.Kill(), Terraria.GameContent.Tile_Entities.TELogicSensor.Kill(), Terraria.Player.KillMe(), Terraria.WorldGen.KillTile(), Terraria.UI.ItemSlot.LeftClick(), Terraria.Liquid.LiquidCheck(), Terraria.UI.ChestUI.LootAll(), Terraria.Player.MagicConch(), Terraria.GameContent.UI.EmoteBubble.MakeLocalPlayerEmote(), Terraria.GameContent.UI.EmoteBubble.MakePlayerEmote(), Terraria.Player.ManaEffect(), Terraria.Wiring.MassWireOperation(), Terraria.Wiring.MassWireOperationStep(), Terraria.GameContent.MinecartDiggerHelper.MineTheTileIfNecessary(), Terraria.GameContent.ItemDropRules.CommonCode.ModifyItemDropFromNPC(), Terraria.Main.Moondialing(), Terraria.UI.ChestUI.MoveCoins(), Terraria.WorldGen.moveRoom(), Terraria.GameContent.Events.BirthdayParty.NaturalAttempt(), Terraria.GameContent.Tile_Entities.TEFoodPlatter.NetPlaceEntity(), Terraria.GameContent.Tile_Entities.TEItemFrame.NetPlaceEntity(), Terraria.GameContent.Tile_Entities.TELogicSensor.NetPlaceEntity(), Terraria.GameContent.Tile_Entities.TEWeaponsRack.NetPlaceEntity(), Terraria.ModLoader.ModTileEntity.NetPlaceEntityAttempt(), Terraria.GameContent.Tile_Entities.TEDisplayDoll.NetPlaceEntityAttempt(), Terraria.GameContent.Tile_Entities.TEHatRack.NetPlaceEntityAttempt(), Terraria.GameContent.Tile_Entities.TETeleportationPylon.NetPlaceEntityAttempt(), Terraria.ModLoader.Default.TEModdedPylon.NetPlaceEntityAttempt(), Terraria.GameContent.UI.EmoteBubble.NewBubble(), Terraria.GameContent.UI.EmoteBubble.NewBubbleNPC(), Terraria.Item.NewItem_Inner(), Terraria.Projectile.NewProjectile(), Terraria.Player.NinjaDodge(), Terraria.GameContent.Achievements.AchievementsHelper.NotifyNPCKilled(), Terraria.GameContent.Achievements.AchievementsHelper.NotifyProgressionEvent(), Terraria.Player.OnHurt_Part1(), Terraria.GameContent.Tile_Entities.TEFoodPlatter.OnPlayerInteraction(), Terraria.GameContent.Tile_Entities.TEItemFrame.OnPlayerInteraction(), Terraria.GameContent.Tile_Entities.TEWeaponsRack.OnPlayerInteraction(), Terraria.Main.OnSubmitServerPasswordFromRequest(), Terraria.GameContent.Tile_Entities.TEDisplayDoll.OverrideItemSlotLeftClick(), Terraria.GameContent.Tile_Entities.TEHatRack.OverrideItemSlotLeftClick(), Terraria.UI.ItemSlot.OverrideLeftClick(), Terraria.WorldGen.paintCoatTile(), Terraria.WorldGen.paintCoatWall(), Terraria.WorldGen.paintTile(), Terraria.WorldGen.paintWall(), Terraria.Player.PickTile(), Terraria.Player.PickupItem(), Terraria.UI.ItemSlot.PickupItemIntoMouse(), Terraria.Player.PickWall(), Terraria.TileObject.Place(), Terraria.WorldGen.Place3x2(), Terraria.GameContent.MinecartDiggerHelper.PlaceATrack(), Terraria.WorldGen.PlaceChest(), Terraria.GameContent.Tile_Entities.TEFoodPlatter.PlaceItemInFrame(), Terraria.GameContent.Tile_Entities.TEItemFrame.PlaceItemInFrame(), Terraria.GameContent.Tile_Entities.TEWeaponsRack.PlaceItemInFrame(), Terraria.GameContent.Tile_Entities.TETeleportationPylon.PlacementPreviewHook_AfterPlacement(), Terraria.Player.PlaceThing_LockChest(), Terraria.Player.PlaceThing_PaintScrapper_LongMoss(), Terraria.Player.PlaceThing_Tiles_BlockPlacementForAssortedThings(), Terraria.Player.PlaceThing_Tiles_PlaceIt(), Terraria.Player.PlaceThing_Tiles_PlaceIt_AutoPaintAndActuate(), Terraria.Player.PlaceThing_Tiles_PlaceIt_KillGrassForSolids(), Terraria.Player.PlaceThing_Tiles_PlaceIt_SpinSmartPlatform(), Terraria.Player.PlaceThing_Tiles_PlaceIt_TriggerLogicLamp(), Terraria.Player.PlaceThing_Tiles_PlaceIt_UnslopeForSolids(), Terraria.Player.PlaceThing_TryReplacingTiles(), Terraria.Player.PlaceThing_TryReplacingWalls(), Terraria.Player.PlaceThing_Walls(), Terraria.Player.PlaceThing_Walls_FillEmptySpace(), Terraria.Player.PlaceWeapon(), Terraria.NetMessage.PlayNetSound(), Terraria.GameContent.PressurePlateHelper.PokeLocation(), Terraria.WorldGen.PoundPlatform(), Terraria.GameContent.MinecartDiggerHelper.PoundTrack(), Terraria.Chat.Commands.EmojiCommand.ProcessOutgoingMessage(), Terraria.Chat.Commands.RockPaperScissorsCommand.ProcessOutgoingMessage(), Terraria.Player.PurgeDD2EnergyCrystals(), Terraria.GameContent.Golf.GolfHelper.ContactListener.PutBallInCup(), Terraria.Player.PutItemInInventoryFromItemUsage(), Terraria.Player.QuickGrapple(), Terraria.Player.QuickSpawnClonedItem(), Terraria.Player.QuickSpawnItem(), Terraria.UI.ChestUI.QuickStack(), Terraria.Player.QuickStackAllChests(), Terraria.GameContent.TreeTopsInfo.RandomizeTreeStyle(), Terraria.GameContent.Tile_Entities.TETeleportationPylon.RejectPlacementFromNet(), Terraria.ModLoader.Default.TEModdedPylon.RejectPlacementFromNet(), Terraria.NPC.ReleaseNPC(), Terraria.GameContent.CoinLossRevengeSystem.RemoveExpiredOrInvalidMarkers(), Terraria.GameContent.PortalHelper.RemoveIntersectingPortals(), Terraria.WorldGen.ReplaceTIle_DoActualReplacement(), Terraria.NPC.RequestBuffRemoval(), Terraria.GameContent.Events.DD2Event.RequestToSkipWaitTime(), Terraria.UI.ChestUI.Restock(), Terraria.ModLoader.Default.StartBag.RightClick(), Terraria.Main.SaveClothesWindow(), Terraria.UI.ItemSlot.SellOrTrash(), Terraria.NetMessage.SendAnglerQuest(), Terraria.NetMessage.SendCoinLossRevengeMarker(), Terraria.GameContent.Events.CreditsRollEvent.SendCreditsRollRemainingTimeToPlayer(), Terraria.NetMessage.SendNPCHousesAndTravelShop(), Terraria.NetMessage.SendObjectPlacement(), Terraria.NetMessage.SendPlayerDeath(), Terraria.NetMessage.SendPlayerHurt(), Terraria.NetMessage.SendPlayerHurt(), Terraria.NetMessage.SendSection(), Terraria.NetMessage.SendStrikeNPC(), Terraria.NetMessage.SendTemporaryAnimation(), Terraria.NetMessage.SendTileSquare(), Terraria.NetMessage.SendTravelShop(), Terraria.NetMessage.sendWater(), Terraria.Chest.ServerPlaceItem(), Terraria.GameContent.Events.DD2Event.SetEnemySpawningOnHold(), Terraria.Mount.SetMount(), Terraria.Player.ShadowDodge(), Terraria.Player.Shellphone_Spawn(), Terraria.Projectile.Shimmer(), Terraria.WorldGen.ShootFromCannon(), Terraria.GameContent.PlayerSittingHelper.SitDown(), Terraria.GameContent.PlayerSittingHelper.SitUp(), Terraria.WorldGen.SmashAltar(), Terraria.Tile.SmoothSlope(), Terraria.UI.ItemSorting.SortChest(), Terraria.Player.Spawn(), Terraria.NPC.SpawnBoss(), Terraria.GameContent.CoinLossRevengeSystem.RevengeMarker.SpawnEnemy(), Terraria.NPC.SpawnFaelings(), Terraria.NPC.SpawnMechQueen(), Terraria.NPC.SpawnNPC(), Terraria.NPC.SpawnSkeletron(), Terraria.WorldGen.SpawnTownNPC(), Terraria.DelegateMethods.SpreadDirt(), Terraria.WorldGen.StartImpendingDoom(), Terraria.GameContent.Events.DD2Event.StartInvasion(), Terraria.GameContent.PlayerSleepingHelper.StartSleeping(), Terraria.Main.StartSlimeRain(), Terraria.Player.StickyMovement(), Terraria.GameContent.Events.DD2Event.StopInvasion(), Terraria.GameContent.PlayerSleepingHelper.StopSleeping(), Terraria.Main.StopSlimeRain(), Terraria.Main.SubmitSignText(), Terraria.GameContent.Events.DD2Event.SummonCrystal(), Terraria.Main.Sundialing(), Terraria.UI.ItemSlot.SwapEquip(), Terraria.Collision.SwitchTiles(), Terraria.Main.SyncAnInvasion(), Terraria.GameContent.Events.DD2Event.SyncInvasionProgress(), Terraria.ObjectData.TileObjectData.SyncObjectPlacement(), Terraria.NetMessage.SyncOnePlayer(), Terraria.NetMessage.SyncOnePlayer_ItemArray(), Terraria.Main.SyncRain(), Terraria.Wiring.Teleport(), Terraria.NPC.Teleport(), Terraria.Player.TeleportationPotion(), Terraria.Player.TileInteractionsUse(), Terraria.WorldGen.ToggleGemLock(), Terraria.GameContent.Events.LanternNight.ToggleManualLanterns(), Terraria.GameContent.Events.BirthdayParty.ToggleManualParty(), Terraria.Player.TorchAttack(), Terraria.NPC.Transform(), Terraria.NPC.TransformCopperSlime(), Terraria.NPC.TransformElderSlime(), Terraria.WorldGen.TreeGrowFXCheck(), Terraria.WorldGen.TriggerLunarApocalypse(), Terraria.GameContent.DoorOpeningHelper.CommonDoorOpeningInfoProvider.TryCloseDoor(), Terraria.GameContent.DoorOpeningHelper.TallGateOpeningInfoProvider.TryCloseDoor(), Terraria.Player.TryDroppingSingleItem(), Terraria.GameContent.Tile_Entities.TEDisplayDoll.TryFitting(), Terraria.GameContent.Tile_Entities.TEHatRack.TryFitting(), Terraria.GameContent.PortalHelper.TryGoingThroughPortals(), Terraria.WorldGen.TryKillingReplaceableTile(), Terraria.WorldGen.TryKillingTreesAboveIfTheyWouldBecomeInvalid(), Terraria.Player.TryLandingOnDetonator(), Terraria.GameContent.DoorOpeningHelper.CommonDoorOpeningInfoProvider.TryOpenDoor(), Terraria.GameContent.DoorOpeningHelper.TallGateOpeningInfoProvider.TryOpenDoor(), Terraria.UI.ItemSlot.TryPickupDyeToCursor(), Terraria.GameContent.Tile_Entities.TEFoodPlatter.TryPlacing(), Terraria.GameContent.Tile_Entities.TEItemFrame.TryPlacing(), Terraria.GameContent.Tile_Entities.TEWeaponsRack.TryPlacing(), Terraria.UI.ChestUI.TryPlacingInChest(), Terraria.NetMessage.TrySendData(), Terraria.GameContent.Events.MysticLogFairiesEvent.TrySpawningFairies(), Terraria.GameContent.Events.CreditsRollEvent.TryStartingCreditsRoll(), Terraria.Player.TrySyncingInput(), Terraria.Main.TrySyncingItemArray(), Terraria.Main.TrySyncingMyPlayer(), Terraria.NPC.TrySyncingUniqueTownNPCData(), Terraria.NPC.TryTeleportingCaughtMysticFrog(), Terraria.Player.TryToPoop(), Terraria.Player.UnityTeleport(), Terraria.NPC.UnlockOrExchangePet(), Terraria.WorldGen.UnspawnTravelNPC(), Terraria.Player.Update(), Terraria.Projectile.Update(), Terraria.Main.UpdateClient(), Terraria.Main.updateCloudLayer(), Terraria.GameContent.Tile_Entities.TELogicSensor.UpdateEndInternal(), Terraria.NPC.UpdateHomeTileState(), Terraria.Main.UpdateInvasion_Inner(), Terraria.Item.UpdateItem(), Terraria.Player.UpdateLuck(), Terraria.NPC.UpdateNetworkCode(), Terraria.NPC.UpdateNPC_BuffApplyDOTs(), Terraria.NPC.UpdateNPC_BuffClearExpiredBuffs(), Terraria.NPC.UpdateNPC_Inner(), Terraria.Main.UpdateServer(), Terraria.GameContent.Events.BirthdayParty.UpdateTime(), Terraria.GameContent.Events.DD2Event.UpdateTime(), Terraria.GameContent.Events.LanternNight.UpdateTime(), Terraria.Main.UpdateTime(), Terraria.Main.UpdateTime_StartDay(), Terraria.Main.UpdateTime_StartNight(), Terraria.Main.UpdateWeather(), Terraria.WorldGen.UpdateWorld_OvergroundTile(), Terraria.WorldGen.UpdateWorld_UndergroundTile(), Terraria.Projectile.UseGasTrapInChest(), Terraria.NPC.VanillaAI_Inner(), Terraria.NPC.VanillaHitEffect(), and Terraria.GameContent.Events.DD2Event.WipeEntities().

+ Here is the call graph for this function: