Skip to content

Commit

Permalink
Fix ScriptMainGenerator
Browse files Browse the repository at this point in the history
  • Loading branch information
Anuken authored and buthed010203 committed Oct 7, 2024
1 parent 33e8cee commit a66ccd9
Show file tree
Hide file tree
Showing 3 changed files with 31 additions and 62 deletions.
7 changes: 7 additions & 0 deletions build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -453,6 +453,13 @@ project(":tools"){
implementation arcModule("natives:natives-desktop")
implementation arcModule("natives:natives-freetype-desktop")
implementation arcModule("backends:backend-headless")

implementation files("../bouncycastle/bcprov-jdk15on.jar")
implementation files("../bouncycastle/bcpkix-jdk15on.jar")
implementation files("../bouncycastle/bctls-jdk15on.jar")
implementation files("../bouncycastle/bcutil-jdk15on.jar")
implementation("com.google.guava:guava:33.3.1-jre")
annotationProcessor 'com.github.Anuken:jabel:0.9.0'
}
}

Expand Down
29 changes: 16 additions & 13 deletions core/assets/scripts/global.js
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
//Generated script file. Modify base.js, not this.
//Generated class. Do not modify.

"use strict";

Expand Down Expand Up @@ -64,9 +64,7 @@ function targetedBuilding(){

importPackage(Packages.arc)
importPackage(Packages.arc.audio)
importPackage(Packages.arc.files)
importPackage(Packages.arc.func)
importPackage(Packages.arc.flabel)
importPackage(Packages.arc.graphics)
importPackage(Packages.arc.graphics.g2d)
importPackage(Packages.arc.graphics.gl)
Expand All @@ -92,6 +90,16 @@ importPackage(Packages.mindustry.ai)
importPackage(Packages.mindustry.ai.types)
importPackage(Packages.mindustry.async)
importPackage(Packages.mindustry.audio)
importPackage(Packages.mindustry.client)
importPackage(Packages.mindustry.client.antigrief)
importPackage(Packages.mindustry.client.claj)
importPackage(Packages.mindustry.client.communication)
importPackage(Packages.mindustry.client.communication.syncing)
importPackage(Packages.mindustry.client.crypto)
importPackage(Packages.mindustry.client.navigation)
importPackage(Packages.mindustry.client.navigation.waypoints)
importPackage(Packages.mindustry.client.ui)
importPackage(Packages.mindustry.client.utils)
importPackage(Packages.mindustry.content)
importPackage(Packages.mindustry.core)
importPackage(Packages.mindustry.ctype)
Expand Down Expand Up @@ -146,15 +154,6 @@ importPackage(Packages.mindustry.world.consumers)
importPackage(Packages.mindustry.world.draw)
importPackage(Packages.mindustry.world.meta)
importPackage(Packages.mindustry.world.modules)
importPackage(Packages.mindustry.client)
importPackage(Packages.mindustry.client.antigrief)
importPackage(Packages.mindustry.client.communication)
importPackage(Packages.mindustry.client.crypto)
importPackage(Packages.mindustry.client.navigation)
importPackage(Packages.mindustry.client.navigation.waypoints)
importPackage(Packages.mindustry.client.ui)
importPackage(Packages.mindustry.client.utils)

const SendChatMessageEvent = Packages.mindustry.game.EventType.SendChatMessageEvent
const AdminRequestEvent = Packages.mindustry.game.EventType.AdminRequestEvent
const PlayerIpUnbanEvent = Packages.mindustry.game.EventType.PlayerIpUnbanEvent
Expand Down Expand Up @@ -209,9 +208,12 @@ const ConfigEvent = Packages.mindustry.game.EventType.ConfigEvent
const DepositEvent = Packages.mindustry.game.EventType.DepositEvent
const WithdrawEvent = Packages.mindustry.game.EventType.WithdrawEvent
const SectorCaptureEvent = Packages.mindustry.game.EventType.SectorCaptureEvent
const ClientChatEvent = Packages.mindustry.game.EventType.ClientChatEvent
const PlayerChatEventClient = Packages.mindustry.game.EventType.PlayerChatEventClient
const PlayerChatEvent = Packages.mindustry.game.EventType.PlayerChatEvent
const TextInputEvent = Packages.mindustry.game.EventType.TextInputEvent
const MenuOptionChooseEvent = Packages.mindustry.game.EventType.MenuOptionChooseEvent
const ClientServerConnectEvent = Packages.mindustry.game.EventType.ClientServerConnectEvent
const ClientPreConnectEvent = Packages.mindustry.game.EventType.ClientPreConnectEvent
const SchematicCreateEvent = Packages.mindustry.game.EventType.SchematicCreateEvent
const SectorLaunchLoadoutEvent = Packages.mindustry.game.EventType.SectorLaunchLoadoutEvent
Expand All @@ -222,8 +224,9 @@ const SectorLoseEvent = Packages.mindustry.game.EventType.SectorLoseEvent
const SaveLoadEvent = Packages.mindustry.game.EventType.SaveLoadEvent
const WorldLoadEndEvent = Packages.mindustry.game.EventType.WorldLoadEndEvent
const WorldLoadBeginEvent = Packages.mindustry.game.EventType.WorldLoadBeginEvent
const ServerJoinEvent = Packages.mindustry.game.EventType.ServerJoinEvent
const WorldLoadEvent = Packages.mindustry.game.EventType.WorldLoadEvent
const MenuReturnEvent = Packages.mindustry.game.EventType.MenuReturnEvent
const ServerJoinEvent = Packages.mindustry.game.EventType.ServerJoinEvent
const FileTreeInitEvent = Packages.mindustry.game.EventType.FileTreeInitEvent
const MusicRegisterEvent = Packages.mindustry.game.EventType.MusicRegisterEvent
const ClientLoadEvent = Packages.mindustry.game.EventType.ClientLoadEvent
Expand Down
57 changes: 8 additions & 49 deletions tools/src/mindustry/tools/ScriptMainGenerator.java
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,7 @@
import arc.math.*;
import arc.struct.*;
import arc.util.*;
import com.google.common.reflect.*;
import mindustry.game.*;
import mindustry.gen.*;
import mindustry.io.*;
Expand All @@ -18,9 +19,6 @@

import java.io.*;
import java.lang.reflect.*;
import java.net.*;
import java.util.*;
import java.util.zip.*;

public class ScriptMainGenerator{

Expand Down Expand Up @@ -56,7 +54,7 @@ public static void main(String[] args) throws Exception{
classes.sortComparing(Class::getName);
ObjectSet<String> used = ObjectSet.with();

StringBuilder result = new StringBuilder("//Generated script file. Modify base.js, not this.\n");
StringBuilder result = new StringBuilder("//Generated class. Do not modify.\n");
result.append("\n").append(new Fi("core/assets/scripts/base.js").readString()).append("\n");
for(Class type : classes){
if(used.contains(type.getPackage().getName()) || nopackage.contains(s -> type.getName().startsWith(s))) continue;
Expand All @@ -65,7 +63,6 @@ public static void main(String[] args) throws Exception{
}

Log.info("Imported @ packages.", used.size);
result.append("\n");

for(Class type : EventType.class.getClasses()){
result.append("const ").append(type.getSimpleName()).append(" = ").append("Packages.").append(type.getName().replace('$', '.')).append("\n");
Expand Down Expand Up @@ -117,53 +114,15 @@ public static void main(String[] args) throws Exception{
}

public static Seq<Class> getClasses(String packageName) throws Exception{
ClassLoader classLoader = Thread.currentThread().getContextClassLoader();
final ClassLoader loader = Thread.currentThread().getContextClassLoader();

Seq<File> dirs = new Seq<>();
var result = new Seq<Class>();

for(URL resource : Collections.list(classLoader.getResources(packageName.replace('.', '/')))){
dirs.add(new File(resource.getFile()));
}

Seq<Class> classes = new Seq<>();
for(File directory : dirs){
classes.addAll(findClasses(directory, packageName));
}
return classes;
}

public static Seq<Class> findClasses(File directory, String packageName) throws Exception{
Seq<Class> classes = new Seq<>();
String dir = directory.toString();
if(dir.startsWith("file:")){
directory = new File(dir.substring("file:".length()).replace("!/arc", "").replace("!/mindustry", ""));
}
if(!directory.exists()) return classes;

if(directory.getName().endsWith(".jar")){
ZipInputStream zip = new ZipInputStream(new FileInputStream(directory));
for(ZipEntry entry = zip.getNextEntry(); entry != null; entry = zip.getNextEntry()){
if(!entry.isDirectory() && entry.getName().endsWith(".class")){
String className = entry.getName().replace('/', '.');
className = className.substring(0, className.length() - ".class".length());
if(className.startsWith(packageName)){
Class res = Class.forName(className, false, Thread.currentThread().getContextClassLoader());
classes.add(res);
//classes.addAll(res.getDeclaredClasses()); //????
}
}
}
}else{
File[] files = directory.listFiles();
for(File file : files){
if(file.isDirectory()){
classes.addAll(findClasses(file, packageName + "." + file.getName()));
}else if(file.getName().endsWith(".class")){
classes.add(Class.forName(packageName + '.' + file.getName().substring(0, file.getName().length() - 6), false, Thread.currentThread().getContextClassLoader()));
}
for(ClassPath.ClassInfo info : ClassPath.from(loader).getAllClasses()){
if(info.getName().startsWith(packageName + ".")){
result.add(info.load());
}
}

return classes;
return result;
}
}

0 comments on commit a66ccd9

Please sign in to comment.