public void OnNetworkReceive(NetPeer peer, NetDataReader reader) { if (reader.AvailableBytes == 13218) { Console.WriteLine("[{0}] TestFrag: {1}, {2}", peer.Handler.LocalEndPoint.Port, reader.Data[0], reader.Data[13217]); } else { int type = reader.GetInt(); int num = reader.GetInt(); _messagesReceivedCount++; Console.WriteLine("[{0}] CNT: {1}, TYPE: {2}, NUM: {3}", peer.Handler.LocalEndPoint.Port, _messagesReceivedCount, type, num); } }
public static Dictionary <TKey, TValue> GetDictionary <TKey, TValue>(this NetDataReader reader) { int count = reader.GetInt(); Dictionary <TKey, TValue> result = new Dictionary <TKey, TValue>(); for (int i = 0; i < count; ++i) { result.Add(reader.GetValue <TKey>(), reader.GetValue <TValue>()); } return(result); }
public static List <TValue> GetList <TValue>(this NetDataReader reader) { int count = reader.GetInt(); List <TValue> result = new List <TValue>(); for (int i = 0; i < count; ++i) { result.Add(reader.GetValue <TValue>()); } return(result); }
public static object GetArray(this NetDataReader reader, Type type) { int count = reader.GetInt(); Array array = Array.CreateInstance(type, count); for (int i = 0; i < count; ++i) { array.SetValue(reader.GetValue(type), i); } return(array); }
public static TValue[] GetArray <TValue>(this NetDataReader reader) { int count = reader.GetInt(); TValue[] result = new TValue[count]; for (int i = 0; i < count; ++i) { result[i] = reader.GetValue <TValue>(); } return(result); }
public static Vector3Int GetVector3Int(this NetDataReader reader) { return(new Vector3Int(reader.GetInt(), reader.GetInt(), reader.GetInt())); }
public override void Read(T inf, NetDataReader r) { Setter(inf, r.GetInt()); }
public override void Read(T inf, NetDataReader r) { Property.SetValue(inf, Enum.ToObject(PropertyType, r.GetInt()), null); }
public static object GetValue(this NetDataReader reader, Type type) { #region Generic Values if (type.IsPrimitive) { if (type == typeof(bool)) { return(reader.GetBool()); } if (type == typeof(byte)) { return(reader.GetByte()); } if (type == typeof(ushort)) { return(reader.GetUShort()); } if (type == typeof(int)) { return(reader.GetInt()); } if (type == typeof(float)) { return(reader.GetFloat()); } if (type == typeof(short)) { return(reader.GetShort()); } if (type == typeof(string)) { return(reader.GetString()); } if (type == typeof(uint)) { return(reader.GetUInt()); } if (type == typeof(long)) { return(reader.GetLong()); } if (type == typeof(char)) { return(reader.GetChar()); } if (type == typeof(double)) { return(reader.GetDouble()); } if (type == typeof(sbyte)) { return(reader.GetSByte()); } if (type == typeof(ulong)) { return(reader.GetULong()); } throw new ArgumentException("NetDataReader cannot read type " + type.Name); } else if (type.IsArray) { if (type == typeof(bool[])) { return(reader.GetBoolArray()); } if (type == typeof(byte[])) { return(reader.GetBytesWithLength()); } if (type == typeof(double[])) { return(reader.GetDoubleArray()); } if (type == typeof(float[])) { return(reader.GetFloatArray()); } if (type == typeof(int[])) { return(reader.GetIntArray()); } if (type == typeof(long[])) { return(reader.GetLongArray()); } if (type == typeof(short[])) { return(reader.GetShortArray()); } if (type == typeof(uint[])) { return(reader.GetUIntArray()); } if (type == typeof(ulong[])) { return(reader.GetULongArray()); } if (type == typeof(ushort[])) { return(reader.GetUShortArray()); } throw new ArgumentException("NetDataReader cannot read type " + type.Name); } else if (typeof(INetSerializable).IsAssignableFrom(type)) { object instance = Activator.CreateInstance(type); ((INetSerializable)instance).Deserialize(reader); return(instance); } else { #region Unity Values #if UNITY_2019 if (type == typeof(Color)) { return(reader.GetColor()); } if (type == typeof(Quaternion)) { return(reader.GetQuaternion()); } if (type == typeof(Vector2)) { return(reader.GetVector2()); } if (type == typeof(Vector2Int)) { return(reader.GetVector2Int()); } if (type == typeof(Vector3)) { return(reader.GetVector3()); } if (type == typeof(Vector3Int)) { return(reader.GetVector3Int()); } if (type == typeof(Vector4)) { return(reader.GetVector4()); } #endif #endregion if (type == typeof(string)) { return(reader.GetString()); } throw new ArgumentException("NetDataReader cannot read type " + type.Name); } #endregion }