Fixed chat not working while paused
This commit is contained in:
@@ -15,7 +15,6 @@ import arc.util.*;
|
|||||||
import mindustry.*;
|
import mindustry.*;
|
||||||
import mindustry.gen.*;
|
import mindustry.gen.*;
|
||||||
import mindustry.input.*;
|
import mindustry.input.*;
|
||||||
import mindustry.type.*;
|
|
||||||
import mindustry.ui.*;
|
import mindustry.ui.*;
|
||||||
|
|
||||||
import static arc.Core.*;
|
import static arc.Core.*;
|
||||||
@@ -206,7 +205,7 @@ public class ChatFragment extends Table{
|
|||||||
}
|
}
|
||||||
}else{
|
}else{
|
||||||
//sending chat has a delay; workaround for issue #1943
|
//sending chat has a delay; workaround for issue #1943
|
||||||
Time.run(2f, () ->{
|
Time.runTask(2f, () ->{
|
||||||
scene.setKeyboardFocus(null);
|
scene.setKeyboardFocus(null);
|
||||||
shown = false;
|
shown = false;
|
||||||
scrollPos = 0;
|
scrollPos = 0;
|
||||||
|
|||||||
@@ -1,3 +1,3 @@
|
|||||||
org.gradle.daemon=true
|
org.gradle.daemon=true
|
||||||
org.gradle.jvmargs=-Xms256m -Xmx1024m
|
org.gradle.jvmargs=-Xms256m -Xmx1024m
|
||||||
archash=d23d0f0b3625ab2d7d97e6c89a773ab6a4ad8434
|
archash=afbb1f5080df42d0629d5997a3f1b14dafc467bf
|
||||||
|
|||||||
102
tools/src/mindustry/tools/BindingsGenerator.java
Normal file
102
tools/src/mindustry/tools/BindingsGenerator.java
Normal file
@@ -0,0 +1,102 @@
|
|||||||
|
package mindustry.tools;
|
||||||
|
|
||||||
|
import arc.files.*;
|
||||||
|
import arc.struct.*;
|
||||||
|
import arc.util.*;
|
||||||
|
|
||||||
|
import java.lang.reflect.*;
|
||||||
|
|
||||||
|
import static mindustry.tools.ScriptMainGenerator.*;
|
||||||
|
|
||||||
|
//experimental
|
||||||
|
public class BindingsGenerator{
|
||||||
|
|
||||||
|
public static void main(String[] args) throws Exception{
|
||||||
|
|
||||||
|
Seq<String> blacklist = Seq.with("mindustry.tools", "arc.backend");
|
||||||
|
Seq<Class<?>> classes = Seq.withArrays(
|
||||||
|
getClasses("mindustry"),
|
||||||
|
getClasses("arc")
|
||||||
|
);
|
||||||
|
classes.sort(Structs.comparing(Class::getName));
|
||||||
|
|
||||||
|
classes.removeAll(type -> type.isSynthetic() || type.isAnonymousClass() || type.getCanonicalName() == null || Modifier.isPrivate(type.getModifiers())
|
||||||
|
|| blacklist.contains(s -> type.getName().startsWith(s)));
|
||||||
|
|
||||||
|
classes.distinct();
|
||||||
|
classes.sortComparing(Class::getName);
|
||||||
|
|
||||||
|
StringBuilder result = new StringBuilder();
|
||||||
|
result.append("import jnim, jnim/java/lang\n\n{.experimental: \"codeReordering\".}\n\n");
|
||||||
|
|
||||||
|
for(Class<?> type : classes){
|
||||||
|
String name = type.getCanonicalName();
|
||||||
|
result.append("jclass ").append(name).append("* of ")
|
||||||
|
.append(type.getSuperclass() == null ? "JVMObject" : type.getSuperclass().getSimpleName()).append(":\n");
|
||||||
|
|
||||||
|
for(Field field : type.getFields()){
|
||||||
|
if(Modifier.isPublic(field.getModifiers())){
|
||||||
|
result.append(" proc `").append(field.getName()).append("`*");
|
||||||
|
result.append(": ").append(str(field.getType()));
|
||||||
|
result.append(" {.prop");
|
||||||
|
if(Modifier.isStatic(field.getModifiers())) result.append(", `static`");
|
||||||
|
if(Modifier.isStatic(field.getModifiers())) result.append(", `final`");
|
||||||
|
result.append(".}\n");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
Seq<Executable> exec = new Seq<>();
|
||||||
|
|
||||||
|
exec.addAll(type.getDeclaredMethods());
|
||||||
|
exec.addAll(type.getDeclaredConstructors());
|
||||||
|
|
||||||
|
for(Executable method : exec){
|
||||||
|
if(Modifier.isPublic(method.getModifiers())){
|
||||||
|
String mname = method.getName().equals("<init>") || method.getName().equals(type.getCanonicalName()) ? "new" : method.getName();
|
||||||
|
result.append(" proc `").append(mname).append("`*");
|
||||||
|
|
||||||
|
if(method.getParameterCount() > 0){
|
||||||
|
result.append("(");
|
||||||
|
|
||||||
|
for(int i = 0; i < method.getParameterCount(); i++){
|
||||||
|
Class p = method.getParameterTypes()[i];
|
||||||
|
|
||||||
|
result.append(method.getParameters()[i].getName()).append(": ").append(str(p));
|
||||||
|
|
||||||
|
if(i != method.getParameterCount() - 1){
|
||||||
|
result.append(", ");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
result.append(")");
|
||||||
|
}
|
||||||
|
|
||||||
|
if(method instanceof Method){
|
||||||
|
Method m = (Method)method;
|
||||||
|
if(!m.getReturnType().equals(void.class)){
|
||||||
|
result.append(": ").append(str(m.getReturnType()));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
//result.append(" {.");
|
||||||
|
//if(Modifier.isStatic(field.getModifiers())) result.append(", `static`");
|
||||||
|
//if(Modifier.isStatic(field.getModifiers())) result.append(", `final`");
|
||||||
|
//result.append(".}\n");
|
||||||
|
result.append("\n");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
result.append("\n");
|
||||||
|
}
|
||||||
|
|
||||||
|
Fi.get(OS.userhome).child("mindustry.nim").writeString(result.toString());
|
||||||
|
Log.info(result);
|
||||||
|
}
|
||||||
|
|
||||||
|
static String str(Class type){
|
||||||
|
if(type.isArray()){
|
||||||
|
return "seq[" + str(type.getComponentType()) + "]";
|
||||||
|
}
|
||||||
|
if(type.isPrimitive()) return "j" + type.getSimpleName();
|
||||||
|
return type.getSimpleName();
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -71,8 +71,7 @@ public class ScriptMainGenerator{
|
|||||||
new Fi("core/assets/scripts/global.js").writeString(result.toString());
|
new Fi("core/assets/scripts/global.js").writeString(result.toString());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public static Seq<Class> getClasses(String packageName) throws Exception{
|
||||||
private static Seq<Class> getClasses(String packageName) throws Exception{
|
|
||||||
ClassLoader classLoader = Thread.currentThread().getContextClassLoader();
|
ClassLoader classLoader = Thread.currentThread().getContextClassLoader();
|
||||||
Seq<File> dirs = new Seq<>();
|
Seq<File> dirs = new Seq<>();
|
||||||
|
|
||||||
@@ -87,7 +86,7 @@ public class ScriptMainGenerator{
|
|||||||
return classes;
|
return classes;
|
||||||
}
|
}
|
||||||
|
|
||||||
private static Seq<Class> findClasses(File directory, String packageName) throws Exception{
|
public static Seq<Class> findClasses(File directory, String packageName) throws Exception{
|
||||||
Seq<Class> classes = new Seq<>();
|
Seq<Class> classes = new Seq<>();
|
||||||
if(!directory.exists()) return classes;
|
if(!directory.exists()) return classes;
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user