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

◆ GetData()

void Terraria.MessageBuffer.GetData ( int start,
int length,
out int messageType )
inline

Definition at line 119 of file MessageBuffer.cs.

120 {
121 if (whoAmI < 256)
122 {
123 Netplay.Clients[whoAmI].TimeOutTimer = 0;
124 }
125 else
126 {
127 Netplay.Connection.TimeOutTimer = 0;
128 }
129 byte b = 0;
130 int num = 0;
131 num = start + 1;
132 b = (byte)(messageType = readBuffer[start]);
133 if (b >= MessageID.Count)
134 {
135 return;
136 }
137 Main.ActiveNetDiagnosticsUI.CountReadMessage(b, length);
138 if (Main.netMode == 1 && Netplay.Connection.StatusMax > 0)
139 {
140 Netplay.Connection.StatusCount++;
141 }
142 if (Main.verboseNetplay)
143 {
144 for (int i = start; i < start + length; i++)
145 {
146 }
147 for (int j = start; j < start + length; j++)
148 {
149 _ = readBuffer[j];
150 }
151 }
152 if (Main.netMode == 2 && b != 38 && Netplay.Clients[whoAmI].State == -1)
153 {
154 NetMessage.TrySendData(2, whoAmI, -1, Lang.mp[1].ToNetworkText());
155 return;
156 }
157 if (Main.netMode == 2)
158 {
159 if (Netplay.Clients[whoAmI].State < 10 && b > 12 && b != 93 && b != 16 && b != 42 && b != 50 && b != 38 && b != 68 && b != 147)
160 {
161 NetMessage.BootPlayer(whoAmI, Lang.mp[2].ToNetworkText());
162 }
163 if (Netplay.Clients[whoAmI].State == 0 && b != 1)
164 {
165 NetMessage.BootPlayer(whoAmI, Lang.mp[2].ToNetworkText());
166 }
167 }
168 if (reader == null)
169 {
170 ResetReader();
171 }
172 reader.BaseStream.Position = num;
173 switch (b)
174 {
175 case 1:
176 if (Main.netMode != 2)
177 {
178 break;
179 }
180 if (Main.dedServ && Netplay.IsBanned(Netplay.Clients[whoAmI].Socket.GetRemoteAddress()))
181 {
182 NetMessage.TrySendData(2, whoAmI, -1, Lang.mp[3].ToNetworkText());
183 }
184 else
185 {
186 if (Netplay.Clients[whoAmI].State != 0)
187 {
188 break;
189 }
190 if (reader.ReadString() == "Terraria" + 279)
191 {
192 if (string.IsNullOrEmpty(Netplay.ServerPassword))
193 {
194 Netplay.Clients[whoAmI].State = 1;
195 NetMessage.TrySendData(3, whoAmI);
196 }
197 else
198 {
199 Netplay.Clients[whoAmI].State = -1;
200 NetMessage.TrySendData(37, whoAmI);
201 }
202 }
203 else
204 {
205 NetMessage.TrySendData(2, whoAmI, -1, Lang.mp[4].ToNetworkText());
206 }
207 }
208 break;
209 case 2:
210 if (Main.netMode == 1)
211 {
212 Netplay.Disconnect = true;
213 Main.statusText = NetworkText.Deserialize(reader).ToString();
214 }
215 break;
216 case 3:
217 if (Main.netMode == 1)
218 {
219 if (Netplay.Connection.State == 1)
220 {
221 Netplay.Connection.State = 2;
222 }
223 int num142 = reader.ReadByte();
224 bool value5 = reader.ReadBoolean();
225 Netplay.Connection.ServerSpecialFlags[2] = value5;
226 if (num142 != Main.myPlayer)
227 {
228 Main.player[num142] = Main.ActivePlayerFileData.Player;
229 Main.player[Main.myPlayer] = new Player();
230 }
231 Main.player[num142].whoAmI = num142;
232 Main.myPlayer = num142;
233 Player player12 = Main.player[num142];
234 NetMessage.TrySendData(4, -1, -1, null, num142);
235 NetMessage.TrySendData(68, -1, -1, null, num142);
236 NetMessage.TrySendData(16, -1, -1, null, num142);
237 NetMessage.TrySendData(42, -1, -1, null, num142);
238 NetMessage.TrySendData(50, -1, -1, null, num142);
239 NetMessage.TrySendData(147, -1, -1, null, num142, player12.CurrentLoadoutIndex);
240 for (int num143 = 0; num143 < 59; num143++)
241 {
242 NetMessage.TrySendData(5, -1, -1, null, num142, PlayerItemSlotID.Inventory0 + num143, (int)player12.inventory[num143].prefix);
243 }
250 NetMessage.TrySendData(5, -1, -1, null, num142, PlayerItemSlotID.TrashItem, (int)player12.trashItem.prefix);
259 NetMessage.TrySendData(6);
260 if (Netplay.Connection.State == 2)
261 {
262 Netplay.Connection.State = 3;
263 }
264 }
265 break;
266 case 4:
267 {
268 int num211 = reader.ReadByte();
269 if (Main.netMode == 2)
270 {
271 num211 = whoAmI;
272 }
273 if (num211 == Main.myPlayer && !Main.ServerSideCharacter)
274 {
275 break;
276 }
277 Player player14 = Main.player[num211];
278 player14.whoAmI = num211;
279 player14.skinVariant = reader.ReadByte();
280 player14.skinVariant = (int)MathHelper.Clamp(player14.skinVariant, 0f, PlayerVariantID.Count - 1);
281 player14.hair = reader.ReadByte();
282 if (player14.hair >= 165)
283 {
284 player14.hair = 0;
285 }
286 player14.name = reader.ReadString().Trim().Trim();
287 player14.hairDye = reader.ReadByte();
288 ReadAccessoryVisibility(reader, player14.hideVisibleAccessory);
289 player14.hideMisc = reader.ReadByte();
290 player14.hairColor = reader.ReadRGB();
291 player14.skinColor = reader.ReadRGB();
292 player14.eyeColor = reader.ReadRGB();
293 player14.shirtColor = reader.ReadRGB();
294 player14.underShirtColor = reader.ReadRGB();
295 player14.pantsColor = reader.ReadRGB();
296 player14.shoeColor = reader.ReadRGB();
297 BitsByte bitsByte24 = reader.ReadByte();
298 player14.difficulty = 0;
299 if (bitsByte24[0])
300 {
301 player14.difficulty = 1;
302 }
303 if (bitsByte24[1])
304 {
305 player14.difficulty = 2;
306 }
307 if (bitsByte24[3])
308 {
309 player14.difficulty = 3;
310 }
311 if (player14.difficulty > 3)
312 {
313 player14.difficulty = 3;
314 }
315 player14.extraAccessory = bitsByte24[2];
316 BitsByte bitsByte25 = reader.ReadByte();
317 player14.UsingBiomeTorches = bitsByte25[0];
318 player14.happyFunTorchTime = bitsByte25[1];
319 player14.unlockedBiomeTorches = bitsByte25[2];
320 player14.unlockedSuperCart = bitsByte25[3];
321 player14.enabledSuperCart = bitsByte25[4];
322 BitsByte bitsByte26 = reader.ReadByte();
323 player14.usedAegisCrystal = bitsByte26[0];
324 player14.usedAegisFruit = bitsByte26[1];
325 player14.usedArcaneCrystal = bitsByte26[2];
326 player14.usedGalaxyPearl = bitsByte26[3];
327 player14.usedGummyWorm = bitsByte26[4];
328 player14.usedAmbrosia = bitsByte26[5];
329 player14.ateArtisanBread = bitsByte26[6];
330 if (Main.netMode != 2)
331 {
332 break;
333 }
334 bool flag12 = false;
335 if (Netplay.Clients[whoAmI].State < 10)
336 {
337 for (int num212 = 0; num212 < 255; num212++)
338 {
339 if (num212 != num211 && player14.name == Main.player[num212].name && Netplay.Clients[num212].IsActive)
340 {
341 flag12 = true;
342 }
343 }
344 }
345 if (flag12)
346 {
347 NetMessage.TrySendData(2, whoAmI, -1, NetworkText.FromKey(Lang.mp[5].Key, player14.name));
348 }
349 else if (player14.name.Length > Player.nameLen)
350 {
351 NetMessage.TrySendData(2, whoAmI, -1, NetworkText.FromKey("Net.NameTooLong"));
352 }
353 else if (player14.name == "")
354 {
355 NetMessage.TrySendData(2, whoAmI, -1, NetworkText.FromKey("Net.EmptyName"));
356 }
357 else if (player14.difficulty == 3 && !Main.GameModeInfo.IsJourneyMode)
358 {
359 NetMessage.TrySendData(2, whoAmI, -1, NetworkText.FromKey("Net.PlayerIsCreativeAndWorldIsNotCreative"));
360 }
361 else if (player14.difficulty != 3 && Main.GameModeInfo.IsJourneyMode)
362 {
363 NetMessage.TrySendData(2, whoAmI, -1, NetworkText.FromKey("Net.PlayerIsNotCreativeAndWorldIsCreative"));
364 }
365 else
366 {
367 Netplay.Clients[whoAmI].Name = player14.name;
368 Netplay.Clients[whoAmI].Name = player14.name;
369 NetMessage.TrySendData(4, -1, whoAmI, null, num211);
370 }
371 break;
372 }
373 case 5:
374 {
375 int num258 = reader.ReadByte();
376 if (Main.netMode == 2)
377 {
378 num258 = whoAmI;
379 }
380 if (num258 == Main.myPlayer && !Main.ServerSideCharacter && !Main.player[num258].HasLockedInventory())
381 {
382 break;
383 }
384 Player player17 = Main.player[num258];
385 lock (player17)
386 {
387 int num259 = reader.ReadInt16();
388 int stack7 = reader.ReadInt16();
389 int num260 = reader.ReadByte();
390 int type16 = reader.ReadInt16();
391 Item[] array3 = null;
392 Item[] array4 = null;
393 int num261 = 0;
394 bool flag16 = false;
395 Player clientPlayer = Main.clientPlayer;
397 {
399 array3 = player17.Loadouts[2].Dye;
400 array4 = clientPlayer.Loadouts[2].Dye;
401 }
403 {
405 array3 = player17.Loadouts[2].Armor;
406 array4 = clientPlayer.Loadouts[2].Armor;
407 }
409 {
411 array3 = player17.Loadouts[1].Dye;
412 array4 = clientPlayer.Loadouts[1].Dye;
413 }
415 {
417 array3 = player17.Loadouts[1].Armor;
418 array4 = clientPlayer.Loadouts[1].Armor;
419 }
421 {
423 array3 = player17.Loadouts[0].Dye;
424 array4 = clientPlayer.Loadouts[0].Dye;
425 }
427 {
429 array3 = player17.Loadouts[0].Armor;
430 array4 = clientPlayer.Loadouts[0].Armor;
431 }
432 else if (num259 >= PlayerItemSlotID.Bank4_0)
433 {
435 array3 = player17.bank4.item;
436 array4 = clientPlayer.bank4.item;
437 if (Main.netMode == 1 && player17.disableVoidBag == num261)
438 {
439 player17.disableVoidBag = -1;
440 Recipe.FindRecipes(canDelayCheck: true);
441 }
442 }
443 else if (num259 >= PlayerItemSlotID.Bank3_0)
444 {
446 array3 = player17.bank3.item;
447 array4 = clientPlayer.bank3.item;
448 }
450 {
451 flag16 = true;
452 }
453 else if (num259 >= PlayerItemSlotID.Bank2_0)
454 {
456 array3 = player17.bank2.item;
457 array4 = clientPlayer.bank2.item;
458 }
459 else if (num259 >= PlayerItemSlotID.Bank1_0)
460 {
462 array3 = player17.bank.item;
463 array4 = clientPlayer.bank.item;
464 }
465 else if (num259 >= PlayerItemSlotID.MiscDye0)
466 {
468 array3 = player17.miscDyes;
469 array4 = clientPlayer.miscDyes;
470 }
471 else if (num259 >= PlayerItemSlotID.Misc0)
472 {
474 array3 = player17.miscEquips;
475 array4 = clientPlayer.miscEquips;
476 }
477 else if (num259 >= PlayerItemSlotID.Dye0)
478 {
480 array3 = player17.dye;
481 array4 = clientPlayer.dye;
482 }
483 else if (num259 >= PlayerItemSlotID.Armor0)
484 {
486 array3 = player17.armor;
487 array4 = clientPlayer.armor;
488 }
489 else
490 {
492 array3 = player17.inventory;
493 array4 = clientPlayer.inventory;
494 }
495 if (flag16)
496 {
497 player17.trashItem = new Item();
498 player17.trashItem.netDefaults(type16);
499 player17.trashItem.stack = stack7;
500 player17.trashItem.Prefix(num260);
501 if (num258 == Main.myPlayer && !Main.ServerSideCharacter)
502 {
503 clientPlayer.trashItem = player17.trashItem.Clone();
504 }
505 }
506 else if (num259 <= 58)
507 {
508 int type17 = array3[num261].type;
509 int stack8 = array3[num261].stack;
510 array3[num261] = new Item();
511 array3[num261].netDefaults(type16);
512 array3[num261].stack = stack7;
513 array3[num261].Prefix(num260);
514 if (num258 == Main.myPlayer && !Main.ServerSideCharacter)
515 {
516 array4[num261] = array3[num261].Clone();
517 }
518 if (num258 == Main.myPlayer && num261 == 58)
519 {
520 Main.mouseItem = array3[num261].Clone();
521 }
522 if (num258 == Main.myPlayer && Main.netMode == 1)
523 {
524 Main.player[num258].inventoryChestStack[num259] = false;
525 if (array3[num261].stack != stack8 || array3[num261].type != type17)
526 {
527 Recipe.FindRecipes(canDelayCheck: true);
528 }
529 }
530 }
531 else
532 {
533 array3[num261] = new Item();
534 array3[num261].netDefaults(type16);
535 array3[num261].stack = stack7;
536 array3[num261].Prefix(num260);
537 if (num258 == Main.myPlayer && !Main.ServerSideCharacter)
538 {
539 array4[num261] = array3[num261].Clone();
540 }
541 }
543 if (Main.netMode == 2 && num258 == whoAmI && canRelay.IndexInRange(num259) && canRelay[num259])
544 {
545 NetMessage.TrySendData(5, -1, whoAmI, null, num258, num259, num260);
546 }
547 break;
548 }
549 }
550 case 6:
551 if (Main.netMode == 2)
552 {
553 if (Netplay.Clients[whoAmI].State == 1)
554 {
555 Netplay.Clients[whoAmI].State = 2;
556 }
557 NetMessage.TrySendData(7, whoAmI);
558 Main.SyncAnInvasion(whoAmI);
559 }
560 break;
561 case 7:
562 if (Main.netMode == 1)
563 {
564 Main.time = reader.ReadInt32();
565 BitsByte bitsByte13 = reader.ReadByte();
566 Main.dayTime = bitsByte13[0];
567 Main.bloodMoon = bitsByte13[1];
568 Main.eclipse = bitsByte13[2];
569 Main.moonPhase = reader.ReadByte();
570 Main.maxTilesX = reader.ReadInt16();
571 Main.maxTilesY = reader.ReadInt16();
572 Main.spawnTileX = reader.ReadInt16();
573 Main.spawnTileY = reader.ReadInt16();
574 Main.worldSurface = reader.ReadInt16();
575 Main.rockLayer = reader.ReadInt16();
576 Main.worldID = reader.ReadInt32();
577 Main.worldName = reader.ReadString();
578 Main.GameMode = reader.ReadByte();
579 Main.ActiveWorldFileData.UniqueId = new Guid(reader.ReadBytes(16));
580 Main.ActiveWorldFileData.WorldGeneratorVersion = reader.ReadUInt64();
581 Main.moonType = reader.ReadByte();
582 WorldGen.setBG(0, reader.ReadByte());
583 WorldGen.setBG(10, reader.ReadByte());
584 WorldGen.setBG(11, reader.ReadByte());
585 WorldGen.setBG(12, reader.ReadByte());
586 WorldGen.setBG(1, reader.ReadByte());
587 WorldGen.setBG(2, reader.ReadByte());
588 WorldGen.setBG(3, reader.ReadByte());
589 WorldGen.setBG(4, reader.ReadByte());
590 WorldGen.setBG(5, reader.ReadByte());
591 WorldGen.setBG(6, reader.ReadByte());
592 WorldGen.setBG(7, reader.ReadByte());
593 WorldGen.setBG(8, reader.ReadByte());
594 WorldGen.setBG(9, reader.ReadByte());
595 Main.iceBackStyle = reader.ReadByte();
596 Main.jungleBackStyle = reader.ReadByte();
597 Main.hellBackStyle = reader.ReadByte();
598 Main.windSpeedTarget = reader.ReadSingle();
599 Main.numClouds = reader.ReadByte();
600 for (int num194 = 0; num194 < 3; num194++)
601 {
602 Main.treeX[num194] = reader.ReadInt32();
603 }
604 for (int num195 = 0; num195 < 4; num195++)
605 {
606 Main.treeStyle[num195] = reader.ReadByte();
607 }
608 for (int num196 = 0; num196 < 3; num196++)
609 {
610 Main.caveBackX[num196] = reader.ReadInt32();
611 }
612 for (int num197 = 0; num197 < 4; num197++)
613 {
614 Main.caveBackStyle[num197] = reader.ReadByte();
615 }
616 WorldGen.TreeTops.SyncReceive(reader);
617 WorldGen.BackgroundsCache.UpdateCache();
618 Main.maxRaining = reader.ReadSingle();
619 Main.raining = Main.maxRaining > 0f;
620 BitsByte bitsByte14 = reader.ReadByte();
621 WorldGen.shadowOrbSmashed = bitsByte14[0];
622 NPC.downedBoss1 = bitsByte14[1];
623 NPC.downedBoss2 = bitsByte14[2];
624 NPC.downedBoss3 = bitsByte14[3];
625 Main.hardMode = bitsByte14[4];
626 NPC.downedClown = bitsByte14[5];
627 Main.ServerSideCharacter = bitsByte14[6];
628 NPC.downedPlantBoss = bitsByte14[7];
629 if (Main.ServerSideCharacter)
630 {
631 Main.ActivePlayerFileData.MarkAsServerSide();
632 }
633 BitsByte bitsByte15 = reader.ReadByte();
634 NPC.downedMechBoss1 = bitsByte15[0];
635 NPC.downedMechBoss2 = bitsByte15[1];
636 NPC.downedMechBoss3 = bitsByte15[2];
637 NPC.downedMechBossAny = bitsByte15[3];
638 Main.cloudBGActive = (bitsByte15[4] ? 1 : 0);
639 WorldGen.crimson = bitsByte15[5];
640 Main.pumpkinMoon = bitsByte15[6];
641 Main.snowMoon = bitsByte15[7];
642 BitsByte bitsByte16 = reader.ReadByte();
643 Main.fastForwardTimeToDawn = bitsByte16[1];
644 Main.UpdateTimeRate();
645 bool num198 = bitsByte16[2];
646 NPC.downedSlimeKing = bitsByte16[3];
647 NPC.downedQueenBee = bitsByte16[4];
648 NPC.downedFishron = bitsByte16[5];
649 NPC.downedMartians = bitsByte16[6];
650 NPC.downedAncientCultist = bitsByte16[7];
651 BitsByte bitsByte17 = reader.ReadByte();
652 NPC.downedMoonlord = bitsByte17[0];
653 NPC.downedHalloweenKing = bitsByte17[1];
654 NPC.downedHalloweenTree = bitsByte17[2];
655 NPC.downedChristmasIceQueen = bitsByte17[3];
656 NPC.downedChristmasSantank = bitsByte17[4];
657 NPC.downedChristmasTree = bitsByte17[5];
658 NPC.downedGolemBoss = bitsByte17[6];
659 BirthdayParty.ManualParty = bitsByte17[7];
660 BitsByte bitsByte18 = reader.ReadByte();
661 NPC.downedPirates = bitsByte18[0];
662 NPC.downedFrost = bitsByte18[1];
663 NPC.downedGoblins = bitsByte18[2];
664 Sandstorm.Happening = bitsByte18[3];
665 DD2Event.Ongoing = bitsByte18[4];
666 DD2Event.DownedInvasionT1 = bitsByte18[5];
667 DD2Event.DownedInvasionT2 = bitsByte18[6];
668 DD2Event.DownedInvasionT3 = bitsByte18[7];
669 BitsByte bitsByte19 = reader.ReadByte();
670 NPC.combatBookWasUsed = bitsByte19[0];
671 LanternNight.ManualLanterns = bitsByte19[1];
672 NPC.downedTowerSolar = bitsByte19[2];
673 NPC.downedTowerVortex = bitsByte19[3];
674 NPC.downedTowerNebula = bitsByte19[4];
675 NPC.downedTowerStardust = bitsByte19[5];
676 Main.forceHalloweenForToday = bitsByte19[6];
677 Main.forceXMasForToday = bitsByte19[7];
678 BitsByte bitsByte20 = reader.ReadByte();
679 NPC.boughtCat = bitsByte20[0];
680 NPC.boughtDog = bitsByte20[1];
681 NPC.boughtBunny = bitsByte20[2];
682 NPC.freeCake = bitsByte20[3];
683 Main.drunkWorld = bitsByte20[4];
684 NPC.downedEmpressOfLight = bitsByte20[5];
685 NPC.downedQueenSlime = bitsByte20[6];
686 Main.getGoodWorld = bitsByte20[7];
687 BitsByte bitsByte21 = reader.ReadByte();
688 Main.tenthAnniversaryWorld = bitsByte21[0];
689 Main.dontStarveWorld = bitsByte21[1];
690 NPC.downedDeerclops = bitsByte21[2];
691 Main.notTheBeesWorld = bitsByte21[3];
692 Main.remixWorld = bitsByte21[4];
693 NPC.unlockedSlimeBlueSpawn = bitsByte21[5];
694 NPC.combatBookVolumeTwoWasUsed = bitsByte21[6];
695 NPC.peddlersSatchelWasUsed = bitsByte21[7];
696 BitsByte bitsByte22 = reader.ReadByte();
697 NPC.unlockedSlimeGreenSpawn = bitsByte22[0];
698 NPC.unlockedSlimeOldSpawn = bitsByte22[1];
699 NPC.unlockedSlimePurpleSpawn = bitsByte22[2];
700 NPC.unlockedSlimeRainbowSpawn = bitsByte22[3];
701 NPC.unlockedSlimeRedSpawn = bitsByte22[4];
702 NPC.unlockedSlimeYellowSpawn = bitsByte22[5];
703 NPC.unlockedSlimeCopperSpawn = bitsByte22[6];
704 Main.fastForwardTimeToDusk = bitsByte22[7];
705 BitsByte bitsByte23 = reader.ReadByte();
706 Main.noTrapsWorld = bitsByte23[0];
707 Main.zenithWorld = bitsByte23[1];
708 NPC.unlockedTruffleSpawn = bitsByte23[2];
709 Main.sundialCooldown = reader.ReadByte();
710 Main.moondialCooldown = reader.ReadByte();
711 WorldGen.SavedOreTiers.Copper = reader.ReadInt16();
712 WorldGen.SavedOreTiers.Iron = reader.ReadInt16();
713 WorldGen.SavedOreTiers.Silver = reader.ReadInt16();
714 WorldGen.SavedOreTiers.Gold = reader.ReadInt16();
715 WorldGen.SavedOreTiers.Cobalt = reader.ReadInt16();
716 WorldGen.SavedOreTiers.Mythril = reader.ReadInt16();
717 WorldGen.SavedOreTiers.Adamantite = reader.ReadInt16();
718 if (num198)
719 {
720 Main.StartSlimeRain();
721 }
722 else
723 {
724 Main.StopSlimeRain();
725 }
726 Main.invasionType = reader.ReadSByte();
727 Main.LobbyId = reader.ReadUInt64();
728 Sandstorm.IntendedSeverity = reader.ReadSingle();
729 if (Netplay.Connection.State == 3)
730 {
731 Main.windSpeedCurrent = Main.windSpeedTarget;
732 Netplay.Connection.State = 4;
733 }
734 Main.checkHalloween();
735 Main.checkXMas();
736 }
737 break;
738 case 8:
739 {
740 if (Main.netMode != 2)
741 {
742 break;
743 }
744 NetMessage.TrySendData(7, whoAmI);
745 int num70 = reader.ReadInt32();
746 int num71 = reader.ReadInt32();
747 bool flag3 = true;
748 if (num70 == -1 || num71 == -1)
749 {
750 flag3 = false;
751 }
752 else if (num70 < 10 || num70 > Main.maxTilesX - 10)
753 {
754 flag3 = false;
755 }
756 else if (num71 < 10 || num71 > Main.maxTilesY - 10)
757 {
758 flag3 = false;
759 }
760 int num72 = Netplay.GetSectionX(Main.spawnTileX) - 2;
761 int num73 = Netplay.GetSectionY(Main.spawnTileY) - 1;
762 int num74 = num72 + 5;
763 int num75 = num73 + 3;
764 if (num72 < 0)
765 {
766 num72 = 0;
767 }
768 if (num74 >= Main.maxSectionsX)
769 {
770 num74 = Main.maxSectionsX;
771 }
772 if (num73 < 0)
773 {
774 num73 = 0;
775 }
776 if (num75 >= Main.maxSectionsY)
777 {
778 num75 = Main.maxSectionsY;
779 }
780 int num76 = (num74 - num72) * (num75 - num73);
782 for (int num77 = num72; num77 < num74; num77++)
783 {
784 for (int num78 = num73; num78 < num75; num78++)
785 {
786 list.Add(new Point(num77, num78));
787 }
788 }
789 int num79 = -1;
790 int num80 = -1;
791 if (flag3)
792 {
793 num70 = Netplay.GetSectionX(num70) - 2;
794 num71 = Netplay.GetSectionY(num71) - 1;
795 num79 = num70 + 5;
796 num80 = num71 + 3;
797 if (num70 < 0)
798 {
799 num70 = 0;
800 }
801 if (num79 >= Main.maxSectionsX)
802 {
803 num79 = Main.maxSectionsX - 1;
804 }
805 if (num71 < 0)
806 {
807 num71 = 0;
808 }
809 if (num80 >= Main.maxSectionsY)
810 {
811 num80 = Main.maxSectionsY - 1;
812 }
813 for (int num81 = num70; num81 <= num79; num81++)
814 {
815 for (int num82 = num71; num82 <= num80; num82++)
816 {
818 {
819 list.Add(new Point(num81, num82));
820 num76++;
821 }
822 }
823 }
824 }
827 if (Netplay.Clients[whoAmI].State == 2)
828 {
829 Netplay.Clients[whoAmI].State = 3;
830 }
831 NetMessage.TrySendData(9, whoAmI, -1, Lang.inter[44].ToNetworkText(), num76);
832 Netplay.Clients[whoAmI].StatusText2 = Language.GetTextValue("Net.IsReceivingTileData");
833 Netplay.Clients[whoAmI].StatusMax += num76;
834 for (int num83 = num72; num83 < num74; num83++)
835 {
836 for (int num84 = num73; num84 < num75; num84++)
837 {
838 NetMessage.SendSection(whoAmI, num83, num84);
839 }
840 }
841 if (flag3)
842 {
843 for (int num85 = num70; num85 <= num79; num85++)
844 {
845 for (int num86 = num71; num86 <= num80; num86++)
846 {
847 NetMessage.SendSection(whoAmI, num85, num86);
848 }
849 }
850 }
851 for (int num87 = 0; num87 < portalSections.Count; num87++)
852 {
853 NetMessage.SendSection(whoAmI, portalSections[num87].X, portalSections[num87].Y);
854 }
855 for (int num88 = 0; num88 < 400; num88++)
856 {
857 if (Main.item[num88].active)
858 {
859 NetMessage.TrySendData(21, whoAmI, -1, null, num88);
860 NetMessage.TrySendData(22, whoAmI, -1, null, num88);
861 }
862 }
863 for (int num89 = 0; num89 < 200; num89++)
864 {
865 if (Main.npc[num89].active)
866 {
867 NetMessage.TrySendData(23, whoAmI, -1, null, num89);
868 }
869 }
870 for (int num90 = 0; num90 < 1000; num90++)
871 {
872 if (Main.projectile[num90].active && (Main.projPet[Main.projectile[num90].type] || Main.projectile[num90].netImportant))
873 {
874 NetMessage.TrySendData(27, whoAmI, -1, null, num90);
875 }
876 }
877 for (int num91 = 0; num91 < 290; num91++)
878 {
879 NetMessage.TrySendData(83, whoAmI, -1, null, num91);
880 }
881 NetMessage.TrySendData(57, whoAmI);
882 NetMessage.TrySendData(103);
883 NetMessage.TrySendData(101, whoAmI);
884 NetMessage.TrySendData(136, whoAmI);
885 NetMessage.TrySendData(49, whoAmI);
886 Main.BestiaryTracker.OnPlayerJoining(whoAmI);
887 CreativePowerManager.Instance.SyncThingsToJoiningPlayer(whoAmI);
888 Main.PylonSystem.OnPlayerJoining(whoAmI);
889 break;
890 }
891 case 9:
892 if (Main.netMode == 1)
893 {
894 Netplay.Connection.StatusMax += reader.ReadInt32();
895 Netplay.Connection.StatusText = NetworkText.Deserialize(reader).ToString();
896 BitsByte bitsByte32 = reader.ReadByte();
897 BitsByte serverSpecialFlags = Netplay.Connection.ServerSpecialFlags;
900 Netplay.Connection.ServerSpecialFlags = serverSpecialFlags;
901 }
902 break;
903 case 10:
904 if (Main.netMode == 1)
905 {
906 NetMessage.DecompressTileBlock(reader.BaseStream);
907 }
908 break;
909 case 11:
910 if (Main.netMode == 1)
911 {
913 }
914 break;
915 case 12:
916 {
917 int num92 = reader.ReadByte();
918 if (Main.netMode == 2)
919 {
920 num92 = whoAmI;
921 }
922 Player player6 = Main.player[num92];
923 player6.SpawnX = reader.ReadInt16();
924 player6.SpawnY = reader.ReadInt16();
925 player6.respawnTimer = reader.ReadInt32();
926 player6.numberOfDeathsPVE = reader.ReadInt16();
927 player6.numberOfDeathsPVP = reader.ReadInt16();
928 if (player6.respawnTimer > 0)
929 {
930 player6.dead = true;
931 }
934 if (Main.netMode != 2 || Netplay.Clients[whoAmI].State < 3)
935 {
936 break;
937 }
938 if (Netplay.Clients[whoAmI].State == 3)
939 {
940 Netplay.Clients[whoAmI].State = 10;
941 NetMessage.buffer[whoAmI].broadcast = true;
942 NetMessage.SyncConnectedPlayer(whoAmI);
943 bool flag4 = NetMessage.DoesPlayerSlotCountAsAHost(whoAmI);
944 Main.countsAsHostForGameplay[whoAmI] = flag4;
945 if (NetMessage.DoesPlayerSlotCountAsAHost(whoAmI))
946 {
947 NetMessage.TrySendData(139, whoAmI, -1, null, whoAmI, flag4.ToInt());
948 }
949 NetMessage.TrySendData(12, -1, whoAmI, null, whoAmI, (int)(byte)playerSpawnContext);
950 NetMessage.TrySendData(74, whoAmI, -1, NetworkText.FromLiteral(Main.player[whoAmI].name), Main.anglerQuest);
951 NetMessage.TrySendData(129, whoAmI);
952 NetMessage.greetPlayer(whoAmI);
953 if (Main.player[num92].unlockedBiomeTorches)
954 {
955 NPC nPC2 = new NPC();
956 nPC2.SetDefaults(664);
957 Main.BestiaryTracker.Kills.RegisterKill(nPC2);
958 }
959 }
960 else
961 {
962 NetMessage.TrySendData(12, -1, whoAmI, null, whoAmI, (int)(byte)playerSpawnContext);
963 }
964 break;
965 }
966 case 13:
967 {
968 int num138 = reader.ReadByte();
969 if (num138 != Main.myPlayer || Main.ServerSideCharacter)
970 {
971 if (Main.netMode == 2)
972 {
973 num138 = whoAmI;
974 }
975 Player player10 = Main.player[num138];
976 BitsByte bitsByte7 = reader.ReadByte();
977 BitsByte bitsByte8 = reader.ReadByte();
978 BitsByte bitsByte9 = reader.ReadByte();
979 BitsByte bitsByte10 = reader.ReadByte();
980 player10.controlUp = bitsByte7[0];
981 player10.controlDown = bitsByte7[1];
982 player10.controlLeft = bitsByte7[2];
983 player10.controlRight = bitsByte7[3];
984 player10.controlJump = bitsByte7[4];
985 player10.controlUseItem = bitsByte7[5];
986 player10.direction = (bitsByte7[6] ? 1 : (-1));
987 if (bitsByte8[0])
988 {
989 player10.pulley = true;
990 player10.pulleyDir = (byte)((!bitsByte8[1]) ? 1u : 2u);
991 }
992 else
993 {
994 player10.pulley = false;
995 }
996 player10.vortexStealthActive = bitsByte8[3];
997 player10.gravDir = (bitsByte8[4] ? 1 : (-1));
998 player10.TryTogglingShield(bitsByte8[5]);
999 player10.ghost = bitsByte8[6];
1000 player10.selectedItem = reader.ReadByte();
1001 player10.position = reader.ReadVector2();
1002 if (bitsByte8[2])
1003 {
1004 player10.velocity = reader.ReadVector2();
1005 }
1006 else
1007 {
1008 player10.velocity = Vector2.Zero;
1009 }
1010 if (bitsByte9[6])
1011 {
1012 player10.PotionOfReturnOriginalUsePosition = reader.ReadVector2();
1013 player10.PotionOfReturnHomePosition = reader.ReadVector2();
1014 }
1015 else
1016 {
1017 player10.PotionOfReturnOriginalUsePosition = null;
1018 player10.PotionOfReturnHomePosition = null;
1019 }
1020 player10.tryKeepingHoveringUp = bitsByte9[0];
1021 player10.IsVoidVaultEnabled = bitsByte9[1];
1022 player10.sitting.isSitting = bitsByte9[2];
1023 player10.downedDD2EventAnyDifficulty = bitsByte9[3];
1024 player10.isPettingAnimal = bitsByte9[4];
1025 player10.isTheAnimalBeingPetSmall = bitsByte9[5];
1026 player10.tryKeepingHoveringDown = bitsByte9[7];
1027 player10.sleeping.SetIsSleepingAndAdjustPlayerRotation(player10, bitsByte10[0]);
1028 player10.autoReuseAllWeapons = bitsByte10[1];
1029 player10.controlDownHold = bitsByte10[2];
1030 player10.isOperatingAnotherEntity = bitsByte10[3];
1031 player10.controlUseTile = bitsByte10[4];
1032 if (Main.netMode == 2 && Netplay.Clients[whoAmI].State == 10)
1033 {
1034 NetMessage.TrySendData(13, -1, whoAmI, null, num138);
1035 }
1036 }
1037 break;
1038 }
1039 case 14:
1040 {
1041 int num253 = reader.ReadByte();
1042 int num254 = reader.ReadByte();
1043 if (Main.netMode != 1)
1044 {
1045 break;
1046 }
1047 bool active = Main.player[num253].active;
1048 if (num254 == 1)
1049 {
1050 if (!Main.player[num253].active)
1051 {
1052 Main.player[num253] = new Player();
1053 }
1054 Main.player[num253].active = true;
1055 }
1056 else
1057 {
1058 Main.player[num253].active = false;
1059 }
1060 if (active != Main.player[num253].active)
1061 {
1062 if (Main.player[num253].active)
1063 {
1064 Player.Hooks.PlayerConnect(num253);
1065 }
1066 else
1067 {
1068 Player.Hooks.PlayerDisconnect(num253);
1069 }
1070 }
1071 break;
1072 }
1073 case 16:
1074 {
1075 int num139 = reader.ReadByte();
1076 if (num139 != Main.myPlayer || Main.ServerSideCharacter)
1077 {
1078 if (Main.netMode == 2)
1079 {
1080 num139 = whoAmI;
1081 }
1082 Player player11 = Main.player[num139];
1083 player11.statLife = reader.ReadInt16();
1084 player11.statLifeMax = reader.ReadInt16();
1085 if (player11.statLifeMax < 100)
1086 {
1087 player11.statLifeMax = 100;
1088 }
1089 player11.dead = player11.statLife <= 0;
1090 if (Main.netMode == 2)
1091 {
1092 NetMessage.TrySendData(16, -1, whoAmI, null, num139);
1093 }
1094 }
1095 break;
1096 }
1097 case 17:
1098 {
1099 byte b7 = reader.ReadByte();
1100 int num176 = reader.ReadInt16();
1101 int num177 = reader.ReadInt16();
1102 short num178 = reader.ReadInt16();
1103 int num179 = reader.ReadByte();
1104 bool flag9 = num178 == 1;
1105 if (!WorldGen.InWorld(num176, num177, 3))
1106 {
1107 break;
1108 }
1109 if (Main.tile[num176, num177] == null)
1110 {
1111 Main.tile[num176, num177] = new Tile();
1112 }
1113 if (Main.netMode == 2)
1114 {
1115 if (!flag9)
1116 {
1117 if (b7 == 0 || b7 == 2 || b7 == 4)
1118 {
1119 Netplay.Clients[whoAmI].SpamDeleteBlock += 1f;
1120 }
1121 if (b7 == 1 || b7 == 3)
1122 {
1123 Netplay.Clients[whoAmI].SpamAddBlock += 1f;
1124 }
1125 }
1126 if (!Netplay.Clients[whoAmI].TileSections[Netplay.GetSectionX(num176), Netplay.GetSectionY(num177)])
1127 {
1128 flag9 = true;
1129 }
1130 }
1131 if (b7 == 0)
1132 {
1133 WorldGen.KillTile(num176, num177, flag9);
1134 if (Main.netMode == 1 && !flag9)
1135 {
1136 HitTile.ClearAllTilesAtThisLocation(num176, num177);
1137 }
1138 }
1139 bool flag10 = false;
1140 if (b7 == 1)
1141 {
1142 bool forced = true;
1143 if (WorldGen.CheckTileBreakability2_ShouldTileSurvive(num176, num177))
1144 {
1145 flag10 = true;
1146 forced = false;
1147 }
1148 WorldGen.PlaceTile(num176, num177, num178, mute: false, forced, -1, num179);
1149 }
1150 if (b7 == 2)
1151 {
1152 WorldGen.KillWall(num176, num177, flag9);
1153 }
1154 if (b7 == 3)
1155 {
1156 WorldGen.PlaceWall(num176, num177, num178);
1157 }
1158 if (b7 == 4)
1159 {
1161 }
1162 if (b7 == 5)
1163 {
1164 WorldGen.PlaceWire(num176, num177);
1165 }
1166 if (b7 == 6)
1167 {
1168 WorldGen.KillWire(num176, num177);
1169 }
1170 if (b7 == 7)
1171 {
1172 WorldGen.PoundTile(num176, num177);
1173 }
1174 if (b7 == 8)
1175 {
1176 WorldGen.PlaceActuator(num176, num177);
1177 }
1178 if (b7 == 9)
1179 {
1180 WorldGen.KillActuator(num176, num177);
1181 }
1182 if (b7 == 10)
1183 {
1184 WorldGen.PlaceWire2(num176, num177);
1185 }
1186 if (b7 == 11)
1187 {
1188 WorldGen.KillWire2(num176, num177);
1189 }
1190 if (b7 == 12)
1191 {
1192 WorldGen.PlaceWire3(num176, num177);
1193 }
1194 if (b7 == 13)
1195 {
1196 WorldGen.KillWire3(num176, num177);
1197 }
1198 if (b7 == 14)
1199 {
1200 WorldGen.SlopeTile(num176, num177, num178);
1201 }
1202 if (b7 == 15)
1203 {
1204 Minecart.FrameTrack(num176, num177, pound: true);
1205 }
1206 if (b7 == 16)
1207 {
1208 WorldGen.PlaceWire4(num176, num177);
1209 }
1210 if (b7 == 17)
1211 {
1212 WorldGen.KillWire4(num176, num177);
1213 }
1214 switch (b7)
1215 {
1216 case 18:
1217 Wiring.SetCurrentUser(whoAmI);
1218 Wiring.PokeLogicGate(num176, num177);
1219 Wiring.SetCurrentUser();
1220 return;
1221 case 19:
1222 Wiring.SetCurrentUser(whoAmI);
1223 Wiring.Actuate(num176, num177);
1224 Wiring.SetCurrentUser();
1225 return;
1226 case 20:
1227 if (WorldGen.InWorld(num176, num177, 2))
1228 {
1229 int type10 = Main.tile[num176, num177].type;
1230 WorldGen.KillTile(num176, num177, flag9);
1231 num178 = (short)((Main.tile[num176, num177].active() && Main.tile[num176, num177].type == type10) ? 1 : 0);
1232 if (Main.netMode == 2)
1233 {
1234 NetMessage.TrySendData(17, -1, -1, null, b7, num176, num177, num178, num179);
1235 }
1236 }
1237 return;
1238 case 21:
1239 WorldGen.ReplaceTile(num176, num177, (ushort)num178, num179);
1240 break;
1241 }
1242 if (b7 == 22)
1243 {
1244 WorldGen.ReplaceWall(num176, num177, (ushort)num178);
1245 }
1246 if (b7 == 23)
1247 {
1248 WorldGen.SlopeTile(num176, num177, num178);
1249 WorldGen.PoundTile(num176, num177);
1250 }
1251 if (Main.netMode == 2)
1252 {
1253 if (flag10)
1254 {
1255 NetMessage.SendTileSquare(-1, num176, num177, 5);
1256 }
1257 else if ((b7 != 1 && b7 != 21) || !TileID.Sets.Falling[num178] || Main.tile[num176, num177].active())
1258 {
1259 NetMessage.TrySendData(17, -1, whoAmI, null, b7, num176, num177, num178, num179);
1260 }
1261 }
1262 break;
1263 }
1264 case 18:
1265 if (Main.netMode == 1)
1266 {
1267 Main.dayTime = reader.ReadByte() == 1;
1268 Main.time = reader.ReadInt32();
1269 Main.sunModY = reader.ReadInt16();
1270 Main.moonModY = reader.ReadInt16();
1271 }
1272 break;
1273 case 19:
1274 {
1275 byte b11 = reader.ReadByte();
1276 int num199 = reader.ReadInt16();
1277 int num200 = reader.ReadInt16();
1278 if (WorldGen.InWorld(num199, num200, 3))
1279 {
1280 int num201 = ((reader.ReadByte() != 0) ? 1 : (-1));
1281 switch (b11)
1282 {
1283 case 0:
1284 WorldGen.OpenDoor(num199, num200, num201);
1285 break;
1286 case 1:
1287 WorldGen.CloseDoor(num199, num200, forced: true);
1288 break;
1289 case 2:
1290 WorldGen.ShiftTrapdoor(num199, num200, num201 == 1, 1);
1291 break;
1292 case 3:
1293 WorldGen.ShiftTrapdoor(num199, num200, num201 == 1, 0);
1294 break;
1295 case 4:
1296 WorldGen.ShiftTallGate(num199, num200, closing: false, forced: true);
1297 break;
1298 case 5:
1299 WorldGen.ShiftTallGate(num199, num200, closing: true, forced: true);
1300 break;
1301 }
1302 if (Main.netMode == 2)
1303 {
1304 NetMessage.TrySendData(19, -1, whoAmI, null, b11, num199, num200, (num201 == 1) ? 1 : 0);
1305 }
1306 }
1307 break;
1308 }
1309 case 20:
1310 {
1311 int num228 = reader.ReadInt16();
1312 int num229 = reader.ReadInt16();
1313 ushort num230 = reader.ReadByte();
1314 ushort num231 = reader.ReadByte();
1315 byte b13 = reader.ReadByte();
1316 if (!WorldGen.InWorld(num228, num229, 3))
1317 {
1318 break;
1319 }
1322 {
1324 }
1325 if (MessageBuffer.OnTileChangeReceived != null)
1326 {
1327 MessageBuffer.OnTileChangeReceived(num228, num229, Math.Max(num230, num231), type12);
1328 }
1329 BitsByte bitsByte28 = (byte)0;
1330 BitsByte bitsByte29 = (byte)0;
1331 BitsByte bitsByte30 = (byte)0;
1332 Tile tile4 = null;
1333 for (int num232 = num228; num232 < num228 + num230; num232++)
1334 {
1335 for (int num233 = num229; num233 < num229 + num231; num233++)
1336 {
1337 if (Main.tile[num232, num233] == null)
1338 {
1339 Main.tile[num232, num233] = new Tile();
1340 }
1341 tile4 = Main.tile[num232, num233];
1342 bool flag13 = tile4.active();
1346 tile4.active(bitsByte28[0]);
1347 tile4.wall = (byte)(bitsByte28[2] ? 1u : 0u);
1348 bool flag14 = bitsByte28[3];
1349 if (Main.netMode != 2)
1350 {
1351 tile4.liquid = (byte)(flag14 ? 1u : 0u);
1352 }
1353 tile4.wire(bitsByte28[4]);
1354 tile4.halfBrick(bitsByte28[5]);
1355 tile4.actuator(bitsByte28[6]);
1356 tile4.inActive(bitsByte28[7]);
1357 tile4.wire2(bitsByte29[0]);
1358 tile4.wire3(bitsByte29[1]);
1359 if (bitsByte29[2])
1360 {
1361 tile4.color(reader.ReadByte());
1362 }
1363 if (bitsByte29[3])
1364 {
1365 tile4.wallColor(reader.ReadByte());
1366 }
1367 if (tile4.active())
1368 {
1369 int type13 = tile4.type;
1370 tile4.type = reader.ReadUInt16();
1371 if (Main.tileFrameImportant[tile4.type])
1372 {
1373 tile4.frameX = reader.ReadInt16();
1374 tile4.frameY = reader.ReadInt16();
1375 }
1376 else if (!flag13 || tile4.type != type13)
1377 {
1378 tile4.frameX = -1;
1379 tile4.frameY = -1;
1380 }
1381 byte b14 = 0;
1382 if (bitsByte29[4])
1383 {
1384 b14++;
1385 }
1386 if (bitsByte29[5])
1387 {
1388 b14 += 2;
1389 }
1390 if (bitsByte29[6])
1391 {
1392 b14 += 4;
1393 }
1394 tile4.slope(b14);
1395 }
1396 tile4.wire4(bitsByte29[7]);
1397 tile4.fullbrightBlock(bitsByte30[0]);
1398 tile4.fullbrightWall(bitsByte30[1]);
1399 tile4.invisibleBlock(bitsByte30[2]);
1400 tile4.invisibleWall(bitsByte30[3]);
1401 if (tile4.wall > 0)
1402 {
1403 tile4.wall = reader.ReadUInt16();
1404 }
1405 if (flag14)
1406 {
1407 tile4.liquid = reader.ReadByte();
1408 tile4.liquidType(reader.ReadByte());
1409 }
1410 }
1411 }
1412 WorldGen.RangeFrame(num228, num229, num228 + num230, num229 + num231);
1413 if (Main.netMode == 2)
1414 {
1415 NetMessage.TrySendData(b, -1, whoAmI, null, num228, num229, (int)num230, (int)num231, b13);
1416 }
1417 break;
1418 }
1419 case 21:
1420 case 90:
1421 case 145:
1422 case 148:
1423 {
1424 int num105 = reader.ReadInt16();
1425 Vector2 position3 = reader.ReadVector2();
1426 Vector2 velocity3 = reader.ReadVector2();
1427 int stack3 = reader.ReadInt16();
1429 int num106 = reader.ReadByte();
1430 int num107 = reader.ReadInt16();
1431 bool shimmered = false;
1432 float shimmerTime = 0f;
1433 int timeLeftInWhichTheItemCannotBeTakenByEnemies = 0;
1434 if (b == 145)
1435 {
1436 shimmered = reader.ReadBoolean();
1437 shimmerTime = reader.ReadSingle();
1438 }
1439 if (b == 148)
1440 {
1441 timeLeftInWhichTheItemCannotBeTakenByEnemies = reader.ReadByte();
1442 }
1443 if (Main.netMode == 1)
1444 {
1445 if (num107 == 0)
1446 {
1447 Main.item[num105].active = false;
1448 break;
1449 }
1450 int num108 = num105;
1451 Item item2 = Main.item[num108];
1454 bool newAndShiny = (item2.newAndShiny || item2.netID != num107) && ItemSlot.Options.HighlightNewItems && (num107 < 0 || num107 >= ItemID.Count || !ItemID.Sets.NeverAppearsAsNewInInventory[num107]);
1455 item2.netDefaults(num107);
1456 item2.newAndShiny = newAndShiny;
1457 item2.Prefix(prefixWeWant2);
1458 item2.stack = stack3;
1459 item2.position = position3;
1460 item2.velocity = velocity3;
1461 item2.active = true;
1462 item2.shimmered = shimmered;
1463 item2.shimmerTime = shimmerTime;
1464 if (b == 90)
1465 {
1466 item2.instanced = true;
1467 item2.playerIndexTheItemIsReservedFor = Main.myPlayer;
1468 item2.keepTime = 600;
1469 }
1470 item2.timeLeftInWhichTheItemCannotBeTakenByEnemies = timeLeftInWhichTheItemCannotBeTakenByEnemies;
1471 item2.wet = Collision.WetCollision(item2.position, item2.width, item2.height);
1472 itemSyncPersistentStats.PasteInto(item2);
1473 }
1474 else
1475 {
1476 if (Main.timeItemSlotCannotBeReusedFor[num105] > 0)
1477 {
1478 break;
1479 }
1480 if (num107 == 0)
1481 {
1482 if (num105 < 400)
1483 {
1484 Main.item[num105].active = false;
1485 NetMessage.TrySendData(21, -1, -1, null, num105);
1486 }
1487 break;
1488 }
1489 bool flag6 = false;
1490 if (num105 == 400)
1491 {
1492 flag6 = true;
1493 }
1494 if (flag6)
1495 {
1496 Item item3 = new Item();
1497 item3.netDefaults(num107);
1498 num105 = Item.NewItem(new EntitySource_Sync(), (int)position3.X, (int)position3.Y, item3.width, item3.height, item3.type, stack3, noBroadcast: true);
1499 }
1500 Item item4 = Main.item[num105];
1501 item4.netDefaults(num107);
1502 item4.Prefix(prefixWeWant2);
1503 item4.stack = stack3;
1504 item4.position = position3;
1505 item4.velocity = velocity3;
1506 item4.active = true;
1507 item4.playerIndexTheItemIsReservedFor = Main.myPlayer;
1508 item4.timeLeftInWhichTheItemCannotBeTakenByEnemies = timeLeftInWhichTheItemCannotBeTakenByEnemies;
1509 if (b == 145)
1510 {
1511 item4.shimmered = shimmered;
1512 item4.shimmerTime = shimmerTime;
1513 }
1514 if (flag6)
1515 {
1516 NetMessage.TrySendData(b, -1, -1, null, num105);
1517 if (num106 == 0)
1518 {
1519 Main.item[num105].ownIgnore = whoAmI;
1520 Main.item[num105].ownTime = 100;
1521 }
1522 Main.item[num105].FindOwner(num105);
1523 }
1524 else
1525 {
1526 NetMessage.TrySendData(b, -1, whoAmI, null, num105);
1527 }
1528 }
1529 break;
1530 }
1531 case 22:
1532 {
1533 int num42 = reader.ReadInt16();
1534 int num43 = reader.ReadByte();
1535 if (Main.netMode != 2 || Main.item[num42].playerIndexTheItemIsReservedFor == whoAmI)
1536 {
1537 Main.item[num42].playerIndexTheItemIsReservedFor = num43;
1538 if (num43 == Main.myPlayer)
1539 {
1540 Main.item[num42].keepTime = 15;
1541 }
1542 else
1543 {
1544 Main.item[num42].keepTime = 0;
1545 }
1546 if (Main.netMode == 2)
1547 {
1548 Main.item[num42].playerIndexTheItemIsReservedFor = 255;
1549 Main.item[num42].keepTime = 15;
1550 NetMessage.TrySendData(22, -1, -1, null, num42);
1551 }
1552 }
1553 break;
1554 }
1555 case 23:
1556 {
1557 if (Main.netMode != 1)
1558 {
1559 break;
1560 }
1561 int num155 = reader.ReadInt16();
1562 Vector2 vector5 = reader.ReadVector2();
1563 Vector2 velocity5 = reader.ReadVector2();
1564 int num156 = reader.ReadUInt16();
1565 if (num156 == 65535)
1566 {
1567 num156 = 0;
1568 }
1569 BitsByte bitsByte11 = reader.ReadByte();
1570 BitsByte bitsByte12 = reader.ReadByte();
1571 float[] array2 = ReUseTemporaryNPCAI();
1572 for (int num157 = 0; num157 < NPC.maxAI; num157++)
1573 {
1574 if (bitsByte11[num157 + 2])
1575 {
1577 }
1578 else
1579 {
1580 array2[num157] = 0f;
1581 }
1582 }
1583 int num158 = reader.ReadInt16();
1584 int? playerCountForMultiplayerDifficultyOverride = 1;
1585 if (bitsByte12[0])
1586 {
1587 playerCountForMultiplayerDifficultyOverride = reader.ReadByte();
1588 }
1589 float value8 = 1f;
1590 if (bitsByte12[2])
1591 {
1593 }
1594 int num159 = 0;
1595 if (!bitsByte11[7])
1596 {
1597 num159 = reader.ReadByte() switch
1598 {
1599 2 => reader.ReadInt16(),
1600 4 => reader.ReadInt32(),
1601 _ => reader.ReadSByte(),
1602 };
1603 }
1604 int num160 = -1;
1605 NPC nPC5 = Main.npc[num155];
1606 if (nPC5.active && Main.multiplayerNPCSmoothingRange > 0 && Vector2.DistanceSquared(nPC5.position, vector5) < 640000f)
1607 {
1608 nPC5.netOffset += nPC5.position - vector5;
1609 }
1610 if (!nPC5.active || nPC5.netID != num158)
1611 {
1612 nPC5.netOffset *= 0f;
1613 if (nPC5.active)
1614 {
1615 num160 = nPC5.type;
1616 }
1617 nPC5.active = true;
1618 nPC5.SetDefaults(num158, new NPCSpawnParams
1619 {
1620 playerCountForMultiplayerDifficultyOverride = playerCountForMultiplayerDifficultyOverride,
1621 strengthMultiplierOverride = value8
1622 });
1623 }
1624 nPC5.position = vector5;
1625 nPC5.velocity = velocity5;
1626 nPC5.target = num156;
1627 nPC5.direction = (bitsByte11[0] ? 1 : (-1));
1628 nPC5.directionY = (bitsByte11[1] ? 1 : (-1));
1629 nPC5.spriteDirection = (bitsByte11[6] ? 1 : (-1));
1630 if (bitsByte11[7])
1631 {
1632 num159 = (nPC5.life = nPC5.lifeMax);
1633 }
1634 else
1635 {
1636 nPC5.life = num159;
1637 }
1638 if (num159 <= 0)
1639 {
1640 nPC5.active = false;
1641 }
1642 nPC5.SpawnedFromStatue = bitsByte12[1];
1643 if (nPC5.SpawnedFromStatue)
1644 {
1645 nPC5.value = 0f;
1646 }
1647 for (int num161 = 0; num161 < NPC.maxAI; num161++)
1648 {
1649 nPC5.ai[num161] = array2[num161];
1650 }
1651 if (num160 > -1 && num160 != nPC5.type)
1652 {
1653 nPC5.TransformVisuals(num160, nPC5.type);
1654 }
1655 if (num158 == 262)
1656 {
1657 NPC.plantBoss = num155;
1658 }
1659 if (num158 == 245)
1660 {
1661 NPC.golemBoss = num155;
1662 }
1663 if (num158 == 668)
1664 {
1665 NPC.deerclopsBoss = num155;
1666 }
1667 if (nPC5.type >= 0 && nPC5.type < NPCID.Count && Main.npcCatchable[nPC5.type])
1668 {
1669 nPC5.releaseOwner = reader.ReadByte();
1670 }
1671 break;
1672 }
1673 case 24:
1674 {
1675 int num120 = reader.ReadInt16();
1676 int num121 = reader.ReadByte();
1677 if (Main.netMode == 2)
1678 {
1679 num121 = whoAmI;
1680 }
1681 Player player9 = Main.player[num121];
1682 Main.npc[num120].StrikeNPC(player9.inventory[player9.selectedItem].damage, player9.inventory[player9.selectedItem].knockBack, player9.direction);
1683 if (Main.netMode == 2)
1684 {
1685 NetMessage.TrySendData(24, -1, whoAmI, null, num120, num121);
1686 NetMessage.TrySendData(23, -1, -1, null, num120);
1687 }
1688 break;
1689 }
1690 case 27:
1691 {
1692 int num34 = reader.ReadInt16();
1693 Vector2 position = reader.ReadVector2();
1694 Vector2 velocity2 = reader.ReadVector2();
1695 int num35 = reader.ReadByte();
1696 int num36 = reader.ReadInt16();
1697 BitsByte bitsByte2 = reader.ReadByte();
1698 BitsByte bitsByte3 = (byte)(bitsByte2[2] ? reader.ReadByte() : 0);
1700 array[0] = (bitsByte2[0] ? reader.ReadSingle() : 0f);
1701 array[1] = (bitsByte2[1] ? reader.ReadSingle() : 0f);
1702 int bannerIdToRespondTo = (bitsByte2[3] ? reader.ReadUInt16() : 0);
1703 int damage2 = (bitsByte2[4] ? reader.ReadInt16() : 0);
1704 float knockBack2 = (bitsByte2[5] ? reader.ReadSingle() : 0f);
1705 int originalDamage = (bitsByte2[6] ? reader.ReadInt16() : 0);
1706 int num37 = (bitsByte2[7] ? reader.ReadInt16() : (-1));
1707 if (num37 >= 1000)
1708 {
1709 num37 = -1;
1710 }
1711 array[2] = (bitsByte3[0] ? reader.ReadSingle() : 0f);
1712 if (Main.netMode == 2)
1713 {
1714 if (num36 == 949)
1715 {
1716 num35 = 255;
1717 }
1718 else
1719 {
1720 num35 = whoAmI;
1721 if (Main.projHostile[num36])
1722 {
1723 break;
1724 }
1725 }
1726 }
1727 int num38 = 1000;
1728 for (int n = 0; n < 1000; n++)
1729 {
1730 if (Main.projectile[n].owner == num35 && Main.projectile[n].identity == num34 && Main.projectile[n].active)
1731 {
1732 num38 = n;
1733 break;
1734 }
1735 }
1736 if (num38 == 1000)
1737 {
1738 for (int num39 = 0; num39 < 1000; num39++)
1739 {
1740 if (!Main.projectile[num39].active)
1741 {
1742 num38 = num39;
1743 break;
1744 }
1745 }
1746 }
1747 if (num38 == 1000)
1748 {
1749 num38 = Projectile.FindOldestProjectile();
1750 }
1751 Projectile projectile = Main.projectile[num38];
1752 if (!projectile.active || projectile.type != num36)
1753 {
1754 projectile.SetDefaults(num36);
1755 if (Main.netMode == 2)
1756 {
1757 Netplay.Clients[whoAmI].SpamProjectile += 1f;
1758 }
1759 }
1760 projectile.identity = num34;
1761 projectile.position = position;
1762 projectile.velocity = velocity2;
1763 projectile.type = num36;
1764 projectile.damage = damage2;
1765 projectile.bannerIdToRespondTo = bannerIdToRespondTo;
1766 projectile.originalDamage = originalDamage;
1767 projectile.knockBack = knockBack2;
1768 projectile.owner = num35;
1769 for (int num40 = 0; num40 < Projectile.maxAI; num40++)
1770 {
1771 projectile.ai[num40] = array[num40];
1772 }
1773 if (num37 >= 0)
1774 {
1775 projectile.projUUID = num37;
1776 Main.projectileIdentity[num35, num37] = num38;
1777 }
1778 projectile.ProjectileFixDesperation();
1779 if (Main.netMode == 2)
1780 {
1781 NetMessage.TrySendData(27, -1, whoAmI, null, num38);
1782 }
1783 break;
1784 }
1785 case 28:
1786 {
1787 int num190 = reader.ReadInt16();
1788 int num191 = reader.ReadInt16();
1789 float num192 = reader.ReadSingle();
1790 int num193 = reader.ReadByte() - 1;
1791 byte b10 = reader.ReadByte();
1792 if (Main.netMode == 2)
1793 {
1794 if (num191 < 0)
1795 {
1796 num191 = 0;
1797 }
1798 Main.npc[num190].PlayerInteraction(whoAmI);
1799 }
1800 if (num191 >= 0)
1801 {
1802 Main.npc[num190].StrikeNPC(num191, num192, num193, b10 == 1, noEffect: false, fromNet: true);
1803 }
1804 else
1805 {
1806 Main.npc[num190].life = 0;
1807 Main.npc[num190].HitEffect();
1808 Main.npc[num190].active = false;
1809 }
1810 if (Main.netMode != 2)
1811 {
1812 break;
1813 }
1814 NetMessage.TrySendData(28, -1, whoAmI, null, num190, num191, num192, num193, b10);
1815 if (Main.npc[num190].life <= 0)
1816 {
1817 NetMessage.TrySendData(23, -1, -1, null, num190);
1818 }
1819 else
1820 {
1821 Main.npc[num190].netUpdate = true;
1822 }
1823 if (Main.npc[num190].realLife >= 0)
1824 {
1825 if (Main.npc[Main.npc[num190].realLife].life <= 0)
1826 {
1827 NetMessage.TrySendData(23, -1, -1, null, Main.npc[num190].realLife);
1828 }
1829 else
1830 {
1831 Main.npc[Main.npc[num190].realLife].netUpdate = true;
1832 }
1833 }
1834 break;
1835 }
1836 case 29:
1837 {
1838 int num98 = reader.ReadInt16();
1839 int num99 = reader.ReadByte();
1840 if (Main.netMode == 2)
1841 {
1842 num99 = whoAmI;
1843 }
1844 for (int num100 = 0; num100 < 1000; num100++)
1845 {
1846 if (Main.projectile[num100].owner == num99 && Main.projectile[num100].identity == num98 && Main.projectile[num100].active)
1847 {
1848 Main.projectile[num100].Kill();
1849 break;
1850 }
1851 }
1852 if (Main.netMode == 2)
1853 {
1854 NetMessage.TrySendData(29, -1, whoAmI, null, num98, num99);
1855 }
1856 break;
1857 }
1858 case 30:
1859 {
1860 int num137 = reader.ReadByte();
1861 if (Main.netMode == 2)
1862 {
1863 num137 = whoAmI;
1864 }
1865 bool flag8 = reader.ReadBoolean();
1866 Main.player[num137].hostile = flag8;
1867 if (Main.netMode == 2)
1868 {
1869 NetMessage.TrySendData(30, -1, whoAmI, null, num137);
1870 LocalizedText obj4 = (flag8 ? Lang.mp[11] : Lang.mp[12]);
1871 ChatHelper.BroadcastChatMessage(color: Main.teamColor[Main.player[num137].team], text: NetworkText.FromKey(obj4.Key, Main.player[num137].name));
1872 }
1873 break;
1874 }
1875 case 31:
1876 {
1877 if (Main.netMode != 2)
1878 {
1879 break;
1880 }
1881 int num219 = reader.ReadInt16();
1882 int num220 = reader.ReadInt16();
1883 int num221 = Chest.FindChest(num219, num220);
1884 if (num221 > -1 && Chest.UsingChest(num221) == -1)
1885 {
1886 for (int num222 = 0; num222 < 40; num222++)
1887 {
1888 NetMessage.TrySendData(32, whoAmI, -1, null, num221, num222);
1889 }
1890 NetMessage.TrySendData(33, whoAmI, -1, null, num221);
1891 Main.player[whoAmI].chest = num221;
1892 if (Main.myPlayer == whoAmI)
1893 {
1894 Main.recBigList = false;
1895 }
1896 NetMessage.TrySendData(80, -1, whoAmI, null, whoAmI, num221);
1897 if (Main.netMode == 2 && WorldGen.IsChestRigged(num219, num220))
1898 {
1899 Wiring.SetCurrentUser(whoAmI);
1900 Wiring.HitSwitch(num219, num220);
1901 Wiring.SetCurrentUser();
1902 NetMessage.TrySendData(59, -1, whoAmI, null, num219, num220);
1903 }
1904 }
1905 break;
1906 }
1907 case 32:
1908 {
1909 int num164 = reader.ReadInt16();
1910 int num165 = reader.ReadByte();
1911 int stack5 = reader.ReadInt16();
1913 int type8 = reader.ReadInt16();
1914 if (num164 >= 0 && num164 < 8000)
1915 {
1916 if (Main.chest[num164] == null)
1917 {
1918 Main.chest[num164] = new Chest();
1919 }
1920 if (Main.chest[num164].item[num165] == null)
1921 {
1922 Main.chest[num164].item[num165] = new Item();
1923 }
1924 Main.chest[num164].item[num165].netDefaults(type8);
1925 Main.chest[num164].item[num165].Prefix(prefixWeWant3);
1926 Main.chest[num164].item[num165].stack = stack5;
1927 Recipe.FindRecipes(canDelayCheck: true);
1928 }
1929 break;
1930 }
1931 case 33:
1932 {
1933 int num2 = reader.ReadInt16();
1934 int num3 = reader.ReadInt16();
1935 int num4 = reader.ReadInt16();
1936 int num5 = reader.ReadByte();
1937 string name = string.Empty;
1938 if (num5 != 0)
1939 {
1940 if (num5 <= 20)
1941 {
1943 }
1944 else if (num5 != 255)
1945 {
1946 num5 = 0;
1947 }
1948 }
1949 if (Main.netMode == 1)
1950 {
1951 Player player = Main.player[Main.myPlayer];
1952 if (player.chest == -1)
1953 {
1954 Main.playerInventory = true;
1956 }
1957 else if (player.chest != num2 && num2 != -1)
1958 {
1959 Main.playerInventory = true;
1961 Main.recBigList = false;
1962 }
1963 else if (player.chest != -1 && num2 == -1)
1964 {
1966 Main.recBigList = false;
1967 }
1968 player.chest = num2;
1969 player.chestX = num3;
1970 player.chestY = num4;
1971 Recipe.FindRecipes(canDelayCheck: true);
1972 if (Main.tile[num3, num4].frameX >= 36 && Main.tile[num3, num4].frameX < 72)
1973 {
1974 AchievementsHelper.HandleSpecialEvent(Main.player[Main.myPlayer], 16);
1975 }
1976 }
1977 else
1978 {
1979 if (num5 != 0)
1980 {
1981 int chest = Main.player[whoAmI].chest;
1982 Chest chest2 = Main.chest[chest];
1983 chest2.name = name;
1984 NetMessage.TrySendData(69, -1, whoAmI, null, chest, chest2.x, chest2.y);
1985 }
1986 Main.player[whoAmI].chest = num2;
1987 Recipe.FindRecipes(canDelayCheck: true);
1988 NetMessage.TrySendData(80, -1, whoAmI, null, whoAmI, num2);
1989 }
1990 break;
1991 }
1992 case 34:
1993 {
1994 byte b12 = reader.ReadByte();
1995 int num203 = reader.ReadInt16();
1996 int num204 = reader.ReadInt16();
1997 int num205 = reader.ReadInt16();
1998 int num206 = reader.ReadInt16();
1999 if (Main.netMode == 2)
2000 {
2001 num206 = 0;
2002 }
2003 if (Main.netMode == 2)
2004 {
2005 switch (b12)
2006 {
2007 case 0:
2008 {
2009 int num209 = WorldGen.PlaceChest(num203, num204, 21, notNearOtherChests: false, num205);
2010 if (num209 == -1)
2011 {
2012 NetMessage.TrySendData(34, whoAmI, -1, null, b12, num203, num204, num205, num209);
2013 Item.NewItem(new EntitySource_TileBreak(num203, num204), num203 * 16, num204 * 16, 32, 32, Chest.chestItemSpawn[num205], 1, noBroadcast: true);
2014 }
2015 else
2016 {
2017 NetMessage.TrySendData(34, -1, -1, null, b12, num203, num204, num205, num209);
2018 }
2019 break;
2020 }
2021 case 1:
2022 if (Main.tile[num203, num204].type == 21)
2023 {
2024 Tile tile = Main.tile[num203, num204];
2025 if (tile.frameX % 36 != 0)
2026 {
2027 num203--;
2028 }
2029 if (tile.frameY % 36 != 0)
2030 {
2031 num204--;
2032 }
2033 int number = Chest.FindChest(num203, num204);
2034 WorldGen.KillTile(num203, num204);
2035 if (!tile.active())
2036 {
2037 NetMessage.TrySendData(34, -1, -1, null, b12, num203, num204, 0f, number);
2038 }
2039 break;
2040 }
2041 goto default;
2042 default:
2043 switch (b12)
2044 {
2045 case 2:
2046 {
2047 int num207 = WorldGen.PlaceChest(num203, num204, 88, notNearOtherChests: false, num205);
2048 if (num207 == -1)
2049 {
2050 NetMessage.TrySendData(34, whoAmI, -1, null, b12, num203, num204, num205, num207);
2051 Item.NewItem(new EntitySource_TileBreak(num203, num204), num203 * 16, num204 * 16, 32, 32, Chest.dresserItemSpawn[num205], 1, noBroadcast: true);
2052 }
2053 else
2054 {
2055 NetMessage.TrySendData(34, -1, -1, null, b12, num203, num204, num205, num207);
2056 }
2057 break;
2058 }
2059 case 3:
2060 if (Main.tile[num203, num204].type == 88)
2061 {
2062 Tile tile2 = Main.tile[num203, num204];
2063 num203 -= tile2.frameX % 54 / 18;
2064 if (tile2.frameY % 36 != 0)
2065 {
2066 num204--;
2067 }
2068 int number2 = Chest.FindChest(num203, num204);
2069 WorldGen.KillTile(num203, num204);
2070 if (!tile2.active())
2071 {
2072 NetMessage.TrySendData(34, -1, -1, null, b12, num203, num204, 0f, number2);
2073 }
2074 break;
2075 }
2076 goto default;
2077 default:
2078 switch (b12)
2079 {
2080 case 4:
2081 {
2082 int num208 = WorldGen.PlaceChest(num203, num204, 467, notNearOtherChests: false, num205);
2083 if (num208 == -1)
2084 {
2085 NetMessage.TrySendData(34, whoAmI, -1, null, b12, num203, num204, num205, num208);
2086 Item.NewItem(new EntitySource_TileBreak(num203, num204), num203 * 16, num204 * 16, 32, 32, Chest.chestItemSpawn2[num205], 1, noBroadcast: true);
2087 }
2088 else
2089 {
2090 NetMessage.TrySendData(34, -1, -1, null, b12, num203, num204, num205, num208);
2091 }
2092 break;
2093 }
2094 case 5:
2095 if (Main.tile[num203, num204].type == 467)
2096 {
2097 Tile tile3 = Main.tile[num203, num204];
2098 if (tile3.frameX % 36 != 0)
2099 {
2100 num203--;
2101 }
2102 if (tile3.frameY % 36 != 0)
2103 {
2104 num204--;
2105 }
2106 int number3 = Chest.FindChest(num203, num204);
2107 WorldGen.KillTile(num203, num204);
2108 if (!tile3.active())
2109 {
2110 NetMessage.TrySendData(34, -1, -1, null, b12, num203, num204, 0f, number3);
2111 }
2112 }
2113 break;
2114 }
2115 break;
2116 }
2117 break;
2118 }
2119 break;
2120 }
2121 switch (b12)
2122 {
2123 case 0:
2124 if (num206 == -1)
2125 {
2126 WorldGen.KillTile(num203, num204);
2127 break;
2128 }
2129 SoundEngine.PlaySound(0, num203 * 16, num204 * 16);
2130 WorldGen.PlaceChestDirect(num203, num204, 21, num205, num206);
2131 break;
2132 case 2:
2133 if (num206 == -1)
2134 {
2135 WorldGen.KillTile(num203, num204);
2136 break;
2137 }
2138 SoundEngine.PlaySound(0, num203 * 16, num204 * 16);
2139 WorldGen.PlaceDresserDirect(num203, num204, 88, num205, num206);
2140 break;
2141 case 4:
2142 if (num206 == -1)
2143 {
2144 WorldGen.KillTile(num203, num204);
2145 break;
2146 }
2147 SoundEngine.PlaySound(0, num203 * 16, num204 * 16);
2148 WorldGen.PlaceChestDirect(num203, num204, 467, num205, num206);
2149 break;
2150 default:
2151 Chest.DestroyChestDirect(num203, num204, num206);
2152 WorldGen.KillTile(num203, num204);
2153 break;
2154 }
2155 break;
2156 }
2157 case 35:
2158 {
2159 int num146 = reader.ReadByte();
2160 if (Main.netMode == 2)
2161 {
2162 num146 = whoAmI;
2163 }
2164 int num147 = reader.ReadInt16();
2165 if (num146 != Main.myPlayer || Main.ServerSideCharacter)
2166 {
2167 Main.player[num146].HealEffect(num147);
2168 }
2169 if (Main.netMode == 2)
2170 {
2171 NetMessage.TrySendData(35, -1, whoAmI, null, num146, num147);
2172 }
2173 break;
2174 }
2175 case 36:
2176 {
2177 int num101 = reader.ReadByte();
2178 if (Main.netMode == 2)
2179 {
2180 num101 = whoAmI;
2181 }
2182 Player player7 = Main.player[num101];
2183 bool flag5 = player7.zone5[0];
2184 player7.zone1 = reader.ReadByte();
2185 player7.zone2 = reader.ReadByte();
2186 player7.zone3 = reader.ReadByte();
2187 player7.zone4 = reader.ReadByte();
2188 player7.zone5 = reader.ReadByte();
2189 if (Main.netMode == 2)
2190 {
2191 if (!flag5 && player7.zone5[0])
2192 {
2193 NPC.SpawnFaelings(num101);
2194 }
2195 NetMessage.TrySendData(36, -1, whoAmI, null, num101);
2196 }
2197 break;
2198 }
2199 case 37:
2200 if (Main.netMode == 1)
2201 {
2202 if (Main.autoPass)
2203 {
2204 NetMessage.TrySendData(38);
2205 Main.autoPass = false;
2206 }
2207 else
2208 {
2209 Netplay.ServerPassword = "";
2210 Main.menuMode = 31;
2211 }
2212 }
2213 break;
2214 case 38:
2215 if (Main.netMode == 2)
2216 {
2217 if (reader.ReadString() == Netplay.ServerPassword)
2218 {
2219 Netplay.Clients[whoAmI].State = 1;
2220 NetMessage.TrySendData(3, whoAmI);
2221 }
2222 else
2223 {
2224 NetMessage.TrySendData(2, whoAmI, -1, Lang.mp[1].ToNetworkText());
2225 }
2226 }
2227 break;
2228 case 39:
2229 if (Main.netMode == 1)
2230 {
2231 int num23 = reader.ReadInt16();
2232 Main.item[num23].playerIndexTheItemIsReservedFor = 255;
2233 NetMessage.TrySendData(22, -1, -1, null, num23);
2234 }
2235 break;
2236 case 40:
2237 {
2238 int num255 = reader.ReadByte();
2239 if (Main.netMode == 2)
2240 {
2241 num255 = whoAmI;
2242 }
2243 int npcIndex = reader.ReadInt16();
2244 Main.player[num255].SetTalkNPC(npcIndex, fromNet: true);
2245 if (Main.netMode == 2)
2246 {
2247 NetMessage.TrySendData(40, -1, whoAmI, null, num255);
2248 }
2249 break;
2250 }
2251 case 41:
2252 {
2253 int num226 = reader.ReadByte();
2254 if (Main.netMode == 2)
2255 {
2256 num226 = whoAmI;
2257 }
2258 Player player15 = Main.player[num226];
2259 float itemRotation = reader.ReadSingle();
2260 int itemAnimation = reader.ReadInt16();
2261 player15.itemRotation = itemRotation;
2262 player15.itemAnimation = itemAnimation;
2263 player15.channel = player15.inventory[player15.selectedItem].channel;
2264 if (Main.netMode == 2)
2265 {
2266 NetMessage.TrySendData(41, -1, whoAmI, null, num226);
2267 }
2268 if (Main.netMode == 1)
2269 {
2270 Item item6 = player15.inventory[player15.selectedItem];
2271 if (item6.UseSound != null)
2272 {
2273 SoundEngine.PlaySound(item6.UseSound, player15.Center);
2274 }
2275 }
2276 break;
2277 }
2278 case 42:
2279 {
2280 int num202 = reader.ReadByte();
2281 if (Main.netMode == 2)
2282 {
2283 num202 = whoAmI;
2284 }
2285 else if (Main.myPlayer == num202 && !Main.ServerSideCharacter)
2286 {
2287 break;
2288 }
2289 int statMana = reader.ReadInt16();
2290 int statManaMax = reader.ReadInt16();
2291 Main.player[num202].statMana = statMana;
2292 Main.player[num202].statManaMax = statManaMax;
2293 break;
2294 }
2295 case 43:
2296 {
2297 int num151 = reader.ReadByte();
2298 if (Main.netMode == 2)
2299 {
2300 num151 = whoAmI;
2301 }
2302 int num152 = reader.ReadInt16();
2303 if (num151 != Main.myPlayer)
2304 {
2305 Main.player[num151].ManaEffect(num152);
2306 }
2307 if (Main.netMode == 2)
2308 {
2309 NetMessage.TrySendData(43, -1, whoAmI, null, num151, num152);
2310 }
2311 break;
2312 }
2313 case 45:
2314 {
2315 int num117 = reader.ReadByte();
2316 if (Main.netMode == 2)
2317 {
2318 num117 = whoAmI;
2319 }
2320 int num118 = reader.ReadByte();
2321 Player player8 = Main.player[num117];
2322 int team = player8.team;
2323 player8.team = num118;
2324 Color color = Main.teamColor[num118];
2325 if (Main.netMode != 2)
2326 {
2327 break;
2328 }
2329 NetMessage.TrySendData(45, -1, whoAmI, null, num117);
2330 LocalizedText localizedText = Lang.mp[13 + num118];
2331 if (num118 == 5)
2332 {
2333 localizedText = Lang.mp[22];
2334 }
2335 for (int num119 = 0; num119 < 255; num119++)
2336 {
2337 if (num119 == whoAmI || (team > 0 && Main.player[num119].team == team) || (num118 > 0 && Main.player[num119].team == num118))
2338 {
2340 }
2341 }
2342 break;
2343 }
2344 case 46:
2345 if (Main.netMode == 2)
2346 {
2347 short i3 = reader.ReadInt16();
2348 int j3 = reader.ReadInt16();
2349 int num111 = Sign.ReadSign(i3, j3);
2350 if (num111 >= 0)
2351 {
2352 NetMessage.TrySendData(47, whoAmI, -1, null, num111, whoAmI);
2353 }
2354 }
2355 break;
2356 case 47:
2357 {
2358 int num8 = reader.ReadInt16();
2359 int x = reader.ReadInt16();
2360 int y = reader.ReadInt16();
2361 string text = reader.ReadString();
2362 int num9 = reader.ReadByte();
2363 BitsByte bitsByte = reader.ReadByte();
2364 if (num8 >= 0 && num8 < 1000)
2365 {
2366 string text2 = null;
2367 if (Main.sign[num8] != null)
2368 {
2369 text2 = Main.sign[num8].text;
2370 }
2371 Main.sign[num8] = new Sign();
2372 Main.sign[num8].x = x;
2373 Main.sign[num8].y = y;
2374 Sign.TextSign(num8, text);
2375 if (Main.netMode == 2 && text2 != text)
2376 {
2377 num9 = whoAmI;
2378 NetMessage.TrySendData(47, -1, whoAmI, null, num8, num9);
2379 }
2380 if (Main.netMode == 1 && num9 == Main.myPlayer && Main.sign[num8] != null && !bitsByte[0])
2381 {
2382 Main.playerInventory = false;
2383 Main.player[Main.myPlayer].SetTalkNPC(-1, fromNet: true);
2384 Main.npcChatCornerItem = 0;
2385 Main.editSign = false;
2387 Main.player[Main.myPlayer].sign = num8;
2388 Main.npcChatText = Main.sign[num8].text;
2389 }
2390 }
2391 break;
2392 }
2393 case 48:
2394 {
2395 int num237 = reader.ReadInt16();
2396 int num238 = reader.ReadInt16();
2397 byte b15 = reader.ReadByte();
2398 byte liquidType = reader.ReadByte();
2399 if (Main.netMode == 2 && Netplay.SpamCheck)
2400 {
2401 int num239 = whoAmI;
2402 int num240 = (int)(Main.player[num239].position.X + (float)(Main.player[num239].width / 2));
2403 int num241 = (int)(Main.player[num239].position.Y + (float)(Main.player[num239].height / 2));
2404 int num242 = 10;
2405 int num243 = num240 - num242;
2406 int num244 = num240 + num242;
2407 int num245 = num241 - num242;
2408 int num246 = num241 + num242;
2410 {
2411 Netplay.Clients[whoAmI].SpamWater += 1f;
2412 }
2413 }
2414 if (Main.tile[num237, num238] == null)
2415 {
2416 Main.tile[num237, num238] = new Tile();
2417 }
2418 lock (Main.tile[num237, num238])
2419 {
2420 Main.tile[num237, num238].liquid = b15;
2421 Main.tile[num237, num238].liquidType(liquidType);
2422 if (Main.netMode == 2)
2423 {
2424 WorldGen.SquareTileFrame(num237, num238);
2425 if (b15 == 0)
2426 {
2427 NetMessage.SendData(48, -1, whoAmI, null, num237, num238);
2428 }
2429 }
2430 break;
2431 }
2432 }
2433 case 49:
2434 if (Netplay.Connection.State == 6)
2435 {
2436 Netplay.Connection.State = 10;
2437 Main.player[Main.myPlayer].Spawn(PlayerSpawnContext.SpawningIntoWorld);
2438 }
2439 break;
2440 case 50:
2441 {
2442 int num180 = reader.ReadByte();
2443 if (Main.netMode == 2)
2444 {
2445 num180 = whoAmI;
2446 }
2447 else if (num180 == Main.myPlayer && !Main.ServerSideCharacter)
2448 {
2449 break;
2450 }
2451 Player player13 = Main.player[num180];
2452 for (int num181 = 0; num181 < Player.maxBuffs; num181++)
2453 {
2454 player13.buffType[num181] = reader.ReadUInt16();
2455 if (player13.buffType[num181] > 0)
2456 {
2457 player13.buffTime[num181] = 60;
2458 }
2459 else
2460 {
2461 player13.buffTime[num181] = 0;
2462 }
2463 }
2464 if (Main.netMode == 2)
2465 {
2466 NetMessage.TrySendData(50, -1, whoAmI, null, num180);
2467 }
2468 break;
2469 }
2470 case 51:
2471 {
2472 byte b8 = reader.ReadByte();
2473 byte b9 = reader.ReadByte();
2474 switch (b9)
2475 {
2476 case 1:
2477 NPC.SpawnSkeletron(b8);
2478 break;
2479 case 2:
2480 if (Main.netMode == 2)
2481 {
2482 NetMessage.TrySendData(51, -1, whoAmI, null, b8, (int)b9);
2483 }
2484 else
2485 {
2486 SoundEngine.PlaySound(SoundID.Item1, (int)Main.player[b8].position.X, (int)Main.player[b8].position.Y);
2487 }
2488 break;
2489 case 3:
2490 if (Main.netMode == 2)
2491 {
2492 Main.Sundialing();
2493 }
2494 break;
2495 case 4:
2496 Main.npc[b8].BigMimicSpawnSmoke();
2497 break;
2498 case 5:
2499 if (Main.netMode == 2)
2500 {
2501 NPC nPC6 = new NPC();
2502 nPC6.SetDefaults(664);
2503 Main.BestiaryTracker.Kills.RegisterKill(nPC6);
2504 }
2505 break;
2506 case 6:
2507 if (Main.netMode == 2)
2508 {
2509 Main.Moondialing();
2510 }
2511 break;
2512 }
2513 break;
2514 }
2515 case 52:
2516 {
2517 int num148 = reader.ReadByte();
2518 int num149 = reader.ReadInt16();
2519 int num150 = reader.ReadInt16();
2520 if (num148 == 1)
2521 {
2522 Chest.Unlock(num149, num150);
2523 if (Main.netMode == 2)
2524 {
2525 NetMessage.TrySendData(52, -1, whoAmI, null, 0, num148, num149, num150);
2526 NetMessage.SendTileSquare(-1, num149, num150, 2);
2527 }
2528 }
2529 if (num148 == 2)
2530 {
2531 WorldGen.UnlockDoor(num149, num150);
2532 if (Main.netMode == 2)
2533 {
2534 NetMessage.TrySendData(52, -1, whoAmI, null, 0, num148, num149, num150);
2535 NetMessage.SendTileSquare(-1, num149, num150, 2);
2536 }
2537 }
2538 if (num148 == 3)
2539 {
2540 Chest.Lock(num149, num150);
2541 if (Main.netMode == 2)
2542 {
2543 NetMessage.TrySendData(52, -1, whoAmI, null, 0, num148, num149, num150);
2544 NetMessage.SendTileSquare(-1, num149, num150, 2);
2545 }
2546 }
2547 break;
2548 }
2549 case 53:
2550 {
2551 int num122 = reader.ReadInt16();
2552 int type6 = reader.ReadUInt16();
2553 int time2 = reader.ReadInt16();
2554 Main.npc[num122].AddBuff(type6, time2, quiet: true);
2555 if (Main.netMode == 2)
2556 {
2557 NetMessage.TrySendData(54, -1, -1, null, num122);
2558 }
2559 break;
2560 }
2561 case 54:
2562 if (Main.netMode == 1)
2563 {
2564 int num109 = reader.ReadInt16();
2565 NPC nPC4 = Main.npc[num109];
2566 for (int num110 = 0; num110 < NPC.maxBuffs; num110++)
2567 {
2568 nPC4.buffType[num110] = reader.ReadUInt16();
2569 nPC4.buffTime[num110] = reader.ReadInt16();
2570 }
2571 }
2572 break;
2573 case 55:
2574 {
2575 int num48 = reader.ReadByte();
2576 int num49 = reader.ReadUInt16();
2577 int num50 = reader.ReadInt32();
2578 if (Main.netMode != 2 || num48 == whoAmI || Main.pvpBuff[num49])
2579 {
2580 if (Main.netMode == 1 && num48 == Main.myPlayer)
2581 {
2582 Main.player[num48].AddBuff(num49, num50);
2583 }
2584 else if (Main.netMode == 2)
2585 {
2586 NetMessage.TrySendData(55, -1, -1, null, num48, num49, num50);
2587 }
2588 }
2589 break;
2590 }
2591 case 56:
2592 {
2593 int num27 = reader.ReadInt16();
2594 if (num27 >= 0 && num27 < 200)
2595 {
2596 if (Main.netMode == 1)
2597 {
2598 string givenName = reader.ReadString();
2599 Main.npc[num27].GivenName = givenName;
2600 int townNpcVariationIndex = reader.ReadInt32();
2601 Main.npc[num27].townNpcVariationIndex = townNpcVariationIndex;
2602 }
2603 else if (Main.netMode == 2)
2604 {
2605 NetMessage.TrySendData(56, whoAmI, -1, null, num27);
2606 }
2607 }
2608 break;
2609 }
2610 case 57:
2611 if (Main.netMode == 1)
2612 {
2613 WorldGen.tGood = reader.ReadByte();
2614 WorldGen.tEvil = reader.ReadByte();
2615 WorldGen.tBlood = reader.ReadByte();
2616 }
2617 break;
2618 case 58:
2619 {
2620 int num256 = reader.ReadByte();
2621 if (Main.netMode == 2)
2622 {
2623 num256 = whoAmI;
2624 }
2625 float num257 = reader.ReadSingle();
2626 if (Main.netMode == 2)
2627 {
2628 NetMessage.TrySendData(58, -1, whoAmI, null, whoAmI, num257);
2629 break;
2630 }
2631 Player player16 = Main.player[num256];
2632 int type14 = player16.inventory[player16.selectedItem].type;
2633 switch (type14)
2634 {
2635 case 4057:
2636 case 4372:
2637 case 4715:
2638 player16.PlayGuitarChord(num257);
2639 break;
2640 case 4673:
2641 player16.PlayDrums(num257);
2642 break;
2643 default:
2644 {
2645 Main.musicPitch = num257;
2647 if (type14 == 507)
2648 {
2650 }
2651 if (type14 == 1305)
2652 {
2654 }
2656 break;
2657 }
2658 }
2659 break;
2660 }
2661 case 59:
2662 {
2663 int num10 = reader.ReadInt16();
2664 int num11 = reader.ReadInt16();
2665 Wiring.SetCurrentUser(whoAmI);
2666 Wiring.HitSwitch(num10, num11);
2667 Wiring.SetCurrentUser();
2668 if (Main.netMode == 2)
2669 {
2670 NetMessage.TrySendData(59, -1, whoAmI, null, num10, num11);
2671 }
2672 break;
2673 }
2674 case 60:
2675 {
2676 int num250 = reader.ReadInt16();
2677 int num251 = reader.ReadInt16();
2678 int num252 = reader.ReadInt16();
2679 byte b16 = reader.ReadByte();
2680 if (num250 >= 200)
2681 {
2682 NetMessage.BootPlayer(whoAmI, NetworkText.FromKey("Net.CheatingInvalid"));
2683 break;
2684 }
2685 NPC nPC7 = Main.npc[num250];
2686 bool isLikeATownNPC = nPC7.isLikeATownNPC;
2687 if (Main.netMode == 1)
2688 {
2689 nPC7.homeless = b16 == 1;
2690 nPC7.homeTileX = num251;
2691 nPC7.homeTileY = num252;
2692 }
2693 if (!isLikeATownNPC)
2694 {
2695 break;
2696 }
2697 if (Main.netMode == 1)
2698 {
2699 switch (b16)
2700 {
2701 case 1:
2702 WorldGen.TownManager.KickOut(nPC7.type);
2703 break;
2704 case 2:
2705 WorldGen.TownManager.SetRoom(nPC7.type, num251, num252);
2706 break;
2707 }
2708 }
2709 else if (b16 == 1)
2710 {
2711 WorldGen.kickOut(num250);
2712 }
2713 else
2714 {
2715 WorldGen.moveRoom(num251, num252, num250);
2716 }
2717 break;
2718 }
2719 case 61:
2720 {
2721 int num215 = reader.ReadInt16();
2722 int num216 = reader.ReadInt16();
2723 if (Main.netMode != 2)
2724 {
2725 break;
2726 }
2728 {
2729 if (!NPC.AnyNPCs(num216))
2730 {
2731 NPC.SpawnOnPlayer(num215, num216);
2732 }
2733 }
2734 else if (num216 == -4)
2735 {
2736 if (!Main.dayTime && !DD2Event.Ongoing)
2737 {
2738 ChatHelper.BroadcastChatMessage(NetworkText.FromKey(Lang.misc[31].Key), new Color(50, 255, 130));
2739 Main.startPumpkinMoon();
2740 NetMessage.TrySendData(7);
2741 NetMessage.TrySendData(78, -1, -1, null, 0, 1f, 2f, 1f);
2742 }
2743 }
2744 else if (num216 == -5)
2745 {
2746 if (!Main.dayTime && !DD2Event.Ongoing)
2747 {
2748 ChatHelper.BroadcastChatMessage(NetworkText.FromKey(Lang.misc[34].Key), new Color(50, 255, 130));
2749 Main.startSnowMoon();
2750 NetMessage.TrySendData(7);
2751 NetMessage.TrySendData(78, -1, -1, null, 0, 1f, 1f, 1f);
2752 }
2753 }
2754 else if (num216 == -6)
2755 {
2756 if (Main.dayTime && !Main.eclipse)
2757 {
2758 if (Main.remixWorld)
2759 {
2760 ChatHelper.BroadcastChatMessage(NetworkText.FromKey(Lang.misc[106].Key), new Color(50, 255, 130));
2761 }
2762 else
2763 {
2764 ChatHelper.BroadcastChatMessage(NetworkText.FromKey(Lang.misc[20].Key), new Color(50, 255, 130));
2765 }
2766 Main.eclipse = true;
2767 NetMessage.TrySendData(7);
2768 }
2769 }
2770 else if (num216 == -7)
2771 {
2772 Main.invasionDelay = 0;
2773 Main.StartInvasion(4);
2774 NetMessage.TrySendData(7);
2775 NetMessage.TrySendData(78, -1, -1, null, 0, 1f, Main.invasionType + 3);
2776 }
2777 else if (num216 == -8)
2778 {
2779 if (NPC.downedGolemBoss && Main.hardMode && !NPC.AnyDanger() && !NPC.AnyoneNearCultists())
2780 {
2781 WorldGen.StartImpendingDoom(720);
2782 NetMessage.TrySendData(7);
2783 }
2784 }
2785 else if (num216 == -10)
2786 {
2787 if (!Main.dayTime && !Main.bloodMoon)
2788 {
2789 ChatHelper.BroadcastChatMessage(NetworkText.FromKey(Lang.misc[8].Key), new Color(50, 255, 130));
2790 Main.bloodMoon = true;
2791 if (Main.GetMoonPhase() == MoonPhase.Empty)
2792 {
2793 Main.moonPhase = 5;
2794 }
2796 NetMessage.TrySendData(7);
2797 }
2798 }
2799 else if (num216 == -11)
2800 {
2801 ChatHelper.BroadcastChatMessage(NetworkText.FromKey("Misc.CombatBookUsed"), new Color(50, 255, 130));
2802 NPC.combatBookWasUsed = true;
2803 NetMessage.TrySendData(7);
2804 }
2805 else if (num216 == -12)
2806 {
2807 NPC.UnlockOrExchangePet(ref NPC.boughtCat, 637, "Misc.LicenseCatUsed", num216);
2808 }
2809 else if (num216 == -13)
2810 {
2811 NPC.UnlockOrExchangePet(ref NPC.boughtDog, 638, "Misc.LicenseDogUsed", num216);
2812 }
2813 else if (num216 == -14)
2814 {
2815 NPC.UnlockOrExchangePet(ref NPC.boughtBunny, 656, "Misc.LicenseBunnyUsed", num216);
2816 }
2817 else if (num216 == -15)
2818 {
2819 NPC.UnlockOrExchangePet(ref NPC.unlockedSlimeBlueSpawn, 670, "Misc.LicenseSlimeUsed", num216);
2820 }
2821 else if (num216 == -16)
2822 {
2823 NPC.SpawnMechQueen(num215);
2824 }
2825 else if (num216 == -17)
2826 {
2827 ChatHelper.BroadcastChatMessage(NetworkText.FromKey("Misc.CombatBookVolumeTwoUsed"), new Color(50, 255, 130));
2828 NPC.combatBookVolumeTwoWasUsed = true;
2829 NetMessage.TrySendData(7);
2830 }
2831 else if (num216 == -18)
2832 {
2833 ChatHelper.BroadcastChatMessage(NetworkText.FromKey("Misc.PeddlersSatchelUsed"), new Color(50, 255, 130));
2834 NPC.peddlersSatchelWasUsed = true;
2835 NetMessage.TrySendData(7);
2836 }
2837 else if (num216 < 0)
2838 {
2839 int num217 = 1;
2840 if (num216 > -InvasionID.Count)
2841 {
2842 num217 = -num216;
2843 }
2844 if (num217 > 0 && Main.invasionType == 0)
2845 {
2846 Main.invasionDelay = 0;
2847 Main.StartInvasion(num217);
2848 }
2849 NetMessage.TrySendData(78, -1, -1, null, 0, 1f, Main.invasionType + 3);
2850 }
2851 break;
2852 }
2853 case 62:
2854 {
2855 int num166 = reader.ReadByte();
2856 int num167 = reader.ReadByte();
2857 if (Main.netMode == 2)
2858 {
2859 num166 = whoAmI;
2860 }
2861 if (num167 == 1)
2862 {
2863 Main.player[num166].NinjaDodge();
2864 }
2865 if (num167 == 2)
2866 {
2867 Main.player[num166].ShadowDodge();
2868 }
2869 if (num167 == 4)
2870 {
2871 Main.player[num166].BrainOfConfusionDodge();
2872 }
2873 if (Main.netMode == 2)
2874 {
2875 NetMessage.TrySendData(62, -1, whoAmI, null, num166, num167);
2876 }
2877 break;
2878 }
2879 case 63:
2880 {
2881 int num144 = reader.ReadInt16();
2882 int num145 = reader.ReadInt16();
2883 byte b5 = reader.ReadByte();
2884 byte b6 = reader.ReadByte();
2885 if (b6 == 0)
2886 {
2887 WorldGen.paintTile(num144, num145, b5);
2888 }
2889 else
2890 {
2891 WorldGen.paintCoatTile(num144, num145, b5);
2892 }
2893 if (Main.netMode == 2)
2894 {
2895 NetMessage.TrySendData(63, -1, whoAmI, null, num144, num145, (int)b5, (int)b6);
2896 }
2897 break;
2898 }
2899 case 64:
2900 {
2901 int num131 = reader.ReadInt16();
2902 int num132 = reader.ReadInt16();
2903 byte b3 = reader.ReadByte();
2904 byte b4 = reader.ReadByte();
2905 if (b4 == 0)
2906 {
2907 WorldGen.paintWall(num131, num132, b3);
2908 }
2909 else
2910 {
2911 WorldGen.paintCoatWall(num131, num132, b3);
2912 }
2913 if (Main.netMode == 2)
2914 {
2915 NetMessage.TrySendData(64, -1, whoAmI, null, num131, num132, (int)b3, (int)b4);
2916 }
2917 break;
2918 }
2919 case 65:
2920 {
2921 BitsByte bitsByte6 = reader.ReadByte();
2922 int num51 = reader.ReadInt16();
2923 if (Main.netMode == 2)
2924 {
2925 num51 = whoAmI;
2926 }
2927 Vector2 vector = reader.ReadVector2();
2928 int num52 = 0;
2929 num52 = reader.ReadByte();
2930 int num53 = 0;
2931 if (bitsByte6[0])
2932 {
2933 num53++;
2934 }
2935 if (bitsByte6[1])
2936 {
2937 num53 += 2;
2938 }
2939 bool flag2 = false;
2940 if (bitsByte6[2])
2941 {
2942 flag2 = true;
2943 }
2944 int num54 = 0;
2945 if (bitsByte6[3])
2946 {
2948 }
2949 if (flag2)
2950 {
2951 vector = Main.player[num51].position;
2952 }
2953 switch (num53)
2954 {
2955 case 0:
2956 Main.player[num51].Teleport(vector, num52, num54);
2957 break;
2958 case 1:
2959 Main.npc[num51].Teleport(vector, num52, num54);
2960 break;
2961 case 2:
2962 {
2963 Main.player[num51].Teleport(vector, num52, num54);
2964 if (Main.netMode != 2)
2965 {
2966 break;
2967 }
2968 RemoteClient.CheckSection(whoAmI, vector);
2969 NetMessage.TrySendData(65, -1, -1, null, 0, num51, vector.X, vector.Y, num52, flag2.ToInt(), num54);
2970 int num55 = -1;
2971 float num56 = 9999f;
2972 for (int num57 = 0; num57 < 255; num57++)
2973 {
2974 if (Main.player[num57].active && num57 != whoAmI)
2975 {
2976 Vector2 vector2 = Main.player[num57].position - Main.player[whoAmI].position;
2977 if (vector2.Length() < num56)
2978 {
2979 num56 = vector2.Length();
2980 num55 = num57;
2981 }
2982 }
2983 }
2984 if (num55 >= 0)
2985 {
2986 ChatHelper.BroadcastChatMessage(NetworkText.FromKey("Game.HasTeleportedTo", Main.player[whoAmI].name, Main.player[num55].name), new Color(250, 250, 0));
2987 }
2988 break;
2989 }
2990 }
2991 if (Main.netMode == 2 && num53 == 0)
2992 {
2993 NetMessage.TrySendData(65, -1, whoAmI, null, num53, num51, vector.X, vector.Y, num52, flag2.ToInt(), num54);
2994 }
2995 break;
2996 }
2997 case 66:
2998 {
2999 int num30 = reader.ReadByte();
3000 int num31 = reader.ReadInt16();
3001 if (num31 > 0)
3002 {
3003 Player player3 = Main.player[num30];
3004 player3.statLife += num31;
3005 if (player3.statLife > player3.statLifeMax2)
3006 {
3007 player3.statLife = player3.statLifeMax2;
3008 }
3009 player3.HealEffect(num31, broadcast: false);
3010 if (Main.netMode == 2)
3011 {
3012 NetMessage.TrySendData(66, -1, whoAmI, null, num30, num31);
3013 }
3014 }
3015 break;
3016 }
3017 case 68:
3019 break;
3020 case 69:
3021 {
3022 int num247 = reader.ReadInt16();
3023 int num248 = reader.ReadInt16();
3024 int num249 = reader.ReadInt16();
3025 if (Main.netMode == 1)
3026 {
3027 if (num247 >= 0 && num247 < 8000)
3028 {
3029 Chest chest3 = Main.chest[num247];
3030 if (chest3 == null)
3031 {
3032 chest3 = new Chest();
3033 chest3.x = num248;
3034 chest3.y = num249;
3035 Main.chest[num247] = chest3;
3036 }
3037 else if (chest3.x != num248 || chest3.y != num249)
3038 {
3039 break;
3040 }
3041 chest3.name = reader.ReadString();
3042 }
3043 }
3044 else
3045 {
3046 if (num247 < -1 || num247 >= 8000)
3047 {
3048 break;
3049 }
3050 if (num247 == -1)
3051 {
3052 num247 = Chest.FindChest(num248, num249);
3053 if (num247 == -1)
3054 {
3055 break;
3056 }
3057 }
3058 Chest chest4 = Main.chest[num247];
3059 if (chest4.x == num248 && chest4.y == num249)
3060 {
3061 NetMessage.TrySendData(69, whoAmI, -1, null, num247, num248, num249);
3062 }
3063 }
3064 break;
3065 }
3066 case 70:
3067 if (Main.netMode == 2)
3068 {
3069 int num227 = reader.ReadInt16();
3070 int who = reader.ReadByte();
3071 if (Main.netMode == 2)
3072 {
3073 who = whoAmI;
3074 }
3076 {
3077 NPC.CatchNPC(num227, who);
3078 }
3079 }
3080 break;
3081 case 71:
3082 if (Main.netMode == 2)
3083 {
3084 int x13 = reader.ReadInt32();
3085 int y13 = reader.ReadInt32();
3086 int type11 = reader.ReadInt16();
3087 byte style3 = reader.ReadByte();
3088 NPC.ReleaseNPC(x13, y13, type11, style3, whoAmI);
3089 }
3090 break;
3091 case 72:
3092 if (Main.netMode == 1)
3093 {
3094 for (int num210 = 0; num210 < 40; num210++)
3095 {
3096 Main.travelShop[num210] = reader.ReadInt16();
3097 }
3098 }
3099 break;
3100 case 73:
3101 switch (reader.ReadByte())
3102 {
3103 case 0:
3104 Main.player[whoAmI].TeleportationPotion();
3105 break;
3106 case 1:
3107 Main.player[whoAmI].MagicConch();
3108 break;
3109 case 2:
3110 Main.player[whoAmI].DemonConch();
3111 break;
3112 case 3:
3113 Main.player[whoAmI].Shellphone_Spawn();
3114 break;
3115 }
3116 break;
3117 case 74:
3118 if (Main.netMode == 1)
3119 {
3120 Main.anglerQuest = reader.ReadByte();
3121 Main.anglerQuestFinished = reader.ReadBoolean();
3122 }
3123 break;
3124 case 75:
3125 if (Main.netMode == 2)
3126 {
3127 string name2 = Main.player[whoAmI].name;
3128 if (!Main.anglerWhoFinishedToday.Contains(name2))
3129 {
3130 Main.anglerWhoFinishedToday.Add(name2);
3131 }
3132 }
3133 break;
3134 case 76:
3135 {
3136 int num171 = reader.ReadByte();
3137 if (num171 != Main.myPlayer || Main.ServerSideCharacter)
3138 {
3139 if (Main.netMode == 2)
3140 {
3141 num171 = whoAmI;
3142 }
3143 Player obj6 = Main.player[num171];
3144 obj6.anglerQuestsFinished = reader.ReadInt32();
3145 obj6.golferScoreAccumulated = reader.ReadInt32();
3146 if (Main.netMode == 2)
3147 {
3148 NetMessage.TrySendData(76, -1, whoAmI, null, num171);
3149 }
3150 }
3151 break;
3152 }
3153 case 77:
3154 {
3155 short type9 = reader.ReadInt16();
3156 ushort tileType = reader.ReadUInt16();
3157 short x11 = reader.ReadInt16();
3158 short y11 = reader.ReadInt16();
3159 Animation.NewTemporaryAnimation(type9, tileType, x11, y11);
3160 break;
3161 }
3162 case 78:
3163 if (Main.netMode == 1)
3164 {
3165 Main.ReportInvasionProgress(reader.ReadInt32(), reader.ReadInt32(), reader.ReadSByte(), reader.ReadSByte());
3166 }
3167 break;
3168 case 79:
3169 {
3170 int x9 = reader.ReadInt16();
3171 int y9 = reader.ReadInt16();
3172 short type7 = reader.ReadInt16();
3173 int style2 = reader.ReadInt16();
3174 int num140 = reader.ReadByte();
3175 int random = reader.ReadSByte();
3176 int direction = (reader.ReadBoolean() ? 1 : (-1));
3177 if (Main.netMode == 2)
3178 {
3179 Netplay.Clients[whoAmI].SpamAddBlock += 1f;
3180 if (!WorldGen.InWorld(x9, y9, 10) || !Netplay.Clients[whoAmI].TileSections[Netplay.GetSectionX(x9), Netplay.GetSectionY(y9)])
3181 {
3182 break;
3183 }
3184 }
3185 WorldGen.PlaceObject(x9, y9, type7, mute: false, style2, num140, random, direction);
3186 if (Main.netMode == 2)
3187 {
3188 NetMessage.SendObjectPlacement(whoAmI, x9, y9, type7, style2, num140, random, direction);
3189 }
3190 break;
3191 }
3192 case 80:
3193 if (Main.netMode == 1)
3194 {
3195 int num127 = reader.ReadByte();
3196 int num128 = reader.ReadInt16();
3197 if (num128 >= -3 && num128 < 8000)
3198 {
3199 Main.player[num127].chest = num128;
3200 Recipe.FindRecipes(canDelayCheck: true);
3201 }
3202 }
3203 break;
3204 case 81:
3205 if (Main.netMode == 1)
3206 {
3207 int x7 = (int)reader.ReadSingle();
3208 int y7 = (int)reader.ReadSingle();
3209 CombatText.NewText(color: reader.ReadRGB(), amount: reader.ReadInt32(), location: new Rectangle(x7, y7, 0, 0));
3210 }
3211 break;
3212 case 119:
3213 if (Main.netMode == 1)
3214 {
3215 int x8 = (int)reader.ReadSingle();
3216 int y8 = (int)reader.ReadSingle();
3217 CombatText.NewText(color: reader.ReadRGB(), text: NetworkText.Deserialize(reader).ToString(), location: new Rectangle(x8, y8, 0, 0));
3218 }
3219 break;
3220 case 82:
3222 break;
3223 case 83:
3224 if (Main.netMode == 1)
3225 {
3226 int num103 = reader.ReadInt16();
3227 int num104 = reader.ReadInt32();
3228 if (num103 >= 0 && num103 < 290)
3229 {
3230 NPC.killCount[num103] = num104;
3231 }
3232 }
3233 break;
3234 case 84:
3235 {
3236 int num102 = reader.ReadByte();
3237 if (Main.netMode == 2)
3238 {
3239 num102 = whoAmI;
3240 }
3241 float stealth = reader.ReadSingle();
3242 Main.player[num102].stealth = stealth;
3243 if (Main.netMode == 2)
3244 {
3245 NetMessage.TrySendData(84, -1, whoAmI, null, num102);
3246 }
3247 break;
3248 }
3249 case 85:
3250 {
3251 int num97 = whoAmI;
3252 int slot = reader.ReadInt16();
3253 if (Main.netMode == 2 && num97 < 255)
3254 {
3255 Chest.ServerPlaceItem(whoAmI, slot);
3256 }
3257 break;
3258 }
3259 case 86:
3260 {
3261 if (Main.netMode != 1)
3262 {
3263 break;
3264 }
3265 int num67 = reader.ReadInt32();
3266 if (!reader.ReadBoolean())
3267 {
3268 if (TileEntity.ByID.TryGetValue(num67, out var value3))
3269 {
3270 TileEntity.ByID.Remove(num67);
3271 TileEntity.ByPosition.Remove(value3.Position);
3272 }
3273 }
3274 else
3275 {
3277 tileEntity.ID = num67;
3280 }
3281 break;
3282 }
3283 case 87:
3284 if (Main.netMode == 2)
3285 {
3286 int x6 = reader.ReadInt16();
3287 int y6 = reader.ReadInt16();
3288 int type3 = reader.ReadByte();
3289 if (WorldGen.InWorld(x6, y6) && !TileEntity.ByPosition.ContainsKey(new Point16(x6, y6)))
3290 {
3292 }
3293 }
3294 break;
3295 case 88:
3296 {
3297 if (Main.netMode != 1)
3298 {
3299 break;
3300 }
3301 int num218 = reader.ReadInt16();
3302 if (num218 < 0 || num218 > 400)
3303 {
3304 break;
3305 }
3306 Item item5 = Main.item[num218];
3307 BitsByte bitsByte27 = reader.ReadByte();
3308 if (bitsByte27[0])
3309 {
3310 item5.color.PackedValue = reader.ReadUInt32();
3311 }
3312 if (bitsByte27[1])
3313 {
3314 item5.damage = reader.ReadUInt16();
3315 }
3316 if (bitsByte27[2])
3317 {
3318 item5.knockBack = reader.ReadSingle();
3319 }
3320 if (bitsByte27[3])
3321 {
3322 item5.useAnimation = reader.ReadUInt16();
3323 }
3324 if (bitsByte27[4])
3325 {
3326 item5.useTime = reader.ReadUInt16();
3327 }
3328 if (bitsByte27[5])
3329 {
3330 item5.shoot = reader.ReadInt16();
3331 }
3332 if (bitsByte27[6])
3333 {
3334 item5.shootSpeed = reader.ReadSingle();
3335 }
3336 if (bitsByte27[7])
3337 {
3339 if (bitsByte27[0])
3340 {
3341 item5.width = reader.ReadInt16();
3342 }
3343 if (bitsByte27[1])
3344 {
3345 item5.height = reader.ReadInt16();
3346 }
3347 if (bitsByte27[2])
3348 {
3349 item5.scale = reader.ReadSingle();
3350 }
3351 if (bitsByte27[3])
3352 {
3353 item5.ammo = reader.ReadInt16();
3354 }
3355 if (bitsByte27[4])
3356 {
3357 item5.useAmmo = reader.ReadInt16();
3358 }
3359 if (bitsByte27[5])
3360 {
3361 item5.notAmmo = reader.ReadBoolean();
3362 }
3363 }
3364 break;
3365 }
3366 case 89:
3367 if (Main.netMode == 2)
3368 {
3369 short x12 = reader.ReadInt16();
3370 int y12 = reader.ReadInt16();
3371 int netid3 = reader.ReadInt16();
3372 int prefix3 = reader.ReadByte();
3373 int stack6 = reader.ReadInt16();
3375 }
3376 break;
3377 case 91:
3378 {
3379 if (Main.netMode != 1)
3380 {
3381 break;
3382 }
3383 int num185 = reader.ReadInt32();
3384 int num186 = reader.ReadByte();
3385 if (num186 == 255)
3386 {
3387 if (EmoteBubble.byID.ContainsKey(num185))
3388 {
3389 EmoteBubble.byID.Remove(num185);
3390 }
3391 break;
3392 }
3393 int num187 = reader.ReadUInt16();
3394 int num188 = reader.ReadUInt16();
3395 int num189 = reader.ReadByte();
3396 int metadata = 0;
3397 if (num189 < 0)
3398 {
3399 metadata = reader.ReadInt16();
3400 }
3402 if (num186 == 1)
3403 {
3404 Main.player[num187].emoteTime = 360;
3405 }
3407 {
3408 if (!EmoteBubble.byID.ContainsKey(num185))
3409 {
3411 }
3412 else
3413 {
3414 EmoteBubble.byID[num185].lifeTime = num188;
3415 EmoteBubble.byID[num185].lifeTimeStart = num188;
3416 EmoteBubble.byID[num185].emote = num189;
3418 }
3420 EmoteBubble.byID[num185].metadata = metadata;
3422 break;
3423 }
3424 }
3425 case 92:
3426 {
3427 int num172 = reader.ReadInt16();
3428 int num173 = reader.ReadInt32();
3429 float num174 = reader.ReadSingle();
3430 float num175 = reader.ReadSingle();
3431 if (num172 >= 0 && num172 <= 200)
3432 {
3433 if (Main.netMode == 1)
3434 {
3435 Main.npc[num172].moneyPing(new Vector2(num174, num175));
3436 Main.npc[num172].extraValue = num173;
3437 }
3438 else
3439 {
3440 Main.npc[num172].extraValue += num173;
3441 NetMessage.TrySendData(92, -1, -1, null, num172, Main.npc[num172].extraValue, num174, num175);
3442 }
3443 }
3444 break;
3445 }
3446 case 95:
3447 {
3448 ushort num168 = reader.ReadUInt16();
3449 int num169 = reader.ReadByte();
3450 if (Main.netMode != 2)
3451 {
3452 break;
3453 }
3454 for (int num170 = 0; num170 < 1000; num170++)
3455 {
3456 if (Main.projectile[num170].owner == num168 && Main.projectile[num170].active && Main.projectile[num170].type == 602 && Main.projectile[num170].ai[1] == (float)num169)
3457 {
3458 Main.projectile[num170].Kill();
3459 NetMessage.TrySendData(29, -1, -1, null, Main.projectile[num170].identity, (int)num168);
3460 break;
3461 }
3462 }
3463 break;
3464 }
3465 case 96:
3466 {
3467 int num162 = reader.ReadByte();
3468 Player obj5 = Main.player[num162];
3469 int num163 = reader.ReadInt16();
3470 Vector2 newPos2 = reader.ReadVector2();
3471 Vector2 velocity6 = reader.ReadVector2();
3472 int lastPortalColorIndex2 = num163 + ((num163 % 2 == 0) ? 1 : (-1));
3473 obj5.lastPortalColorIndex = lastPortalColorIndex2;
3474 obj5.Teleport(newPos2, 4, num163);
3475 obj5.velocity = velocity6;
3476 if (Main.netMode == 2)
3477 {
3478 NetMessage.SendData(96, -1, -1, null, num162, newPos2.X, newPos2.Y, num163);
3479 }
3480 break;
3481 }
3482 case 97:
3483 if (Main.netMode == 1)
3484 {
3485 AchievementsHelper.NotifyNPCKilledDirect(Main.player[Main.myPlayer], reader.ReadInt16());
3486 }
3487 break;
3488 case 98:
3489 if (Main.netMode == 1)
3490 {
3492 }
3493 break;
3494 case 99:
3495 {
3496 int num141 = reader.ReadByte();
3497 if (Main.netMode == 2)
3498 {
3499 num141 = whoAmI;
3500 }
3501 Main.player[num141].MinionRestTargetPoint = reader.ReadVector2();
3502 if (Main.netMode == 2)
3503 {
3504 NetMessage.TrySendData(99, -1, whoAmI, null, num141);
3505 }
3506 break;
3507 }
3508 case 115:
3509 {
3510 int num136 = reader.ReadByte();
3511 if (Main.netMode == 2)
3512 {
3513 num136 = whoAmI;
3514 }
3515 Main.player[num136].MinionAttackTargetNPC = reader.ReadInt16();
3516 if (Main.netMode == 2)
3517 {
3518 NetMessage.TrySendData(115, -1, whoAmI, null, num136);
3519 }
3520 break;
3521 }
3522 case 100:
3523 {
3524 int num129 = reader.ReadUInt16();
3525 NPC obj3 = Main.npc[num129];
3526 int num130 = reader.ReadInt16();
3527 Vector2 newPos = reader.ReadVector2();
3528 Vector2 velocity4 = reader.ReadVector2();
3529 int lastPortalColorIndex = num130 + ((num130 % 2 == 0) ? 1 : (-1));
3530 obj3.lastPortalColorIndex = lastPortalColorIndex;
3531 obj3.Teleport(newPos, 4, num130);
3532 obj3.velocity = velocity4;
3533 obj3.netOffset *= 0f;
3534 break;
3535 }
3536 case 101:
3537 if (Main.netMode != 2)
3538 {
3539 NPC.ShieldStrengthTowerSolar = reader.ReadUInt16();
3540 NPC.ShieldStrengthTowerVortex = reader.ReadUInt16();
3541 NPC.ShieldStrengthTowerNebula = reader.ReadUInt16();
3542 NPC.ShieldStrengthTowerStardust = reader.ReadUInt16();
3543 if (NPC.ShieldStrengthTowerSolar < 0)
3544 {
3545 NPC.ShieldStrengthTowerSolar = 0;
3546 }
3547 if (NPC.ShieldStrengthTowerVortex < 0)
3548 {
3549 NPC.ShieldStrengthTowerVortex = 0;
3550 }
3551 if (NPC.ShieldStrengthTowerNebula < 0)
3552 {
3553 NPC.ShieldStrengthTowerNebula = 0;
3554 }
3555 if (NPC.ShieldStrengthTowerStardust < 0)
3556 {
3557 NPC.ShieldStrengthTowerStardust = 0;
3558 }
3559 if (NPC.ShieldStrengthTowerSolar > NPC.LunarShieldPowerMax)
3560 {
3561 NPC.ShieldStrengthTowerSolar = NPC.LunarShieldPowerMax;
3562 }
3563 if (NPC.ShieldStrengthTowerVortex > NPC.LunarShieldPowerMax)
3564 {
3565 NPC.ShieldStrengthTowerVortex = NPC.LunarShieldPowerMax;
3566 }
3567 if (NPC.ShieldStrengthTowerNebula > NPC.LunarShieldPowerMax)
3568 {
3569 NPC.ShieldStrengthTowerNebula = NPC.LunarShieldPowerMax;
3570 }
3571 if (NPC.ShieldStrengthTowerStardust > NPC.LunarShieldPowerMax)
3572 {
3573 NPC.ShieldStrengthTowerStardust = NPC.LunarShieldPowerMax;
3574 }
3575 }
3576 break;
3577 case 102:
3578 {
3579 int num58 = reader.ReadByte();
3580 ushort num59 = reader.ReadUInt16();
3581 Vector2 other = reader.ReadVector2();
3582 if (Main.netMode == 2)
3583 {
3584 num58 = whoAmI;
3585 NetMessage.TrySendData(102, -1, -1, null, num58, (int)num59, other.X, other.Y);
3586 break;
3587 }
3588 Player player4 = Main.player[num58];
3589 for (int num60 = 0; num60 < 255; num60++)
3590 {
3591 Player player5 = Main.player[num60];
3592 if (!player5.active || player5.dead || (player4.team != 0 && player4.team != player5.team) || !(player5.Distance(other) < 700f))
3593 {
3594 continue;
3595 }
3596 Vector2 value2 = player4.Center - player5.Center;
3598 if (!vector3.HasNaNs())
3599 {
3600 int type4 = 90;
3601 float num61 = 0f;
3602 float num62 = (float)Math.PI / 15f;
3603 Vector2 spinningpoint = new Vector2(0f, -8f);
3604 Vector2 vector4 = new Vector2(-3f);
3605 float num63 = 0f;
3606 float num64 = 0.005f;
3607 switch (num59)
3608 {
3609 case 179:
3610 type4 = 86;
3611 break;
3612 case 173:
3613 type4 = 90;
3614 break;
3615 case 176:
3616 type4 = 88;
3617 break;
3618 }
3619 for (int num65 = 0; (float)num65 < value2.Length() / 6f; num65++)
3620 {
3621 Vector2 position2 = player5.Center + 6f * (float)num65 * vector3 + spinningpoint.RotatedBy(num61) + vector4;
3622 num61 += num62;
3623 int num66 = Dust.NewDust(position2, 6, 6, type4, 0f, 0f, 100, default(Color), 1.5f);
3624 Main.dust[num66].noGravity = true;
3625 Main.dust[num66].velocity = Vector2.Zero;
3626 num63 = (Main.dust[num66].fadeIn = num63 + num64);
3627 Main.dust[num66].velocity += vector3 * 1.5f;
3628 }
3629 }
3630 player5.NebulaLevelup(num59);
3631 }
3632 break;
3633 }
3634 case 103:
3635 if (Main.netMode == 1)
3636 {
3637 NPC.MaxMoonLordCountdown = reader.ReadInt32();
3638 NPC.MoonLordCountdown = reader.ReadInt32();
3639 }
3640 break;
3641 case 104:
3642 if (Main.netMode == 1 && Main.npcShop > 0)
3643 {
3644 Item[] item = Main.instance.shop[Main.npcShop].item;
3645 int num47 = reader.ReadByte();
3646 int type2 = reader.ReadInt16();
3647 int stack2 = reader.ReadInt16();
3649 int value = reader.ReadInt32();
3650 BitsByte bitsByte5 = reader.ReadByte();
3651 if (num47 < item.Length)
3652 {
3653 item[num47] = new Item();
3654 item[num47].netDefaults(type2);
3655 item[num47].stack = stack2;
3656 item[num47].Prefix(prefixWeWant);
3657 item[num47].value = value;
3658 item[num47].buyOnce = bitsByte5[0];
3659 }
3660 }
3661 break;
3662 case 105:
3663 if (Main.netMode != 1)
3664 {
3665 short i2 = reader.ReadInt16();
3666 int j2 = reader.ReadInt16();
3667 bool on = reader.ReadBoolean();
3668 WorldGen.ToggleGemLock(i2, j2, on);
3669 }
3670 break;
3671 case 106:
3672 if (Main.netMode == 1)
3673 {
3674 HalfVector2 halfVector = default(HalfVector2);
3675 halfVector.PackedValue = reader.ReadUInt32();
3676 Utils.PoofOfSmoke(halfVector.ToVector2());
3677 }
3678 break;
3679 case 107:
3680 if (Main.netMode == 1)
3681 {
3682 Color c = reader.ReadRGB();
3683 string text3 = NetworkText.Deserialize(reader).ToString();
3684 int widthLimit = reader.ReadInt16();
3685 Main.NewTextMultiline(text3, force: false, c, widthLimit);
3686 }
3687 break;
3688 case 108:
3689 if (Main.netMode == 1)
3690 {
3691 int damage = reader.ReadInt16();
3692 float knockBack = reader.ReadSingle();
3693 int x4 = reader.ReadInt16();
3694 int y4 = reader.ReadInt16();
3695 int angle = reader.ReadInt16();
3696 int ammo = reader.ReadInt16();
3697 int num32 = reader.ReadByte();
3698 if (num32 == Main.myPlayer)
3699 {
3700 WorldGen.ShootFromCannon(x4, y4, angle, ammo, damage, knockBack, num32, fromWire: true);
3701 }
3702 }
3703 break;
3704 case 109:
3705 if (Main.netMode == 2)
3706 {
3707 short x2 = reader.ReadInt16();
3708 int y2 = reader.ReadInt16();
3709 int x3 = reader.ReadInt16();
3710 int y3 = reader.ReadInt16();
3711 byte toolMode = reader.ReadByte();
3712 int num29 = whoAmI;
3714 WiresUI.Settings.ToolMode = (WiresUI.Settings.MultiToolMode)toolMode;
3715 Wiring.MassWireOperation(new Point(x2, y2), new Point(x3, y3), Main.player[num29]);
3716 WiresUI.Settings.ToolMode = toolMode2;
3717 }
3718 break;
3719 case 110:
3720 {
3721 if (Main.netMode != 1)
3722 {
3723 break;
3724 }
3725 int type = reader.ReadInt16();
3726 int num19 = reader.ReadInt16();
3727 int num20 = reader.ReadByte();
3728 if (num20 == Main.myPlayer)
3729 {
3730 Player player2 = Main.player[num20];
3731 for (int k = 0; k < num19; k++)
3732 {
3733 player2.ConsumeItem(type);
3734 }
3735 player2.wireOperationsCooldown = 0;
3736 }
3737 break;
3738 }
3739 case 111:
3740 if (Main.netMode == 2)
3741 {
3743 }
3744 break;
3745 case 112:
3746 {
3747 int num13 = reader.ReadByte();
3748 int num14 = reader.ReadInt32();
3749 int num15 = reader.ReadInt32();
3750 int num16 = reader.ReadByte();
3751 int num17 = reader.ReadInt16();
3752 switch (num13)
3753 {
3754 case 1:
3755 if (Main.netMode == 1)
3756 {
3757 WorldGen.TreeGrowFX(num14, num15, num16, num17);
3758 }
3759 if (Main.netMode == 2)
3760 {
3761 NetMessage.TrySendData(b, -1, -1, null, num13, num14, num15, num16, num17);
3762 }
3763 break;
3764 case 2:
3765 NPC.FairyEffects(new Vector2(num14, num15), num17);
3766 break;
3767 }
3768 break;
3769 }
3770 case 113:
3771 {
3772 int x14 = reader.ReadInt16();
3773 int y14 = reader.ReadInt16();
3774 if (Main.netMode == 2 && !Main.snowMoon && !Main.pumpkinMoon)
3775 {
3777 {
3779 }
3781 }
3782 break;
3783 }
3784 case 114:
3785 if (Main.netMode == 1)
3786 {
3788 }
3789 break;
3790 case 116:
3791 if (Main.netMode == 1)
3792 {
3793 DD2Event.TimeLeftBetweenWaves = reader.ReadInt32();
3794 }
3795 break;
3796 case 117:
3797 {
3798 int num234 = reader.ReadByte();
3799 if (Main.netMode != 2 || whoAmI == num234 || (Main.player[num234].hostile && Main.player[whoAmI].hostile))
3800 {
3802 int damage3 = reader.ReadInt16();
3803 int num235 = reader.ReadByte() - 1;
3804 BitsByte bitsByte31 = reader.ReadByte();
3805 bool flag15 = bitsByte31[0];
3806 bool pvp2 = bitsByte31[1];
3807 int num236 = reader.ReadSByte();
3809 if (Main.netMode == 2)
3810 {
3811 NetMessage.SendPlayerHurt(num234, playerDeathReason2, damage3, num235, flag15, pvp2, num236, -1, whoAmI);
3812 }
3813 }
3814 break;
3815 }
3816 case 118:
3817 {
3818 int num223 = reader.ReadByte();
3819 if (Main.netMode == 2)
3820 {
3821 num223 = whoAmI;
3822 }
3824 int num224 = reader.ReadInt16();
3825 int num225 = reader.ReadByte() - 1;
3826 bool pvp = ((BitsByte)reader.ReadByte())[0];
3827 Main.player[num223].KillMe(playerDeathReason, num224, num225, pvp);
3828 if (Main.netMode == 2)
3829 {
3830 NetMessage.SendPlayerDeath(num223, playerDeathReason, num224, num225, pvp, -1, whoAmI);
3831 }
3832 break;
3833 }
3834 case 120:
3835 {
3836 int num213 = reader.ReadByte();
3837 if (Main.netMode == 2)
3838 {
3839 num213 = whoAmI;
3840 }
3841 int num214 = reader.ReadByte();
3842 if (num214 >= 0 && num214 < EmoteID.Count && Main.netMode == 2)
3843 {
3844 EmoteBubble.NewBubble(num214, new WorldUIAnchor(Main.player[num213]), 360);
3846 }
3847 break;
3848 }
3849 case 121:
3850 {
3851 int num182 = reader.ReadByte();
3852 if (Main.netMode == 2)
3853 {
3854 num182 = whoAmI;
3855 }
3856 int num183 = reader.ReadInt32();
3857 int num184 = reader.ReadByte();
3858 bool flag11 = false;
3859 if (num184 >= 8)
3860 {
3861 flag11 = true;
3862 num184 -= 8;
3863 }
3864 if (!TileEntity.ByID.TryGetValue(num183, out var value9))
3865 {
3866 reader.ReadInt32();
3867 reader.ReadByte();
3868 break;
3869 }
3870 if (num184 >= 8)
3871 {
3872 value9 = null;
3873 }
3875 {
3876 tEDisplayDoll.ReadItem(num184, reader, flag11);
3877 }
3878 else
3879 {
3880 reader.ReadInt32();
3881 reader.ReadByte();
3882 }
3883 if (Main.netMode == 2)
3884 {
3885 NetMessage.TrySendData(b, -1, num182, null, num182, num183, num184, flag11.ToInt());
3886 }
3887 break;
3888 }
3889 case 122:
3890 {
3891 int num153 = reader.ReadInt32();
3892 int num154 = reader.ReadByte();
3893 if (Main.netMode == 2)
3894 {
3895 num154 = whoAmI;
3896 }
3897 if (Main.netMode == 2)
3898 {
3899 if (num153 == -1)
3900 {
3901 Main.player[num154].tileEntityAnchor.Clear();
3902 NetMessage.TrySendData(b, -1, -1, null, num153, num154);
3903 break;
3904 }
3906 {
3907 Main.player[num154].tileEntityAnchor.Set(num153, value6.Position.X, value6.Position.Y);
3908 NetMessage.TrySendData(b, -1, -1, null, num153, num154);
3909 }
3910 }
3911 if (Main.netMode == 1)
3912 {
3914 if (num153 == -1)
3915 {
3916 Main.player[num154].tileEntityAnchor.Clear();
3917 }
3918 else if (TileEntity.ByID.TryGetValue(num153, out value7))
3919 {
3920 TileEntity.SetInteractionAnchor(Main.player[num154], value7.Position.X, value7.Position.Y, num153);
3921 }
3922 }
3923 break;
3924 }
3925 case 123:
3926 if (Main.netMode == 2)
3927 {
3928 short x10 = reader.ReadInt16();
3929 int y10 = reader.ReadInt16();
3930 int netid2 = reader.ReadInt16();
3931 int prefix2 = reader.ReadByte();
3932 int stack4 = reader.ReadInt16();
3934 }
3935 break;
3936 case 124:
3937 {
3938 int num133 = reader.ReadByte();
3939 if (Main.netMode == 2)
3940 {
3941 num133 = whoAmI;
3942 }
3943 int num134 = reader.ReadInt32();
3944 int num135 = reader.ReadByte();
3945 bool flag7 = false;
3946 if (num135 >= 2)
3947 {
3948 flag7 = true;
3949 num135 -= 2;
3950 }
3951 if (!TileEntity.ByID.TryGetValue(num134, out var value4))
3952 {
3953 reader.ReadInt32();
3954 reader.ReadByte();
3955 break;
3956 }
3957 if (num135 >= 2)
3958 {
3959 value4 = null;
3960 }
3962 {
3963 tEHatRack.ReadItem(num135, reader, flag7);
3964 }
3965 else
3966 {
3967 reader.ReadInt32();
3968 reader.ReadByte();
3969 }
3970 if (Main.netMode == 2)
3971 {
3972 NetMessage.TrySendData(b, -1, num133, null, num133, num134, num135, flag7.ToInt());
3973 }
3974 break;
3975 }
3976 case 125:
3977 {
3978 int num123 = reader.ReadByte();
3979 int num124 = reader.ReadInt16();
3980 int num125 = reader.ReadInt16();
3981 int num126 = reader.ReadByte();
3982 if (Main.netMode == 2)
3983 {
3984 num123 = whoAmI;
3985 }
3986 if (Main.netMode == 1)
3987 {
3988 Main.player[Main.myPlayer].GetOtherPlayersPickTile(num124, num125, num126);
3989 }
3990 if (Main.netMode == 2)
3991 {
3992 NetMessage.TrySendData(125, -1, num123, null, num123, num124, num125, num126);
3993 }
3994 break;
3995 }
3996 case 126:
3997 if (Main.netMode == 1)
3998 {
3999 NPC.RevengeManager.AddMarkerFromReader(reader);
4000 }
4001 break;
4002 case 127:
4003 {
4005 if (Main.netMode == 1)
4006 {
4007 NPC.RevengeManager.DestroyMarker(markerUniqueID);
4008 }
4009 break;
4010 }
4011 case 128:
4012 {
4013 int num112 = reader.ReadByte();
4014 int num113 = reader.ReadUInt16();
4015 int num114 = reader.ReadUInt16();
4016 int num115 = reader.ReadUInt16();
4017 int num116 = reader.ReadUInt16();
4018 if (Main.netMode == 2)
4019 {
4020 NetMessage.SendData(128, -1, num112, null, num112, num115, num116, 0f, num113, num114);
4021 }
4022 else
4023 {
4025 }
4026 break;
4027 }
4028 case 129:
4029 if (Main.netMode == 1)
4030 {
4031 Main.FixUIScale();
4032 Main.TrySetPreparationState(Main.WorldPreparationState.ProcessingData);
4033 }
4034 break;
4035 case 130:
4036 {
4037 if (Main.netMode != 2)
4038 {
4039 break;
4040 }
4041 int num93 = reader.ReadUInt16();
4042 int num94 = reader.ReadUInt16();
4043 int num95 = reader.ReadInt16();
4044 if (num95 == 682)
4045 {
4046 if (NPC.unlockedSlimeRedSpawn)
4047 {
4048 break;
4049 }
4050 NPC.unlockedSlimeRedSpawn = true;
4051 NetMessage.TrySendData(7);
4052 }
4053 num93 *= 16;
4054 num94 *= 16;
4055 NPC nPC3 = new NPC();
4056 nPC3.SetDefaults(num95);
4057 int type5 = nPC3.type;
4058 int netID = nPC3.netID;
4059 int num96 = NPC.NewNPC(new EntitySource_FishedOut(Main.player[whoAmI]), num93, num94, num95);
4060 if (netID != type5)
4061 {
4062 Main.npc[num96].SetDefaults(netID);
4063 NetMessage.TrySendData(23, -1, -1, null, num96);
4064 }
4065 if (num95 == 682)
4066 {
4067 WorldGen.CheckAchievement_RealEstateAndTownSlimes();
4068 }
4069 break;
4070 }
4071 case 131:
4072 if (Main.netMode == 1)
4073 {
4074 int num68 = reader.ReadUInt16();
4075 NPC nPC = null;
4076 nPC = ((num68 >= 200) ? new NPC() : Main.npc[num68]);
4077 int num69 = reader.ReadByte();
4078 if (num69 == 1)
4079 {
4080 int time = reader.ReadInt32();
4081 int fromWho = reader.ReadInt16();
4082 nPC.GetImmuneTime(fromWho, time);
4083 }
4084 }
4085 break;
4086 case 132:
4087 if (Main.netMode == 1)
4088 {
4089 Point point = reader.ReadVector2().ToPoint();
4090 ushort key = reader.ReadUInt16();
4092 BitsByte bitsByte4 = reader.ReadByte();
4093 int num44 = -1;
4094 float num45 = 1f;
4095 float num46 = 0f;
4096 SoundEngine.PlaySound(Style: (!bitsByte4[0]) ? legacySoundStyle.Style : reader.ReadInt32(), volumeScale: (!bitsByte4[1]) ? legacySoundStyle.Volume : MathHelper.Clamp(reader.ReadSingle(), 0f, 1f), pitchOffset: (!bitsByte4[2]) ? legacySoundStyle.GetRandomPitch() : MathHelper.Clamp(reader.ReadSingle(), -1f, 1f), type: legacySoundStyle.SoundId, x: point.X, y: point.Y);
4097 }
4098 break;
4099 case 133:
4100 if (Main.netMode == 2)
4101 {
4102 short x5 = reader.ReadInt16();
4103 int y5 = reader.ReadInt16();
4104 int netid = reader.ReadInt16();
4105 int prefix = reader.ReadByte();
4106 int stack = reader.ReadInt16();
4108 }
4109 break;
4110 case 134:
4111 {
4112 int num41 = reader.ReadByte();
4113 int ladyBugLuckTimeLeft = reader.ReadInt32();
4114 float torchLuck = reader.ReadSingle();
4115 byte luckPotion = reader.ReadByte();
4117 float equipmentBasedLuckBonus = reader.ReadSingle();
4118 float coinLuck = reader.ReadSingle();
4119 if (Main.netMode == 2)
4120 {
4121 num41 = whoAmI;
4122 }
4123 Player obj2 = Main.player[num41];
4124 obj2.ladyBugLuckTimeLeft = ladyBugLuckTimeLeft;
4125 obj2.torchLuck = torchLuck;
4126 obj2.luckPotion = luckPotion;
4127 obj2.HasGardenGnomeNearby = hasGardenGnomeNearby;
4128 obj2.equipmentBasedLuckBonus = equipmentBasedLuckBonus;
4129 obj2.coinLuck = coinLuck;
4130 obj2.RecalculateLuck();
4131 if (Main.netMode == 2)
4132 {
4133 NetMessage.SendData(134, -1, num41, null, num41);
4134 }
4135 break;
4136 }
4137 case 135:
4138 {
4139 int num33 = reader.ReadByte();
4140 if (Main.netMode == 1)
4141 {
4142 Main.player[num33].immuneAlpha = 255;
4143 }
4144 break;
4145 }
4146 case 136:
4147 {
4148 for (int l = 0; l < 2; l++)
4149 {
4150 for (int m = 0; m < 3; m++)
4151 {
4152 NPC.cavernMonsterType[l, m] = reader.ReadUInt16();
4153 }
4154 }
4155 break;
4156 }
4157 case 137:
4158 if (Main.netMode == 2)
4159 {
4160 int num28 = reader.ReadInt16();
4162 if (num28 >= 0 && num28 < 200)
4163 {
4164 Main.npc[num28].RequestBuffRemoval(buffTypeToRemove);
4165 }
4166 }
4167 break;
4168 case 139:
4169 if (Main.netMode != 2)
4170 {
4171 int num26 = reader.ReadByte();
4172 bool flag = reader.ReadBoolean();
4173 Main.countsAsHostForGameplay[num26] = flag;
4174 }
4175 break;
4176 case 140:
4177 {
4178 int num24 = reader.ReadByte();
4179 int num25 = reader.ReadInt32();
4180 switch (num24)
4181 {
4182 case 0:
4183 if (Main.netMode == 1)
4184 {
4186 }
4187 break;
4188 case 1:
4189 if (Main.netMode == 2)
4190 {
4191 NPC.TransformCopperSlime(num25);
4192 }
4193 break;
4194 case 2:
4195 if (Main.netMode == 2)
4196 {
4197 NPC.TransformElderSlime(num25);
4198 }
4199 break;
4200 }
4201 break;
4202 }
4203 case 141:
4204 {
4206 byte b2 = reader.ReadByte();
4207 Vector2 velocity = reader.ReadVector2();
4208 int num21 = reader.ReadInt32();
4209 int num22 = reader.ReadInt32();
4210 if (Main.netMode == 2)
4211 {
4212 NetMessage.SendData(141, -1, whoAmI, null, (int)messageSource, (int)b2, velocity.X, velocity.Y, num21, num22);
4213 }
4214 else
4215 {
4217 }
4218 break;
4219 }
4220 case 142:
4221 {
4222 int num18 = reader.ReadByte();
4223 if (Main.netMode == 2)
4224 {
4225 num18 = whoAmI;
4226 }
4227 Player obj = Main.player[num18];
4228 obj.piggyBankProjTracker.TryReading(reader);
4229 obj.voidLensChest.TryReading(reader);
4230 if (Main.netMode == 2)
4231 {
4232 NetMessage.TrySendData(142, -1, whoAmI, null, num18);
4233 }
4234 break;
4235 }
4236 case 143:
4237 if (Main.netMode == 2)
4238 {
4240 }
4241 break;
4242 case 144:
4243 if (Main.netMode == 2)
4244 {
4245 NPC.HaveDryadDoStardewAnimation();
4246 }
4247 break;
4248 case 146:
4249 switch (reader.ReadByte())
4250 {
4251 case 0:
4252 Item.ShimmerEffect(reader.ReadVector2());
4253 break;
4254 case 1:
4255 {
4256 Vector2 coinPosition = reader.ReadVector2();
4257 int coinAmount = reader.ReadInt32();
4258 Main.player[Main.myPlayer].AddCoinLuck(coinPosition, coinAmount);
4259 break;
4260 }
4261 case 2:
4262 {
4263 int num12 = reader.ReadInt32();
4264 Main.npc[num12].SetNetShimmerEffect();
4265 break;
4266 }
4267 }
4268 break;
4269 case 147:
4270 {
4271 int num6 = reader.ReadByte();
4272 if (Main.netMode == 2)
4273 {
4274 num6 = whoAmI;
4275 }
4276 int num7 = reader.ReadByte();
4277 Main.player[num6].TrySwitchingLoadout(num7);
4278 ReadAccessoryVisibility(reader, Main.player[num6].hideVisibleAccessory);
4279 if (Main.netMode == 2)
4280 {
4281 NetMessage.TrySendData(b, -1, num6, null, num6, num7);
4282 }
4283 break;
4284 }
4285 default:
4286 if (Netplay.Clients[whoAmI].State == 0)
4287 {
4288 NetMessage.BootPlayer(whoAmI, Lang.mp[2].ToNetworkText());
4289 }
4290 break;
4291 case 15:
4292 case 25:
4293 case 26:
4294 case 44:
4295 case 67:
4296 case 93:
4297 break;
4298 }
4299 }
static float Clamp(float value, float min, float max)
Definition MathHelper.cs:46
void Add(TKey key, TValue value)
static bool IsDefined(Type enumType, object value)
Definition Enum.cs:359
virtual bool ReadBoolean()
virtual byte ReadByte()
virtual string ReadString()
virtual ulong ReadUInt64()
virtual float ReadSingle()
virtual sbyte ReadSByte()
virtual ushort ReadUInt16()
virtual int ReadInt32()
virtual Stream BaseStream
virtual short ReadInt16()
virtual byte[] ReadBytes(int count)
virtual uint ReadUInt32()
const double PI
Definition Math.cs:16
static byte Max(byte val1, byte val2)
Definition Math.cs:738
static void PlaySound(int type, Vector2 position, int style=1)
static void SendChatMessageToClient(NetworkText text, Color color, int playerId)
Definition ChatHelper.cs:28
static void BroadcastChatMessage(NetworkText text, Color color, int excludedPlayer=-1)
Definition ChatHelper.cs:46
static PlayerDeathReason FromReader(BinaryReader reader)
static Dictionary< int, TileEntity > ByID
Definition TileEntity.cs:18
static Dictionary< Point16, TileEntity > ByPosition
Definition TileEntity.cs:20
static bool IsOccupied(int id, out int interactingPlayer)
static void PlaceEntityNet(int x, int y, int type)
Definition TileEntity.cs:68
static TileEntity Read(BinaryReader reader, bool networkSend=false)
Definition TileEntity.cs:86
static void SetInteractionAnchor(Player player, int x, int y, int id)
static void HandleSpecialEvent(Player player, int eventID)
static void NotifyNPCKilledDirect(Player player, int npcNetID)
static bool WouldFailSpawningHere(int x, int y)
Definition DD2Event.cs:571
static void SummonCrystal(int x, int y, int whoAsks)
Definition DD2Event.cs:540
static void FailureMessage(int client)
Definition DD2Event.cs:583
static void PutBallInCup_TextAndEffects(Point hitLocation, int plr, int numberOfHits, int projid)
static void CreateFromNet(MessageSource source, byte variation, Vector2 position, Vector2 velocity)
static void SyncPortalsOnPlayerJoin(int plr, int fluff, List< Point > dontInclude, out List< Point > portalSections)
static void TryPlacing(int x, int y, int netid, int prefix, int stack)
static void TryPlacing(int x, int y, int netid, int prefix, int stack)
static void TryPlacing(int x, int y, int netid, int prefix, int stack)
static void CheckForNPCsToReactToEmoteBubble(int emoteID, Player player)
static Dictionary< int, EmoteBubble > byID
static WorldUIAnchor DeserializeNetAnchor(int type, int meta)
static int NewBubble(int emoticon, WorldUIAnchor bubbleAnchor, int time)
static void OnBubbleChange(int bubbleID)
static readonly int Count
Definition EmoteID.cs:9
static readonly short Count
Definition InvasionID.cs:23
static bool[] NeverAppearsAsNewInInventory
Definition ItemID.cs:1044
static readonly short Count
Definition ItemID.cs:12138
static readonly byte Count
Definition MessageID.cs:311
static bool[] MPAllowedEnemies
Definition NPCID.cs:4198
static readonly short Count
Definition NPCID.cs:11744
static readonly int Loadout1_Armor_0
static readonly int Loadout3_Dye_0
static readonly int Loadout2_Dye_0
static readonly int Loadout1_Dye_0
static readonly int Loadout3_Armor_0
static readonly int Loadout2_Armor_0
static readonly int TrashItem
static readonly int Inventory0
static readonly int Count
static Dictionary< ushort, LegacySoundStyle > SoundByIndex
Definition SoundID.cs:998
static readonly LegacySoundStyle Item1
Definition SoundID.cs:416
static readonly LegacySoundStyle Item47
Definition SoundID.cs:508
static readonly LegacySoundStyle Item26
Definition SoundID.cs:466
static readonly LegacySoundStyle Item35
Definition SoundID.cs:484
static bool[] Falling
Definition TileID.cs:289
static string GetTextValue(string key)
Definition Language.cs:15
static NetworkText FromLiteral(string text)
static NetworkText FromKey(string key, params object[] substitutions)
static NetworkText Deserialize(BinaryReader reader)
static void TrySendingItemArray(int plr, Item[] array, int slotStartIndex)
static void ReadAccessoryVisibility(BinaryReader reader, bool[] hideVisibleAccessory)
float[] ReUseTemporaryProjectileAI()
static readonly NetManager Instance
Definition NetManager.cs:18
static bool HighlightNewItems
Definition ItemSlot.cs:26
static float DistanceSquared(Vector2 value1, Vector2 value2)
Definition Vector2.cs:107

References Terraria.Entity.active, Terraria.Tile.active(), Terraria.Main.ActiveNetDiagnosticsUI, Terraria.Main.ActivePlayerFileData, Terraria.Wiring.Actuate(), System.Collections.Generic.Dictionary< TKey, TValue >.Add(), Terraria.Projectile.ai, Terraria.Main.anglerQuest, Terraria.Main.anglerWhoFinishedToday, Terraria.NPC.AnyDanger(), Terraria.NPC.AnyNPCs(), Terraria.NPC.AnyoneNearCultists(), Terraria.EquipmentLoadout.Armor, Terraria.Player.armor, Terraria.ID.PlayerItemSlotID.Armor0, System.array, Terraria.GameContent.Events.DD2Event.AttemptToSkipWaitTime(), Terraria.Main.autoPass, Terraria.WorldGen.BackgroundsCache, Terraria.Player.bank, Terraria.ID.PlayerItemSlotID.Bank1_0, Terraria.Player.bank2, Terraria.ID.PlayerItemSlotID.Bank2_0, Terraria.Player.bank3, Terraria.ID.PlayerItemSlotID.Bank3_0, Terraria.Player.bank4, Terraria.ID.PlayerItemSlotID.Bank4_0, System.IO.BinaryReader.BaseStream, Terraria.Main.BestiaryTracker, Terraria.Main.bloodMoon, Terraria.NetMessage.BootPlayer(), Terraria.NPC.boughtBunny, Terraria.NPC.boughtCat, Terraria.NPC.boughtDog, Terraria.MessageBuffer.broadcast, Terraria.Chat.ChatHelper.BroadcastChatMessage(), Terraria.NetMessage.buffer, Terraria.DataStructures.TileEntity.ByID, Terraria.GameContent.UI.EmoteBubble.byID, Terraria.DataStructures.TileEntity.ByPosition, Terraria.ID.PlayerItemSlotID.CanRelay, Terraria.NPC.CatchNPC(), Terraria.Main.caveBackStyle, Terraria.Main.caveBackX, Terraria.NPC.cavernMonsterType, Terraria.WorldGen.CheckAchievement_RealEstateAndTownSlimes(), Terraria.GameContent.UI.EmoteBubble.CheckForNPCsToReactToEmoteBubble(), Terraria.Main.checkHalloween(), Terraria.RemoteClient.CheckSection(), Terraria.WorldGen.CheckTileBreakability2_ShouldTileSurvive(), Terraria.Main.checkXMas(), Terraria.Main.chest, Terraria.Player.chest, Terraria.Chest.chestItemSpawn, Terraria.Chest.chestItemSpawn2, Microsoft.Xna.Framework.MathHelper.Clamp(), Terraria.HitTile.ClearAllTilesAtThisLocation(), Terraria.Main.clientPlayer, Terraria.Netplay.Clients, Terraria.WorldGen.CloseDoor(), Terraria.Netplay.Connection, System.Collections.Generic.Dictionary< TKey, TValue >.Count, Terraria.GameContent.UI.EmoteID.Count, Terraria.ID.InvasionID.Count, Terraria.ID.ItemID.Count, Terraria.ID.MessageID.Count, Terraria.ID.NPCID.Count, Terraria.ID.PlayerVariantID.Count, Terraria.Main.countsAsHostForGameplay, Terraria.GameContent.LucyAxeMessage.CreateFromNet(), Terraria.Main.dayTime, Terraria.NetMessage.DecompressTileBlock(), Terraria.Main.dedServ, Terraria.Localization.NetworkText.Deserialize(), Terraria.GameContent.UI.EmoteBubble.DeserializeNetAnchor(), Terraria.Chest.DestroyChestDirect(), Microsoft.Xna.Framework.Vector2.DistanceSquared(), Terraria.NetMessage.DoesPlayerSlotCountAsAHost(), Terraria.NPC.downedGolemBoss, Terraria.Chest.dresserItemSpawn, Terraria.Main.dust, Terraria.EquipmentLoadout.Dye, Terraria.Player.dye, Terraria.ID.PlayerItemSlotID.Dye0, Terraria.Main.eclipse, Terraria.GameContent.Events.DD2Event.FailureMessage(), Terraria.NPC.FairyEffects(), Terraria.ID.TileID.Sets.Falling, Terraria.Chest.FindChest(), Terraria.Projectile.FindOldestProjectile(), Terraria.Recipe.FindRecipes(), Terraria.Main.FixUIScale(), Terraria.Minecart.FrameTrack(), Terraria.Tile.frameX, Terraria.Tile.frameY, Terraria.Localization.NetworkText.FromKey(), Terraria.Localization.NetworkText.FromLiteral(), Terraria.DataStructures.PlayerDeathReason.FromReader(), Terraria.Main.GameModeInfo, Terraria.Main.GetMoonPhase(), Terraria.Netplay.GetSectionX(), Terraria.Netplay.GetSectionY(), Terraria.Localization.Language.GetTextValue(), Terraria.NetMessage.greetPlayer(), Terraria.GameContent.Achievements.AchievementsHelper.HandleSpecialEvent(), Terraria.Main.hardMode, Terraria.NPC.HaveDryadDoStardewAnimation(), Terraria.UI.ItemSlot.Options.HighlightNewItems, Terraria.Wiring.HitSwitch(), Terraria.GameContent.Creative.CreativePowerManager.Instance, Terraria.Net.NetManager.Instance, Terraria.Main.instance, Terraria.Lang.inter, Terraria.Main.invasionType, Terraria.Player.inventory, Terraria.ID.PlayerItemSlotID.Inventory0, Terraria.WorldGen.InWorld(), Terraria.Netplay.IsBanned(), Terraria.WorldGen.IsChestRigged(), System.Enum.IsDefined(), Terraria.DataStructures.TileEntity.IsOccupied(), System.item, Terraria.Chest.item, Terraria.Main.item, Terraria.ID.SoundID.Item1, Terraria.ID.SoundID.Item26, Terraria.ID.SoundID.Item35, Terraria.ID.SoundID.Item47, System.key, Terraria.WorldGen.kickOut(), Terraria.WorldGen.KillActuator(), Terraria.NPC.killCount, Terraria.WorldGen.KillTile(), Terraria.WorldGen.KillWall(), Terraria.WorldGen.KillWire(), Terraria.WorldGen.KillWire2(), Terraria.WorldGen.KillWire3(), Terraria.WorldGen.KillWire4(), System.length, System.list, 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.Player.Loadouts, Terraria.Chest.Lock(), Terraria.NPC.LunarShieldPowerMax, Terraria.Wiring.MassWireOperation(), System.Math.Max(), Terraria.NPC.maxAI, Terraria.Projectile.maxAI, Terraria.NPC.maxBuffs, Terraria.Player.maxBuffs, Terraria.Main.maxSectionsX, Terraria.Main.maxSectionsY, Terraria.Main.maxTilesX, Terraria.Main.maxTilesY, Terraria.Lang.misc, Terraria.ID.PlayerItemSlotID.Misc0, Terraria.ID.PlayerItemSlotID.MiscDye0, Terraria.Player.miscDyes, Terraria.Player.miscEquips, Terraria.Main.Moondialing(), Terraria.WorldGen.moveRoom(), Terraria.Lang.mp, Terraria.ID.NPCID.Sets.MPAllowedEnemies, Terraria.Main.multiplayerNPCSmoothingRange, Terraria.Main.myPlayer, Terraria.Player.nameLen, Terraria.Main.netMode, Terraria.ID.ItemID.Sets.NeverAppearsAsNewInInventory, Terraria.GameContent.UI.EmoteBubble.NewBubble(), Terraria.Dust.NewDust(), Terraria.Item.NewItem(), Terraria.NPC.NewNPC(), Terraria.Animation.NewTemporaryAnimation(), Terraria.CombatText.NewText(), Terraria.Main.NewTextMultiline(), Microsoft.Xna.Framework.Vector2.Normalize(), Terraria.GameContent.Achievements.AchievementsHelper.NotifyNPCKilledDirect(), Terraria.GameContent.Achievements.AchievementsHelper.NotifyProgressionEvent(), Terraria.Enums.NPC, Terraria.Main.npc, Terraria.Main.npcCatchable, Terraria.Main.npcShop, System.obj, Terraria.GameContent.UI.EmoteBubble.OnBubbleChange(), Terraria.GameContent.Events.DD2Event.Ongoing, Terraria.MessageBuffer.OnTileChangeReceived, Terraria.WorldGen.OpenDoor(), System.other, Terraria.WorldGen.paintCoatTile(), Terraria.WorldGen.paintCoatWall(), Terraria.WorldGen.paintTile(), Terraria.WorldGen.paintWall(), System.Math.PI, Terraria.WorldGen.PlaceActuator(), Terraria.WorldGen.PlaceChest(), Terraria.WorldGen.PlaceChestDirect(), Terraria.WorldGen.PlaceDresserDirect(), Terraria.DataStructures.TileEntity.PlaceEntityNet(), Terraria.WorldGen.PlaceObject(), Terraria.WorldGen.PlaceTile(), Terraria.WorldGen.PlaceWall(), Terraria.WorldGen.PlaceWire(), Terraria.WorldGen.PlaceWire2(), Terraria.WorldGen.PlaceWire3(), Terraria.WorldGen.PlaceWire4(), Terraria.Enums.Player, Terraria.Main.player, Terraria.Player.Hooks.PlayerConnect(), Terraria.Player.Hooks.PlayerDisconnect(), Terraria.Audio.SoundEngine.PlaySound(), Terraria.Wiring.PokeLogicGate(), Terraria.Utils.PoofOfSmoke(), Terraria.WorldGen.PoundTile(), System.prefix, Terraria.Main.projectile, Terraria.Projectile.ProjectileFixDesperation(), Terraria.Main.projectileIdentity, Terraria.Main.projHostile, Terraria.Main.projPet, Terraria.Main.pumpkinMoon, Terraria.GameContent.Golf.GolfHelper.ContactListener.PutBallInCup_TextAndEffects(), Terraria.Main.pvpBuff, Terraria.Main.PylonSystem, Terraria.WorldGen.RangeFrame(), Terraria.DataStructures.TileEntity.Read(), Terraria.MessageBuffer.ReadAccessoryVisibility(), System.IO.BinaryReader.ReadBoolean(), Terraria.MessageBuffer.readBuffer, System.IO.BinaryReader.ReadByte(), System.IO.BinaryReader.ReadBytes(), Terraria.MessageBuffer.reader, System.IO.BinaryReader.ReadInt16(), System.IO.BinaryReader.ReadInt32(), System.IO.BinaryReader.ReadSByte(), Terraria.Sign.ReadSign(), System.IO.BinaryReader.ReadSingle(), System.IO.BinaryReader.ReadString(), System.IO.BinaryReader.ReadUInt16(), System.IO.BinaryReader.ReadUInt32(), System.IO.BinaryReader.ReadUInt64(), Terraria.NPC.ReleaseNPC(), Terraria.Main.remixWorld, Terraria.WorldGen.ReplaceTile(), Terraria.WorldGen.ReplaceWall(), Terraria.Main.ReportInvasionProgress(), Terraria.MessageBuffer.ResetReader(), Terraria.MessageBuffer.ReUseTemporaryNPCAI(), Terraria.MessageBuffer.ReUseTemporaryProjectileAI(), Terraria.NPC.RevengeManager, Terraria.WorldGen.SectionTileFrame(), Terraria.Chat.ChatHelper.SendChatMessageToClient(), Terraria.NetMessage.SendData(), Terraria.NetMessage.SendObjectPlacement(), Terraria.NetMessage.SendPlayerDeath(), Terraria.NetMessage.SendPlayerHurt(), Terraria.NetMessage.SendSection(), Terraria.NetMessage.SendTileSquare(), Terraria.Netplay.ServerPassword, Terraria.Chest.ServerPlaceItem(), Terraria.Main.ServerSideCharacter, Terraria.WorldGen.setBG(), Terraria.Wiring.SetCurrentUser(), Terraria.Projectile.SetDefaults(), Terraria.DataStructures.TileEntity.SetInteractionAnchor(), Terraria.GameContent.Events.CreditsRollEvent.SetRemainingTimeDirect(), Terraria.NPC.ShieldStrengthTowerNebula, Terraria.NPC.ShieldStrengthTowerSolar, Terraria.NPC.ShieldStrengthTowerStardust, Terraria.NPC.ShieldStrengthTowerVortex, Terraria.WorldGen.ShiftTallGate(), Terraria.WorldGen.ShiftTrapdoor(), Terraria.Item.ShimmerEffect(), Terraria.WorldGen.ShootFromCannon(), Terraria.Main.sign, Terraria.WorldGen.SlopeTile(), Terraria.Main.snowMoon, Terraria.ID.SoundID.SoundByIndex, Terraria.Netplay.SpamCheck, Terraria.NPC.SpawnFaelings(), Terraria.NPC.SpawnMechQueen(), Terraria.NPC.SpawnOnPlayer(), Terraria.NPC.SpawnSkeletron(), Terraria.Main.spawnTileX, Terraria.Main.spawnTileY, Terraria.WorldGen.SquareTileFrame(), System.start, Terraria.WorldGen.StartImpendingDoom(), Terraria.Main.StartInvasion(), Terraria.Main.startPumpkinMoon(), Terraria.Main.StartSlimeRain(), Terraria.Main.startSnowMoon(), Terraria.Main.StopSlimeRain(), Terraria.GameContent.Events.DD2Event.SummonCrystal(), Terraria.Main.Sundialing(), Terraria.Main.SyncAnInvasion(), Terraria.NetMessage.SyncConnectedPlayer(), Terraria.GameContent.PortalHelper.SyncPortalsOnPlayerJoin(), Terraria.Main.teamColor, System.text, Terraria.Sign.TextSign(), Terraria.DataStructures.Tile, Terraria.Main.tile, Terraria.Main.tileFrameImportant, Terraria.Main.timeItemSlotCannotBeReusedFor, Terraria.WorldGen.ToggleGemLock(), Terraria.GameContent.Events.BirthdayParty.ToggleManualParty(), Terraria.GameContent.UI.WiresUI.Settings.ToolMode, Terraria.WorldGen.TownManager, Terraria.NPC.TransformCopperSlime(), Terraria.NPC.TransformElderSlime(), Terraria.ID.PlayerItemSlotID.TrashItem, Terraria.Main.travelShop, Terraria.WorldGen.TreeGrowFX(), Terraria.Main.treeStyle, Terraria.WorldGen.TreeTops, Terraria.Main.treeX, Terraria.GameContent.Tile_Entities.TEFoodPlatter.TryPlacing(), Terraria.GameContent.Tile_Entities.TEItemFrame.TryPlacing(), Terraria.GameContent.Tile_Entities.TEWeaponsRack.TryPlacing(), Terraria.NetMessage.TrySendData(), Terraria.MessageBuffer.TrySendingItemArray(), Terraria.Main.TrySetPreparationState(), System.type, Terraria.Projectile.type, Terraria.Chest.Unlock(), Terraria.WorldGen.UnlockDoor(), Terraria.NPC.unlockedSlimeBlueSpawn, Terraria.NPC.unlockedSlimeRedSpawn, Terraria.NPC.UnlockOrExchangePet(), Terraria.Main.UpdateTimeRate(), Terraria.Chest.UsingChest(), System.value, Terraria.Main.verboseNetplay, Terraria.Collision.WetCollision(), Terraria.MessageBuffer.whoAmI, Terraria.Main.windSpeedTarget, Terraria.GameContent.Events.DD2Event.WipeEntities(), Terraria.GameContent.Events.DD2Event.WouldFailSpawningHere(), Microsoft.Xna.Framework.Point.X, Microsoft.Xna.Framework.Vector2.X, System.X, Microsoft.Xna.Framework.Point.Y, Microsoft.Xna.Framework.Vector2.Y, System.Y, and Microsoft.Xna.Framework.Vector2.Zero.