diff --git a/demo/FeatureDemo/pom.xml b/demo/FeatureDemo/pom.xml index d2589df..0dbf8f5 100644 --- a/demo/FeatureDemo/pom.xml +++ b/demo/FeatureDemo/pom.xml @@ -1,15 +1,28 @@ - + + 4.0.0 + feature-demo com.github.msx80.omicron 0.0.3 + + + UTF-8 + 8 + 8 + + jitpack.io https://jitpack.io + com.github.msx80 @@ -29,18 +42,11 @@ test + - org.apache.maven.plugins - maven-compiler-plugin - 3.8.1 - - 1.8 - 1.8 - - - + maven-assembly-plugin @@ -58,6 +64,7 @@ + com.coderplus.maven.plugins copy-rename-maven-plugin 1.0 @@ -69,13 +76,15 @@ copy - ${project.build.directory}/${project.build.finalName}-jar-with-dependencies.jar + + ${project.build.directory}/${project.build.finalName}-jar-with-dependencies.jar ${project.artifactId}.omicron + org.codehaus.mojo exec-maven-plugin 3.1.0 @@ -84,7 +93,7 @@ test -classpath - + com.github.msx80.omicron.DesktopLauncher omicron.demo.featuresdemo.FeaturesDemo diff --git a/demo/FeatureDemoStandalone/pom.xml b/demo/FeatureDemoStandalone/pom.xml index cec82c9..d4a63e8 100644 --- a/demo/FeatureDemoStandalone/pom.xml +++ b/demo/FeatureDemoStandalone/pom.xml @@ -1,85 +1,91 @@ - + -4.0.0 + 4.0.0 -feature-demo -com.github.msx80.omicron -0.0.3 + feature-demo + com.github.msx80.omicron + 0.0.3 + UTF-8 8 8 - - + + - jitpack.io - https://jitpack.io + jitpack.io + https://jitpack.io - - - com.github.msx80.omicron - 0.0.3 - omicron-desktop - - - - - - - - maven-assembly-plugin - - - - omicron.demo.featuresdemo.FeaturesDemo - - - - jar-with-dependencies - - - - - make-assembly - package - - single - - - - - - com.coderplus.maven.plugins - copy-rename-maven-plugin - 1.0 - - - rename-file - package - - copy - - - ${project.build.directory}/${project.build.finalName}-jar-with-dependencies.jar - ${project.artifactId}-standalone.jar - - - - - - org.codehaus.mojo - exec-maven-plugin - 3.1.0 - - - omicron.demo.featuresdemo.FeaturesDemo - - - + + + com.github.msx80.omicron + 0.0.3 + omicron-desktop + + + + + + + + maven-assembly-plugin + + + + omicron.demo.featuresdemo.FeaturesDemo + + + + jar-with-dependencies + + + + + make-assembly + package + + single + + + + + + + com.coderplus.maven.plugins + copy-rename-maven-plugin + 1.0 + + + rename-file + package + + copy + + + + ${project.build.directory}/${project.build.finalName}-jar-with-dependencies.jar + + ${project.artifactId}-standalone.jar + + + + + + + org.codehaus.mojo + exec-maven-plugin + 3.1.0 + + omicron.demo.featuresdemo.FeaturesDemo + + + diff --git a/demo/FeatureDemoStandalone/src/main/java/omicron/demo/featuresdemo/FeaturesDemo.java b/demo/FeatureDemoStandalone/src/main/java/omicron/demo/featuresdemo/FeaturesDemo.java index 789bd59..d7d3c9d 100644 --- a/demo/FeatureDemoStandalone/src/main/java/omicron/demo/featuresdemo/FeaturesDemo.java +++ b/demo/FeatureDemoStandalone/src/main/java/omicron/demo/featuresdemo/FeaturesDemo.java @@ -6,14 +6,14 @@ import com.github.msx80.omicron.basicutils.Colors; import com.github.msx80.omicron.basicutils.MapDrawer; import com.github.msx80.omicron.basicutils.text.TextDrawerFixed; - +import com.github.msx80.omicron.DesktopLauncher; import com.github.msx80.omicron.api.Controller; import com.github.msx80.omicron.api.Game; import com.github.msx80.omicron.api.Pointer; import com.github.msx80.omicron.api.Sys; import com.github.msx80.omicron.api.SysConfig; import com.github.msx80.omicron.api.SysConfig.VirtualScreenMode; - +import com.github.msx80.omicron.fantasyconsole.cartridges.ClassCartridge; import com.github.msx80.omicron.fantasyconsole.cartridges.ClasspathCartridge; public class FeaturesDemo implements Game { @@ -161,7 +161,7 @@ public SysConfig sysConfig() { } public static void main(String[] args) { - com.github.msx80.omicron.DesktopLauncher.launch(new ClasspathCartridge("FeaturesDemo", "omicron.demo.featuresdemo", "FeaturesDemo"), false, args); + DesktopLauncher.launch(new ClassCartridge("FeaturesDemo", omicron.demo.featuresdemo.FeaturesDemo.class), false, args); } diff --git a/omicron-player/omicron-loader/src/main/java/com/github/msx80/omicron/fantasyconsole/cartridges/ClassCartridge.java b/omicron-player/omicron-loader/src/main/java/com/github/msx80/omicron/fantasyconsole/cartridges/ClassCartridge.java new file mode 100644 index 0000000..9419aad --- /dev/null +++ b/omicron-player/omicron-loader/src/main/java/com/github/msx80/omicron/fantasyconsole/cartridges/ClassCartridge.java @@ -0,0 +1,68 @@ +package com.github.msx80.omicron.fantasyconsole.cartridges; + +import java.io.ByteArrayOutputStream; +import java.io.InputStream; +import java.util.Properties; + +import com.github.msx80.omicron.api.Game; +import com.github.msx80.omicron.api.adv.Cartridge; + +import com.github.msx80.omicron.fantasyconsole.utils.FileUtil; + +public class ClassCartridge implements Cartridge { + + + private Game game; + private Class gameClass; + + public ClassCartridge(String name, Class gameClass) + { + this.gameClass = gameClass; + } + + @Override + public Game getGameObject(){ + try { + game = gameClass.getDeclaredConstructor().newInstance(); + return game; + } catch (Exception e) { + throw new RuntimeException(e); + } + } + + @Override + public byte[] loadFile(String name) { + try { + //String path = '/'+props.getProperty(PROP_PKG).replace('.', '/')+'/'; + String path = '/'+gameClass.getPackage().getName().replace('.', '/')+'/'; + InputStream is = game.getClass().getResourceAsStream(path+name); + if(is == null) return null; + ByteArrayOutputStream baos = new ByteArrayOutputStream(); + try + { + FileUtil.copy(is, baos); + } + finally + { + is.close(); + } + return baos.toByteArray(); + } catch (Exception e) { + throw new RuntimeException("Unable to load file from cartridge",e); + } + } + + @Override + public Properties getOmicronProperties() { + + return null; + } + + @Override + public void close() { + + + } + + +} diff --git a/omicron-player/omicron-loader/src/main/java/com/github/msx80/omicron/fantasyconsole/cartridges/SourceCartridge.java b/omicron-player/omicron-loader/src/main/java/com/github/msx80/omicron/fantasyconsole/cartridges/SourceCartridge.java index eebe195..7aec2d8 100644 --- a/omicron-player/omicron-loader/src/main/java/com/github/msx80/omicron/fantasyconsole/cartridges/SourceCartridge.java +++ b/omicron-player/omicron-loader/src/main/java/com/github/msx80/omicron/fantasyconsole/cartridges/SourceCartridge.java @@ -1,19 +1,14 @@ package com.github.msx80.omicron.fantasyconsole.cartridges; -import java.io.File; import java.io.IOException; import java.nio.file.Path; -import java.util.Enumeration; import java.util.HashMap; import java.util.List; import java.util.Map; -import java.util.jar.JarEntry; -import java.util.jar.JarFile; import java.util.stream.Collectors; import com.github.msx80.omicron.api.Game; import com.github.msx80.wiseloader.BytesLoader; -import com.github.msx80.wiseloader.loaders.FileUtil; import com.github.msx80.wiseloader.loaders.JarLoader; import com.github.msx80.wiseloader.loaders.MultiBytesLoader; import com.github.msx80.wiseloader.loaders.compiler.CompilingLoader;