public synchronized void registerClientDevices(BluetoothDevice[] clientDevices) { Log.i(TAG, "클라이언트 배열 등록"); if (initialized == false) { Log.e(TAG, "초기화되지 않았습니다."); return; } if (clientDevices == null) { Log.e(TAG, "클라이언트 장치 목록은 null이 될 수 없습니다."); return; } if (clientDevices.length >= minPlayers && clientDevices.length <= maxPlayers || Mediator.getInstance().getMode() == Mode.CLIENT) { this.clientDevices = clientDevices; this.players = new Player[clientDevices.length]; for (int i = 0; i < clientDevices.length; i++) { this.players[i] = new Player(); } // 이 등록으로부터 맵퍼가 사용가능하면 중재자의 정보에 반영 checkIsAvaiableAndCommit(); } else { Log.e(TAG, "서로 맞지않는 길이 에러 : 클라이언트목록"); } }
// 등록될 때마다 모두 등록되엇는지 확인 후 완료 보고 private void checkIsAvaiableAndCommit() { Log.i(TAG, "checkIsAvaiableAndCommit() 진입"); if (isAvailable() == true) { Log.i(TAG, "checkIsAvaiableAndCommit() : 시작가능함!"); Log.i(TAG, "맵퍼 결과 반영 - 최종 연결구성 완료"); Log.i(TAG, "총 클라이언트(호스트 수) :" + players.length); Log.i(TAG, "총 윷 수 :" + yutGameTools.length); Log.i(TAG, "총 주사위 수 :" + dicePlusGameTools.length); // 완료 보고 // 사실 중재자가 하는게 맞는거같에.. 나중에 바꾸자, 상태 매니저의 핸들러도.. if (Mediator.getInstance().getMode() == Mode.HOST) { Log.i(TAG, "GAME_IS_STARTABLE 핸들러 메시지 전송 직전 모드는 : " + Mediator.getInstance().getMode()); Message message = Mediator.getInstance().getHandler().obtainMessage(AssistanceActivity.GAME_IS_STARTABLE); message.sendToTarget(); } } }
public synchronized void registerDice(Die[] dice) { Log.i(TAG, "주사위 배열 등록"); if (initialized == false) Log.e(TAG, "초기화되지 않았습니다."); if (dice == null) Log.e(TAG, "주사위 배열은 null이 될 수 없습니다."); if (dice.length == exactDicePluses || Mediator.getInstance().getMode() == Mode.CLIENT) { // 중요한 태크닉 this.dice = dice; this.dicePlusGameTools = new DicePlusGameTool[dice.length]; for (int i = 0; i < dice.length; i++) { this.dicePlusGameTools[i] = new DicePlusGameTool(); } checkIsAvaiableAndCommit(); } else { Log.e(TAG, "서로 맞지않는 길이 에러 : dice+"); } }
public synchronized void registerYutDevices(BluetoothDevice[] yutDevices) { Log.i(TAG, "윷 배열 등록"); if (initialized == false) Log.e(TAG, "초기화되지 않았습니다."); if (yutDevices == null) Log.e(TAG, "윷 장치목록은 null이 될 수 없습니다."); if (yutDevices.length == exactYutGameTools || Mediator.getInstance().getMode() == Mode.CLIENT) { this.yutDevices = yutDevices; this.yutGameTools = new YutGameTool[yutDevices.length]; for (int i = 0; i < yutDevices.length; i++) { this.yutGameTools[i] = new YutGameTool(); } checkIsAvaiableAndCommit(); } else { Log.e(TAG, "서로 맞지 않는 길이 에러 : yut"); } }