Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- protected T getParameter<T>(int packetID)
- {
- if (typeof(T) == typeof(float))
- {
- return (T) (object) NewNetCoreLib.nextPacketInFloat(packetID, NewNetCoreLib.Endian.defaultEndian);
- }
- else if (typeof(T) == typeof(int))
- {
- return (T) (object) NewNetCoreLib.nextPacketInInt(packetID, NewNetCoreLib.Endian.defaultEndian);
- }
- else if (typeof(T) == typeof(decimal))
- {
- int[] bits = new int[4];
- bits[0] = NewNetCoreLib.nextPacketInInt(packetID, NewNetCoreLib.Endian.defaultEndian);
- bits[1] = NewNetCoreLib.nextPacketInInt(packetID, NewNetCoreLib.Endian.defaultEndian);
- bits[2] = NewNetCoreLib.nextPacketInInt(packetID, NewNetCoreLib.Endian.defaultEndian);
- bits[3] = NewNetCoreLib.nextPacketInInt(packetID, NewNetCoreLib.Endian.defaultEndian);
- return (T) (object) new decimal(bits);
- }
- else if (typeof(T) == typeof(char))
- {
- byte[] data = new byte[2];
- data[0] = NewNetCoreLib.nextPacketInByte(packetID);
- data[1] = NewNetCoreLib.nextPacketInByte(packetID);
- return (T) (object) BitConverter.ToChar(data,0);
- }
- else if (typeof(T) == typeof(long))
- {
- byte[] bits = new byte[8];
- bits[0] = NewNetCoreLib.nextPacketInByte(packetID);
- bits[1] = NewNetCoreLib.nextPacketInByte(packetID);
- bits[2] = NewNetCoreLib.nextPacketInByte(packetID);
- bits[3] = NewNetCoreLib.nextPacketInByte(packetID);
- bits[4] = NewNetCoreLib.nextPacketInByte(packetID);
- bits[5] = NewNetCoreLib.nextPacketInByte(packetID);
- bits[6] = NewNetCoreLib.nextPacketInByte(packetID);
- bits[7] = NewNetCoreLib.nextPacketInByte(packetID);
- return (T)(object)BitConverter.ToInt64(bits, 0);
- }
- else if (typeof(T) == typeof(sbyte))
- {
- return (T) (object) NewNetCoreLib.nextPacketInByte(packetID);
- }
- else if (typeof(T) == typeof(string))
- {
- char[] outString;
- int outLength;
- NewNetCoreLib.nextPacketInArray(packetID, out outLength, out outString);
- return (T)(object)new string(outString, 0, outLength);
- }
- else if (typeof(T) == typeof(uint))
- {
- return (T)(object)NewNetCoreLib.nextPacketInInt(packetID, NewNetCoreLib.Endian.defaultEndian);
- }
- else if (typeof(T) == typeof(ulong))
- {
- byte[] bits = new byte[8];
- bits[0] = NewNetCoreLib.nextPacketInByte(packetID);
- bits[1] = NewNetCoreLib.nextPacketInByte(packetID);
- bits[2] = NewNetCoreLib.nextPacketInByte(packetID);
- bits[3] = NewNetCoreLib.nextPacketInByte(packetID);
- bits[4] = NewNetCoreLib.nextPacketInByte(packetID);
- bits[5] = NewNetCoreLib.nextPacketInByte(packetID);
- bits[6] = NewNetCoreLib.nextPacketInByte(packetID);
- bits[7] = NewNetCoreLib.nextPacketInByte(packetID);
- return (T)(object)BitConverter.ToUInt64(bits, 0);
- }
- else if (typeof(T) == typeof(ushort))
- {
- return (T)(object)NewNetCoreLib.nextPacketInShort(packetID, NewNetCoreLib.Endian.defaultEndian);
- }
- else if (typeof(T) == typeof(short))
- {
- return (T) (object) NewNetCoreLib.nextPacketInShort(packetID, NewNetCoreLib.Endian.defaultEndian);
- }
- else if (typeof(T) == typeof(byte))
- {
- return (T) (object) NewNetCoreLib.nextPacketInByte(packetID);
- }
- else if (typeof(T) == typeof(bool))
- {
- return (T) (object) NewNetCoreLib.nextPacketInBool(packetID);
- }
- else if (typeof(T) == typeof(Vector2))
- {
- Vector2 temp = new Vector2(
- NewNetCoreLib.nextPacketInFloat(packetID, NewNetCoreLib.Endian.defaultEndian),
- NewNetCoreLib.nextPacketInFloat(packetID, NewNetCoreLib.Endian.defaultEndian));
- return (T) (object) temp;
- }
- else if (typeof(T) == typeof(Vector3))
- {
- Vector3 temp = new Vector3(
- NewNetCoreLib.nextPacketInFloat(packetID, NewNetCoreLib.Endian.defaultEndian),
- NewNetCoreLib.nextPacketInFloat(packetID, NewNetCoreLib.Endian.defaultEndian),
- NewNetCoreLib.nextPacketInFloat(packetID, NewNetCoreLib.Endian.defaultEndian));
- return (T) (object) temp;
- }
- else if (typeof(T) == typeof(Vector4))
- {
- Vector4 temp = new Vector4(
- NewNetCoreLib.nextPacketInFloat(packetID, NewNetCoreLib.Endian.defaultEndian),
- NewNetCoreLib.nextPacketInFloat(packetID, NewNetCoreLib.Endian.defaultEndian),
- NewNetCoreLib.nextPacketInFloat(packetID, NewNetCoreLib.Endian.defaultEndian),
- NewNetCoreLib.nextPacketInFloat(packetID, NewNetCoreLib.Endian.defaultEndian));
- return (T) (object) temp;
- }
- else if (typeof(T) == typeof(Quaternion))
- {
- Quaternion temp = new Quaternion(
- NewNetCoreLib.nextPacketInFloat(packetID, NewNetCoreLib.Endian.defaultEndian),
- NewNetCoreLib.nextPacketInFloat(packetID, NewNetCoreLib.Endian.defaultEndian),
- NewNetCoreLib.nextPacketInFloat(packetID, NewNetCoreLib.Endian.defaultEndian),
- NewNetCoreLib.nextPacketInFloat(packetID, NewNetCoreLib.Endian.defaultEndian));
- return (T) (object) temp;
- }
- else if (typeof(T) == typeof(Array))
- {
- int length = NewNetCoreLib.nextPacketInInt(packetID, NewNetCoreLib.Endian.defaultEndian);
- Type t = typeof(T).GetElementType();
- if (t != null)
- {
- Array myArray = Array.CreateInstance(t, length);
- for (int i = 0; i < myArray.Length; i++)
- myArray.SetValue(
- typeof(HandlerBase).GetMethod("getParameter")
- .MakeGenericMethod(t)
- .Invoke(this, new object[] {packetID}), i);
- }
- }
- else
- {
- T temporaryT = (T)Activator.CreateInstance(typeof(T));
- int length = 0;
- byte[] output;
- NewNetCoreLib.nextPacketInArray(packetID, out length, out output);
- INetSerializable castT = temporaryT as INetSerializable;
- if(castT != null)
- castT.setFromByteArray(output, length);
- return temporaryT;
- }
- return default(T);
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement