implicit nullable types

This commit is contained in:
Anuken
2020-10-03 10:19:00 -04:00
parent 7a307bbe9c
commit 58a62ad19c
3 changed files with 6 additions and 4 deletions
@@ -30,11 +30,11 @@ public class TeamIndexProcess implements AsyncProcess{
} }
public void updateCount(Team team, UnitType type, int amount){ 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){ if(typeCounts[team.id].length <= type.id){
typeCounts[team.id] = new int[Vars.content.units().size]; 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){ private void count(Unit unit){
+3 -1
View File
@@ -6,6 +6,7 @@ import arc.audio.*;
import arc.files.*; import arc.files.*;
import arc.func.*; import arc.func.*;
import arc.graphics.*; import arc.graphics.*;
import arc.graphics.g2d.*;
import arc.mock.*; import arc.mock.*;
import arc.struct.*; import arc.struct.*;
import arc.util.*; import arc.util.*;
@@ -35,6 +36,7 @@ import java.lang.reflect.*;
public class ContentParser{ public class ContentParser{
private static final boolean ignoreUnknownFields = true; private static final boolean ignoreUnknownFields = true;
ObjectMap<Class<?>, ContentType> contentTypes = new ObjectMap<>(); ObjectMap<Class<?>, ContentType> contentTypes = new ObjectMap<>();
ObjectSet<Class<?>> implicitNullable = ObjectSet.with(TextureRegion.class);
ObjectMap<Class<?>, FieldParser> classParsers = new ObjectMap<>(){{ ObjectMap<Class<?>, FieldParser> classParsers = new ObjectMap<>(){{
put(Effect.class, (type, data) -> field(Fx.class, data)); put(Effect.class, (type, data) -> field(Fx.class, data));
@@ -546,7 +548,7 @@ public class ContentParser{
try{ try{
if(field.field.getType().isPrimitive()) return; 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!"); throw new RuntimeException("'" + field.field.getName() + "' in " + object.getClass().getSimpleName() + " is missing!");
} }
}catch(Exception e){ }catch(Exception e){
+1 -1
View File
@@ -1,3 +1,3 @@
org.gradle.daemon=true org.gradle.daemon=true
org.gradle.jvmargs=-Xms256m -Xmx1024m org.gradle.jvmargs=-Xms256m -Xmx1024m
archash=6dc0657dbc02a431ee7df8a5b385637d73c2f172 archash=7d3ae40af604e0c0dfa1e01bb563675732b111a4