/** * Constructor * * @param doubleclickListener * Gets called when an entry is double clicked, can be <code>null</code> */ public OpenPanel(final ChangingList<? extends MapLoader> maps, IMapSelectedListener mapSelectedListener) { this(maps.getItems(), mapSelectedListener); maps.setListener(changedLister -> { setMapLoaders(changedLister.getItems()); }); }
/** * Gives the {@link MapLoader} for the map with the given id. * * @param id * The id of the map to be found. * @return Returns the corresponding {@link MapLoader}<br> * or null if no map with the given id has been found. */ public MapLoader getMapById(String id) { ArrayList<MapLoader> maps = new ArrayList<>(); maps.addAll(getFreshMaps().getItems()); maps.addAll(getSavedMaps().getItems()); for (MapLoader curr : maps) { if (curr.getMapId().equals(id)) { return curr; } } return null; }
private PlayerSetting[] determinePlayerSettings(boolean[] availablePlayers) { PlayerSetting[] playerSettings = new PlayerSetting[availablePlayers.length]; byte i = 0; for (; i < playersList.getItems().size(); i++) { playerSettings[i] = new PlayerSetting(i); } EPlayerType aiType = iAmTheHost ? EPlayerType.AI_VERY_HARD : EPlayerType.HUMAN; for (; i < availablePlayers.length; i++) { playerSettings[i] = new PlayerSetting(aiType, ECivilisation.ROMAN, i); } return playerSettings; }
public static MapLoader getNewestSavegame() { List<? extends MapLoader> savedMaps = MapList.getDefaultList().getSavedMaps().getItems(); if (savedMaps.isEmpty()) { throw new RuntimeException("No saved games found."); } MapLoader newest = savedMaps.get(0); for (MapLoader map : savedMaps) { if (newest.getCreationDate().before(map.getCreationDate())) { newest = map; } } return newest; }
byte calculatePlayerInfos(boolean[] availablePlayers) { String myId = networkClient.getPlayerInfo().getId(); byte i = 0; byte ownPlayerId = -1; for (IMultiplayerPlayer currPlayer : playersList.getItems()) { availablePlayers[i] = true; if (currPlayer.getId().equals(myId)) { ownPlayerId = i; } i++; } for (byte ii = i; ii < availablePlayers.length; ii++) { availablePlayers[ii] = true; } if (ownPlayerId < 0) { throw new RuntimeException("Wasn't able to find my id!"); } else { return ownPlayerId; } }
private boolean areAllPlayersReady() { return !stream(playersList.getItems()) .filter(player -> !player.isReady()) .findAny() .isPresent(); } };
private void addListener(IMultiplayerConnector multiPlayerConnector) { multiPlayerConnector .getJoinableMultiplayerGames() .setListener(networkGames -> { List<MapLoader> mapLoaders = stream(networkGames.getItems()) .map(NetworkGameMapLoader::new) .collect(Collectors.toList()); SwingUtilities.invokeLater(() -> joinMultiPlayerGamePanel.setMapLoaders(mapLoaders)); }); }
private void onPlayersChanges(ChangingList<? extends IMultiplayerPlayer> changingPlayers, IJoinPhaseMultiplayerGameConnector joinMultiPlayerMap) { SwingUtilities.invokeLater(() -> { List<? extends IMultiplayerPlayer> players = changingPlayers.getItems(); String myId = SettingsManager.getInstance().getUUID(); for (int i = 0; i < players.size(); i++) { PlayerSlot playerSlot = playerSlots.get(i); IMultiplayerPlayer player = players.get(i); playerSlot.setPlayerName(player.getName()); playerSlot.setReady(player.isReady()); playerSlot.setPlayerType(EPlayerType.HUMAN, false); if (player.getId().equals(myId)) { playerSlot.setReadyButtonEnabled(true); playerSlot.informGameAboutReady(joinMultiPlayerMap); } else { playerSlot.setReadyButtonEnabled(false); } } for (int i = players.size(); i < playerSlots.size(); i++) { playerSlots.get(i).setPlayerType(EPlayerType.AI_VERY_HARD, false); } setCancelButtonActionListener(e -> { joinMultiPlayerMap.abort(); settlersFrame.showMainMenu(); }); }); }
public MainMenuPanel(JSettlersFrame settlersFrame, IMultiplayerConnector multiPlayerConnector) { this.settlersFrame = settlersFrame; OpenPanel openSinglePlayerPanel = new OpenPanel(MapList.getDefaultList().getFreshMaps().getItems(), settlersFrame::showNewSinglePlayerGameMenu); OpenPanel openSaveGamePanel = new OpenPanel(MapList.getDefaultList().getSavedMaps(), this::loadSavegame); OpenPanel newMultiPlayerGamePanel = new OpenPanel(MapList.getDefaultList().getFreshMaps().getItems(), this::showNewMultiplayerGamePanel); joinMultiPlayerGamePanel = new OpenPanel(Collections.emptyList(), this::showJoinMultiplayerGamePanel); SettingsMenuPanel settingsPanel = new SettingsMenuPanel(this); registerMenu("main-panel-new-single-player-game-button", e -> setCenter("main-panel-new-single-player-game-button", openSinglePlayerPanel)); registerMenu("start-loadgame", e -> setCenter("start-loadgame", openSaveGamePanel)); registerMenu("settings-title", e -> { setCenter("settings-title", settingsPanel); settingsPanel.initializeValues(); }); registerMenu("start-newmultiplayer", e -> setCenter("start-newmultiplayer-start", newMultiPlayerGamePanel)); registerMenu("start-joinmultiplayer", e -> setCenter("start-joinmultiplayer-start", joinMultiPlayerGamePanel)); initButtonPanel(); SwingUtilities.updateComponentTreeUI(this); addListener(multiPlayerConnector); }