5using Microsoft.Xna.Framework.Graphics.PackedVector;
75 public static bool TrySendData(
int msgType,
int remoteClient = -1,
int ignoreClient = -1,
NetworkText text =
null,
int number = 0,
float number2 = 0f,
float number3 = 0f,
float number4 = 0f,
int number5 = 0,
int number6 = 0,
int number7 = 0)
79 SendData(msgType, remoteClient, ignoreClient,
text, number, number2, number3, number4, number5, number6, number7);
88 public static void SendData(
int msgType,
int remoteClient = -1,
int ignoreClient = -1,
NetworkText text =
null,
int number = 0,
float number2 = 0f,
float number3 = 0f,
float number4 = 0f,
int number5 = 0,
int number6 = 0,
int number7 = 0)
94 if (msgType == 21 && (
Main.
item[number].shimmerTime > 0f ||
Main.
item[number].shimmered))
112 buffer[num].ResetWriter();
115 writer.BaseStream.Position = 0
L;
116 long position =
writer.BaseStream.Position;
117 writer.BaseStream.Position += 2
L;
118 writer.Write((
byte)msgType);
122 writer.Write(
"Terraria" + 279);
132 writer.Write((
byte)remoteClient);
138 writer.Write((
byte)number);
155 bitsByte16[0] =
true;
159 bitsByte16[1] =
true;
163 bitsByte16[3] =
true;
187 writer.Write((
byte)number);
188 writer.Write((
short)number2);
204 writer.Write((
short)num11);
205 writer.Write((
byte)number3);
206 writer.Write((
short)num12);
248 for (
int n = 0; n < 3; n++)
252 for (
int num8 = 0; num8 < 4; num8++)
256 for (
int num9 = 0; num9 < 3; num9++)
260 for (
int num10 = 0; num10 < 4; num10++)
267 Main.maxRaining = 0f;
284 bitsByte7[4] = Main.cloudBGActive >= 1f;
386 writer.Write((
int)number2);
392 BitsByte bitsByte22 = (byte)number2;
400 writer.Write((
short)number);
401 writer.Write((
short)number2);
402 writer.Write((
short)number3);
403 writer.Write((
short)number4);
408 writer.Write((
byte)number);
414 writer.Write((
byte)number2);
420 writer.Write((
byte)number);
428 bitsByte25[6] = player7.direction == 1;
431 bitsByte26[0] = player7.
pulley;
432 bitsByte26[1] = player7.pulley && player7.pulleyDir == 2;
435 bitsByte26[4] = player7.gravDir == 1f;
437 bitsByte26[6] = player7.
ghost;
470 writer.Write((
byte)number);
471 writer.Write((
byte)number2);
474 writer.Write((
byte)number);
479 writer.Write((
byte)number);
480 writer.Write((
short)number2);
481 writer.Write((
short)number3);
482 writer.Write((
short)number4);
483 writer.Write((
byte)number5);
486 writer.Write((
byte)(Main.dayTime ? 1u : 0u));
492 writer.Write((
byte)number);
493 writer.Write((
short)number2);
494 writer.Write((
short)number3);
495 writer.Write((number4 == 1f) ? ((byte)1) : ((byte)0));
500 int num14 = (int)number2;
501 int num15 = (int)number3;
506 int num16 = (int)number4;
517 num13 = Main.maxTilesX - num15 - 1;
525 num14 = Main.maxTilesY - num16 - 1;
527 writer.Write((
short)num13);
528 writer.Write((
short)num14);
529 writer.Write((
byte)num15);
530 writer.Write((
byte)num16);
531 writer.Write((
byte)number5);
532 for (
int num17 = num13; num17 < num13 + num15; num17++)
534 for (
int num18 = num14; num18 < num14 + num16; num18++)
542 bitsByte19[0] = tile2.
active();
543 bitsByte19[2] = tile2.wall > 0;
544 bitsByte19[3] = tile2.liquid > 0 && Main.netMode == 2;
545 bitsByte19[4] = tile2.
wire();
549 bitsByte20[0] = tile2.
wire2();
550 bitsByte20[1] = tile2.
wire3();
553 bitsByte20[2] =
true;
558 bitsByte20[3] =
true;
561 bitsByte20 = (byte)((
byte)bitsByte20 + (byte)(tile2.
slope() << 4));
562 bitsByte20[7] = tile2.
wire4();
606 writer.Write((
short)number);
611 writer.Write((
byte)number2);
630 writer.Write((
short)number);
631 writer.Write((
byte)
Main.
item[number].playerIndexTheItemIsReservedFor);
636 writer.Write((
short)number);
640 int num4 = nPC2.
life;
650 bool[]
array =
new bool[4];
652 bitsByte3[0] = nPC2.direction > 0;
653 bitsByte3[1] = nPC2.directionY > 0;
654 bitsByte3[2] = (
array[0] = nPC2.
ai[0] != 0f);
655 bitsByte3[3] = (
array[1] = nPC2.
ai[1] != 0f);
656 bitsByte3[4] = (
array[2] = nPC2.
ai[2] != 0f);
657 bitsByte3[5] = (
array[3] = nPC2.
ai[3] != 0f);
658 bitsByte3[6] = nPC2.spriteDirection > 0;
659 bitsByte3[7] = num4 == nPC2.
lifeMax;
662 bitsByte4[0] = nPC2.statsAreScaledForThisManyPlayers > 1;
664 bitsByte4[2] = nPC2.strengthMultiplier != 1f;
697 writer.Write((
short)num4);
703 writer.Write((sbyte)num4);
714 writer.Write((
short)number);
715 writer.Write((
byte)number2);
718 writer.Write((
byte)number2);
719 writer.Write((
byte)number3);
720 writer.Write((
byte)number4);
722 writer.Write((
short)number5);
734 bitsByte23[0] = projectile.
ai[0] != 0f;
735 bitsByte23[1] = projectile.
ai[1] != 0f;
736 bitsByte24[0] = projectile.
ai[2] != 0f;
739 bitsByte23[3] =
true;
741 if (projectile.
damage != 0)
743 bitsByte23[4] =
true;
747 bitsByte23[5] =
true;
751 bitsByte23[7] =
true;
755 bitsByte23[6] =
true;
757 if ((
byte)bitsByte24 != 0)
759 bitsByte23[2] =
true;
801 writer.Write((
short)number);
802 writer.Write((
short)number2);
804 writer.Write((
byte)(number4 + 1f));
805 writer.Write((
byte)number5);
808 writer.Write((
short)number);
809 writer.Write((
byte)number2);
812 writer.Write((
byte)number);
816 writer.Write((
short)number);
817 writer.Write((
short)number2);
822 writer.Write((
short)number);
823 writer.Write((
byte)number2);
825 if (item7.
Name ==
null)
847 string text3 =
text.ToString();
848 num7 = (byte)text3.Length;
849 if (num7 == 0 || num7 > 20)
858 writer.Write((
short)number);
859 writer.Write((
short)num5);
860 writer.Write((
short)num6);
869 writer.Write((
byte)number);
870 writer.Write((
short)number2);
871 writer.Write((
short)number3);
872 writer.Write((
short)number4);
877 writer.Write((
short)number5);
885 writer.Write((
byte)number);
886 writer.Write((
short)number2);
891 writer.Write((
byte)number);
903 writer.Write((
short)number);
906 writer.Write((
byte)number);
910 writer.Write((
byte)number);
915 writer.Write((
byte)number);
920 writer.Write((
byte)number);
921 writer.Write((
short)number2);
924 writer.Write((
byte)number);
928 writer.Write((
short)number);
929 writer.Write((
short)number2);
932 writer.Write((
short)number);
936 writer.Write((
byte)number2);
937 writer.Write((
byte)number3);
942 writer.Write((
short)number);
943 writer.Write((
short)number2);
950 writer.Write((
byte)number);
958 writer.Write((
byte)number);
959 writer.Write((
byte)number2);
962 writer.Write((
byte)number2);
963 writer.Write((
short)number3);
964 writer.Write((
short)number4);
967 writer.Write((
short)number);
968 writer.Write((ushort)number2);
969 writer.Write((
short)number3);
973 writer.Write((
short)number);
982 writer.Write((
byte)number);
983 writer.Write((ushort)number2);
984 writer.Write((
int)number3);
987 writer.Write((
short)number);
990 string givenName =
Main.
npc[number].GivenName;
1001 writer.Write((
byte)number);
1005 writer.Write((
short)number);
1006 writer.Write((
short)number2);
1009 writer.Write((
short)number);
1010 writer.Write((
short)number2);
1011 writer.Write((
short)number3);
1012 writer.Write((
byte)number4);
1015 writer.Write((
short)number);
1016 writer.Write((
short)number2);
1019 writer.Write((
byte)number);
1020 writer.Write((
byte)number2);
1024 writer.Write((
short)number);
1025 writer.Write((
short)number2);
1026 writer.Write((
byte)number3);
1027 writer.Write((
byte)number4);
1032 bitsByte29[0] = (number & 1) == 1;
1033 bitsByte29[1] = (number & 2) == 2;
1034 bitsByte29[2] = number6 == 1;
1035 bitsByte29[3] = number7 != 0;
1036 writer.Write(bitsByte29);
1037 writer.Write((
short)number2);
1040 writer.Write((
byte)number5);
1048 writer.Write((
byte)number);
1049 writer.Write((
short)number2);
1057 writer.Write((
short)number);
1058 writer.Write((
short)number2);
1059 writer.Write((
short)number3);
1063 writer.Write((
short)number);
1064 writer.Write((
byte)number2);
1068 writer.Write((
int)number2);
1069 writer.Write((
short)number3);
1070 writer.Write((
byte)number4);
1074 for (
int num20 = 0; num20 < 40; num20++)
1081 writer.Write((
byte)number);
1091 writer.Write((
byte)number);
1096 writer.Write((
short)number);
1097 writer.Write((ushort)number2);
1098 writer.Write((
short)number3);
1099 writer.Write((
short)number4);
1103 writer.Write((
int)number2);
1104 writer.Write((sbyte)number3);
1105 writer.Write((sbyte)number4);
1108 writer.Write((
short)number);
1109 writer.Write((
short)number2);
1110 writer.Write((
short)number3);
1111 writer.Write((
short)number4);
1112 writer.Write((
byte)number5);
1113 writer.Write((sbyte)number6);
1114 writer.Write(number7 == 1);
1117 writer.Write((
byte)number);
1118 writer.Write((
short)number2);
1125 c2.PackedValue = (uint)number;
1127 writer.Write((
int)number4);
1135 c.PackedValue = (uint)number;
1143 if (num19 < 0 && num19 >= 290)
1148 writer.Write((
short)num19);
1154 byte b5 = (byte)number;
1162 short value5 = (
short)number;
1178 writer.Write((
short)number);
1179 writer.Write((
short)number2);
1180 writer.Write((
byte)number3);
1185 BitsByte bitsByte2 = (byte)number3;
1186 writer.Write((
short)number);
1249 writer.Write((
short)number);
1250 writer.Write((
short)number2);
1254 writer.Write((
short)number5);
1259 writer.Write((
byte)number2);
1260 if (number2 != 255f)
1262 writer.Write((ushort)number3);
1263 writer.Write((ushort)number4);
1264 writer.Write((
byte)number5);
1267 writer.Write((
short)number6);
1272 writer.Write((
short)number);
1273 writer.Write((
int)number2);
1278 writer.Write((ushort)number);
1279 writer.Write((
byte)number2);
1283 writer.Write((
byte)number);
1285 writer.Write((
short)number4);
1292 writer.Write((
short)number);
1295 writer.Write((
short)number);
1298 writer.Write((
byte)number);
1302 writer.Write((
byte)number);
1307 writer.Write((ushort)number);
1309 writer.Write((
short)number4);
1322 writer.Write((
byte)number);
1323 writer.Write((ushort)number2);
1332 writer.Write((
byte)number);
1333 writer.Write((
short)number2);
1334 writer.Write(((
short)number3 < 0) ? 0f : number3);
1335 writer.Write((
byte)number4);
1337 writer.Write((
byte)number6);
1340 writer.Write((
short)number);
1341 writer.Write((
short)number2);
1342 writer.Write(number3 == 1f);
1345 writer.Write(
new HalfVector2(number, number2).PackedValue);
1348 writer.Write((
short)number);
1350 writer.Write((
short)number3);
1351 writer.Write((
short)number4);
1352 writer.Write((
short)number5);
1353 writer.Write((
short)number6);
1354 writer.Write((
byte)number7);
1357 writer.Write((
short)number);
1358 writer.Write((
short)number2);
1359 writer.Write((
short)number3);
1360 writer.Write((
short)number4);
1361 writer.Write((
byte)number5);
1364 writer.Write((
short)number);
1365 writer.Write((
short)number2);
1366 writer.Write((
byte)number3);
1369 writer.Write((
byte)number);
1370 writer.Write((
int)number2);
1371 writer.Write((
int)number3);
1372 writer.Write((
byte)number4);
1373 writer.Write((
short)number5);
1376 writer.Write((
short)number);
1377 writer.Write((
short)number2);
1383 writer.Write((
byte)number);
1385 writer.Write((
short)number2);
1386 writer.Write((
byte)(number3 + 1f));
1387 writer.Write((
byte)number4);
1388 writer.Write((sbyte)number5);
1391 writer.Write((
byte)number);
1393 writer.Write((
short)number2);
1394 writer.Write((
byte)(number3 + 1f));
1395 writer.Write((
byte)number4);
1398 writer.Write((
byte)number);
1399 writer.Write((
byte)number2);
1403 int num3 = (int)number3;
1404 bool flag2 = number4 == 1f;
1409 writer.Write((
byte)number);
1410 writer.Write((
int)number2);
1411 writer.Write((
byte)num3);
1414 tEDisplayDoll.WriteItem((
int)number3,
writer, flag2);
1423 writer.Write((
byte)number2);
1427 writer.Write((
short)number);
1428 writer.Write((
short)number2);
1432 writer.Write((
short)number5);
1437 int num2 = (int)number3;
1438 bool flag = number4 == 1f;
1443 writer.Write((
byte)number);
1444 writer.Write((
int)number2);
1445 writer.Write((
byte)num2);
1448 tEHatRack.WriteItem((
int)number3,
writer, flag);
1456 writer.Write((
byte)number);
1457 writer.Write((
short)number2);
1458 writer.Write((
short)number3);
1459 writer.Write((
byte)number4);
1468 writer.Write((
byte)number);
1469 writer.Write((ushort)number5);
1470 writer.Write((ushort)number6);
1471 writer.Write((ushort)number2);
1472 writer.Write((ushort)number3);
1475 writer.Write((ushort)number);
1476 writer.Write((ushort)number2);
1477 writer.Write((
short)number3);
1481 writer.Write((ushort)number);
1482 writer.Write((
byte)number2);
1483 byte b = (byte)number2;
1486 writer.Write((
int)number3);
1487 writer.Write((
short)number4);
1496 writer.Write((
short)number);
1497 writer.Write((
short)number2);
1501 writer.Write((
short)number5);
1506 writer.Write((
byte)number);
1517 writer.Write((
byte)number);
1521 for (
int i = 0; i < 2; i++)
1523 for (
int j = 0; j < 3; j++)
1531 writer.Write((
short)number);
1532 writer.Write((ushort)number2);
1536 writer.Write((
byte)number);
1537 bool value = number2 == 1f;
1542 writer.Write((
byte)number);
1543 writer.Write((
int)number2);
1546 writer.Write((
byte)number);
1547 writer.Write((
byte)number2);
1555 writer.Write((
byte)number);
1562 writer.Write((
byte)number);
1566 writer.WriteVector2(
new Vector2((
int)number2, (int)number3));
1569 writer.WriteVector2(
new Vector2((
int)number2, (int)number3));
1570 writer.Write((
int)number4);
1573 writer.Write((
int)number2);
1578 writer.Write((
byte)number);
1579 writer.Write((
byte)number2);
1583 int num21 = (int)
writer.BaseStream.Position;
1586 throw new Exception(
"Maximum packet length exceeded. id: " + msgType +
" length: " + num21);
1588 writer.BaseStream.Position = position;
1589 writer.Write((ushort)num21);
1590 writer.BaseStream.Position = num21;
1606 else if (remoteClient == -1)
1613 for (
int num23 = 0; num23 < 256; num23++)
1619 buffer[num23].spamCount++;
1632 for (
int num27 = 0; num27 < 256; num27++)
1638 buffer[num27].spamCount++;
1652 for (
int num28 = 0; num28 < 256; num28++)
1654 if (num28 == ignoreClient || !
buffer[num28].broadcast || !
Netplay.
Clients[num28].IsConnected())
1669 rect6.Width += 5000;
1670 rect6.Height += 5000;
1684 buffer[num28].spamCount++;
1703 for (
int num25 = 0; num25 < 256; num25++)
1705 if (num25 == ignoreClient || !
buffer[num25].broadcast || !
Netplay.
Clients[num25].IsConnected())
1720 rect4.Width += 6000;
1721 rect4.Height += 6000;
1731 buffer[num25].spamCount++;
1744 for (
int num26 = 0; num26 < 256; num26++)
1750 buffer[num26].spamCount++;
1769 for (
int num24 = 0; num24 < 256; num24++)
1771 if (num24 == ignoreClient || !
buffer[num24].broadcast || !
Netplay.
Clients[num24].IsConnected())
1786 rect2.Width += 10000;
1787 rect2.Height += 10000;
1797 buffer[num24].spamCount++;
1810 for (
int num22 = 0; num22 < 256; num22++)
1816 buffer[num22].spamCount++;
1833 buffer[remoteClient].spamCount++;
1843 for (
int num29 = 0; num29 < num21; num29++)
1846 for (
int num30 = 0; num30 < num21; num30++)
1848 _ =
buffer[num].writeBuffer[num30];
1851 buffer[num].writeLocked =
false;
1863 for (
int i = 0; i < hideVisibleAccessory.Length; i++)
1865 if (hideVisibleAccessory[i])
1867 num |= (ushort)(1 << i);
1877 DeflateStream val =
new DeflateStream(
stream, (CompressionMode)0,
true);
1881 binaryWriter.
Write(xStart);
1882 binaryWriter.
Write(yStart);
1883 binaryWriter.
Write(width);
1884 binaryWriter.
Write(height);
1902 byte[]
array =
new byte[16];
1904 for (
int i = yStart; i < yStart + height; i++)
1906 for (
int j = xStart; j < xStart + width; j++)
1918 array[num5] = (byte)((uint)num4 & 0xFFu);
1922 b = (byte)(b | 0x80u);
1923 array[num5] = (byte)((num4 & 0xFF00) >> 8);
1928 b = (byte)(b | 0x40u);
1939 b = (b4 = (b3 = (b2 = 0)));
1945 if (tile2.
type > 255)
1949 b = (byte)(b | 0x20u);
2059 array[num5] = (byte)((uint)tile2.frameX & 0xFFu);
2061 array[num5] = (byte)((tile2.
frameX & 0xFF00) >> 8);
2063 array[num5] = (byte)((uint)tile2.frameY & 0xFFu);
2065 array[num5] = (byte)((tile2.
frameY & 0xFF00) >> 8);
2068 if (tile2.
color() != 0)
2070 b3 = (byte)(b3 | 8u);
2075 if (tile2.
wall != 0)
2082 b3 = (byte)(b3 | 0x10u);
2091 b = (tile2.
lava() ? ((byte)(b | 0x10u)) : ((!tile2.
honey()) ? ((
byte)(b | 8u)) : ((byte)(b | 0x18u))));
2095 b3 = (byte)(b3 | 0x80u);
2103 b4 = (byte)(b4 | 2u);
2107 b4 = (byte)(b4 | 4u);
2111 b4 = (byte)(b4 | 8u);
2113 int num20 = (tile2.
halfBrick() ? 16 : ((tile2.
slope() != 0) ? (tile2.
slope() + 1 << 4) : 0));
2117 b3 = (byte)(b3 | 2u);
2121 b3 = (byte)(b3 | 4u);
2125 b3 = (byte)(b3 | 0x20u);
2127 if (tile2.
wall > 255)
2131 b3 = (byte)(b3 | 0x40u);
2135 b2 = (byte)(b2 | 2u);
2139 b2 = (byte)(b2 | 4u);
2143 b2 = (byte)(b2 | 8u);
2147 b2 = (byte)(b2 | 0x10u);
2152 b3 = (byte)(b3 | 1u);
2158 b4 = (byte)(b4 | 1u);
2173 array[num5] = (byte)((uint)num4 & 0xFFu);
2177 b = (byte)(b | 0x80u);
2178 array[num5] = (byte)((num4 & 0xFF00) >> 8);
2183 b = (byte)(b | 0x40u);
2189 for (
int k = 0; k < num; k++)
2198 for (
int l = 0; l < num2; l++)
2207 for (
int m = 0; m < num3; m++)
2217 DeflateStream val =
new DeflateStream(
stream, (CompressionMode)1,
true);
2233 for (
int i = yStart; i < yStart + height; i++)
2235 for (
int j = xStart; j < xStart + width; j++)
2252 byte b3 = (b2 = (b = 0));
2271 if (flag && (b3 & 1) == 1)
2276 if (flag2 && (b2 & 1) == 1)
2280 bool flag3 = tile.
active();
2284 tile.
active(active:
true);
2287 if ((b4 & 0x20) == 32)
2291 num2 = (num2 << 8) | b5;
2297 tile.type = (ushort)num2;
2303 else if (!flag3 || tile.
type !=
type)
2316 if ((b2 & 0x10) == 16)
2321 b5 = (byte)((b4 & 0x18) >> 3);
2325 if ((b2 & 0x80) == 128)
2333 tile.
lava(lava:
true);
2337 tile.
honey(honey:
true);
2345 tile.
wire(wire:
true);
2349 tile.
wire2(wire2:
true);
2353 tile.
wire3(wire3:
true);
2355 b5 = (byte)((b3 & 0x70) >> 4);
2364 tile.
slope((
byte)(b5 - 1));
2378 if ((b2 & 0x20) == 32)
2380 tile.
wire4(wire4:
true);
2382 if ((b2 & 0x40) == 64)
2385 tile.wall = (ushort)((b5 << 8) | tile.
wall);
2402 if ((b & 0x10) == 16)
2407 num = (byte)((b4 & 0xC0) >> 6)
switch
2416 for (
int k = 0; k < num3; k++)
2422 if (num4 >= 0 && num4 < 8000)
2434 for (
int l = 0; l < num3; l++)
2440 if (num5 >= 0 && num5 < 1000)
2452 for (
int m = 0; m < num3; m++)
2458 Main.
sectionManager.SetTilesLoaded(xStart, yStart, xStart + width - 1, yStart + height - 1);
2468 buffer[i].totalData += streamLength;
2469 buffer[i].checkBytes =
true;
2477 Netplay.Disconnect =
true;
2489 lock (
buffer[bufferIndex])
2494 buffer[bufferIndex].checkBytes =
false;
2498 int num2 =
buffer[bufferIndex].totalData;
2506 long position =
buffer[bufferIndex].reader.BaseStream.Position;
2507 buffer[bufferIndex].GetData(num + 2, num3 - 2, out var _);
2511 buffer[bufferIndex].checkBytes =
false;
2514 buffer[bufferIndex].reader.BaseStream.Position = position + num3;
2531 if (num2 !=
buffer[bufferIndex].totalData)
2533 for (
int i = 0; i < num2; i++)
2535 buffer[bufferIndex].readBuffer[i] =
buffer[bufferIndex].readBuffer[i + num];
2537 buffer[bufferIndex].totalData = num2;
2539 buffer[bufferIndex].checkBytes =
false;
2555 ignoreClient = whoAmi;
2559 remoteClient = whoAmi;
2562 SendData(79, remoteClient, ignoreClient,
null, x, y,
type, style, alternative, random, direction);
2569 SendData(77, whoAmi, -1,
null, animationType, tileType, xCoord, yCoord);
2573 public static void SendPlayerHurt(
int playerTargetIndex,
PlayerDeathReason reason,
int damage,
int direction,
bool critical,
bool pvp,
int hitContext,
int remoteClient = -1,
int ignoreClient = -1)
2577 bitsByte[0] = critical;
2579 SendData(117, remoteClient, ignoreClient,
null, playerTargetIndex, damage, direction, (
int)(
byte)bitsByte, hitContext);
2587 SendData(118, remoteClient, ignoreClient,
null, playerTargetIndex, damage, direction, (
int)(
byte)bitsByte);
2593 SendData(132, remoteClient, ignoreClient);
2599 SendData(126, remoteClient, ignoreClient);
2604 SendData(20, whoAmi, -1,
null, tileX, tileY, xSize, ySize, (
int)changeType);
2610 int num = (centeredSquareSize - 1) / 2;
2611 SendTileSquare(whoAmi, tileX - num, tileY - num, centeredSquareSize, centeredSquareSize, changeType);
2617 int num2 = (num - 1) / 2;
2618 SendTileSquare(whoAmi, tileX - num2, tileY - num2, num, num, changeType);
2635 if (remoteClient == -1)
2637 for (
int i = 0; i < 255; i++)
2651 public static void SendSection(
int whoAmi,
int sectionX,
int sectionY)
2664 int number = sectionX * 200;
2665 int num = sectionY * 150;
2667 for (
int i = num; i < num + 150; i += num2)
2669 SendData(10, whoAmi, -1,
null, number, i, 200f, num2);
2671 for (
int j = 0; j < 200; j++)
2677 if (sectionX2 == sectionX && sectionY2 == sectionY)
2700 for (
int i = 0; i < 255; i++)
2717 for (
int i = 0; i < 256; i++)
2740 for (
int i = 0; i < 255; i++)
2757 for (
int i = 0; i < 200; i++)
2771 if (!flag && nPC.
type == 368)
2792 for (
int i = 0; i < 255; i++)
2803 Netplay.Disconnect =
true;
2811 return Netplay.
Clients[plr].Socket.GetRemoteAddress().IsLocalHost();
2825 SendData(14, toWho, fromWho,
null, plr, num);
2826 SendData(4, toWho, fromWho,
null, plr);
2827 SendData(13, toWho, fromWho,
null, plr);
2830 SendData(135, toWho, fromWho,
null, plr);
2832 SendData(16, toWho, fromWho,
null, plr);
2833 SendData(30, toWho, fromWho,
null, plr);
2834 SendData(45, toWho, fromWho,
null, plr);
2835 SendData(42, toWho, fromWho,
null, plr);
2836 SendData(50, toWho, fromWho,
null, plr);
2838 SendData(142, toWho, fromWho,
null, plr);
2840 for (
int i = 0; i < 59; i++)
2844 for (
int j = 0; j <
Main.
player[plr].armor.Length; j++)
2848 for (
int k = 0; k <
Main.
player[plr].dye.Length; k++)
2872 SendData(14, -1, plr,
null, plr, num);
2888 for (
int i = 0; i < arr.Length; i++)
2890 SendData(5, toWho, fromWho,
null, plr, slot + i, (
int)arr[i].
prefix);
static float Clamp(float value, float min, float max)
static ushort ToUInt16(byte[] value, int startIndex)
static void BlockCopy(Array src, int srcOffset, Array dst, int dstOffset, int count)
virtual string ReadString()
virtual short ReadInt16()
virtual void Write(bool value)
static byte Max(byte val1, byte val2)
static void SendChatMessageToClient(NetworkText text, Color color, int playerId)
static void BroadcastChatMessage(NetworkText text, Color color, int excludedPlayer=-1)
static int FindChest(int X, int Y)
static Dictionary< int, TileEntity > ByID
static Dictionary< Point16, TileEntity > ByPosition
static void Write(BinaryWriter writer, TileEntity ent, bool networkSend=false)
static TileEntity Read(BinaryReader reader, bool networkSend=false)
static void SendCreditsRollRemainingTimeToPlayer(int playerIndex)
static bool DownedInvasionT3
static bool DownedInvasionT2
static bool DownedInvasionT1
static float IntendedSeverity
static int Find(int x, int y)
static int Find(int x, int y)
static int Find(int x, int y)
static int Find(int x, int y)
static int Find(int x, int y)
static int Find(int x, int y)
static int Find(int x, int y)
static readonly short Count
static readonly int Bank1_0
static readonly int Loadout1_Armor_0
static readonly int Misc0
static readonly int Loadout3_Dye_0
static readonly int Loadout2_Dye_0
static readonly int Loadout1_Dye_0
static readonly int MiscDye0
static readonly int Loadout3_Armor_0
static readonly int Loadout2_Armor_0
static readonly int Bank3_0
static readonly int Bank2_0
static readonly int Armor0
static readonly int Bank4_0
static readonly int TrashItem
static readonly int Inventory0
static readonly short Count
static bool[] AllowsSaveCompressionBatching
int timeLeftInWhichTheItemCannotBeTakenByEnemies
void SetDefaults(int Type=0)
static LocalizedText[] mp
static string GetTextValue(string key)
static NetworkText FromFormattable(string text, params object[] substitutions)
static readonly NetworkText Empty
static NetworkText FromLiteral(string text)
static NetworkText FromKey(string key, params object[] substitutions)
static bool verboseNetplay
static float windSpeedTarget
static bool[] npcCatchable
static bool forceXMasForToday
static WorldFileData ActiveWorldFileData
static double worldSurface
static bool forceHalloweenForToday
static int[] caveBackStyle
static WorldSections sectionManager
static List< string > anglerWhoFinishedToday
static int moondialCooldown
static bool fastForwardTimeToDawn
static int jungleBackStyle
static Projectile[] projectile
static bool notTheBeesWorld
static bool dontStarveWorld
static bool tenthAnniversaryWorld
static int sundialCooldown
static bool[] tileFrameImportant
static INetDiagnosticsUI ActiveNetDiagnosticsUI
static bool fastForwardTimeToDusk
static bool downedChristmasSantank
static bool downedTowerSolar
static int TypeToDefaultHeadIndex(int type)
static CoinLossRevengeSystem RevengeManager
static bool unlockedSlimeRainbowSpawn
static bool unlockedSlimeGreenSpawn
static bool downedTowerVortex
static bool downedMechBoss2
static bool downedFishron
static bool unlockedSlimePurpleSpawn
static int ShieldStrengthTowerNebula
static readonly int maxBuffs
static int ShieldStrengthTowerSolar
static bool unlockedSlimeBlueSpawn
static bool downedMechBossAny
static bool downedEmpressOfLight
static int[,] cavernMonsterType
static bool downedHalloweenKing
static int MaxMoonLordCountdown
static bool downedSlimeKing
static bool unlockedTruffleSpawn
static bool combatBookWasUsed
static bool downedTowerStardust
static bool unlockedSlimeRedSpawn
static bool downedMechBoss3
static int ShieldStrengthTowerStardust
static bool downedPirates
static int ShieldStrengthTowerVortex
static bool downedMoonlord
static bool downedQueenBee
static bool downedHalloweenTree
static bool downedChristmasTree
static bool unlockedSlimeOldSpawn
static bool downedGoblins
static bool peddlersSatchelWasUsed
static int MoonLordCountdown
static bool combatBookVolumeTwoWasUsed
static bool downedGolemBoss
static bool downedMartians
static bool downedChristmasIceQueen
static bool downedAncientCultist
static bool unlockedSlimeYellowSpawn
static bool downedPlantBoss
static bool downedMechBoss1
static bool downedDeerclops
int statsAreScaledForThisManyPlayers
static bool unlockedSlimeCopperSpawn
static bool downedTowerNebula
static bool downedQueenSlime
static NetSoundInfo _currentNetSoundInfo
static void SendData(int msgType, int remoteClient=-1, int ignoreClient=-1, NetworkText text=null, int number=0, float number2=0f, float number3=0f, float number4=0f, int number5=0, int number6=0, int number7=0)
static void SendPlayerHurt(int playerTargetIndex, PlayerDeathReason reason, int damage, int direction, bool critical, bool pvp, int hitContext, int remoteClient=-1, int ignoreClient=-1)
static short[] _compressSignList
static void ReceiveBytes(byte[] bytes, int streamLength, int i=256)
static void CheckBytes(int bufferIndex=256)
static PlayerDeathReason _currentPlayerDeathReason
static void SendAnglerQuest(int remoteClient)
static void greetPlayer(int plr)
static void DecompressTileBlock_Inner(BinaryReader reader, int xStart, int yStart, int width, int height)
static void WriteAccessoryVisibility(BinaryWriter writer, bool[] hideVisibleAccessory)
static bool TrySendData(int msgType, int remoteClient=-1, int ignoreClient=-1, NetworkText text=null, int number=0, float number2=0f, float number3=0f, float number4=0f, int number5=0, int number6=0, int number7=0)
static void SendNPCHousesAndTravelShop(int plr)
static bool DoesPlayerSlotCountAsAHost(int plr)
static void SendTileSquare(int whoAmi, int tileX, int tileY, int xSize, int ySize, TileChangeType changeType=TileChangeType.None)
static void PlayNetSound(NetSoundInfo info, int remoteClient=-1, int ignoreClient=-1)
static void CompressTileBlock(int xStart, int yStart, short width, short height, Stream stream)
static MessageBuffer[] buffer
static void SendTileSquare(int whoAmi, int tileX, int tileY, int centeredSquareSize, TileChangeType changeType=TileChangeType.None)
static short[] _compressChestList
static void SendTravelShop(int remoteClient)
static CoinLossRevengeSystem.RevengeMarker _currentRevengeMarker
static void BootPlayer(int plr, NetworkText msg)
static void SendTemporaryAnimation(int whoAmi, int animationType, int tileType, int xCoord, int yCoord)
static void DecompressTileBlock(Stream stream)
static void SyncDisconnectedPlayer(int plr)
static void SendPlayerDeath(int playerTargetIndex, PlayerDeathReason reason, int damage, int direction, bool pvp, int remoteClient=-1, int ignoreClient=-1)
static void SyncOnePlayer(int plr, int toWho, int fromWho)
static void SyncOnePlayer_ItemArray(int plr, int toWho, int fromWho, Item[] arr, int slot)
static void SendObjectPlacement(int whoAmi, int x, int y, int type, int style, int alternative, int random, int direction)
static void SendSection(int whoAmi, int sectionX, int sectionY)
static void SendTileSquare(int whoAmi, int tileX, int tileY, TileChangeType changeType=TileChangeType.None)
static void sendWater(int x, int y)
static void CompressTileBlock_Inner(BinaryWriter writer, int xStart, int yStart, int width, int height)
static void SendCoinLossRevengeMarker(CoinLossRevengeSystem.RevengeMarker marker, int remoteClient=-1, int ignoreClient=-1)
static void SyncConnectedPlayer(int plr)
static void EnsureLocalPlayerIsPresent()
static short[] _compressEntities
static RemoteClient[] Clients
static int GetSectionX(int x)
static int GetSectionY(int y)
static string ServerPassword
static RemoteServer Connection
static void PlayerDisconnect(int playerIndex)
PlayerSleepingHelper sleeping
Vector2? PotionOfReturnHomePosition
bool downedDD2EventAnyDifficulty
bool tryKeepingHoveringDown
static readonly int maxBuffs
bool unlockedBiomeTorches
PlayerSittingHelper sitting
Vector2? PotionOfReturnOriginalUsePosition
EquipmentLoadout[] Loadouts
bool tryKeepingHoveringUp
bool[] hideVisibleAccessory
bool isOperatingAnotherEntity
float equipmentBasedLuckBonus
bool isTheAnimalBeingPetSmall
bool HasGardenGnomeNearby
static int ReadSign(int i, int j, bool CreateIfMissing=true)
static Terraria.Social.Base.NetSocialModule Network
void liquidType(int liquidType)
bool isTheSameAs(Tile compTile)
static TownRoomManager TownManager
static TreeTopsInfo TreeTops
static void RangeFrame(int startX, int startY, int endX, int endY)
static bool shadowOrbSmashed
bool Intersects(Rectangle value)
NetSoundInfo(Vector2 position, ushort soundIndex, int style=-1, float volume=-1f, float pitchOffset=-1f)
void WriteSelfTo(BinaryWriter writer)