Terraria v1.4.4.9
Terraria source code documentation
Loading...
Searching...
No Matches
NetBestiaryModule.cs
Go to the documentation of this file.
1using System.IO;
2using Terraria.ID;
3using Terraria.Net;
4
6
8{
9 private enum BestiaryUnlockType : byte
10 {
11 Kill,
12 Sight,
13 Chat
14 }
15
16 public static NetPacket SerializeKillCount(int npcNetId, int killcount)
17 {
18 NetPacket result = NetModule.CreatePacket<NetBestiaryModule>(5);
19 result.Writer.Write((byte)0);
20 result.Writer.Write((short)npcNetId);
21 result.Writer.Write((ushort)killcount);
22 return result;
23 }
24
25 public static NetPacket SerializeSight(int npcNetId)
26 {
27 NetPacket result = NetModule.CreatePacket<NetBestiaryModule>(3);
28 result.Writer.Write((byte)1);
29 result.Writer.Write((short)npcNetId);
30 return result;
31 }
32
33 public static NetPacket SerializeChat(int npcNetId)
34 {
35 NetPacket result = NetModule.CreatePacket<NetBestiaryModule>(3);
36 result.Writer.Write((byte)2);
37 result.Writer.Write((short)npcNetId);
38 return result;
39 }
40
41 public override bool Deserialize(BinaryReader reader, int userId)
42 {
43 if (Main.dedServ)
44 {
45 return false;
46 }
47 switch ((BestiaryUnlockType)reader.ReadByte())
48 {
49 case BestiaryUnlockType.Kill:
50 {
51 short key3 = reader.ReadInt16();
52 string bestiaryCreditId3 = ContentSamples.NpcsByNetId[key3].GetBestiaryCreditId();
53 ushort killCount = reader.ReadUInt16();
54 Main.BestiaryTracker.Kills.SetKillCountDirectly(bestiaryCreditId3, killCount);
55 break;
56 }
57 case BestiaryUnlockType.Chat:
58 {
59 short key2 = reader.ReadInt16();
60 string bestiaryCreditId2 = ContentSamples.NpcsByNetId[key2].GetBestiaryCreditId();
61 Main.BestiaryTracker.Chats.SetWasChatWithDirectly(bestiaryCreditId2);
62 break;
63 }
64 case BestiaryUnlockType.Sight:
65 {
66 short key = reader.ReadInt16();
67 string bestiaryCreditId = ContentSamples.NpcsByNetId[key].GetBestiaryCreditId();
68 Main.BestiaryTracker.Sights.SetWasSeenDirectly(bestiaryCreditId);
69 break;
70 }
71 }
72 return true;
73 }
74}
virtual byte ReadByte()
virtual ushort ReadUInt16()
virtual short ReadInt16()
virtual void Write(bool value)
override bool Deserialize(BinaryReader reader, int userId)
static NetPacket SerializeKillCount(int npcNetId, int killcount)
static Dictionary< int, NPC > NpcsByNetId
static bool dedServ
Definition Main.cs:1226
static BestiaryUnlocksTracker BestiaryTracker
Definition Main.cs:1868
BinaryWriter Writer
Definition NetPacket.cs:16