From 0241f4d64121c588c5bea7f3601cb40958192106 Mon Sep 17 00:00:00 2001 From: unknown <> Date: Wed, 12 Apr 2023 11:02:22 -0400 Subject: [PATCH] Initial commit --- .gitignore | 8 ++ pom.xml | 62 ++++++++++++++ src/main/java/electrosphere/main/Main.java | 82 +++++++++++++++++++ .../main/targets/NetcodeGenTarget.java | 15 ++++ .../main/targets/TargetFile.java | 22 +++++ 5 files changed, 189 insertions(+) create mode 100644 .gitignore create mode 100644 pom.xml create mode 100644 src/main/java/electrosphere/main/Main.java create mode 100644 src/main/java/electrosphere/main/targets/NetcodeGenTarget.java create mode 100644 src/main/java/electrosphere/main/targets/TargetFile.java diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..77c9be0 --- /dev/null +++ b/.gitignore @@ -0,0 +1,8 @@ +/target +/licenseheader.txt +/nb-configuration.xml +/nbactions.xml +/.settings +/.classpath +/.project +/.vscode \ No newline at end of file diff --git a/pom.xml b/pom.xml new file mode 100644 index 0000000..d33316e --- /dev/null +++ b/pom.xml @@ -0,0 +1,62 @@ + + + 4.0.0 + electrosphere + highlevel-netcode-gen + 1.0-SNAPSHOT + jar + + UTF-8 + 17 + 17 + 2.28.0.Final + + + + + org.jboss.forge.roaster + roaster-api + ${version.roaster} + + + org.jboss.forge.roaster + roaster-jdt + ${version.roaster} + runtime + + + com.github.javaparser + javaparser-symbol-solver-core + 3.25.2 + + + + + + + maven-assembly-plugin + 3.0.0 + + + jar-with-dependencies + + + + electrosphere.main.Main + + + + + + make-assembly + package + + single + + + + + + + + \ No newline at end of file diff --git a/src/main/java/electrosphere/main/Main.java b/src/main/java/electrosphere/main/Main.java new file mode 100644 index 0000000..0751c79 --- /dev/null +++ b/src/main/java/electrosphere/main/Main.java @@ -0,0 +1,82 @@ +package electrosphere.main; + +import java.io.File; +import java.io.IOException; +import java.nio.file.Files; +import java.util.LinkedList; +import java.util.List; + +import org.jboss.forge.roaster.Roaster; +import org.jboss.forge.roaster.model.source.FieldSource; +import org.jboss.forge.roaster.model.source.JavaClassSource; +import org.jboss.forge.roaster.model.source.JavaDocSource; + +import electrosphere.main.targets.NetcodeGenTarget; +import electrosphere.main.targets.TargetFile; + +/** + * + * @author amaterasu + */ +public class Main { + + static String[] targetFiles = new String[]{ + "C:\\Users\\satellite\\Documents\\Renderer\\src\\main\\java\\electrosphere\\entity\\state\\IdleTree.java", + }; + + public static void main(String args[]){ + System.out.println("Hello, world!"); + for(String targetFilePath : targetFiles){ + String content = ""; + try { + content = Files.readString(new File(targetFilePath).toPath()); + } catch (IOException e){ + e.printStackTrace(); + } + TargetFile targetFile = new TargetFile(targetFilePath, content); + for(NetcodeGenTarget target : parseGenerationTargets(targetFile)){ + System.out.println(target.getName()); + } + } + } + + static List parseGenerationTargets(TargetFile targetFile){ + List targets = new LinkedList(); + for(FieldSource field : targetFile.getSource().getFields()){ + System.out.println(field.getName()); + } + return targets; + } + + static void sourceCodeModification(){ + String sampleFile = ""; + try { + sampleFile = Files.readString(new File("C:/Users/satellite/Documents/Renderer/src/main/java/electrosphere/renderer/texture/Texture.java").toPath()); + } catch (IOException e) { + // TODO Auto-generated catch block + e.printStackTrace(); + } + JavaClassSource javaClass = Roaster.parse(JavaClassSource.class, sampleFile); + javaClass.addMethod() + .setPublic() + .setStatic(true) + .setName("main") + .setReturnTypeVoid() + .setBody("System.out.println(\"Hello World\");") + .addParameter("java.lang.String[]", "args"); + System.out.println(javaClass); + } + + static void addingJavadocToClass(){ + JavaClassSource javaClass = Roaster.parse(JavaClassSource.class, "public class SomeClass {}"); + JavaDocSource javaDoc = javaClass.getJavaDoc(); + + javaDoc.setFullText("Full class documentation"); + // or + javaDoc.setText("Class documentation text"); + javaDoc.addTagValue("@author","George Gastaldi"); + + System.out.println(javaClass); + } + +} diff --git a/src/main/java/electrosphere/main/targets/NetcodeGenTarget.java b/src/main/java/electrosphere/main/targets/NetcodeGenTarget.java new file mode 100644 index 0000000..b1c68ee --- /dev/null +++ b/src/main/java/electrosphere/main/targets/NetcodeGenTarget.java @@ -0,0 +1,15 @@ +package electrosphere.main.targets; + +public class NetcodeGenTarget { + + String name; + + public NetcodeGenTarget(String name){ + this.name = name; + } + + public String getName(){ + return name; + } + +} diff --git a/src/main/java/electrosphere/main/targets/TargetFile.java b/src/main/java/electrosphere/main/targets/TargetFile.java new file mode 100644 index 0000000..801d000 --- /dev/null +++ b/src/main/java/electrosphere/main/targets/TargetFile.java @@ -0,0 +1,22 @@ +package electrosphere.main.targets; + +import org.jboss.forge.roaster.Roaster; +import org.jboss.forge.roaster.model.source.JavaClassSource; + +public class TargetFile { + + String path; + String content; + JavaClassSource source; + + public TargetFile(String path, String content){ + this.path = path; + this.content = content; + this.source = Roaster.parse(JavaClassSource.class, content); + } + + public JavaClassSource getSource(){ + return source; + } + +}