public static Packet ReadPacket(Stream stream) { var packetType = stream.ReadByte(); Packet packet = null; switch (packetType) { case 1: packet = new QueueInteractionPacket(); packet.ReadPacketData(stream); return packet; case 2: packet = new QueueStatusUpdatePacket(); packet.ReadPacketData(stream); return packet; case 3: packet = new QueueFinishedPacket(); packet.ReadPacketData(stream); return packet; case 4: packet = new GameServerConnectPacket(); packet.ReadPacketData(stream); return packet; case 7: packet = new GameStatePacket(); return packet; case 8: packet = new InputPacket(); packet.ReadPacketData(stream); return packet; default: throw new Exception("Unrecognized Packet Type"); } }
private void UpdateFromClientGamepad(InputPacket input) { //update position based on client input Input playerInput = new Input() { A = input.A, B = input.B, X = input.X, Y = input.Y, RightAnalog = input.RightAnalog, LeftAnalog = input.LeftAnalog, Start = input.Start, down = input.Down, up = input.Up, left = input.Left, right = input.Right, downC = input.DownC, upC = input.UpC, rightC = input.RightC, leftC = input.LeftC, RightTrigger = input.RightTrigger, LeftTrigger = input.LeftTrigger, }; playerInputs.Add(new Tuple<int, Input>(input.playerNum, playerInput)); }