Fixed place mode not overwriting old queue

This commit is contained in:
Anuken
2018-05-20 13:05:25 -04:00
parent e5a94bd140
commit de40df7f7b
5 changed files with 29 additions and 24 deletions

View File

@@ -36,7 +36,7 @@ public class AnnotationProcessor extends AbstractProcessor {
"rbuffer.putInt(rvalue.id)"
},
{
"rtype rvalue = io.anuke.mindustry.Vars.playerGroup.getByID(buffer.getInt())"
"rtype rvalue = io.anuke.mindustry.Vars.playerGroup.getByID(rbuffer.getInt())"
}
});
}};
@@ -189,18 +189,20 @@ public class AnnotationProcessor extends AbstractProcessor {
messager.printMessage(Kind.ERROR, "No method for writing type: " + typeName, var);
}
String writeBufferName = "buffer";
if(typeUtils.isAssignable(var.asType(), elementUtils.getTypeElement("java.lang.Enum").asType())) {
writeSwitch.addStatement(typeName + " " + varName + " = " + typeName + ".values()["+bufferName +".getInt()]");
writeSwitch.addStatement(typeName + " " + varName + " = " + typeName + ".values()["+writeBufferName +".getInt()]");
}else if(isPrimitive(typeName)) {
if(simpleTypeName.equals("boolean")){
writeSwitch.addStatement("boolean " + varName + " = " + bufferName + ".get() == 1");
writeSwitch.addStatement("boolean " + varName + " = " + writeBufferName + ".get() == 1");
}else{
writeSwitch.addStatement(typeName + " " + varName + " = " + bufferName + ".get" + capName + "()");
writeSwitch.addStatement(typeName + " " + varName + " = " + writeBufferName + ".get" + capName + "()");
}
}else if(writeMap.get(simpleTypeName) != null){
String[] values = writeMap.get(simpleTypeName)[1];
for(String str : values){
writeSwitch.addStatement(str.replaceAll("rbuffer", bufferName)
writeSwitch.addStatement(str.replaceAll("rbuffer", writeBufferName)
.replaceAll("rvalue", varName)
.replaceAll("rtype", simpleTypeName));
}