public static PlayerInput fromBytes(BitBuffer bitBuffer) { int id = bitBuffer.GetByte(); InputType type = (InputType)bitBuffer.GetByte(); switch (type) { case InputType.MOVEMENT: return(MovementInput.FromBytes(id, bitBuffer)); case InputType.ABILITY: return(AbilityInput.FromBytes(id, bitBuffer)); case InputType.START_GAME: return(GameStartInput.FromBytes(id, bitBuffer)); } return(null); }