diff --git a/core/src/mindustry/async/TeamIndexProcess.java b/core/src/mindustry/async/TeamIndexProcess.java index 13a234bbbc..86b5e16902 100644 --- a/core/src/mindustry/async/TeamIndexProcess.java +++ b/core/src/mindustry/async/TeamIndexProcess.java @@ -30,11 +30,11 @@ public class TeamIndexProcess implements AsyncProcess{ } public void updateCount(Team team, UnitType type, int amount){ - counts[team.id] += amount; + counts[team.id] = Math.max(amount + counts[team.id], 0); if(typeCounts[team.id].length <= type.id){ typeCounts[team.id] = new int[Vars.content.units().size]; } - typeCounts[team.id][type.id] += amount; + typeCounts[team.id][type.id] = Math.max(amount + typeCounts[team.id][type.id], 0); } private void count(Unit unit){ diff --git a/core/src/mindustry/mod/ContentParser.java b/core/src/mindustry/mod/ContentParser.java index fef289bd4b..db68d81bd1 100644 --- a/core/src/mindustry/mod/ContentParser.java +++ b/core/src/mindustry/mod/ContentParser.java @@ -6,6 +6,7 @@ import arc.audio.*; import arc.files.*; import arc.func.*; import arc.graphics.*; +import arc.graphics.g2d.*; import arc.mock.*; import arc.struct.*; import arc.util.*; @@ -35,6 +36,7 @@ import java.lang.reflect.*; public class ContentParser{ private static final boolean ignoreUnknownFields = true; ObjectMap, ContentType> contentTypes = new ObjectMap<>(); + ObjectSet> implicitNullable = ObjectSet.with(TextureRegion.class); ObjectMap, FieldParser> classParsers = new ObjectMap<>(){{ put(Effect.class, (type, data) -> field(Fx.class, data)); @@ -546,7 +548,7 @@ public class ContentParser{ try{ if(field.field.getType().isPrimitive()) return; - if(!field.field.isAnnotationPresent(Nullable.class) && field.field.get(object) == null){ + if(!field.field.isAnnotationPresent(Nullable.class) && field.field.get(object) == null && !implicitNullable.contains(field.field.getType())){ throw new RuntimeException("'" + field.field.getName() + "' in " + object.getClass().getSimpleName() + " is missing!"); } }catch(Exception e){ diff --git a/gradle.properties b/gradle.properties index 602caee724..21a53caea2 100644 --- a/gradle.properties +++ b/gradle.properties @@ -1,3 +1,3 @@ org.gradle.daemon=true org.gradle.jvmargs=-Xms256m -Xmx1024m -archash=6dc0657dbc02a431ee7df8a5b385637d73c2f172 +archash=7d3ae40af604e0c0dfa1e01bb563675732b111a4