22 package com.realtime.crossfire.jxclient.character;
25 import java.util.ArrayList;
26 import java.util.Arrays;
27 import java.util.Collection;
28 import java.util.Collections;
29 import java.util.HashMap;
30 import java.util.List;
32 import org.jetbrains.annotations.NotNull;
33 import org.jetbrains.annotations.Nullable;
51 private final List<String>
raceList =
new ArrayList<>();
57 private final List<String>
classList =
new ArrayList<>();
63 private final Map<String, ClassRaceInfo>
raceInfo =
new HashMap<>();
69 private final Map<String, ClassRaceInfo>
classInfo =
new HashMap<>();
87 public void setStartingMaps(@NotNull
final Collection<StartingMap> startingMaps) {
88 this.startingMaps.clear();
89 this.startingMaps.addAll(startingMaps);
98 newCharacterInformationListeners.
add(newCharacterInformationListener);
107 newCharacterInformationListeners.
remove(newCharacterInformationListener);
117 return Collections.unmodifiableList(startingMaps);
125 this.raceList.clear();
126 this.raceList.addAll(Arrays.asList(raceList));
128 newCharacterInformationListener.raceListChanged();
138 return Collections.unmodifiableList(raceList);
146 this.classList.clear();
147 this.classList.addAll(Arrays.asList(classList));
149 newCharacterInformationListener.classListChanged();
159 return Collections.unmodifiableList(classList);
167 raceInfo.put(classRaceInfo.getArchName(), classRaceInfo);
169 newCharacterInformationListener.raceInfoChanged(classRaceInfo.getArchName());
180 return raceInfo.get(race);
188 this.classInfo.put(classInfo.getArchName(),
classInfo);
190 newCharacterInformationListener.classInfoChanged(classInfo.getArchName());
202 return classInfo.get(className);
A list of event listeners.
General information for creating new characters.
void add(@NotNull final T listener)
Adds a listener.
One possible class or race for character creation.
void remove(@NotNull final T listener)
Removes a listener.