Crossfire JXClient, Trunk
NewCharacterInformation.java
Go to the documentation of this file.
1 /*
2  * This file is part of JXClient, the Fullscreen Java Crossfire Client.
3  *
4  * JXClient is free software; you can redistribute it and/or modify
5  * it under the terms of the GNU General Public License as published by
6  * the Free Software Foundation; either version 2 of the License, or
7  * (at your option) any later version.
8  *
9  * JXClient is distributed in the hope that it will be useful,
10  * but WITHOUT ANY WARRANTY; without even the implied warranty of
11  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12  * GNU General Public License for more details.
13  *
14  * You should have received a copy of the GNU General Public License
15  * along with JXClient; if not, write to the Free Software
16  * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
17  *
18  * Copyright (C) 2005-2008 Yann Chachkoff
19  * Copyright (C) 2006-2017,2019-2023 Andreas Kirschbaum
20  * Copyright (C) 2010-2012,2014-2018,2020-2023 Nicolas Weeger
21  */
22 
23 package com.realtime.crossfire.jxclient.character;
24 
26 import java.util.ArrayList;
27 import java.util.Arrays;
28 import java.util.Collections;
29 import java.util.HashMap;
30 import java.util.List;
31 import java.util.Map;
32 import org.jetbrains.annotations.NotNull;
33 import org.jetbrains.annotations.Nullable;
34 
40 
44  @NotNull
45  private final List<String> startingMapList = new ArrayList<>();
46 
50  @NotNull
51  private final List<String> raceList = new ArrayList<>();
52 
56  @NotNull
57  private final List<String> classList = new ArrayList<>();
58 
62  @NotNull
63  private final Map<String, StartingMap> startingMapInfo = new HashMap<>();
64 
68  @NotNull
69  private final Map<String, ClassRaceInfo> raceInfo = new HashMap<>();
70 
74  @NotNull
75  private final Map<String, ClassRaceInfo> classInfo = new HashMap<>();
76 
80  @NotNull
81  private NewCharInfo newCharInfo = new NewCharInfo(0, 0, 0, Collections.emptyList(), false, false, false);
82 
86  @NotNull
88 
94  public void addNewCharacterInformationListener(@NotNull final NewCharacterInformationListener newCharacterInformationListener) {
95  newCharacterInformationListeners.add(newCharacterInformationListener);
96  }
97 
103  public void removeNewCharacterInformationListener(@NotNull final NewCharacterInformationListener newCharacterInformationListener) {
104  newCharacterInformationListeners.remove(newCharacterInformationListener);
105  }
106 
111  public void setStartingMapList(@NotNull final Iterable<StartingMap> startingMaps) {
112  startingMapList.clear();
113  for (StartingMap startingMap : startingMaps) {
114  startingMapList.add(startingMap.getArchName());
115  }
116  for (NewCharacterInformationListener newCharacterInformationListener : newCharacterInformationListeners) {
117  newCharacterInformationListener.startingMapListChanged();
118  }
119  for (StartingMap startingMap : startingMaps) {
120  addStartingMapInfo(startingMap);
121  }
122  }
123 
128  @NotNull
129  public List<String> getStartingMapList() {
130  return Collections.unmodifiableList(startingMapList);
131  }
132 
137  private void addStartingMapInfo(@NotNull final StartingMap startingMapInfo) {
138  this.startingMapInfo.put(startingMapInfo.getArchName(), startingMapInfo);
139  for (NewCharacterInformationListener newCharacterInformationListener : newCharacterInformationListeners) {
140  newCharacterInformationListener.startingMapInfoChanged(startingMapInfo.getArchName());
141  }
142  }
143 
150  @Nullable
151  public StartingMap getStartingMapInfo(@NotNull final String name) {
152  return startingMapInfo.get(name);
153  }
154 
159  public void setRaceList(@NotNull final String @NotNull [] raceList) {
160  this.raceList.clear();
161  this.raceList.addAll(Arrays.asList(raceList));
162  for (NewCharacterInformationListener newCharacterInformationListener : newCharacterInformationListeners) {
163  newCharacterInformationListener.raceListChanged();
164  }
165  }
166 
171  @NotNull
172  public List<String> getRaceList() {
173  return Collections.unmodifiableList(raceList);
174  }
175 
180  public void addRaceInfo(@NotNull final ClassRaceInfo classRaceInfo) {
181  raceInfo.put(classRaceInfo.getArchName(), classRaceInfo);
182  for (NewCharacterInformationListener newCharacterInformationListener : newCharacterInformationListeners) {
183  newCharacterInformationListener.raceInfoChanged(classRaceInfo.getArchName());
184  }
185  }
186 
192  @Nullable
193  public ClassRaceInfo getRaceInfo(@NotNull final String race) {
194  return raceInfo.get(race);
195  }
196 
201  public void setClassList(@NotNull final String @NotNull [] classList) {
202  this.classList.clear();
203  this.classList.addAll(Arrays.asList(classList));
204  for (NewCharacterInformationListener newCharacterInformationListener : newCharacterInformationListeners) {
205  newCharacterInformationListener.classListChanged();
206  }
207  }
208 
213  @NotNull
214  public List<String> getClassesList() {
215  return Collections.unmodifiableList(classList);
216  }
217 
222  public void addClassInfo(@NotNull final ClassRaceInfo classInfo) {
223  this.classInfo.put(classInfo.getArchName(), classInfo);
224  for (NewCharacterInformationListener newCharacterInformationListener : newCharacterInformationListeners) {
225  newCharacterInformationListener.classInfoChanged(classInfo.getArchName());
226  }
227  }
228 
235  @Nullable
236  public ClassRaceInfo getClassInfo(@NotNull final String className) {
237  return classInfo.get(className);
238  }
239 
244  public void setNewCharInfo(@NotNull final NewCharInfo newCharInfo) {
245  this.newCharInfo = newCharInfo;
246  }
247 
252  @NotNull
254  return newCharInfo;
255  }
256 
257 }
com.realtime.crossfire.jxclient.character.NewCharacterInformation.setRaceList
void setRaceList(@NotNull final String @NotNull[] raceList)
Definition: NewCharacterInformation.java:159
com.realtime.crossfire.jxclient
com.realtime.crossfire.jxclient.character.NewCharacterInformationListener
Definition: NewCharacterInformationListener.java:33
com.realtime.crossfire.jxclient.character.NewCharacterInformation.addRaceInfo
void addRaceInfo(@NotNull final ClassRaceInfo classRaceInfo)
Definition: NewCharacterInformation.java:180
com.realtime.crossfire.jxclient.character.NewCharacterInformation.setNewCharInfo
void setNewCharInfo(@NotNull final NewCharInfo newCharInfo)
Definition: NewCharacterInformation.java:244
com.realtime.crossfire.jxclient.character.NewCharacterInformation.getClassesList
List< String > getClassesList()
Definition: NewCharacterInformation.java:214
com.realtime.crossfire.jxclient.character.NewCharacterInformation.classInfo
final Map< String, ClassRaceInfo > classInfo
Definition: NewCharacterInformation.java:75
com.realtime.crossfire.jxclient.util.EventListenerList2
Definition: EventListenerList2.java:37
com.realtime.crossfire.jxclient.character.NewCharacterInformation.getStartingMapList
List< String > getStartingMapList()
Definition: NewCharacterInformation.java:129
com.realtime.crossfire.jxclient.character.NewCharacterInformation.addStartingMapInfo
void addStartingMapInfo(@NotNull final StartingMap startingMapInfo)
Definition: NewCharacterInformation.java:137
com.realtime.crossfire.jxclient.character.NewCharacterInformation.setStartingMapList
void setStartingMapList(@NotNull final Iterable< StartingMap > startingMaps)
Definition: NewCharacterInformation.java:111
com.realtime.crossfire.jxclient.character.NewCharacterInformation.setClassList
void setClassList(@NotNull final String @NotNull[] classList)
Definition: NewCharacterInformation.java:201
com.realtime.crossfire.jxclient.character.NewCharacterInformation.newCharacterInformationListeners
final EventListenerList2< NewCharacterInformationListener > newCharacterInformationListeners
Definition: NewCharacterInformation.java:87
com.realtime.crossfire.jxclient.character.NewCharacterInformation.newCharInfo
NewCharInfo newCharInfo
Definition: NewCharacterInformation.java:81
com.realtime.crossfire.jxclient.character.NewCharacterInformation.getNewCharInfo
NewCharInfo getNewCharInfo()
Definition: NewCharacterInformation.java:253
com.realtime.crossfire.jxclient.character.NewCharacterInformation.getStartingMapInfo
StartingMap getStartingMapInfo(@NotNull final String name)
Definition: NewCharacterInformation.java:151
com.realtime.crossfire.jxclient.character.NewCharacterInformation
Definition: NewCharacterInformation.java:39
com.realtime.crossfire.jxclient.character.NewCharacterInformation.getRaceInfo
ClassRaceInfo getRaceInfo(@NotNull final String race)
Definition: NewCharacterInformation.java:193
com.realtime.crossfire.jxclient.character.NewCharacterInformation.startingMapList
final List< String > startingMapList
Definition: NewCharacterInformation.java:45
com.realtime.crossfire.jxclient.character.NewCharacterInformation.classList
final List< String > classList
Definition: NewCharacterInformation.java:57
com.realtime.crossfire.jxclient.character.ClassRaceInfo
Definition: ClassRaceInfo.java:37
com.realtime.crossfire.jxclient.character.NewCharacterInformation.getRaceList
List< String > getRaceList()
Definition: NewCharacterInformation.java:172
com.realtime.crossfire.jxclient.character.NewCharacterInformation.raceList
final List< String > raceList
Definition: NewCharacterInformation.java:51
com.realtime.crossfire.jxclient.character.NewCharacterInformation.startingMapInfo
final Map< String, StartingMap > startingMapInfo
Definition: NewCharacterInformation.java:63
com.realtime.crossfire.jxclient.character.StartingMap
Definition: StartingMap.java:31
com.realtime.crossfire.jxclient.character.NewCharacterInformation.removeNewCharacterInformationListener
void removeNewCharacterInformationListener(@NotNull final NewCharacterInformationListener newCharacterInformationListener)
Definition: NewCharacterInformation.java:103
com.realtime.crossfire.jxclient.character.NewCharInfo
Definition: NewCharInfo.java:35
com.realtime.crossfire.jxclient.util
Definition: Codec.java:23
com.realtime.crossfire.jxclient.character.NewCharacterInformation.getClassInfo
ClassRaceInfo getClassInfo(@NotNull final String className)
Definition: NewCharacterInformation.java:236
com.realtime.crossfire
com.realtime
com
com.realtime.crossfire.jxclient.character.NewCharacterInformation.addClassInfo
void addClassInfo(@NotNull final ClassRaceInfo classInfo)
Definition: NewCharacterInformation.java:222
com.realtime.crossfire.jxclient.character.NewCharacterInformation.raceInfo
final Map< String, ClassRaceInfo > raceInfo
Definition: NewCharacterInformation.java:69
com.realtime.crossfire.jxclient.character.NewCharacterInformation.addNewCharacterInformationListener
void addNewCharacterInformationListener(@NotNull final NewCharacterInformationListener newCharacterInformationListener)
Definition: NewCharacterInformation.java:94