mirror of
https://github.com/Card-Forge/forge.git
synced 2025-11-17 11:18:01 +00:00
Fix crash when setting ChosenColors
This commit is contained in:
@@ -32,7 +32,7 @@ public enum TrackableProperty {
|
||||
AssignedDamage(TrackableTypes.IntegerType),
|
||||
ShieldCount(TrackableTypes.IntegerType),
|
||||
ChosenType(TrackableTypes.StringType),
|
||||
ChosenColors(TrackableTypes.CardViewCollectionType),
|
||||
ChosenColors(TrackableTypes.StringListType),
|
||||
ChosenPlayer(TrackableTypes.PlayerViewType),
|
||||
ChosenDirection(TrackableTypes.EnumType(Direction.class)),
|
||||
Remembered(TrackableTypes.StringType),
|
||||
|
||||
@@ -1,7 +1,9 @@
|
||||
package forge.trackable;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.HashMap;
|
||||
import java.util.HashSet;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.Map.Entry;
|
||||
import java.util.Set;
|
||||
@@ -56,13 +58,11 @@ public class TrackableTypes {
|
||||
|
||||
@Override
|
||||
protected void updateObjLookup(T newObj) {
|
||||
if (newObj != null) {
|
||||
if (!objLookup.containsKey(newObj.getId())) {
|
||||
if (newObj != null && !objLookup.containsKey(newObj.getId())) {
|
||||
objLookup.put(newObj.getId(), newObj);
|
||||
newObj.updateObjLookup();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void copyChangedProps(TrackableObject from, TrackableObject to, TrackableProperty prop) {
|
||||
@@ -430,6 +430,33 @@ public class TrackableTypes {
|
||||
ts.write(value.getColor());
|
||||
}
|
||||
};
|
||||
public static final TrackableType<List<String>> StringListType = new TrackableType<List<String>>() {
|
||||
@Override
|
||||
public List<String> getDefaultValue() {
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<String> deserialize(TrackableDeserializer td, List<String> oldValue) {
|
||||
int size = td.readInt();
|
||||
if (size > 0) {
|
||||
List<String> set = new ArrayList<String>();
|
||||
for (int i = 0; i < size; i++) {
|
||||
set.add(td.readString());
|
||||
}
|
||||
return set;
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void serialize(TrackableSerializer ts, List<String> value) {
|
||||
ts.write(value.size());
|
||||
for (String s : value) {
|
||||
ts.write(s);
|
||||
}
|
||||
}
|
||||
};
|
||||
public static final TrackableType<Set<String>> StringSetType = new TrackableType<Set<String>>() {
|
||||
@Override
|
||||
public Set<String> getDefaultValue() {
|
||||
|
||||
Reference in New Issue
Block a user