diff --git a/src/main/java/com/replaymod/render/blend/data/Serializer.java b/src/main/java/com/replaymod/render/blend/data/Serializer.java index 63b28a50..fb54292e 100644 --- a/src/main/java/com/replaymod/render/blend/data/Serializer.java +++ b/src/main/java/com/replaymod/render/blend/data/Serializer.java @@ -24,7 +24,7 @@ import static org.cakelab.blender.io.block.BlockCodes.ID_DATA; public class Serializer { private final Map> serialized = new HashMap<>(); - private final Set usedNames = new HashSet<>(); + private final Map usedNames = new HashMap<>(); public CPointer getMajor(Object obj, Class clazz) { CPointer pointer = serialized.get(obj); @@ -47,13 +47,8 @@ public class Serializer { if (id.code != ID_DATA) { ID asID = pointer.cast(ID.class).get(); String name = id.code.toString().substring(0, 2) + id.name; - String fullName = name; - int i = 0; - while (usedNames.contains(fullName)) { - fullName = name + "." + i; - i++; - } - usedNames.add(fullName); + int counter = usedNames.compute(name, (n, i) -> i == null ? 0 : i + 1); + String fullName = counter == 0 ? name : name + "." + counter; asID.getName().fromString(fullName); }