diff --git a/annotations/src/main/java/mindustry/annotations/BaseProcessor.java b/annotations/src/main/java/mindustry/annotations/BaseProcessor.java index 22b3e173f3..46c4b92f73 100644 --- a/annotations/src/main/java/mindustry/annotations/BaseProcessor.java +++ b/annotations/src/main/java/mindustry/annotations/BaseProcessor.java @@ -1,7 +1,7 @@ package mindustry.annotations; import arc.files.*; -import arc.struct.Array; +import arc.struct.*; import arc.util.*; import arc.util.Log; import arc.util.Log.*; @@ -126,12 +126,12 @@ public abstract class BaseProcessor extends AbstractProcessor{ write(builder, null); } - public static void write(TypeSpec.Builder builder, Array imports) throws Exception{ + public static void write(TypeSpec.Builder builder, Seq imports) throws Exception{ JavaFile file = JavaFile.builder(packageName, builder.build()).skipJavaLangImports(true).build(); if(imports != null){ String rawSource = file.toString(); - Array result = new Array<>(); + Seq result = new Seq<>(); for (String s : rawSource.split("\n", -1)) { result.add(s); if (s.startsWith("package ")) { @@ -152,22 +152,22 @@ public abstract class BaseProcessor extends AbstractProcessor{ } } - public Array elements(Class type){ - return Array.with(env.getElementsAnnotatedWith(type)).map(Selement::new); + public Seq elements(Class type){ + return Seq.with(env.getElementsAnnotatedWith(type)).map(Selement::new); } - public Array types(Class type){ - return Array.with(env.getElementsAnnotatedWith(type)).select(e -> e instanceof TypeElement) + public Seq types(Class type){ + return Seq.with(env.getElementsAnnotatedWith(type)).select(e -> e instanceof TypeElement) .map(e -> new Stype((TypeElement)e)); } - public Array fields(Class type){ - return Array.with(env.getElementsAnnotatedWith(type)).select(e -> e instanceof VariableElement) + public Seq fields(Class type){ + return Seq.with(env.getElementsAnnotatedWith(type)).select(e -> e instanceof VariableElement) .map(e -> new Svar((VariableElement)e)); } - public Array methods(Class type){ - return Array.with(env.getElementsAnnotatedWith(type)).select(e -> e instanceof ExecutableElement) + public Seq methods(Class type){ + return Seq.with(env.getElementsAnnotatedWith(type)).select(e -> e instanceof ExecutableElement) .map(e -> new Smethod((ExecutableElement)e)); } diff --git a/annotations/src/main/java/mindustry/annotations/entity/EntityIO.java b/annotations/src/main/java/mindustry/annotations/entity/EntityIO.java index 8472c060cc..86d6b5e553 100644 --- a/annotations/src/main/java/mindustry/annotations/entity/EntityIO.java +++ b/annotations/src/main/java/mindustry/annotations/entity/EntityIO.java @@ -24,7 +24,7 @@ public class EntityIO{ final String name; final TypeSpec.Builder type; final Fi directory; - final Array revisions = new Array<>(); + final Seq revisions = new Seq<>(); boolean write; MethodSpec.Builder method; @@ -47,7 +47,7 @@ public class EntityIO{ int nextRevision = revisions.isEmpty() ? 0 : revisions.max(r -> r.version).version + 1; //resolve preferred field order based on fields that fit - Array fields = Array.with(type.fieldSpecs).select(spec -> + Seq fields = Seq.with(type.fieldSpecs).select(spec -> !spec.hasModifier(Modifier.TRANSIENT) && !spec.hasModifier(Modifier.STATIC) && !spec.hasModifier(Modifier.FINAL)/* && @@ -110,7 +110,7 @@ public class EntityIO{ } } - void writeSync(MethodSpec.Builder method, boolean write, Array syncFields, Array allFields) throws Exception{ + void writeSync(MethodSpec.Builder method, boolean write, Seq syncFields, Seq allFields) throws Exception{ this.method = method; this.write = write; @@ -147,7 +147,7 @@ public class EntityIO{ } } - void writeSyncManual(MethodSpec.Builder method, boolean write, Array syncFields) throws Exception{ + void writeSyncManual(MethodSpec.Builder method, boolean write, Seq syncFields) throws Exception{ this.method = method; this.write = write; @@ -170,7 +170,7 @@ public class EntityIO{ } } - void writeInterpolate(MethodSpec.Builder method, Array fields) throws Exception{ + void writeInterpolate(MethodSpec.Builder method, Seq fields) throws Exception{ this.method = method; cont("if(lastUpdated != 0 && updateSpacing != 0)"); @@ -234,7 +234,7 @@ public class EntityIO{ String struct = type.substring(0, type.indexOf("<")); String generic = type.substring(type.indexOf("<") + 1, type.indexOf(">")); - if(struct.equals("arc.struct.Queue") || struct.equals("arc.struct.Array")){ + if(struct.equals("arc.struct.Queue") || struct.equals("arc.struct.Seq")){ if(write){ s("i", field + ".size"); cont("for(int INDEX = 0; INDEX < $L.size; INDEX ++)", field); @@ -289,9 +289,9 @@ public class EntityIO{ public static class Revision{ int version; - Array fields; + Seq fields; - Revision(int version, Array fields){ + Revision(int version, Seq fields){ this.version = version; this.fields = fields; } @@ -299,7 +299,7 @@ public class EntityIO{ Revision(){} /** @return whether these two revisions are compatible */ - boolean equal(Array specs){ + boolean equal(Seq specs){ if(fields.size != specs.size) return false; for(int i = 0; i < fields.size; i++){ diff --git a/annotations/src/main/java/mindustry/annotations/entity/EntityProcess.java b/annotations/src/main/java/mindustry/annotations/entity/EntityProcess.java index f3fb569aff..bdb137d4cd 100644 --- a/annotations/src/main/java/mindustry/annotations/entity/EntityProcess.java +++ b/annotations/src/main/java/mindustry/annotations/entity/EntityProcess.java @@ -30,18 +30,18 @@ import java.lang.annotation.*; "mindustry.annotations.Annotations.TypeIOHandler" }) public class EntityProcess extends BaseProcessor{ - Array definitions = new Array<>(); - Array groupDefs = new Array<>(); - Array baseComponents; + Seq definitions = new Seq<>(); + Seq groupDefs = new Seq<>(); + Seq baseComponents; ObjectMap componentNames = new ObjectMap<>(); - ObjectMap> componentDependencies = new ObjectMap<>(); - ObjectMap> defComponents = new ObjectMap<>(); + ObjectMap> componentDependencies = new ObjectMap<>(); + ObjectMap> defComponents = new ObjectMap<>(); ObjectMap varInitializers = new ObjectMap<>(); ObjectMap methodBlocks = new ObjectMap<>(); ObjectSet imports = new ObjectSet<>(); - Array allGroups = new Array<>(); - Array allDefs = new Array<>(); - Array allInterfaces = new Array<>(); + Seq allGroups = new Seq<>(); + Seq allDefs = new Seq<>(); + Seq allInterfaces = new Seq<>(); ClassSerializer serializer; { @@ -58,7 +58,7 @@ public class EntityProcess extends BaseProcessor{ if(round == 1){ serializer = TypeIOResolver.resolve(this); baseComponents = types(BaseComponent.class); - Array allComponents = types(Component.class); + Seq allComponents = types(Component.class); //store code for(Stype component : allComponents){ @@ -103,7 +103,7 @@ public class EntityProcess extends BaseProcessor{ } //implement super interfaces - Array depends = getDependencies(component); + Seq depends = getDependencies(component); for(Stype type : depends){ inter.addSuperinterface(ClassName.get(packageName, interfaceName(type))); } @@ -133,7 +133,7 @@ public class EntityProcess extends BaseProcessor{ //getter if(!signatures.contains(cname + "()")){ inter.addMethod(MethodSpec.methodBuilder(cname).addModifiers(Modifier.ABSTRACT, Modifier.PUBLIC) - .addAnnotations(Array.with(field.annotations()).select(a -> a.toString().contains("Null")).map(AnnotationSpec::get)) + .addAnnotations(Seq.with(field.annotations()).select(a -> a.toString().contains("Null")).map(AnnotationSpec::get)) .addJavadoc(field.doc() == null ? "" : field.doc()) .returns(field.tname()).build()); } @@ -144,7 +144,7 @@ public class EntityProcess extends BaseProcessor{ inter.addMethod(MethodSpec.methodBuilder(cname).addModifiers(Modifier.ABSTRACT, Modifier.PUBLIC) .addJavadoc(field.doc() == null ? "" : field.doc()) .addParameter(ParameterSpec.builder(field.tname(), field.name()) - .addAnnotations(Array.with(field.annotations()) + .addAnnotations(Seq.with(field.annotations()) .select(a -> a.toString().contains("Null")).map(AnnotationSpec::get)).build()).build()); } } @@ -161,7 +161,7 @@ public class EntityProcess extends BaseProcessor{ //log methods generated for(MethodSpec spec : inter.methodSpecs){ - Log.debug("&g> > &c@ @(@)", simpleName(spec.returnType.toString()), spec.name, Array.with(spec.parameters).toString(", ", p -> simpleName(p.type.toString()) + " " + p.name)); + Log.debug("&g> > &c@ @(@)", simpleName(spec.returnType.toString()), spec.name, Seq.with(spec.parameters).toString(", ", p -> simpleName(p.type.toString()) + " " + p.name)); } Log.debug(""); @@ -172,7 +172,7 @@ public class EntityProcess extends BaseProcessor{ //parse groups for(Selement group : allGroups){ GroupDef an = group.annotation(GroupDef.class); - Array types = types(an, GroupDef::value).map(this::interfaceToComp); + Seq types = types(an, GroupDef::value).map(this::interfaceToComp); boolean collides = an.collide(); groupDefs.add(new GroupDefinition(group.name().startsWith("g") ? group.name().substring(1) : group.name(), ClassName.bestGuess(packageName + "." + interfaceName(types.first())), types, an.spatial(), an.mapping(), collides)); @@ -209,9 +209,9 @@ public class EntityProcess extends BaseProcessor{ TypeSpec.Builder builder = TypeSpec.classBuilder(name).addModifiers(Modifier.PUBLIC); if(isFinal) builder.addModifiers(Modifier.FINAL); - Array components = allComponents(type); - Array groups = groupDefs.select(g -> (!g.components.isEmpty() && !g.components.contains(s -> !components.contains(s))) || g.manualInclusions.contains(type)); - ObjectMap> methods = new ObjectMap<>(); + Seq components = allComponents(type); + Seq groups = groupDefs.select(g -> (!g.components.isEmpty() && !g.components.contains(s -> !components.contains(s))) || g.manualInclusions.contains(type)); + ObjectMap> methods = new ObjectMap<>(); ObjectMap specVariables = new ObjectMap<>(); ObjectSet usedFields = new ObjectSet<>(); @@ -219,8 +219,8 @@ public class EntityProcess extends BaseProcessor{ builder.addMethod(MethodSpec.methodBuilder("serialize").addModifiers(Modifier.PUBLIC, Modifier.FINAL).returns(boolean.class).addStatement("return " + ann.serialize()).build()); //all SyncField fields - Array syncedFields = new Array<>(); - Array allFields = new Array<>(); + Seq syncedFields = new Seq<>(); + Seq allFields = new Seq<>(); boolean isSync = components.contains(s -> s.name().contains("Sync")); @@ -228,7 +228,7 @@ public class EntityProcess extends BaseProcessor{ for(Stype comp : components){ //write fields to the class; ignoring transient/imported ones - Array fields = comp.fields().select(f -> !f.has(Import.class)); + Seq fields = comp.fields().select(f -> !f.has(Import.class)); for(Svar f : fields){ if(!usedFields.add(f.name())){ err("Field '" + f.name() + "' of component '" + comp.name() + "' re-defines a field in entity '" + type.name() + "'"); @@ -279,7 +279,7 @@ public class EntityProcess extends BaseProcessor{ //get all utility methods from components for(Smethod elem : comp.methods()){ - methods.get(elem.toString(), Array::new).add(elem); + methods.get(elem.toString(), Seq::new).add(elem); } } @@ -297,7 +297,7 @@ public class EntityProcess extends BaseProcessor{ boolean hasIO = ann.genio() && (components.contains(s -> s.name().contains("Sync")) || ann.serialize()); //add all methods from components - for(ObjectMap.Entry> entry : methods){ + for(ObjectMap.Entry> entry : methods){ if(entry.value.contains(m -> m.has(Replace.class))){ //check replacements if(entry.value.count(m -> m.has(Replace.class)) > 1){ @@ -513,7 +513,7 @@ public class EntityProcess extends BaseProcessor{ if(!idProps.exists()) idProps.writeString(""); PropertiesUtils.load(map, idProps.reader()); //next ID to be used in generation - Integer max = map.values().toArray().map(Integer::parseInt).max(i -> i); + Integer max = map.values().toSeq().map(Integer::parseInt).max(i -> i); int maxID = max == null ? 0 : max + 1; //assign IDs @@ -591,7 +591,7 @@ public class EntityProcess extends BaseProcessor{ //generate getter/setter for each method for(Smethod method : inter.methods()){ String var = method.name(); - FieldSpec field = Array.with(def.builder.fieldSpecs).find(f -> f.name.equals(var)); + FieldSpec field = Seq.with(def.builder.fieldSpecs).find(f -> f.name.equals(var)); //make sure it's a real variable AND that the component doesn't already implement it somewhere with custom logic if(field == null || methodNames.contains(method.simpleString())) continue; @@ -601,7 +601,7 @@ public class EntityProcess extends BaseProcessor{ } //setter - if(method.isVoid() && !Array.with(field.annotations).contains(f -> f.type.toString().equals("@mindustry.annotations.Annotations.ReadOnly"))){ + if(method.isVoid() && !Seq.with(field.annotations).contains(f -> f.type.toString().equals("@mindustry.annotations.Annotations.ReadOnly"))){ def.builder.addMethod(MethodSpec.overriding(method.e).addModifiers(Modifier.FINAL).addStatement("this." + var + " = " + var).build()); } } @@ -616,8 +616,8 @@ public class EntityProcess extends BaseProcessor{ //create mock types of all components for(Stype interf : allInterfaces){ //indirect interfaces to implement methods for - Array dependencies = interf.allInterfaces().and(interf); - Array methods = dependencies.flatMap(Stype::methods); + Seq dependencies = interf.allInterfaces().and(interf); + Seq methods = dependencies.flatMap(Stype::methods); methods.sortComparing(Object::toString); //used method signatures @@ -668,8 +668,8 @@ public class EntityProcess extends BaseProcessor{ } } - Array getImports(Element elem){ - return Array.with(trees.getPath(elem).getCompilationUnit().getImports()).map(Object::toString); + Seq getImports(Element elem){ + return Seq.with(trees.getPath(elem).getCompilationUnit().getImports()).map(Object::toString); } /** @return interface for a component type */ @@ -682,11 +682,11 @@ public class EntityProcess extends BaseProcessor{ } /** @return all components that a entity def has */ - Array allComponents(Selement type){ + Seq allComponents(Selement type){ if(!defComponents.containsKey(type)){ //get base defs - Array interfaces = types(type.annotation(EntityDef.class), EntityDef::value); - Array components = new Array<>(); + Seq interfaces = types(type.annotation(EntityDef.class), EntityDef::value); + Seq components = new Seq<>(); for(Stype i : interfaces){ Stype comp = interfaceToComp(i); if(comp != null){ @@ -709,7 +709,7 @@ public class EntityProcess extends BaseProcessor{ return defComponents.get(type); } - Array getDependencies(Stype component){ + Seq getDependencies(Stype component){ if(!componentDependencies.containsKey(component)){ ObjectSet out = new ObjectSet<>(); //add base component interfaces @@ -746,7 +746,7 @@ public class EntityProcess extends BaseProcessor{ } String createName(Selement elem){ - Array comps = types(elem.annotation(EntityDef.class), EntityDef::value).map(this::interfaceToComp);; + Seq comps = types(elem.annotation(EntityDef.class), EntityDef::value).map(this::interfaceToComp);; comps.sortComparing(Selement::name); return comps.toString("", s -> s.name().replace("Comp", "")) + "Entity"; } @@ -755,11 +755,11 @@ public class EntityProcess extends BaseProcessor{ return type.annotation(Component.class) != null; } - Array types(T t, Cons consumer){ + Seq types(T t, Cons consumer){ try{ consumer.get(t); }catch(MirroredTypesException e){ - return Array.with(e.getTypeMirrors()).map(Stype::of); + return Seq.with(e.getTypeMirrors()).map(Stype::of); } throw new IllegalArgumentException("Missing types."); } @@ -767,11 +767,11 @@ public class EntityProcess extends BaseProcessor{ class GroupDefinition{ final String name; final ClassName baseType; - final Array components; + final Seq components; final boolean spatial, mapping, collides; final ObjectSet manualInclusions = new ObjectSet<>(); - public GroupDefinition(String name, ClassName bestType, Array components, boolean spatial, boolean mapping, boolean collides){ + public GroupDefinition(String name, ClassName bestType, Seq components, boolean spatial, boolean mapping, boolean collides){ this.baseType = bestType; this.components = components; this.name = name; @@ -787,14 +787,14 @@ public class EntityProcess extends BaseProcessor{ } class EntityDefinition{ - final Array groups; - final Array components; + final Seq groups; + final Seq components; final TypeSpec.Builder builder; final Selement base; final String name; int classID; - public EntityDefinition(String name, Builder builder, Selement base, Array components, Array groups){ + public EntityDefinition(String name, Builder builder, Selement base, Seq components, Seq groups){ this.builder = builder; this.name = name; this.base = base; diff --git a/annotations/src/main/java/mindustry/annotations/impl/AssetsProcess.java b/annotations/src/main/java/mindustry/annotations/impl/AssetsProcess.java index fc83ce3e3b..e3e70e8ddd 100644 --- a/annotations/src/main/java/mindustry/annotations/impl/AssetsProcess.java +++ b/annotations/src/main/java/mindustry/annotations/impl/AssetsProcess.java @@ -69,7 +69,7 @@ public class AssetsProcess extends BaseProcessor{ }); for(Element elem : elements){ - Array.with(((TypeElement)elem).getEnclosedElements()).each(e -> e.getKind() == ElementKind.FIELD, field -> { + Seq.with(((TypeElement)elem).getEnclosedElements()).each(e -> e.getKind() == ElementKind.FIELD, field -> { String fname = field.getSimpleName().toString(); if(fname.startsWith("default")){ loadStyles.addStatement("arc.Core.scene.addStyle(" + field.asType().toString() + ".class, mindustry.ui.Styles." + fname + ")"); diff --git a/annotations/src/main/java/mindustry/annotations/misc/LoadRegionProcessor.java b/annotations/src/main/java/mindustry/annotations/misc/LoadRegionProcessor.java index 6923dc2149..8138fe398f 100644 --- a/annotations/src/main/java/mindustry/annotations/misc/LoadRegionProcessor.java +++ b/annotations/src/main/java/mindustry/annotations/misc/LoadRegionProcessor.java @@ -23,17 +23,17 @@ public class LoadRegionProcessor extends BaseProcessor{ .addParameter(tname("mindustry.ctype.MappableContent"), "content") .addModifiers(Modifier.STATIC, Modifier.PUBLIC); - ObjectMap> fieldMap = new ObjectMap<>(); + ObjectMap> fieldMap = new ObjectMap<>(); for(Svar field : fields(Load.class)){ if(!field.is(Modifier.PUBLIC)){ err("@LoadRegion field must be public", field); } - fieldMap.get(field.enclosingType(), Array::new).add(field); + fieldMap.get(field.enclosingType(), Seq::new).add(field); } - for(Entry> entry : fieldMap){ + for(Entry> entry : fieldMap){ method.beginControlFlow("if(content instanceof $T)", entry.key.tname()); for(Svar field : entry.value){ diff --git a/annotations/src/main/java/mindustry/annotations/remote/RemoteWriteGenerator.java b/annotations/src/main/java/mindustry/annotations/remote/RemoteWriteGenerator.java index 813bf0381f..503b4d6e8e 100644 --- a/annotations/src/main/java/mindustry/annotations/remote/RemoteWriteGenerator.java +++ b/annotations/src/main/java/mindustry/annotations/remote/RemoteWriteGenerator.java @@ -139,7 +139,7 @@ public class RemoteWriteGenerator{ //reset stream method.addStatement("OUT.reset()"); - method.addTypeVariables(Array.with(elem.getTypeParameters()).map(BaseProcessor::getTVN)); + method.addTypeVariables(Seq.with(elem.getTypeParameters()).map(BaseProcessor::getTVN)); for(int i = 0; i < elem.getParameters().size(); i++){ //first argument is skipped as it is always the player caller diff --git a/annotations/src/main/java/mindustry/annotations/remote/SerializerResolver.java b/annotations/src/main/java/mindustry/annotations/remote/SerializerResolver.java index 6431bfea49..b41674ffab 100644 --- a/annotations/src/main/java/mindustry/annotations/remote/SerializerResolver.java +++ b/annotations/src/main/java/mindustry/annotations/remote/SerializerResolver.java @@ -9,7 +9,7 @@ public class SerializerResolver{ public static String locate(ExecutableElement elem, TypeMirror mirror, boolean write){ //generic type - if((mirror.toString().equals("T") && Array.with(elem.getTypeParameters().get(0).getBounds()).contains(SerializerResolver::isEntity)) || + if((mirror.toString().equals("T") && Seq.with(elem.getTypeParameters().get(0).getBounds()).contains(SerializerResolver::isEntity)) || isEntity(mirror)){ return write ? "mindustry.io.TypeIO.writeEntity" : "mindustry.io.TypeIO.readEntity"; } diff --git a/annotations/src/main/java/mindustry/annotations/util/Selement.java b/annotations/src/main/java/mindustry/annotations/util/Selement.java index 0bd4b81ed5..3d952bc201 100644 --- a/annotations/src/main/java/mindustry/annotations/util/Selement.java +++ b/annotations/src/main/java/mindustry/annotations/util/Selement.java @@ -1,6 +1,6 @@ package mindustry.annotations.util; -import arc.struct.Array; +import arc.struct.*; import arc.util.ArcAnnotate.*; import com.squareup.javapoet.*; import com.sun.tools.javac.code.Attribute.*; @@ -23,8 +23,8 @@ public class Selement{ return BaseProcessor.elementu.getDocComment(e); } - public Array> enclosed(){ - return Array.with(e.getEnclosedElements()).map(Selement::new); + public Seq> enclosed(){ + return Seq.with(e.getEnclosedElements()).map(Selement::new); } public String fullName(){ @@ -55,8 +55,8 @@ public class Selement{ return e instanceof ExecutableElement; } - public Array annotations(){ - return Array.with(e.getAnnotationMirrors()); + public Seq annotations(){ + return Seq.with(e.getAnnotationMirrors()); } public A annotation(Class annotation){ diff --git a/annotations/src/main/java/mindustry/annotations/util/Smethod.java b/annotations/src/main/java/mindustry/annotations/util/Smethod.java index 892d28e4a2..7e067413fc 100644 --- a/annotations/src/main/java/mindustry/annotations/util/Smethod.java +++ b/annotations/src/main/java/mindustry/annotations/util/Smethod.java @@ -29,20 +29,20 @@ public class Smethod extends Selement{ return new Stype((TypeElement)up()); } - public Array thrown(){ - return Array.with(e.getThrownTypes()).as(); + public Seq thrown(){ + return Seq.with(e.getThrownTypes()).as(); } - public Array thrownt(){ - return Array.with(e.getThrownTypes()).map(TypeName::get); + public Seq thrownt(){ + return Seq.with(e.getThrownTypes()).map(TypeName::get); } - public Array typeVariables(){ - return Array.with(e.getTypeParameters()).as(); + public Seq typeVariables(){ + return Seq.with(e.getTypeParameters()).as(); } - public Array params(){ - return Array.with(e.getParameters()).map(Svar::new); + public Seq params(){ + return Seq.with(e.getParameters()).map(Svar::new); } public boolean isVoid(){ diff --git a/annotations/src/main/java/mindustry/annotations/util/Stype.java b/annotations/src/main/java/mindustry/annotations/util/Stype.java index 2582ae2fbb..58d08631dd 100644 --- a/annotations/src/main/java/mindustry/annotations/util/Stype.java +++ b/annotations/src/main/java/mindustry/annotations/util/Stype.java @@ -20,19 +20,19 @@ public class Stype extends Selement{ return mirror().toString(); } - public Array interfaces(){ - return Array.with(e.getInterfaces()).map(Stype::of); + public Seq interfaces(){ + return Seq.with(e.getInterfaces()).map(Stype::of); } - public Array allInterfaces(){ + public Seq allInterfaces(){ return interfaces().flatMap(s -> s.allInterfaces().and(s)).distinct(); } - public Array superclasses(){ - return Array.with(BaseProcessor.typeu.directSupertypes(mirror())).map(Stype::of); + public Seq superclasses(){ + return Seq.with(BaseProcessor.typeu.directSupertypes(mirror())).map(Stype::of); } - public Array allSuperclasses(){ + public Seq allSuperclasses(){ return superclasses().flatMap(s -> s.allSuperclasses().and(s)).distinct(); } @@ -40,17 +40,17 @@ public class Stype extends Selement{ return new Stype((TypeElement)BaseProcessor.typeu.asElement(BaseProcessor.typeu.directSupertypes(mirror()).get(0))); } - public Array fields(){ - return Array.with(e.getEnclosedElements()).select(e -> e instanceof VariableElement).map(e -> new Svar((VariableElement)e)); + public Seq fields(){ + return Seq.with(e.getEnclosedElements()).select(e -> e instanceof VariableElement).map(e -> new Svar((VariableElement)e)); } - public Array methods(){ - return Array.with(e.getEnclosedElements()).select(e -> e instanceof ExecutableElement + public Seq methods(){ + return Seq.with(e.getEnclosedElements()).select(e -> e instanceof ExecutableElement && !e.getSimpleName().toString().contains("<")).map(e -> new Smethod((ExecutableElement)e)); } - public Array constructors(){ - return Array.with(e.getEnclosedElements()).select(e -> e instanceof ExecutableElement + public Seq constructors(){ + return Seq.with(e.getEnclosedElements()).select(e -> e instanceof ExecutableElement && e.getSimpleName().toString().contains("<")).map(e -> new Smethod((ExecutableElement)e)); } diff --git a/annotations/src/main/java/mindustry/annotations/util/TypeIOResolver.java b/annotations/src/main/java/mindustry/annotations/util/TypeIOResolver.java index 9c4d0e9139..4a8d9ec968 100644 --- a/annotations/src/main/java/mindustry/annotations/util/TypeIOResolver.java +++ b/annotations/src/main/java/mindustry/annotations/util/TypeIOResolver.java @@ -19,10 +19,10 @@ public class TypeIOResolver{ ClassSerializer out = new ClassSerializer(new ObjectMap<>(), new ObjectMap<>(), new ObjectMap<>()); for(Stype type : processor.types(TypeIOHandler.class)){ //look at all TypeIOHandler methods - Array methods = type.methods(); + Seq methods = type.methods(); for(Smethod meth : methods){ if(meth.is(Modifier.PUBLIC) && meth.is(Modifier.STATIC)){ - Array params = meth.params(); + Seq params = meth.params(); //2 params, second one is type, first is writer if(params.size == 2 && params.first().tname().toString().equals("arc.util.io.Writes")){ out.writers.put(params.get(1).tname().toString(), type.fullName() + "." + meth.name()); diff --git a/annotations/src/main/resources/classids.properties b/annotations/src/main/resources/classids.properties index 35bd0b348c..d46af8c4d2 100644 --- a/annotations/src/main/resources/classids.properties +++ b/annotations/src/main/resources/classids.properties @@ -12,12 +12,12 @@ mindustry.entities.comp.PlayerComp=8 mindustry.entities.comp.PuddleComp=9 mindustry.entities.comp.TileComp=10 mindustry.type.Weather.WeatherComp=11 -mindustry.world.blocks.campaign.CoreLauncher.LaunchCoreComp=20 -mindustry.world.blocks.campaign.LaunchPad.LaunchPayloadComp=12 -oculon=13 -phantom=14 -tau=19 -titan=15 +mindustry.world.blocks.campaign.CoreLauncher.LaunchCoreComp=12 +mindustry.world.blocks.campaign.LaunchPad.LaunchPayloadComp=13 +oculon=14 +phantom=15 +tau=16 +titan=17 trident=18 -vanguard=16 -wraith=17 \ No newline at end of file +vanguard=19 +wraith=20 \ No newline at end of file diff --git a/annotations/src/main/resources/revisions/BlockUnitUnitEntity/0.json b/annotations/src/main/resources/revisions/BlockUnitUnitEntity/0.json index ea9b0f0abe..a558d32e9c 100644 --- a/annotations/src/main/resources/revisions/BlockUnitUnitEntity/0.json +++ b/annotations/src/main/resources/revisions/BlockUnitUnitEntity/0.json @@ -1 +1 @@ -{fields:[{name:armor,type:float,size:4},{name:controller,type:mindustry.entities.units.UnitController,size:-1},{name:elevation,type:float,size:4},{name:health,type:float,size:4},{name:isShooting,type:boolean,size:1},{name:rotation,type:float,size:4},{name:shield,type:float,size:4},{name:spawnedByCore,type:boolean,size:1},{name:stack,type:mindustry.type.ItemStack,size:-1},{name:statuses,type:arc.struct.Array,size:-1},{name:team,type:mindustry.game.Team,size:-1},{name:type,type:mindustry.type.UnitType,size:-1},{name:x,type:float,size:4},{name:y,type:float,size:4}]} \ No newline at end of file +{fields:[{name:armor,type:float,size:4},{name:controller,type:mindustry.entities.units.UnitController,size:-1},{name:elevation,type:float,size:4},{name:health,type:float,size:4},{name:isShooting,type:boolean,size:1},{name:rotation,type:float,size:4},{name:shield,type:float,size:4},{name:spawnedByCore,type:boolean,size:1},{name:stack,type:mindustry.type.ItemStack,size:-1},{name:statuses,type:arc.struct.Seq,size:-1},{name:team,type:mindustry.game.Team,size:-1},{name:type,type:mindustry.type.UnitType,size:-1},{name:x,type:float,size:4},{name:y,type:float,size:4}]} \ No newline at end of file diff --git a/annotations/src/main/resources/revisions/BuilderCommanderMechMinerUnitEntity/0.json b/annotations/src/main/resources/revisions/BuilderCommanderMechMinerUnitEntity/0.json index dcf10887d1..5f0c82df0c 100644 --- a/annotations/src/main/resources/revisions/BuilderCommanderMechMinerUnitEntity/0.json +++ b/annotations/src/main/resources/revisions/BuilderCommanderMechMinerUnitEntity/0.json @@ -1 +1 @@ -{fields:[{name:armor,type:float,size:4},{name:baseRotation,type:float,size:4},{name:controller,type:mindustry.entities.units.UnitController,size:-1},{name:elevation,type:float,size:4},{name:health,type:float,size:4},{name:isShooting,type:boolean,size:1},{name:mineTile,type:mindustry.world.Tile,size:-1},{name:requests,type:arc.struct.Queue,size:-1},{name:rotation,type:float,size:4},{name:shield,type:float,size:4},{name:spawnedByCore,type:boolean,size:1},{name:stack,type:mindustry.type.ItemStack,size:-1},{name:statuses,type:arc.struct.Array,size:-1},{name:team,type:mindustry.game.Team,size:-1},{name:type,type:mindustry.type.UnitType,size:-1},{name:x,type:float,size:4},{name:y,type:float,size:4}]} \ No newline at end of file +{fields:[{name:armor,type:float,size:4},{name:baseRotation,type:float,size:4},{name:controller,type:mindustry.entities.units.UnitController,size:-1},{name:elevation,type:float,size:4},{name:health,type:float,size:4},{name:isShooting,type:boolean,size:1},{name:mineTile,type:mindustry.world.Tile,size:-1},{name:requests,type:arc.struct.Queue,size:-1},{name:rotation,type:float,size:4},{name:shield,type:float,size:4},{name:spawnedByCore,type:boolean,size:1},{name:stack,type:mindustry.type.ItemStack,size:-1},{name:statuses,type:arc.struct.Seq,size:-1},{name:team,type:mindustry.game.Team,size:-1},{name:type,type:mindustry.type.UnitType,size:-1},{name:x,type:float,size:4},{name:y,type:float,size:4}]} \ No newline at end of file diff --git a/annotations/src/main/resources/revisions/BuilderMechUnitEntity/0.json b/annotations/src/main/resources/revisions/BuilderMechUnitEntity/0.json index 53a405df99..507ab66b2a 100644 --- a/annotations/src/main/resources/revisions/BuilderMechUnitEntity/0.json +++ b/annotations/src/main/resources/revisions/BuilderMechUnitEntity/0.json @@ -1 +1 @@ -{fields:[{name:armor,type:float,size:4},{name:baseRotation,type:float,size:4},{name:controller,type:mindustry.entities.units.UnitController,size:-1},{name:elevation,type:float,size:4},{name:health,type:float,size:4},{name:isShooting,type:boolean,size:1},{name:requests,type:arc.struct.Queue,size:-1},{name:rotation,type:float,size:4},{name:shield,type:float,size:4},{name:spawnedByCore,type:boolean,size:1},{name:stack,type:mindustry.type.ItemStack,size:-1},{name:statuses,type:arc.struct.Array,size:-1},{name:team,type:mindustry.game.Team,size:-1},{name:type,type:mindustry.type.UnitType,size:-1},{name:x,type:float,size:4},{name:y,type:float,size:4}]} \ No newline at end of file +{fields:[{name:armor,type:float,size:4},{name:baseRotation,type:float,size:4},{name:controller,type:mindustry.entities.units.UnitController,size:-1},{name:elevation,type:float,size:4},{name:health,type:float,size:4},{name:isShooting,type:boolean,size:1},{name:requests,type:arc.struct.Queue,size:-1},{name:rotation,type:float,size:4},{name:shield,type:float,size:4},{name:spawnedByCore,type:boolean,size:1},{name:stack,type:mindustry.type.ItemStack,size:-1},{name:statuses,type:arc.struct.Seq,size:-1},{name:team,type:mindustry.game.Team,size:-1},{name:type,type:mindustry.type.UnitType,size:-1},{name:x,type:float,size:4},{name:y,type:float,size:4}]} \ No newline at end of file diff --git a/annotations/src/main/resources/revisions/BuilderMinerPayloadUnitEntity/0.json b/annotations/src/main/resources/revisions/BuilderMinerPayloadUnitEntity/0.json index 093aff894e..e3ede883ad 100644 --- a/annotations/src/main/resources/revisions/BuilderMinerPayloadUnitEntity/0.json +++ b/annotations/src/main/resources/revisions/BuilderMinerPayloadUnitEntity/0.json @@ -1 +1 @@ -{fields:[{name:armor,type:float,size:4},{name:controller,type:mindustry.entities.units.UnitController,size:-1},{name:elevation,type:float,size:4},{name:health,type:float,size:4},{name:isShooting,type:boolean,size:1},{name:mineTile,type:mindustry.world.Tile,size:-1},{name:payloads,type:arc.struct.Array,size:-1},{name:requests,type:arc.struct.Queue,size:-1},{name:rotation,type:float,size:4},{name:shield,type:float,size:4},{name:spawnedByCore,type:boolean,size:1},{name:stack,type:mindustry.type.ItemStack,size:-1},{name:statuses,type:arc.struct.Array,size:-1},{name:team,type:mindustry.game.Team,size:-1},{name:type,type:mindustry.type.UnitType,size:-1},{name:x,type:float,size:4},{name:y,type:float,size:4}]} \ No newline at end of file +{fields:[{name:armor,type:float,size:4},{name:controller,type:mindustry.entities.units.UnitController,size:-1},{name:elevation,type:float,size:4},{name:health,type:float,size:4},{name:isShooting,type:boolean,size:1},{name:mineTile,type:mindustry.world.Tile,size:-1},{name:payloads,type:arc.struct.Seq,size:-1},{name:requests,type:arc.struct.Queue,size:-1},{name:rotation,type:float,size:4},{name:shield,type:float,size:4},{name:spawnedByCore,type:boolean,size:1},{name:stack,type:mindustry.type.ItemStack,size:-1},{name:statuses,type:arc.struct.Seq,size:-1},{name:team,type:mindustry.game.Team,size:-1},{name:type,type:mindustry.type.UnitType,size:-1},{name:x,type:float,size:4},{name:y,type:float,size:4}]} \ No newline at end of file diff --git a/annotations/src/main/resources/revisions/BuilderMinerUnitEntity/0.json b/annotations/src/main/resources/revisions/BuilderMinerUnitEntity/0.json index 5746932e54..718245019c 100644 --- a/annotations/src/main/resources/revisions/BuilderMinerUnitEntity/0.json +++ b/annotations/src/main/resources/revisions/BuilderMinerUnitEntity/0.json @@ -1 +1 @@ -{fields:[{name:armor,type:float,size:4},{name:controller,type:mindustry.entities.units.UnitController,size:-1},{name:elevation,type:float,size:4},{name:health,type:float,size:4},{name:isShooting,type:boolean,size:1},{name:mineTile,type:mindustry.world.Tile,size:-1},{name:requests,type:arc.struct.Queue,size:-1},{name:rotation,type:float,size:4},{name:shield,type:float,size:4},{name:spawnedByCore,type:boolean,size:1},{name:stack,type:mindustry.type.ItemStack,size:-1},{name:statuses,type:arc.struct.Array,size:-1},{name:team,type:mindustry.game.Team,size:-1},{name:type,type:mindustry.type.UnitType,size:-1},{name:x,type:float,size:4},{name:y,type:float,size:4}]} \ No newline at end of file +{fields:[{name:armor,type:float,size:4},{name:controller,type:mindustry.entities.units.UnitController,size:-1},{name:elevation,type:float,size:4},{name:health,type:float,size:4},{name:isShooting,type:boolean,size:1},{name:mineTile,type:mindustry.world.Tile,size:-1},{name:requests,type:arc.struct.Queue,size:-1},{name:rotation,type:float,size:4},{name:shield,type:float,size:4},{name:spawnedByCore,type:boolean,size:1},{name:stack,type:mindustry.type.ItemStack,size:-1},{name:statuses,type:arc.struct.Seq,size:-1},{name:team,type:mindustry.game.Team,size:-1},{name:type,type:mindustry.type.UnitType,size:-1},{name:x,type:float,size:4},{name:y,type:float,size:4}]} \ No newline at end of file diff --git a/annotations/src/main/resources/revisions/BuilderUnitEntity/0.json b/annotations/src/main/resources/revisions/BuilderUnitEntity/0.json index 941ae5465e..61b59221fa 100644 --- a/annotations/src/main/resources/revisions/BuilderUnitEntity/0.json +++ b/annotations/src/main/resources/revisions/BuilderUnitEntity/0.json @@ -1 +1 @@ -{fields:[{name:armor,type:float,size:4},{name:controller,type:mindustry.entities.units.UnitController,size:-1},{name:elevation,type:float,size:4},{name:health,type:float,size:4},{name:isShooting,type:boolean,size:1},{name:requests,type:arc.struct.Queue,size:-1},{name:rotation,type:float,size:4},{name:shield,type:float,size:4},{name:spawnedByCore,type:boolean,size:1},{name:stack,type:mindustry.type.ItemStack,size:-1},{name:statuses,type:arc.struct.Array,size:-1},{name:team,type:mindustry.game.Team,size:-1},{name:type,type:mindustry.type.UnitType,size:-1},{name:x,type:float,size:4},{name:y,type:float,size:4}]} \ No newline at end of file +{fields:[{name:armor,type:float,size:4},{name:controller,type:mindustry.entities.units.UnitController,size:-1},{name:elevation,type:float,size:4},{name:health,type:float,size:4},{name:isShooting,type:boolean,size:1},{name:requests,type:arc.struct.Queue,size:-1},{name:rotation,type:float,size:4},{name:shield,type:float,size:4},{name:spawnedByCore,type:boolean,size:1},{name:stack,type:mindustry.type.ItemStack,size:-1},{name:statuses,type:arc.struct.Seq,size:-1},{name:team,type:mindustry.game.Team,size:-1},{name:type,type:mindustry.type.UnitType,size:-1},{name:x,type:float,size:4},{name:y,type:float,size:4}]} \ No newline at end of file diff --git a/annotations/src/main/resources/revisions/BulletEntity/0.json b/annotations/src/main/resources/revisions/BulletEntity/0.json index 4bc5456a6b..4904375b03 100644 --- a/annotations/src/main/resources/revisions/BulletEntity/0.json +++ b/annotations/src/main/resources/revisions/BulletEntity/0.json @@ -1 +1 @@ -{fields:[{name:collided,type:arc.struct.IntArray,size:-1},{name:damage,type:float,size:4},{name:data,type:java.lang.Object,size:-1},{name:lifetime,type:float,size:4},{name:owner,type:Entityc,size:-1},{name:team,type:mindustry.game.Team,size:-1},{name:time,type:float,size:4},{name:type,type:mindustry.entities.bullet.BulletType,size:-1},{name:x,type:float,size:4},{name:y,type:float,size:4}]} \ No newline at end of file +{fields:[{name:collided,type:arc.struct.IntSeq,size:-1},{name:damage,type:float,size:4},{name:data,type:java.lang.Object,size:-1},{name:lifetime,type:float,size:4},{name:owner,type:Entityc,size:-1},{name:team,type:mindustry.game.Team,size:-1},{name:time,type:float,size:4},{name:type,type:mindustry.entities.bullet.BulletType,size:-1},{name:x,type:float,size:4},{name:y,type:float,size:4}]} \ No newline at end of file diff --git a/annotations/src/main/resources/revisions/CommanderUnitWaterMoveEntity/0.json b/annotations/src/main/resources/revisions/CommanderUnitWaterMoveEntity/0.json index ea9b0f0abe..a558d32e9c 100644 --- a/annotations/src/main/resources/revisions/CommanderUnitWaterMoveEntity/0.json +++ b/annotations/src/main/resources/revisions/CommanderUnitWaterMoveEntity/0.json @@ -1 +1 @@ -{fields:[{name:armor,type:float,size:4},{name:controller,type:mindustry.entities.units.UnitController,size:-1},{name:elevation,type:float,size:4},{name:health,type:float,size:4},{name:isShooting,type:boolean,size:1},{name:rotation,type:float,size:4},{name:shield,type:float,size:4},{name:spawnedByCore,type:boolean,size:1},{name:stack,type:mindustry.type.ItemStack,size:-1},{name:statuses,type:arc.struct.Array,size:-1},{name:team,type:mindustry.game.Team,size:-1},{name:type,type:mindustry.type.UnitType,size:-1},{name:x,type:float,size:4},{name:y,type:float,size:4}]} \ No newline at end of file +{fields:[{name:armor,type:float,size:4},{name:controller,type:mindustry.entities.units.UnitController,size:-1},{name:elevation,type:float,size:4},{name:health,type:float,size:4},{name:isShooting,type:boolean,size:1},{name:rotation,type:float,size:4},{name:shield,type:float,size:4},{name:spawnedByCore,type:boolean,size:1},{name:stack,type:mindustry.type.ItemStack,size:-1},{name:statuses,type:arc.struct.Seq,size:-1},{name:team,type:mindustry.game.Team,size:-1},{name:type,type:mindustry.type.UnitType,size:-1},{name:x,type:float,size:4},{name:y,type:float,size:4}]} \ No newline at end of file diff --git a/annotations/src/main/resources/revisions/LaunchCoreEntity/0.json b/annotations/src/main/resources/revisions/LaunchCoreEntity/0.json index 6fed0fac7f..86b499e433 100644 --- a/annotations/src/main/resources/revisions/LaunchCoreEntity/0.json +++ b/annotations/src/main/resources/revisions/LaunchCoreEntity/0.json @@ -1 +1 @@ -{fields:[{name:lifetime,type:float,size:4},{name:team,type:mindustry.game.Team,size:-1},{name:time,type:float,size:4},{name:x,type:float,size:4},{name:y,type:float,size:4}]} \ No newline at end of file +{fields:[{name:block,type:mindustry.world.Block,size:-1},{name:lifetime,type:float,size:4},{name:time,type:float,size:4},{name:x,type:float,size:4},{name:y,type:float,size:4}]} \ No newline at end of file diff --git a/annotations/src/main/resources/revisions/LaunchCoreEntity/1.json b/annotations/src/main/resources/revisions/LaunchCoreEntity/1.json deleted file mode 100644 index 4575c931f1..0000000000 --- a/annotations/src/main/resources/revisions/LaunchCoreEntity/1.json +++ /dev/null @@ -1 +0,0 @@ -{version:1,fields:[{name:block,type:mindustry.world.Block,size:-1},{name:lifetime,type:float,size:4},{name:team,type:mindustry.game.Team,size:-1},{name:time,type:float,size:4},{name:x,type:float,size:4},{name:y,type:float,size:4}]} \ No newline at end of file diff --git a/annotations/src/main/resources/revisions/LaunchCoreEntity/2.json b/annotations/src/main/resources/revisions/LaunchCoreEntity/2.json deleted file mode 100644 index 0030ee7afd..0000000000 --- a/annotations/src/main/resources/revisions/LaunchCoreEntity/2.json +++ /dev/null @@ -1 +0,0 @@ -{version:2,fields:[{name:block,type:mindustry.world.Block,size:-1},{name:lifetime,type:float,size:4},{name:time,type:float,size:4},{name:x,type:float,size:4},{name:y,type:float,size:4}]} \ No newline at end of file diff --git a/annotations/src/main/resources/revisions/LaunchPayloadEntity/0.json b/annotations/src/main/resources/revisions/LaunchPayloadEntity/0.json index 13ca6b7f49..feba28804f 100644 --- a/annotations/src/main/resources/revisions/LaunchPayloadEntity/0.json +++ b/annotations/src/main/resources/revisions/LaunchPayloadEntity/0.json @@ -1 +1 @@ -{fields:[{name:lifetime,type:float,size:4},{name:stacks,type:arc.struct.Array,size:-1},{name:team,type:mindustry.game.Team,size:-1},{name:time,type:float,size:4},{name:x,type:float,size:4},{name:y,type:float,size:4}]} \ No newline at end of file +{fields:[{name:lifetime,type:float,size:4},{name:stacks,type:arc.struct.Seq,size:-1},{name:team,type:mindustry.game.Team,size:-1},{name:time,type:float,size:4},{name:x,type:float,size:4},{name:y,type:float,size:4}]} \ No newline at end of file diff --git a/annotations/src/main/resources/revisions/LegsUnitEntity/0.json b/annotations/src/main/resources/revisions/LegsUnitEntity/0.json index ea9b0f0abe..a558d32e9c 100644 --- a/annotations/src/main/resources/revisions/LegsUnitEntity/0.json +++ b/annotations/src/main/resources/revisions/LegsUnitEntity/0.json @@ -1 +1 @@ -{fields:[{name:armor,type:float,size:4},{name:controller,type:mindustry.entities.units.UnitController,size:-1},{name:elevation,type:float,size:4},{name:health,type:float,size:4},{name:isShooting,type:boolean,size:1},{name:rotation,type:float,size:4},{name:shield,type:float,size:4},{name:spawnedByCore,type:boolean,size:1},{name:stack,type:mindustry.type.ItemStack,size:-1},{name:statuses,type:arc.struct.Array,size:-1},{name:team,type:mindustry.game.Team,size:-1},{name:type,type:mindustry.type.UnitType,size:-1},{name:x,type:float,size:4},{name:y,type:float,size:4}]} \ No newline at end of file +{fields:[{name:armor,type:float,size:4},{name:controller,type:mindustry.entities.units.UnitController,size:-1},{name:elevation,type:float,size:4},{name:health,type:float,size:4},{name:isShooting,type:boolean,size:1},{name:rotation,type:float,size:4},{name:shield,type:float,size:4},{name:spawnedByCore,type:boolean,size:1},{name:stack,type:mindustry.type.ItemStack,size:-1},{name:statuses,type:arc.struct.Seq,size:-1},{name:team,type:mindustry.game.Team,size:-1},{name:type,type:mindustry.type.UnitType,size:-1},{name:x,type:float,size:4},{name:y,type:float,size:4}]} \ No newline at end of file diff --git a/annotations/src/main/resources/revisions/MechUnitEntity/0.json b/annotations/src/main/resources/revisions/MechUnitEntity/0.json index 5250c9eaa5..400bcb4975 100644 --- a/annotations/src/main/resources/revisions/MechUnitEntity/0.json +++ b/annotations/src/main/resources/revisions/MechUnitEntity/0.json @@ -1 +1 @@ -{fields:[{name:armor,type:float,size:4},{name:baseRotation,type:float,size:4},{name:controller,type:mindustry.entities.units.UnitController,size:-1},{name:elevation,type:float,size:4},{name:health,type:float,size:4},{name:isShooting,type:boolean,size:1},{name:rotation,type:float,size:4},{name:shield,type:float,size:4},{name:spawnedByCore,type:boolean,size:1},{name:stack,type:mindustry.type.ItemStack,size:-1},{name:statuses,type:arc.struct.Array,size:-1},{name:team,type:mindustry.game.Team,size:-1},{name:type,type:mindustry.type.UnitType,size:-1},{name:x,type:float,size:4},{name:y,type:float,size:4}]} \ No newline at end of file +{fields:[{name:armor,type:float,size:4},{name:baseRotation,type:float,size:4},{name:controller,type:mindustry.entities.units.UnitController,size:-1},{name:elevation,type:float,size:4},{name:health,type:float,size:4},{name:isShooting,type:boolean,size:1},{name:rotation,type:float,size:4},{name:shield,type:float,size:4},{name:spawnedByCore,type:boolean,size:1},{name:stack,type:mindustry.type.ItemStack,size:-1},{name:statuses,type:arc.struct.Seq,size:-1},{name:team,type:mindustry.game.Team,size:-1},{name:type,type:mindustry.type.UnitType,size:-1},{name:x,type:float,size:4},{name:y,type:float,size:4}]} \ No newline at end of file diff --git a/annotations/src/main/resources/revisions/MinerUnitEntity/0.json b/annotations/src/main/resources/revisions/MinerUnitEntity/0.json index 340e16cad4..438047ff42 100644 --- a/annotations/src/main/resources/revisions/MinerUnitEntity/0.json +++ b/annotations/src/main/resources/revisions/MinerUnitEntity/0.json @@ -1 +1 @@ -{fields:[{name:armor,type:float,size:4},{name:controller,type:mindustry.entities.units.UnitController,size:-1},{name:elevation,type:float,size:4},{name:health,type:float,size:4},{name:isShooting,type:boolean,size:1},{name:mineTile,type:mindustry.world.Tile,size:-1},{name:rotation,type:float,size:4},{name:shield,type:float,size:4},{name:spawnedByCore,type:boolean,size:1},{name:stack,type:mindustry.type.ItemStack,size:-1},{name:statuses,type:arc.struct.Array,size:-1},{name:team,type:mindustry.game.Team,size:-1},{name:type,type:mindustry.type.UnitType,size:-1},{name:x,type:float,size:4},{name:y,type:float,size:4}]} \ No newline at end of file +{fields:[{name:armor,type:float,size:4},{name:controller,type:mindustry.entities.units.UnitController,size:-1},{name:elevation,type:float,size:4},{name:health,type:float,size:4},{name:isShooting,type:boolean,size:1},{name:mineTile,type:mindustry.world.Tile,size:-1},{name:rotation,type:float,size:4},{name:shield,type:float,size:4},{name:spawnedByCore,type:boolean,size:1},{name:stack,type:mindustry.type.ItemStack,size:-1},{name:statuses,type:arc.struct.Seq,size:-1},{name:team,type:mindustry.game.Team,size:-1},{name:type,type:mindustry.type.UnitType,size:-1},{name:x,type:float,size:4},{name:y,type:float,size:4}]} \ No newline at end of file diff --git a/annotations/src/main/resources/revisions/PuddleEntity/0.json b/annotations/src/main/resources/revisions/PuddleEntity/0.json index 09114ed8ea..3c4c644549 100644 --- a/annotations/src/main/resources/revisions/PuddleEntity/0.json +++ b/annotations/src/main/resources/revisions/PuddleEntity/0.json @@ -1 +1 @@ -{fields:[{name:accepting,type:float,size:4},{name:amount,type:float,size:4},{name:generation,type:int,size:4},{name:lastRipple,type:float,size:4},{name:liquid,type:mindustry.type.Liquid,size:-1},{name:tile,type:mindustry.world.Tile,size:-1},{name:updateTime,type:float,size:4},{name:x,type:float,size:4},{name:y,type:float,size:4}]} \ No newline at end of file +{fields:[{name:amount,type:float,size:4},{name:generation,type:int,size:4},{name:liquid,type:mindustry.type.Liquid,size:-1},{name:tile,type:mindustry.world.Tile,size:-1},{name:x,type:float,size:4},{name:y,type:float,size:4}]} \ No newline at end of file diff --git a/annotations/src/main/resources/revisions/PuddleEntity/1.json b/annotations/src/main/resources/revisions/PuddleEntity/1.json deleted file mode 100644 index c7b6265b14..0000000000 --- a/annotations/src/main/resources/revisions/PuddleEntity/1.json +++ /dev/null @@ -1 +0,0 @@ -{version:1,fields:[{name:amount,type:float,size:4},{name:generation,type:int,size:4},{name:liquid,type:mindustry.type.Liquid,size:-1},{name:tile,type:mindustry.world.Tile,size:-1},{name:x,type:float,size:4},{name:y,type:float,size:4}]} \ No newline at end of file diff --git a/annotations/src/main/resources/revisions/TrailUnitEntity/0.json b/annotations/src/main/resources/revisions/TrailUnitEntity/0.json deleted file mode 100644 index ea9b0f0abe..0000000000 --- a/annotations/src/main/resources/revisions/TrailUnitEntity/0.json +++ /dev/null @@ -1 +0,0 @@ -{fields:[{name:armor,type:float,size:4},{name:controller,type:mindustry.entities.units.UnitController,size:-1},{name:elevation,type:float,size:4},{name:health,type:float,size:4},{name:isShooting,type:boolean,size:1},{name:rotation,type:float,size:4},{name:shield,type:float,size:4},{name:spawnedByCore,type:boolean,size:1},{name:stack,type:mindustry.type.ItemStack,size:-1},{name:statuses,type:arc.struct.Array,size:-1},{name:team,type:mindustry.game.Team,size:-1},{name:type,type:mindustry.type.UnitType,size:-1},{name:x,type:float,size:4},{name:y,type:float,size:4}]} \ No newline at end of file diff --git a/annotations/src/main/resources/revisions/UnitEntity/0.json b/annotations/src/main/resources/revisions/UnitEntity/0.json index ea9b0f0abe..a558d32e9c 100644 --- a/annotations/src/main/resources/revisions/UnitEntity/0.json +++ b/annotations/src/main/resources/revisions/UnitEntity/0.json @@ -1 +1 @@ -{fields:[{name:armor,type:float,size:4},{name:controller,type:mindustry.entities.units.UnitController,size:-1},{name:elevation,type:float,size:4},{name:health,type:float,size:4},{name:isShooting,type:boolean,size:1},{name:rotation,type:float,size:4},{name:shield,type:float,size:4},{name:spawnedByCore,type:boolean,size:1},{name:stack,type:mindustry.type.ItemStack,size:-1},{name:statuses,type:arc.struct.Array,size:-1},{name:team,type:mindustry.game.Team,size:-1},{name:type,type:mindustry.type.UnitType,size:-1},{name:x,type:float,size:4},{name:y,type:float,size:4}]} \ No newline at end of file +{fields:[{name:armor,type:float,size:4},{name:controller,type:mindustry.entities.units.UnitController,size:-1},{name:elevation,type:float,size:4},{name:health,type:float,size:4},{name:isShooting,type:boolean,size:1},{name:rotation,type:float,size:4},{name:shield,type:float,size:4},{name:spawnedByCore,type:boolean,size:1},{name:stack,type:mindustry.type.ItemStack,size:-1},{name:statuses,type:arc.struct.Seq,size:-1},{name:team,type:mindustry.game.Team,size:-1},{name:type,type:mindustry.type.UnitType,size:-1},{name:x,type:float,size:4},{name:y,type:float,size:4}]} \ No newline at end of file diff --git a/core/src/mindustry/mod/ContentParser.java b/core/src/mindustry/mod/ContentParser.java index 6da2243884..a7488207c8 100644 --- a/core/src/mindustry/mod/ContentParser.java +++ b/core/src/mindustry/mod/ContentParser.java @@ -536,7 +536,7 @@ public class ContentParser{ private void checkNullFields(Object object){ if(object instanceof Number || object instanceof String || toBeParsed.contains(object)) return; - parser.getFields(object.getClass()).values().toArray().each(field -> { + parser.getFields(object.getClass()).values().toSeq().each(field -> { try{ if(field.field.getType().isPrimitive()) return; diff --git a/core/src/mindustry/net/Administration.java b/core/src/mindustry/net/Administration.java index 0edf3db062..9859aa3813 100644 --- a/core/src/mindustry/net/Administration.java +++ b/core/src/mindustry/net/Administration.java @@ -414,7 +414,7 @@ public class Administration{ } public Seq getWhitelisted(){ - return playerInfo.values().toArray().select(p -> isWhitelisted(p.id, p.adminUsid)); + return playerInfo.values().toSeq().select(p -> isWhitelisted(p.id, p.adminUsid)); } private PlayerInfo getCreateInfo(String id){ diff --git a/core/src/mindustry/world/meta/BlockBars.java b/core/src/mindustry/world/meta/BlockBars.java index ec47b7ae47..25eeba6d1d 100644 --- a/core/src/mindustry/world/meta/BlockBars.java +++ b/core/src/mindustry/world/meta/BlockBars.java @@ -14,7 +14,7 @@ public class BlockBars{ public void remove(String name){ if(!bars.containsKey(name)) - throw new RuntimeException("No bar with name '" + name + "' found; current bars: " + bars.keys().toArray()); + throw new RuntimeException("No bar with name '" + name + "' found; current bars: " + bars.keys().toSeq()); bars.remove(name); } diff --git a/gradle.properties b/gradle.properties index 8739e34bf9..1dbb607b20 100644 --- a/gradle.properties +++ b/gradle.properties @@ -1,3 +1,3 @@ org.gradle.daemon=true org.gradle.jvmargs=-Xms256m -Xmx1024m -archash=3df599fed17ea11be2b58aedc0edf596861807a2 +archash=8eb22e43810c7c50ff8cc642e9c5f3e651b2372c