Terraria v1.4.4.9
Terraria source code documentation
Loading...
Searching...
No Matches
NetSocialModule.cs
Go to the documentation of this file.
2using rail;
3using Terraria.Net;
5
7
8public abstract class NetSocialModule : Terraria.Social.Base.NetSocialModule
9{
10 public enum ConnectionState
11 {
15 }
16
17 protected const int LobbyMessageJoin = 1;
18
19 protected Lobby _lobby = new Lobby();
20
22
24
26
27 protected static readonly byte[] _handshake = new byte[10] { 10, 0, 93, 114, 101, 108, 111, 103, 105, 99 };
28
29 protected NetSocialModule()
30 {
33 }
34
35 public override void Initialize()
36 {
37 CoreSocialModule.OnTick += _reader.ReadTick;
38 CoreSocialModule.OnTick += _writer.SendAll;
39 }
40
41 public override void Shutdown()
42 {
43 _lobby.Leave();
44 }
45
46 public override bool IsConnected(RemoteAddress address)
47 {
48 if (address == null)
49 {
50 return false;
51 }
52 RailID key = RemoteAddressToRailId(address);
54 {
55 return false;
56 }
57 return true;
58 }
59
60 protected RailID GetLocalPeer()
61 {
62 return rail_api.RailFactory().RailPlayer().GetRailID();
63 }
64
65 protected bool GetSessionState(RailID userId, RailNetworkSessionState state)
66 {
67 //IL_000e: Unknown result type (might be due to invalid IL or missing references)
68 IRailNetwork val = rail_api.RailFactory().RailNetworkHelper();
69 if ((int)val.GetSessionState(userId, state) != 0)
70 {
71 WeGameHelper.WriteDebugString("GetSessionState Failed user:{0}", ((RailComparableID)userId).id_);
72 return false;
73 }
74 return true;
75 }
76
77 protected RailID RemoteAddressToRailId(RemoteAddress address)
78 {
79 return ((WeGameAddress)address).rail_id;
80 }
81
82 public override bool Send(RemoteAddress address, byte[] data, int length)
83 {
84 RailID user = RemoteAddressToRailId(address);
85 _writer.QueueSend(user, data, length);
86 return true;
87 }
88
89 public override int Receive(RemoteAddress address, byte[] data, int offset, int length)
90 {
91 if (address == null)
92 {
93 return 0;
94 }
95 RailID user = RemoteAddressToRailId(address);
96 return _reader.Receive(user, data, offset, length);
97 }
98
99 public override bool IsDataAvailable(RemoteAddress address)
100 {
101 RailID id = RemoteAddressToRailId(address);
102 return _reader.IsDataAvailable(id);
103 }
104}
override int Receive(RemoteAddress address, byte[] data, int offset, int length)
override bool IsConnected(RemoteAddress address)
bool GetSessionState(RailID userId, RailNetworkSessionState state)
RailID RemoteAddressToRailId(RemoteAddress address)
override bool Send(RemoteAddress address, byte[] data, int length)
ConcurrentDictionary< RailID, ConnectionState > _connectionStateMap
override bool IsDataAvailable(RemoteAddress address)
static void WriteDebugString(string format, params object[] args)
int Receive(RailID user, byte[] buffer, int bufferOffset, int bufferSize)
void QueueSend(RailID user, byte[] data, int length)