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),
|
AssignedDamage(TrackableTypes.IntegerType),
|
||||||
ShieldCount(TrackableTypes.IntegerType),
|
ShieldCount(TrackableTypes.IntegerType),
|
||||||
ChosenType(TrackableTypes.StringType),
|
ChosenType(TrackableTypes.StringType),
|
||||||
ChosenColors(TrackableTypes.CardViewCollectionType),
|
ChosenColors(TrackableTypes.StringListType),
|
||||||
ChosenPlayer(TrackableTypes.PlayerViewType),
|
ChosenPlayer(TrackableTypes.PlayerViewType),
|
||||||
ChosenDirection(TrackableTypes.EnumType(Direction.class)),
|
ChosenDirection(TrackableTypes.EnumType(Direction.class)),
|
||||||
Remembered(TrackableTypes.StringType),
|
Remembered(TrackableTypes.StringType),
|
||||||
|
|||||||
@@ -1,7 +1,9 @@
|
|||||||
package forge.trackable;
|
package forge.trackable;
|
||||||
|
|
||||||
|
import java.util.ArrayList;
|
||||||
import java.util.HashMap;
|
import java.util.HashMap;
|
||||||
import java.util.HashSet;
|
import java.util.HashSet;
|
||||||
|
import java.util.List;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
import java.util.Map.Entry;
|
import java.util.Map.Entry;
|
||||||
import java.util.Set;
|
import java.util.Set;
|
||||||
@@ -56,11 +58,9 @@ public class TrackableTypes {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected void updateObjLookup(T newObj) {
|
protected void updateObjLookup(T newObj) {
|
||||||
if (newObj != null) {
|
if (newObj != null && !objLookup.containsKey(newObj.getId())) {
|
||||||
if (!objLookup.containsKey(newObj.getId())) {
|
objLookup.put(newObj.getId(), newObj);
|
||||||
objLookup.put(newObj.getId(), newObj);
|
newObj.updateObjLookup();
|
||||||
newObj.updateObjLookup();
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -430,6 +430,33 @@ public class TrackableTypes {
|
|||||||
ts.write(value.getColor());
|
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>>() {
|
public static final TrackableType<Set<String>> StringSetType = new TrackableType<Set<String>>() {
|
||||||
@Override
|
@Override
|
||||||
public Set<String> getDefaultValue() {
|
public Set<String> getDefaultValue() {
|
||||||
|
|||||||
Reference in New Issue
Block a user