Moved two apps to seperate bundle and chains.

This commit is contained in:
Willem Cazander 2022-03-03 23:20:19 +01:00
parent 812e80fa5e
commit c47d626eef
57 changed files with 1011 additions and 305 deletions

View file

@ -0,0 +1,118 @@
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>love.distributedrebirth.gdxapp4d</groupId>
<artifactId>gdxapp4d</artifactId>
<version>0.0.1-SNAPSHOT</version>
</parent>
<artifactId>gdxapp4d-app-calculator</artifactId>
<packaging>bundle</packaging>
<dependencies>
<dependency>
<groupId>love.distributedrebirth.gdxapp4d</groupId>
<artifactId>gdxapp4d-vrgem4</artifactId>
<version>${project.version}</version>
<scope>provided</scope>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.apache.felix</groupId>
<artifactId>maven-bundle-plugin</artifactId>
<extensions>true</extensions>
<configuration>
<exportScr>true</exportScr>
<instructions>
<_donotcopy>(.git)</_donotcopy>
<_dsannotations>*</_dsannotations>
<_metatypeannotations>*</_metatypeannotations>
<Import-Package>
org.osgi.framework,
org.osgi.service.packageadmin,
org.osgi.service.url,
org.osgi.service.startlevel,
org.osgi.util.tracker,
love.distributedrebirth.gdxapp4d.tos4.service,
love.distributedrebirth.gdxapp4d.vrgem4.service,
love.distributedrebirth.gdxapp4d.vrgem4.service.deskapp,
com.badlogic.gdx,
com.badlogic.gdx.assets,
com.badlogic.gdx.assets.loaders,
com.badlogic.gdx.assets.loaders.resolvers,
com.badlogic.gdx.audio,
com.badlogic.gdx.files,
com.badlogic.gdx.graphics,
com.badlogic.gdx.graphics.g2d,
com.badlogic.gdx.graphics.g2d.freetype,
com.badlogic.gdx.graphics.g3d,
com.badlogic.gdx.graphics.g3d.attributes,
com.badlogic.gdx.graphics.g3d.decals,
com.badlogic.gdx.graphics.g3d.environment,
com.badlogic.gdx.graphics.g3d.loader,
com.badlogic.gdx.graphics.g3d.model,
com.badlogic.gdx.graphics.g3d.model.data,
com.badlogic.gdx.graphics.g3d.particles,
com.badlogic.gdx.graphics.g3d.particles.bactches,
com.badlogic.gdx.graphics.g3d.particles.emitters,
com.badlogic.gdx.graphics.g3d.particles.influencers,
com.badlogic.gdx.graphics.g3d.particles.renderers,
com.badlogic.gdx.graphics.g3d.particles.values,
com.badlogic.gdx.graphics.g3d.shaders,
com.badlogic.gdx.graphics.g3d.utils,
com.badlogic.gdx.graphics.g3d.utils.shapebuilders,
com.badlogic.gdx.graphics.glutils,
com.badlogic.gdx.graphics.profiling,
com.badlogic.gdx.input,
com.badlogic.gdx.maps,
com.badlogic.gdx.maps.objects,
com.badlogic.gdx.maps.tiled,
com.badlogic.gdx.maps.tiled.objects,
com.badlogic.gdx.maps.tiled.renderers,
com.badlogic.gdx.maps.tiled.tiles,
com.badlogic.gdx.math,
com.badlogic.gdx.math.collision,
com.badlogic.gdx.net,
com.badlogic.gdx.scenes.scene2d,
com.badlogic.gdx.scenes.scene2d.actions,
com.badlogic.gdx.scenes.scene2d.ui,
com.badlogic.gdx.scenes.scene2d.utils,
com.badlogic.gdx.utils,
com.badlogic.gdx.utils.async,
com.badlogic.gdx.utils.compression,
com.badlogic.gdx.utils.compression.lz,
com.badlogic.gdx.utils.compression.lzma,
com.badlogic.gdx.utils.compression.rangecoder,
com.badlogic.gdx.utils.reflect,
com.badlogic.gdx.utils.viewport,
imgui,
imgui.flag,
imgui.glfw,
imgui.gl3,
imgui.type,
net.spookygames.gdx.nativefilechooser,
love.distributedrebirth.bassboonyd,
love.distributedrebirth.bassboonyd.jmx,
love.distributedrebirth.numberxd,
love.distributedrebirth.numberxd.base2t,
love.distributedrebirth.numberxd.base2t.part,
love.distributedrebirth.numberxd.base2t.part.warp,
love.distributedrebirth.numberxd.base2t.type,
love.distributedrebirth.numberxd.base2t.typexl,
love.distributedrebirth.numberxd.glyph,
love.distributedrebirth.numberxd.x4o,
love.distributedrebirth.warpme,
love.distributedrebirth.warpme.core,
love.distributedrebirth.warpme.hash,
love.distributedrebirth.warpme.sea,
love.distributedrebirth.warpme.ship,
love.distributedrebirth.unicode4d,
love.distributedrebirth.unicode4d.atlas
</Import-Package>
<Bundle-Vendor>distributedrebirth.love</Bundle-Vendor>
</instructions>
</configuration>
</plugin>
</plugins>
</build>
</project>

View file

@ -0,0 +1,9 @@
<?xml version="1.0" encoding="UTF-8"?>
<root:ocean xmlns:root="http://wrap-sea.x4o.distributedrebirth.love/xml/ns/warp-sea-root"
xmlns:link="http://warp-sea.x4o.distributedrebirth.love/xml/ns/warp-sea-link"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://wrap-sea.x4o.distributedrebirth.love/xml/ns/warp-sea-root http://warp-sea.x4o.distributedrebirth.love/xml/ns/warp-sea-root-1.0.xsd">
<link:sea name="Calculator" provider="gdxapp4d.apps" author="willemtsade">
<link:magic file="gdxapp4d-app-calculator.jar" mime="application/vnd.osgi.bundle"/>
</link:sea>
</root:ocean>

View file

@ -0,0 +1,118 @@
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>love.distributedrebirth.gdxapp4d</groupId>
<artifactId>gdxapp4d</artifactId>
<version>0.0.1-SNAPSHOT</version>
</parent>
<artifactId>gdxapp4d-app-hewallet</artifactId>
<packaging>bundle</packaging>
<dependencies>
<dependency>
<groupId>love.distributedrebirth.gdxapp4d</groupId>
<artifactId>gdxapp4d-vrgem4</artifactId>
<version>${project.version}</version>
<scope>provided</scope>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.apache.felix</groupId>
<artifactId>maven-bundle-plugin</artifactId>
<extensions>true</extensions>
<configuration>
<exportScr>true</exportScr>
<instructions>
<_donotcopy>(.git)</_donotcopy>
<_dsannotations>*</_dsannotations>
<_metatypeannotations>*</_metatypeannotations>
<Import-Package>
org.osgi.framework,
org.osgi.service.packageadmin,
org.osgi.service.url,
org.osgi.service.startlevel,
org.osgi.util.tracker,
love.distributedrebirth.gdxapp4d.tos4.service,
love.distributedrebirth.gdxapp4d.vrgem4.service,
love.distributedrebirth.gdxapp4d.vrgem4.service.deskapp,
com.badlogic.gdx,
com.badlogic.gdx.assets,
com.badlogic.gdx.assets.loaders,
com.badlogic.gdx.assets.loaders.resolvers,
com.badlogic.gdx.audio,
com.badlogic.gdx.files,
com.badlogic.gdx.graphics,
com.badlogic.gdx.graphics.g2d,
com.badlogic.gdx.graphics.g2d.freetype,
com.badlogic.gdx.graphics.g3d,
com.badlogic.gdx.graphics.g3d.attributes,
com.badlogic.gdx.graphics.g3d.decals,
com.badlogic.gdx.graphics.g3d.environment,
com.badlogic.gdx.graphics.g3d.loader,
com.badlogic.gdx.graphics.g3d.model,
com.badlogic.gdx.graphics.g3d.model.data,
com.badlogic.gdx.graphics.g3d.particles,
com.badlogic.gdx.graphics.g3d.particles.bactches,
com.badlogic.gdx.graphics.g3d.particles.emitters,
com.badlogic.gdx.graphics.g3d.particles.influencers,
com.badlogic.gdx.graphics.g3d.particles.renderers,
com.badlogic.gdx.graphics.g3d.particles.values,
com.badlogic.gdx.graphics.g3d.shaders,
com.badlogic.gdx.graphics.g3d.utils,
com.badlogic.gdx.graphics.g3d.utils.shapebuilders,
com.badlogic.gdx.graphics.glutils,
com.badlogic.gdx.graphics.profiling,
com.badlogic.gdx.input,
com.badlogic.gdx.maps,
com.badlogic.gdx.maps.objects,
com.badlogic.gdx.maps.tiled,
com.badlogic.gdx.maps.tiled.objects,
com.badlogic.gdx.maps.tiled.renderers,
com.badlogic.gdx.maps.tiled.tiles,
com.badlogic.gdx.math,
com.badlogic.gdx.math.collision,
com.badlogic.gdx.net,
com.badlogic.gdx.scenes.scene2d,
com.badlogic.gdx.scenes.scene2d.actions,
com.badlogic.gdx.scenes.scene2d.ui,
com.badlogic.gdx.scenes.scene2d.utils,
com.badlogic.gdx.utils,
com.badlogic.gdx.utils.async,
com.badlogic.gdx.utils.compression,
com.badlogic.gdx.utils.compression.lz,
com.badlogic.gdx.utils.compression.lzma,
com.badlogic.gdx.utils.compression.rangecoder,
com.badlogic.gdx.utils.reflect,
com.badlogic.gdx.utils.viewport,
imgui,
imgui.flag,
imgui.glfw,
imgui.gl3,
imgui.type,
net.spookygames.gdx.nativefilechooser,
love.distributedrebirth.bassboonyd,
love.distributedrebirth.bassboonyd.jmx,
love.distributedrebirth.numberxd,
love.distributedrebirth.numberxd.base2t,
love.distributedrebirth.numberxd.base2t.part,
love.distributedrebirth.numberxd.base2t.part.warp,
love.distributedrebirth.numberxd.base2t.type,
love.distributedrebirth.numberxd.base2t.typexl,
love.distributedrebirth.numberxd.glyph,
love.distributedrebirth.numberxd.x4o,
love.distributedrebirth.warpme,
love.distributedrebirth.warpme.core,
love.distributedrebirth.warpme.hash,
love.distributedrebirth.warpme.sea,
love.distributedrebirth.warpme.ship,
love.distributedrebirth.unicode4d,
love.distributedrebirth.unicode4d.atlas
</Import-Package>
<Bundle-Vendor>distributedrebirth.love</Bundle-Vendor>
</instructions>
</configuration>
</plugin>
</plugins>
</build>
</project>

View file

@ -0,0 +1,9 @@
<?xml version="1.0" encoding="UTF-8"?>
<root:ocean xmlns:root="http://wrap-sea.x4o.distributedrebirth.love/xml/ns/warp-sea-root"
xmlns:link="http://warp-sea.x4o.distributedrebirth.love/xml/ns/warp-sea-link"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://wrap-sea.x4o.distributedrebirth.love/xml/ns/warp-sea-root http://warp-sea.x4o.distributedrebirth.love/xml/ns/warp-sea-root-1.0.xsd">
<link:sea name="Hebrew Wallet" provider="gdxapp4d.apps" author="willemtsade">
<link:magic file="gdxapp4d-app-hewallet.jar" mime="application/vnd.osgi.bundle"/>
</link:sea>
</root:ocean>

View file

@ -0,0 +1,30 @@
package love.distributedrebirth.gdxapp4d.app.hewallet;
import org.osgi.service.component.annotations.Activate;
import org.osgi.service.component.annotations.Component;
import org.osgi.service.component.annotations.Deactivate;
import org.osgi.service.component.annotations.Reference;
import love.distributedrebirth.gdxapp4d.tos4.service.SystemGdxLog;
import love.distributedrebirth.gdxapp4d.vrgem4.service.VrGem4DeskAppService;
import love.distributedrebirth.gdxapp4d.vrgem4.service.deskapp.DeskAppLauncher;
@Component
public class HeWalletComponent {
@Reference
private SystemGdxLog log;
@Reference
private VrGem4DeskAppService deskAppService;
@Activate
void open() {
log.info(this, "Activated HeWalletComponent");
deskAppService.registrateDeskApp(new DeskAppLauncher("Hebrew Wallet", () -> new HeWalletDeskApp()));
}
@Deactivate
void close() {
}
}

View file

@ -1,18 +1,18 @@
package love.distributedrebirth.gdxapp4d.vrgem4.desktop.apps; package love.distributedrebirth.gdxapp4d.app.hewallet;
import imgui.ImGui; import imgui.ImGui;
import imgui.flag.ImGuiTableFlags; import imgui.flag.ImGuiTableFlags;
import love.distributedrebirth.bassboonyd.BãßBȍőnAuthorInfoʸᴰ; import love.distributedrebirth.bassboonyd.BãßBȍőnAuthorInfoʸᴰ;
import love.distributedrebirth.gdxapp4d.vrgem4.desktop.DefaultDeskApp; import love.distributedrebirth.gdxapp4d.vrgem4.service.deskapp.AbstractDeskApp;
import love.distributedrebirth.gdxapp4d.vrgem4.desktop.DeskAppContourSection; import love.distributedrebirth.gdxapp4d.vrgem4.service.deskapp.DeskAppContourSection;
import love.distributedrebirth.gdxapp4d.vrgem4.desktop.DeskAppRenderer; import love.distributedrebirth.gdxapp4d.vrgem4.service.deskapp.DeskAppRenderer;
import love.distributedrebirth.numberxd.Gê̄ldGetậl; import love.distributedrebirth.numberxd.Gê̄ldGetậl;
@BãßBȍőnAuthorInfoʸᴰ(name = "willemtsade", copyright = "©Δ∞ 仙上主天") @BãßBȍőnAuthorInfoʸᴰ(name = "willemtsade", copyright = "©Δ∞ 仙上主天")
public class HebrewWalletApp extends DefaultDeskApp implements DeskAppRenderer { public class HeWalletDeskApp extends AbstractDeskApp implements DeskAppRenderer {
public HebrewWalletApp() { public void create() {
setTitle("Hebrew Wallet"); getContours().setTitle("Hebrew Wallet");
getContours().registrateContour(DeskAppContourSection.MAIN, this); getContours().registrateContour(DeskAppContourSection.MAIN, this);
} }

View file

@ -6,4 +6,113 @@
<version>0.0.1-SNAPSHOT</version> <version>0.0.1-SNAPSHOT</version>
</parent> </parent>
<artifactId>gdxapp4d-app-notepad</artifactId> <artifactId>gdxapp4d-app-notepad</artifactId>
<packaging>bundle</packaging>
<dependencies>
<dependency>
<groupId>love.distributedrebirth.gdxapp4d</groupId>
<artifactId>gdxapp4d-vrgem4</artifactId>
<version>${project.version}</version>
<scope>provided</scope>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.apache.felix</groupId>
<artifactId>maven-bundle-plugin</artifactId>
<extensions>true</extensions>
<configuration>
<exportScr>true</exportScr>
<instructions>
<_donotcopy>(.git)</_donotcopy>
<_dsannotations>*</_dsannotations>
<_metatypeannotations>*</_metatypeannotations>
<Import-Package>
org.osgi.framework,
org.osgi.service.packageadmin,
org.osgi.service.url,
org.osgi.service.startlevel,
org.osgi.util.tracker,
love.distributedrebirth.gdxapp4d.tos4.service,
love.distributedrebirth.gdxapp4d.vrgem4.service,
love.distributedrebirth.gdxapp4d.vrgem4.service.deskapp,
com.badlogic.gdx,
com.badlogic.gdx.assets,
com.badlogic.gdx.assets.loaders,
com.badlogic.gdx.assets.loaders.resolvers,
com.badlogic.gdx.audio,
com.badlogic.gdx.files,
com.badlogic.gdx.graphics,
com.badlogic.gdx.graphics.g2d,
com.badlogic.gdx.graphics.g2d.freetype,
com.badlogic.gdx.graphics.g3d,
com.badlogic.gdx.graphics.g3d.attributes,
com.badlogic.gdx.graphics.g3d.decals,
com.badlogic.gdx.graphics.g3d.environment,
com.badlogic.gdx.graphics.g3d.loader,
com.badlogic.gdx.graphics.g3d.model,
com.badlogic.gdx.graphics.g3d.model.data,
com.badlogic.gdx.graphics.g3d.particles,
com.badlogic.gdx.graphics.g3d.particles.bactches,
com.badlogic.gdx.graphics.g3d.particles.emitters,
com.badlogic.gdx.graphics.g3d.particles.influencers,
com.badlogic.gdx.graphics.g3d.particles.renderers,
com.badlogic.gdx.graphics.g3d.particles.values,
com.badlogic.gdx.graphics.g3d.shaders,
com.badlogic.gdx.graphics.g3d.utils,
com.badlogic.gdx.graphics.g3d.utils.shapebuilders,
com.badlogic.gdx.graphics.glutils,
com.badlogic.gdx.graphics.profiling,
com.badlogic.gdx.input,
com.badlogic.gdx.maps,
com.badlogic.gdx.maps.objects,
com.badlogic.gdx.maps.tiled,
com.badlogic.gdx.maps.tiled.objects,
com.badlogic.gdx.maps.tiled.renderers,
com.badlogic.gdx.maps.tiled.tiles,
com.badlogic.gdx.math,
com.badlogic.gdx.math.collision,
com.badlogic.gdx.net,
com.badlogic.gdx.scenes.scene2d,
com.badlogic.gdx.scenes.scene2d.actions,
com.badlogic.gdx.scenes.scene2d.ui,
com.badlogic.gdx.scenes.scene2d.utils,
com.badlogic.gdx.utils,
com.badlogic.gdx.utils.async,
com.badlogic.gdx.utils.compression,
com.badlogic.gdx.utils.compression.lz,
com.badlogic.gdx.utils.compression.lzma,
com.badlogic.gdx.utils.compression.rangecoder,
com.badlogic.gdx.utils.reflect,
com.badlogic.gdx.utils.viewport,
imgui,
imgui.flag,
imgui.glfw,
imgui.gl3,
imgui.type,
net.spookygames.gdx.nativefilechooser,
love.distributedrebirth.bassboonyd,
love.distributedrebirth.bassboonyd.jmx,
love.distributedrebirth.numberxd,
love.distributedrebirth.numberxd.base2t,
love.distributedrebirth.numberxd.base2t.part,
love.distributedrebirth.numberxd.base2t.part.warp,
love.distributedrebirth.numberxd.base2t.type,
love.distributedrebirth.numberxd.base2t.typexl,
love.distributedrebirth.numberxd.glyph,
love.distributedrebirth.numberxd.x4o,
love.distributedrebirth.warpme,
love.distributedrebirth.warpme.core,
love.distributedrebirth.warpme.hash,
love.distributedrebirth.warpme.sea,
love.distributedrebirth.warpme.ship,
love.distributedrebirth.unicode4d,
love.distributedrebirth.unicode4d.atlas
</Import-Package>
<Bundle-Vendor>distributedrebirth.love</Bundle-Vendor>
</instructions>
</configuration>
</plugin>
</plugins>
</build>
</project> </project>

View file

@ -0,0 +1,9 @@
<?xml version="1.0" encoding="UTF-8"?>
<root:ocean xmlns:root="http://wrap-sea.x4o.distributedrebirth.love/xml/ns/warp-sea-root"
xmlns:link="http://warp-sea.x4o.distributedrebirth.love/xml/ns/warp-sea-link"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://wrap-sea.x4o.distributedrebirth.love/xml/ns/warp-sea-root http://warp-sea.x4o.distributedrebirth.love/xml/ns/warp-sea-root-1.0.xsd">
<link:sea name="Notepad" provider="gdxapp4d.apps" author="willemtsade">
<link:magic file="gdxapp4d-app-notepad.jar" mime="application/vnd.osgi.bundle"/>
</link:sea>
</root:ocean>

View file

@ -6,4 +6,113 @@
<version>0.0.1-SNAPSHOT</version> <version>0.0.1-SNAPSHOT</version>
</parent> </parent>
<artifactId>gdxapp4d-app-tosamp</artifactId> <artifactId>gdxapp4d-app-tosamp</artifactId>
<packaging>bundle</packaging>
<dependencies>
<dependency>
<groupId>love.distributedrebirth.gdxapp4d</groupId>
<artifactId>gdxapp4d-vrgem4</artifactId>
<version>${project.version}</version>
<scope>provided</scope>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.apache.felix</groupId>
<artifactId>maven-bundle-plugin</artifactId>
<extensions>true</extensions>
<configuration>
<exportScr>true</exportScr>
<instructions>
<_donotcopy>(.git)</_donotcopy>
<_dsannotations>*</_dsannotations>
<_metatypeannotations>*</_metatypeannotations>
<Import-Package>
org.osgi.framework,
org.osgi.service.packageadmin,
org.osgi.service.url,
org.osgi.service.startlevel,
org.osgi.util.tracker,
love.distributedrebirth.gdxapp4d.tos4.service,
love.distributedrebirth.gdxapp4d.vrgem4.service,
love.distributedrebirth.gdxapp4d.vrgem4.service.deskapp,
com.badlogic.gdx,
com.badlogic.gdx.assets,
com.badlogic.gdx.assets.loaders,
com.badlogic.gdx.assets.loaders.resolvers,
com.badlogic.gdx.audio,
com.badlogic.gdx.files,
com.badlogic.gdx.graphics,
com.badlogic.gdx.graphics.g2d,
com.badlogic.gdx.graphics.g2d.freetype,
com.badlogic.gdx.graphics.g3d,
com.badlogic.gdx.graphics.g3d.attributes,
com.badlogic.gdx.graphics.g3d.decals,
com.badlogic.gdx.graphics.g3d.environment,
com.badlogic.gdx.graphics.g3d.loader,
com.badlogic.gdx.graphics.g3d.model,
com.badlogic.gdx.graphics.g3d.model.data,
com.badlogic.gdx.graphics.g3d.particles,
com.badlogic.gdx.graphics.g3d.particles.bactches,
com.badlogic.gdx.graphics.g3d.particles.emitters,
com.badlogic.gdx.graphics.g3d.particles.influencers,
com.badlogic.gdx.graphics.g3d.particles.renderers,
com.badlogic.gdx.graphics.g3d.particles.values,
com.badlogic.gdx.graphics.g3d.shaders,
com.badlogic.gdx.graphics.g3d.utils,
com.badlogic.gdx.graphics.g3d.utils.shapebuilders,
com.badlogic.gdx.graphics.glutils,
com.badlogic.gdx.graphics.profiling,
com.badlogic.gdx.input,
com.badlogic.gdx.maps,
com.badlogic.gdx.maps.objects,
com.badlogic.gdx.maps.tiled,
com.badlogic.gdx.maps.tiled.objects,
com.badlogic.gdx.maps.tiled.renderers,
com.badlogic.gdx.maps.tiled.tiles,
com.badlogic.gdx.math,
com.badlogic.gdx.math.collision,
com.badlogic.gdx.net,
com.badlogic.gdx.scenes.scene2d,
com.badlogic.gdx.scenes.scene2d.actions,
com.badlogic.gdx.scenes.scene2d.ui,
com.badlogic.gdx.scenes.scene2d.utils,
com.badlogic.gdx.utils,
com.badlogic.gdx.utils.async,
com.badlogic.gdx.utils.compression,
com.badlogic.gdx.utils.compression.lz,
com.badlogic.gdx.utils.compression.lzma,
com.badlogic.gdx.utils.compression.rangecoder,
com.badlogic.gdx.utils.reflect,
com.badlogic.gdx.utils.viewport,
imgui,
imgui.flag,
imgui.glfw,
imgui.gl3,
imgui.type,
net.spookygames.gdx.nativefilechooser,
love.distributedrebirth.bassboonyd,
love.distributedrebirth.bassboonyd.jmx,
love.distributedrebirth.numberxd,
love.distributedrebirth.numberxd.base2t,
love.distributedrebirth.numberxd.base2t.part,
love.distributedrebirth.numberxd.base2t.part.warp,
love.distributedrebirth.numberxd.base2t.type,
love.distributedrebirth.numberxd.base2t.typexl,
love.distributedrebirth.numberxd.glyph,
love.distributedrebirth.numberxd.x4o,
love.distributedrebirth.warpme,
love.distributedrebirth.warpme.core,
love.distributedrebirth.warpme.hash,
love.distributedrebirth.warpme.sea,
love.distributedrebirth.warpme.ship,
love.distributedrebirth.unicode4d,
love.distributedrebirth.unicode4d.atlas
</Import-Package>
<Bundle-Vendor>distributedrebirth.love</Bundle-Vendor>
</instructions>
</configuration>
</plugin>
</plugins>
</build>
</project> </project>

View file

@ -0,0 +1,9 @@
<?xml version="1.0" encoding="UTF-8"?>
<root:ocean xmlns:root="http://wrap-sea.x4o.distributedrebirth.love/xml/ns/warp-sea-root"
xmlns:link="http://warp-sea.x4o.distributedrebirth.love/xml/ns/warp-sea-link"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://wrap-sea.x4o.distributedrebirth.love/xml/ns/warp-sea-root http://warp-sea.x4o.distributedrebirth.love/xml/ns/warp-sea-root-1.0.xsd">
<link:sea name="TosAmp" provider="gdxapp4d.apps" author="willemtsade">
<link:magic file="gdxapp4d-app-tosamp.jar" mime="application/vnd.osgi.bundle"/>
</link:sea>
</root:ocean>

View file

@ -0,0 +1,34 @@
package love.distributedrebirth.gdxapp4d.app.tosamp;
import org.osgi.service.component.annotations.Activate;
import org.osgi.service.component.annotations.Component;
import org.osgi.service.component.annotations.Deactivate;
import org.osgi.service.component.annotations.Reference;
import love.distributedrebirth.gdxapp4d.tos4.service.SystemGdxBootArgs;
import love.distributedrebirth.gdxapp4d.tos4.service.SystemGdxLog;
import love.distributedrebirth.gdxapp4d.vrgem4.service.VrGem4DeskAppService;
import love.distributedrebirth.gdxapp4d.vrgem4.service.deskapp.DeskAppLauncher;
@Component
public class TosAmpComponent {
@Reference
private SystemGdxLog log;
@Reference
private VrGem4DeskAppService deskAppService;
@Reference
private SystemGdxBootArgs bootArgs;
@Activate
void open() {
log.info(this, "Activated TosAmpComponent");
deskAppService.registrateDeskApp(new DeskAppLauncher("TosAmp", () -> new TosAmpDeskApp(bootArgs.getFileChooser())));
}
@Deactivate
void close() {
}
}

View file

@ -1,4 +1,4 @@
package love.distributedrebirth.gdxapp4d.vrgem4.desktop.apps; package love.distributedrebirth.gdxapp4d.app.tosamp;
import java.util.function.Consumer; import java.util.function.Consumer;
@ -10,34 +10,38 @@ import imgui.flag.ImGuiSelectableFlags;
import imgui.flag.ImGuiTableColumnFlags; import imgui.flag.ImGuiTableColumnFlags;
import imgui.flag.ImGuiTableFlags; import imgui.flag.ImGuiTableFlags;
import love.distributedrebirth.bassboonyd.BãßBȍőnAuthorInfoʸᴰ; import love.distributedrebirth.bassboonyd.BãßBȍőnAuthorInfoʸᴰ;
import love.distributedrebirth.gdxapp4d.tos4.GDXAppTos4; import love.distributedrebirth.gdxapp4d.app.tosamp.music.MusicManager;
import love.distributedrebirth.gdxapp4d.app.tosamp.music.MusicSong;
import love.distributedrebirth.gdxapp4d.vrgem4.FontAwesomeIcons; import love.distributedrebirth.gdxapp4d.vrgem4.FontAwesomeIcons;
import love.distributedrebirth.gdxapp4d.vrgem4.GDXAppVrGem4; import love.distributedrebirth.gdxapp4d.vrgem4.service.deskapp.AbstractDeskApp;
import love.distributedrebirth.gdxapp4d.vrgem4.desktop.DefaultDeskApp; import love.distributedrebirth.gdxapp4d.vrgem4.service.deskapp.DeskAppContourSection;
import love.distributedrebirth.gdxapp4d.vrgem4.desktop.DeskAppContourSection; import love.distributedrebirth.gdxapp4d.vrgem4.service.deskapp.DeskAppRenderer;
import love.distributedrebirth.gdxapp4d.vrgem4.desktop.DeskAppRenderer; import net.spookygames.gdx.nativefilechooser.NativeFileChooser;
import love.distributedrebirth.gdxapp4d.vrgem4.music.MusicSong;
import net.spookygames.gdx.nativefilechooser.NativeFileChooserCallback; import net.spookygames.gdx.nativefilechooser.NativeFileChooserCallback;
import net.spookygames.gdx.nativefilechooser.NativeFileChooserConfiguration; import net.spookygames.gdx.nativefilechooser.NativeFileChooserConfiguration;
/**
* The music player ui.
*/
@BãßBȍőnAuthorInfoʸᴰ(name = "willemtsade", copyright = "©Δ∞ 仙上主天") @BãßBȍőnAuthorInfoʸᴰ(name = "willemtsade", copyright = "©Δ∞ 仙上主天")
public class MusicPlayerApp extends DefaultDeskApp implements DeskAppRenderer { public class TosAmpDeskApp extends AbstractDeskApp implements DeskAppRenderer {
private final NativeFileChooserConfiguration fileChooserConfig; private final MusicManager music;
private final NativeFileChooser fileChooser;
private NativeFileChooserConfiguration fileChooserConfig;
public MusicPlayerApp() { public TosAmpDeskApp(NativeFileChooser fileChooser) {
setTitle(FontAwesomeIcons.Music + " Music Player"); this.fileChooser = fileChooser;
this.music = new MusicManager();
}
public void create() {
getContours().setTitle("\uf001 TosAmp");
getContours().registrateContour(DeskAppContourSection.MAIN, this); getContours().registrateContour(DeskAppContourSection.MAIN, this);
getContours().registrateContour(DeskAppContourSection.FILE_NEW, new DeskAppRenderer() { getContours().registrateContour(DeskAppContourSection.FILE_NEW, new DeskAppRenderer() {
@Override @Override
public void render() { public void render() {
if (ImGui.menuItem(FontAwesomeIcons.Plus + " Add")) { if (ImGui.menuItem(FontAwesomeIcons.Plus + " Add")) {
// GDXAppVrGem4.INSTANCE.terminal.getFileChooser().chooseFile(fileChooserConfig, fileChooser.chooseFile(fileChooserConfig,
// NativeFileChooserCallbackAdapter.onFileChosen(v -> GDXAppVrGem4.INSTANCE.music.addBackgroundMusic(v))); NativeFileChooserCallbackAdapter.onFileChosen(v -> music.addBackgroundMusic(v)));
} }
} }
@ -51,7 +55,7 @@ public class MusicPlayerApp extends DefaultDeskApp implements DeskAppRenderer {
@Override @Override
public void render() { public void render() {
ImGui.text("Current Song:"); ImGui.text("Current Song:");
MusicSong currentSong = GDXAppVrGem4.INSTANCE.music.getCurrentSong(); MusicSong currentSong = music.getCurrentSong();
if (currentSong != null) { if (currentSong != null) {
ImGui.sameLine(); ImGui.sameLine();
ImGui.text(currentSong.getName()); ImGui.text(currentSong.getName());
@ -59,22 +63,22 @@ public class MusicPlayerApp extends DefaultDeskApp implements DeskAppRenderer {
ImGui.separator(); ImGui.separator();
if (currentSong != null) { if (currentSong != null) {
if (ImGui.button("Play")) { if (ImGui.button("Play")) {
GDXAppVrGem4.INSTANCE.music.play(currentSong); music.play(currentSong);
} }
} else { } else {
ImGui.text("Play"); ImGui.text("Play");
} }
ImGui.sameLine(); ImGui.sameLine();
if (ImGui.button("<")) { if (ImGui.button("<")) {
GDXAppVrGem4.INSTANCE.music.prev(); music.prev();
} }
ImGui.sameLine(); ImGui.sameLine();
if (ImGui.button(">")) { if (ImGui.button(">")) {
GDXAppVrGem4.INSTANCE.music.next(); music.next();
} }
ImGui.sameLine(); ImGui.sameLine();
if (ImGui.button("Stop")) { if (ImGui.button("Stop")) {
GDXAppVrGem4.INSTANCE.music.stop(); music.stop();
} }
int flags = ImGuiTableFlags.ScrollX | ImGuiTableFlags.RowBg | ImGuiTableFlags.BordersOuter | ImGuiTableFlags.BordersV; int flags = ImGuiTableFlags.ScrollX | ImGuiTableFlags.RowBg | ImGuiTableFlags.BordersOuter | ImGuiTableFlags.BordersV;
ImGui.beginTable("playlist", 3, flags); ImGui.beginTable("playlist", 3, flags);
@ -83,14 +87,14 @@ public class MusicPlayerApp extends DefaultDeskApp implements DeskAppRenderer {
ImGui.tableSetupColumn("Name"); ImGui.tableSetupColumn("Name");
ImGui.tableHeadersRow(); ImGui.tableHeadersRow();
int i=1; int i=1;
for (MusicSong song:GDXAppVrGem4.INSTANCE.music.getBackgroundSongs()) { for (MusicSong song:music.getBackgroundSongs()) {
ImGui.pushID(i); ImGui.pushID(i);
ImGui.tableNextRow(); ImGui.tableNextRow();
ImGui.tableNextColumn(); ImGui.tableNextColumn();
ImGui.selectable(""+i, song.isPlaying(), ImGuiSelectableFlags.None); ImGui.selectable(""+i, song.isPlaying(), ImGuiSelectableFlags.None);
ImGui.tableNextColumn(); ImGui.tableNextColumn();
if (ImGui.smallButton(">")) { if (ImGui.smallButton(">")) {
GDXAppVrGem4.INSTANCE.music.play(song); music.play(song);
} }
ImGui.tableNextColumn(); ImGui.tableNextColumn();
ImGui.selectable(song.getName(), song.isPlaying(), ImGuiSelectableFlags.None); ImGui.selectable(song.getName(), song.isPlaying(), ImGuiSelectableFlags.None);

View file

@ -1,4 +1,4 @@
package love.distributedrebirth.gdxapp4d.vrgem4.music; package love.distributedrebirth.gdxapp4d.app.tosamp.music;
import java.io.BufferedReader; import java.io.BufferedReader;
import java.io.IOException; import java.io.IOException;

View file

@ -1,4 +1,4 @@
package love.distributedrebirth.gdxapp4d.vrgem4.music; package love.distributedrebirth.gdxapp4d.app.tosamp.music;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.List; import java.util.List;

View file

@ -1,4 +1,4 @@
package love.distributedrebirth.gdxapp4d.vrgem4.music; package love.distributedrebirth.gdxapp4d.app.tosamp.music;
import com.badlogic.gdx.audio.Music; import com.badlogic.gdx.audio.Music;

View file

@ -1,4 +1,4 @@
package love.distributedrebirth.gdxapp4d.vrgem4.music; package love.distributedrebirth.gdxapp4d.app.tosamp.music;
import love.distributedrebirth.bassboonyd.BãßBȍőnAuthorInfoʸᴰ; import love.distributedrebirth.bassboonyd.BãßBȍőnAuthorInfoʸᴰ;

View file

@ -4,6 +4,13 @@
<entry key="1c2d010066a39d96ace8af0ecc37c72d6f79109f30939e2959befcd9ce25fc8d">../gdxapp4d-chain-sys-engine/src/chain</entry> <entry key="1c2d010066a39d96ace8af0ecc37c72d6f79109f30939e2959befcd9ce25fc8d">../gdxapp4d-chain-sys-engine/src/chain</entry>
<entry key="f8be3b29da5b6b2cb464f781469ceede6ccfd848d158293a4cdffbc2c41a410b">../gdxapp4d-chain-sys-ocean/src/chain</entry> <entry key="f8be3b29da5b6b2cb464f781469ceede6ccfd848d158293a4cdffbc2c41a410b">../gdxapp4d-chain-sys-ocean/src/chain</entry>
<entry key="8833aa29da5b6b2cb464f781469ceede6ccfd848d158293a4cdffbc2c41b58de">../gdxapp4d-chain-dep-osgi-scr/src/chain</entry> <entry key="8833aa29da5b6b2cb464f781469ceede6ccfd848d158293a4cdffbc2c41b58de">../gdxapp4d-chain-dep-osgi-scr/src/chain</entry>
<entry key="6633aa29da5b6b2cb4bef781469cffde677fd848d158293a4cdffbc2c41b89fe">../gdxapp4d-app-hewallet/src/chain</entry>
<entry key="6633aa29da5b6b2cb4bef781469cffde677fd848d158293a4cdffbc2c41b89fe.gdxapp4d-app-hewallet.jar">../gdxapp4d-app-hewallet/target/classes</entry>
<entry key="5522aa29da5b6b2cb4befaa14aacaade6aafd848d158293a4cdffbc2c41b23bd">../gdxapp4d-app-tosamp/src/chain</entry>
<entry key="5522aa29da5b6b2cb4befaa14aacaade6aafd848d158293a4cdffbc2c41b23bd.gdxapp4d-app-tosamp.jar">../gdxapp4d-app-tosamp/target/classes</entry>
<entry key="ccba3b29da8b1b1cb444f381449beede3cbfd442d158293a4cdffbc3c41a31cc">../gdxapp4d-vrgem4/src/chain</entry> <entry key="ccba3b29da8b1b1cb444f381449beede3cbfd442d158293a4cdffbc3c41a31cc">../gdxapp4d-vrgem4/src/chain</entry>
<entry key="ccba3b29da8b1b1cb444f381449beede3cbfd442d158293a4cdffbc3c41a31cc.gdxapp4d-vrgem4.jar">../gdxapp4d-vrgem4/target/classes</entry> <entry key="ccba3b29da8b1b1cb444f381449beede3cbfd442d158293a4cdffbc3c41a31cc.gdxapp4d-vrgem4.jar">../gdxapp4d-vrgem4/target/classes</entry>
</properties> </properties>

View file

@ -4,5 +4,9 @@
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://wrap-sea.x4o.distributedrebirth.love/xml/ns/warp-sea-root http://warp-sea.x4o.distributedrebirth.love/xml/ns/warp-sea-root-1.0.xsd"> xsi:schemaLocation="http://wrap-sea.x4o.distributedrebirth.love/xml/ns/warp-sea-root http://warp-sea.x4o.distributedrebirth.love/xml/ns/warp-sea-root-1.0.xsd">
<link:sea name="System Ocean" provider="gdxapp4d.system" author="willemtsade"> <link:sea name="System Ocean" provider="gdxapp4d.system" author="willemtsade">
<!-- Link app-hewallet -->
<link:chain key="6633aa29da5b6b2cb4bef781469cffde677fd848d158293a4cdffbc2c41b89fe"/>
<!-- Link app-tosamp -->
<link:chain key="5522aa29da5b6b2cb4befaa14aacaade6aafd848d158293a4cdffbc2c41b23bd"/>
</link:sea> </link:sea>
</root:ocean> </root:ocean>

View file

@ -28,6 +28,7 @@ import com.badlogic.gdx.graphics.g2d.freetype.FreeTypeFontGenerator.FreeTypeFont
import love.distributedrebirth.bassboonyd.BãßBȍőnAuthorInfoʸᴰ; import love.distributedrebirth.bassboonyd.BãßBȍőnAuthorInfoʸᴰ;
import love.distributedrebirth.gdxapp4d.tos4.service.SystemWarpBase; import love.distributedrebirth.gdxapp4d.tos4.service.SystemWarpBase;
import love.distributedrebirth.gdxapp4d.tos4.service.SystemGdxBootFactory;
import love.distributedrebirth.gdxapp4d.tos4.service.SystemGdxBootArgs; import love.distributedrebirth.gdxapp4d.tos4.service.SystemGdxBootArgs;
import love.distributedrebirth.gdxapp4d.tos4.service.SystemGdxFont; import love.distributedrebirth.gdxapp4d.tos4.service.SystemGdxFont;
import love.distributedrebirth.gdxapp4d.tos4.service.SystemGdxLog; import love.distributedrebirth.gdxapp4d.tos4.service.SystemGdxLog;
@ -53,6 +54,7 @@ public class GDXAppTos4Activator implements BundleActivator {
private NativeFileChooser fileChooser; private NativeFileChooser fileChooser;
private File hyperdriveHome; private File hyperdriveHome;
private File warpshipHome; private File warpshipHome;
private boolean startError;
private BitmapFont gdxFont; private BitmapFont gdxFont;
private Properties localOverrides; private Properties localOverrides;
private WaterDevice warpshipDevice; private WaterDevice warpshipDevice;
@ -64,6 +66,7 @@ public class GDXAppTos4Activator implements BundleActivator {
private static final String WARPSHIP_HOME = "Warpship"; private static final String WARPSHIP_HOME = "Warpship";
public GDXAppTos4Activator() { public GDXAppTos4Activator() {
startError = false;
} }
public void BãßInit(List<String> args, int viewWidth, int viewHeight,NativeFileChooser fileChooser, SystemGdxTerminal systemGdxTerminal) { public void BãßInit(List<String> args, int viewWidth, int viewHeight,NativeFileChooser fileChooser, SystemGdxTerminal systemGdxTerminal) {
@ -88,6 +91,10 @@ public class GDXAppTos4Activator implements BundleActivator {
listeners.remove(listener); listeners.remove(listener);
} }
public boolean hasStartError() {
return startError;
}
@Override @Override
public void stop(final BundleContext context) { public void stop(final BundleContext context) {
gdxFont.dispose(); gdxFont.dispose();
@ -106,6 +113,7 @@ public class GDXAppTos4Activator implements BundleActivator {
hyperdriveHome = new File(userHome, HYPERDRIVE_HOME); hyperdriveHome = new File(userHome, HYPERDRIVE_HOME);
if (!hyperdriveHome.exists()) { if (!hyperdriveHome.exists()) {
fireMessageEvent("ERROR: No Hyperdrive home."); fireMessageEvent("ERROR: No Hyperdrive home.");
startError = true;
return; return;
} }
warpshipHome = new File(hyperdriveHome, WARPSHIP_HOME); warpshipHome = new File(hyperdriveHome, WARPSHIP_HOME);
@ -114,6 +122,7 @@ public class GDXAppTos4Activator implements BundleActivator {
} }
if (!warpshipHome.exists()) { if (!warpshipHome.exists()) {
fireMessageEvent("ERROR: No Warpship home."); fireMessageEvent("ERROR: No Warpship home.");
startError = true;
return; return;
} }
File warpShip = new File(warpshipHome, Warpᵐᵉ.WARP_SHIP); File warpShip = new File(warpshipHome, Warpᵐᵉ.WARP_SHIP);
@ -123,6 +132,7 @@ public class GDXAppTos4Activator implements BundleActivator {
fireMessageEvent("warp-ship: "+warpShip); fireMessageEvent("warp-ship: "+warpShip);
if (!warpShip.exists()) { if (!warpShip.exists()) {
fireMessageEvent("ERROR: No warp-ship.xml found."); fireMessageEvent("ERROR: No warp-ship.xml found.");
startError = true;
return; return;
} }
try { try {
@ -130,6 +140,7 @@ public class GDXAppTos4Activator implements BundleActivator {
} catch (Exception e) { } catch (Exception e) {
e.printStackTrace(); e.printStackTrace();
fireMessageEvent("ERROR: "+e.getMessage()); fireMessageEvent("ERROR: "+e.getMessage());
startError = true;
return; return;
} }
fireMessageEvent("warp-engine: "+warpshipDevice.theShip().getName()); fireMessageEvent("warp-engine: "+warpshipDevice.theShip().getName());
@ -188,13 +199,16 @@ public class GDXAppTos4Activator implements BundleActivator {
} catch (Exception e) { } catch (Exception e) {
e.printStackTrace(); e.printStackTrace();
fireMessageEvent("ERROR: "+e.getMessage()); fireMessageEvent("ERROR: "+e.getMessage());
startError = true;
return; return;
} }
if (result > 0) { if (result > 0) {
fireMessageEvent("tos4: FAILURE BOOT ABORTED"); fireMessageEvent("tos4: FAILURE BOOT ABORTED");
} else { startError = true;
fireMessageEvent("tos4: chains resolved."); return;
} }
fireMessageEvent("tos4: chains resolved.");
try { try {
ServiceReference<?>[] refs = context.getServiceReferences( SystemWarpSea.class.getName(), "(warp.sea.name=*)" ); ServiceReference<?>[] refs = context.getServiceReferences( SystemWarpSea.class.getName(), "(warp.sea.name=*)" );
for (int i=0;i<refs.length;i++) { for (int i=0;i<refs.length;i++) {
@ -203,12 +217,13 @@ public class GDXAppTos4Activator implements BundleActivator {
File waterHome = service.getWarpHome(); File waterHome = service.getWarpHome();
for (WaterSeaMagic magic:service.getWarpSea().theWater().getSeaMagics()) { for (WaterSeaMagic magic:service.getWarpSea().theWater().getSeaMagics()) {
if ("application/vnd.osgi.bundle".equals(magic.getMime())) { if ("application/vnd.osgi.bundle".equals(magic.getMime())) {
magic.setMime("application/vnd.osgi.bundle.loaded"); // TODO: HACK for now to not load again
String overrideBundleKey = key + "." + magic.getFile(); String overrideBundleKey = key + "." + magic.getFile();
String overrideBundle = localOverrides.getProperty(overrideBundleKey); String overrideBundle = localOverrides.getProperty(overrideBundleKey);
if (overrideBundle == null) { if (overrideBundle == null) {
GDXAppTos4BootFactory.installAndStartBundles(context, "reference:file:"+waterHome.getAbsolutePath()+"/"+magic.getFile()); SystemGdxBootFactory.installAndStartBundles(context, "reference:file:"+waterHome.getAbsolutePath()+"/"+magic.getFile());
} else { } else {
GDXAppTos4BootFactory.installAndStartBundles(context, "reference:file:"+overrideBundle); SystemGdxBootFactory.installAndStartBundles(context, "reference:file:"+overrideBundle);
} }
} }
} }
@ -216,6 +231,8 @@ public class GDXAppTos4Activator implements BundleActivator {
} catch (Exception e) { } catch (Exception e) {
e.printStackTrace(); e.printStackTrace();
fireMessageEvent("ERROR: "+e.getMessage()); fireMessageEvent("ERROR: "+e.getMessage());
startError = true;
return;
} }
} }
@ -294,6 +311,11 @@ public class GDXAppTos4Activator implements BundleActivator {
public NativeFileChooser getFileChooser() { public NativeFileChooser getFileChooser() {
return fileChooser; return fileChooser;
} }
@Override
public Properties getLocalOverrides() {
return localOverrides;
}
} }
public class SystemWarpShipImpl implements SystemWarpShip { public class SystemWarpShipImpl implements SystemWarpShip {
@ -322,9 +344,28 @@ public class GDXAppTos4Activator implements BundleActivator {
waterHome = new File(override); waterHome = new File(override);
} }
LOG.debug("loadWaterOcean key={} home={}",key, waterHome); LOG.debug("loadWaterOcean key={} home={}",key, waterHome);
// File waterHash = new File(waterHome, Warpᵐᵉ.WARP_HASH);
// if (!waterHash.exists()) {
// logger.accept("ERROR: Missing file: "+waterHash);
// return 1;
// }
// WaterShotAddict addict = new WaterShotAddict();
// try {
// if (!addict.validateWarpChainLink(waterHome)) {
// logger.accept("ERROR: Invalid hash in: "+waterHash);
// return 1;
// }
// } catch (NoSuchAlgorithmException | X4OConnectionException | SAXException | IOException e) {
// e.printStackTrace();
// logger.accept("ERROR: "+e.getMessage());
// return 1;
// }
File waterSea = new File(waterHome, Warpᵐᵉ.WARP_SEA); File waterSea = new File(waterHome, Warpᵐᵉ.WARP_SEA);
if (!waterSea.exists()) { if (!waterSea.exists()) {
logger.accept("ERROR: No warp-sea.xml found."); logger.accept("ERROR: Missing file: "+waterSea);
return 1; return 1;
} }
WaterOcean ocean = WaterOceanDriver.newInstance().createReader().readFile(waterSea); WaterOcean ocean = WaterOceanDriver.newInstance().createReader().readFile(waterSea);

View file

@ -8,6 +8,7 @@ import org.slf4j.LoggerFactory;
import com.badlogic.gdx.Gdx; import com.badlogic.gdx.Gdx;
import love.distributedrebirth.bassboonyd.BãßBȍőnAuthorInfoʸᴰ; import love.distributedrebirth.bassboonyd.BãßBȍőnAuthorInfoʸᴰ;
import love.distributedrebirth.gdxapp4d.tos4.service.SystemGdxBootFactory;
@BãßBȍőnAuthorInfoʸᴰ(name = "willemtsade", copyright = "©Δ∞ 仙上主天") @BãßBȍőnAuthorInfoʸᴰ(name = "willemtsade", copyright = "©Δ∞ 仙上主天")
public class GDXAppTos4Startup { public class GDXAppTos4Startup {
@ -16,7 +17,7 @@ public class GDXAppTos4Startup {
public static Framework init(GDXAppTos4 tos4, GDXAppTos4Activator systemActivator) { public static Framework init(GDXAppTos4 tos4, GDXAppTos4Activator systemActivator) {
LOG.info("Startup framework"); LOG.info("Startup framework");
final Framework systemBundle = GDXAppTos4BootFactory.createFramework(); final Framework systemBundle = SystemGdxBootFactory.createFramework();
final GDXAppTos4BootScreen bootScreen = new GDXAppTos4BootScreen(); final GDXAppTos4BootScreen bootScreen = new GDXAppTos4BootScreen();
systemActivator.addBootListener(bootScreen); systemActivator.addBootListener(bootScreen);
@ -30,11 +31,13 @@ public class GDXAppTos4Startup {
LOG.debug("Startup system-activator"); LOG.debug("Startup system-activator");
systemActivator.start(systemBundle.getBundleContext()); systemActivator.start(systemBundle.getBundleContext());
if (!systemActivator.hasStartError()) {
Gdx.app.postRunnable(() -> { Gdx.app.postRunnable(() -> {
LOG.debug("Release boot-screen"); LOG.debug("Release boot-screen");
systemActivator.removeBootListener(bootScreen); systemActivator.removeBootListener(bootScreen);
tos4.disposeScreen(bootScreen); tos4.disposeScreen(bootScreen);
}); });
}
} catch (Exception e) { } catch (Exception e) {
throw new RuntimeException(e); throw new RuntimeException(e);
} }

View file

@ -1,5 +1,7 @@
package love.distributedrebirth.gdxapp4d.tos4.service; package love.distributedrebirth.gdxapp4d.tos4.service;
import java.util.Properties;
import love.distributedrebirth.bassboonyd.BãßBȍőnAuthorInfoʸᴰ; import love.distributedrebirth.bassboonyd.BãßBȍőnAuthorInfoʸᴰ;
import net.spookygames.gdx.nativefilechooser.NativeFileChooser; import net.spookygames.gdx.nativefilechooser.NativeFileChooser;
@ -13,4 +15,6 @@ public interface SystemGdxBootArgs {
int getWindowHeight(); int getWindowHeight();
NativeFileChooser getFileChooser(); NativeFileChooser getFileChooser();
Properties getLocalOverrides();
} }

View file

@ -1,4 +1,4 @@
package love.distributedrebirth.gdxapp4d.tos4; package love.distributedrebirth.gdxapp4d.tos4.service;
import java.io.File; import java.io.File;
import java.io.IOException; import java.io.IOException;
@ -16,7 +16,7 @@ import org.osgi.framework.launch.FrameworkFactory;
import love.distributedrebirth.bassboonyd.BãßBȍőnAuthorInfoʸᴰ; import love.distributedrebirth.bassboonyd.BãßBȍőnAuthorInfoʸᴰ;
@BãßBȍőnAuthorInfoʸᴰ(name = "willemtsade", copyright = "©Δ∞ 仙上主天") @BãßBȍőnAuthorInfoʸᴰ(name = "willemtsade", copyright = "©Δ∞ 仙上主天")
public class GDXAppTos4BootFactory { public class SystemGdxBootFactory {
public static void installAndStartBundles(BundleContext bundleContext, String... bundleLocations) throws BundleException { public static void installAndStartBundles(BundleContext bundleContext, String... bundleLocations) throws BundleException {
for (String location : bundleLocations) { for (String location : bundleLocations) {

View file

@ -12,7 +12,6 @@
<groupId>love.distributedrebirth.gdxapp4d</groupId> <groupId>love.distributedrebirth.gdxapp4d</groupId>
<artifactId>gdxapp4d-tos4</artifactId> <artifactId>gdxapp4d-tos4</artifactId>
<version>${project.version}</version> <version>${project.version}</version>
<scope>provided</scope>
</dependency> </dependency>
</dependencies> </dependencies>
<build> <build>
@ -25,9 +24,7 @@
<exportScr>true</exportScr> <exportScr>true</exportScr>
<instructions> <instructions>
<_donotcopy>(.git)</_donotcopy> <_donotcopy>(.git)</_donotcopy>
<!-- Enable processing of OSGI DS component annotations -->
<_dsannotations>*</_dsannotations> <_dsannotations>*</_dsannotations>
<!-- Enable processing of OSGI metatype annotations -->
<_metatypeannotations>*</_metatypeannotations> <_metatypeannotations>*</_metatypeannotations>
<Import-Package> <Import-Package>
org.osgi.framework, org.osgi.framework,
@ -109,7 +106,10 @@
love.distributedrebirth.unicode4d, love.distributedrebirth.unicode4d,
love.distributedrebirth.unicode4d.atlas love.distributedrebirth.unicode4d.atlas
</Import-Package> </Import-Package>
<Export-Package>love.distributedrebirth.gdxapp4d.vrgem4.service</Export-Package> <Export-Package>
love.distributedrebirth.gdxapp4d.vrgem4.service,
love.distributedrebirth.gdxapp4d.vrgem4.service.deskapp
</Export-Package>
<Private-Package>love.distributedrebirth.gdxapp4d.vrgem4.*</Private-Package> <Private-Package>love.distributedrebirth.gdxapp4d.vrgem4.*</Private-Package>
<!-- <!--
<Embed-Dependency>*;artifactId=gdx;inline=true,*;artifactId=gdx-nativefilechooser;inline=true</Embed-Dependency> <Embed-Dependency>*;artifactId=gdx;inline=true,*;artifactId=gdx-nativefilechooser;inline=true</Embed-Dependency>

View file

@ -1,24 +0,0 @@
package love.distributedrebirth.gdxapp4d.vrgem4;
import java.util.function.Supplier;
import love.distributedrebirth.gdxapp4d.vrgem4.desktop.DefaultDeskApp;
public final class GDXAppLauncher {
private final String name;
private final Supplier<DefaultDeskApp> launcher;
public GDXAppLauncher(String name, Supplier<DefaultDeskApp> launcher) {
this.name = name;
this.launcher = launcher;
}
public String getName() {
return name;
}
public Supplier<DefaultDeskApp> getLauncher() {
return launcher;
}
}

View file

@ -1,7 +1,5 @@
package love.distributedrebirth.gdxapp4d.vrgem4; package love.distributedrebirth.gdxapp4d.vrgem4;
import java.util.List;
import love.distributedrebirth.bassboonyd.BãßBȍőnAuthorInfoʸᴰ; import love.distributedrebirth.bassboonyd.BãßBȍőnAuthorInfoʸᴰ;
import love.distributedrebirth.bassboonyd.BãßBȍőnClassInfoʸᴰ; import love.distributedrebirth.bassboonyd.BãßBȍőnClassInfoʸᴰ;
import love.distributedrebirth.bassboonyd.BãßBȍőnCoffinOpenʸᴰ; import love.distributedrebirth.bassboonyd.BãßBȍőnCoffinOpenʸᴰ;
@ -9,7 +7,6 @@ import love.distributedrebirth.bassboonyd.BãßBȍőnCoffinʸᴰ;
import love.distributedrebirth.bassboonyd.BãßBȍőnPackageInfoʸᴰ; import love.distributedrebirth.bassboonyd.BãßBȍőnPackageInfoʸᴰ;
import love.distributedrebirth.bassboonyd.jmx.DefaultEnumInstanceᴶᴹˣ; import love.distributedrebirth.bassboonyd.jmx.DefaultEnumInstanceᴶᴹˣ;
import love.distributedrebirth.gdxapp4d.tos4.service.SystemGdxTerminal; import love.distributedrebirth.gdxapp4d.tos4.service.SystemGdxTerminal;
import love.distributedrebirth.gdxapp4d.vrgem4.music.MusicManager;
@BãßBȍőnAuthorInfoʸᴰ(name = "willemtsade", copyright = "©Δ∞ 仙上主天") @BãßBȍőnAuthorInfoʸᴰ(name = "willemtsade", copyright = "©Δ∞ 仙上主天")
@ -20,7 +17,7 @@ public enum GDXAppVrGem4 implements DefaultEnumInstanceᴶᴹˣ<GDXAppVrGem4,GDX
INSTANCE; INSTANCE;
public SystemGdxTerminal terminal; public SystemGdxTerminal terminal;
public MusicManager music; //public MusicManager music;
//public FontAtlas basePlane; //public FontAtlas basePlane;
private final BãßBȍőnCoffinOpenʸᴰ<GDXAppVrGem4Keyʸᴰ> BBC = BãßBȍőnCoffinOpenʸᴰ.newInstance(); private final BãßBȍőnCoffinOpenʸᴰ<GDXAppVrGem4Keyʸᴰ> BBC = BãßBȍőnCoffinOpenʸᴰ.newInstance();
public BãßBȍőnCoffinʸᴰ<GDXAppVrGem4Keyʸᴰ> GET_BBC() { return BBC; } public BãßBȍőnCoffinʸᴰ<GDXAppVrGem4Keyʸᴰ> GET_BBC() { return BBC; }
@ -31,8 +28,8 @@ public enum GDXAppVrGem4 implements DefaultEnumInstanceᴶᴹˣ<GDXAppVrGem4,GDX
} }
public void init(SystemGdxTerminal terminal) { public void init(SystemGdxTerminal terminal) {
music = new MusicManager(); //music = new MusicManager();
music.init(false); //music.init(false);
this.terminal = terminal; this.terminal = terminal;
} }

View file

@ -1,5 +1,8 @@
package love.distributedrebirth.gdxapp4d.vrgem4; package love.distributedrebirth.gdxapp4d.vrgem4;
import java.io.File;
import java.util.Hashtable;
import org.osgi.framework.BundleActivator; import org.osgi.framework.BundleActivator;
import org.osgi.framework.BundleContext; import org.osgi.framework.BundleContext;
import org.osgi.framework.ServiceReference; import org.osgi.framework.ServiceReference;
@ -9,10 +12,14 @@ import com.badlogic.gdx.Gdx;
import imgui.type.ImBoolean; import imgui.type.ImBoolean;
import love.distributedrebirth.bassboonyd.BãßBȍőnCoffinOpenʸᴰ; import love.distributedrebirth.bassboonyd.BãßBȍőnCoffinOpenʸᴰ;
import love.distributedrebirth.bassboonyd.jmx.DefaultEnumBaseᴶᴹˣ; import love.distributedrebirth.bassboonyd.jmx.DefaultEnumBaseᴶᴹˣ;
import love.distributedrebirth.gdxapp4d.tos4.GDXAppTos4Activator.SystemWarpBaseImpl;
import love.distributedrebirth.gdxapp4d.tos4.service.SystemGdxBootFactory;
import love.distributedrebirth.gdxapp4d.tos4.service.SystemGdxBootArgs; import love.distributedrebirth.gdxapp4d.tos4.service.SystemGdxBootArgs;
import love.distributedrebirth.gdxapp4d.tos4.service.SystemGdxFont; import love.distributedrebirth.gdxapp4d.tos4.service.SystemGdxFont;
import love.distributedrebirth.gdxapp4d.tos4.service.SystemWarpShip; import love.distributedrebirth.gdxapp4d.tos4.service.SystemWarpShip;
import love.distributedrebirth.gdxapp4d.tos4.service.SystemGdxTerminal; import love.distributedrebirth.gdxapp4d.tos4.service.SystemGdxTerminal;
import love.distributedrebirth.gdxapp4d.tos4.service.SystemWarpBase;
import love.distributedrebirth.gdxapp4d.tos4.service.SystemWarpSea;
import love.distributedrebirth.gdxapp4d.vrgem4.screen.ScreenCredits; import love.distributedrebirth.gdxapp4d.vrgem4.screen.ScreenCredits;
import love.distributedrebirth.gdxapp4d.vrgem4.screen.ScreenDesktop1; import love.distributedrebirth.gdxapp4d.vrgem4.screen.ScreenDesktop1;
import love.distributedrebirth.gdxapp4d.vrgem4.screen.ScreenDesktop2; import love.distributedrebirth.gdxapp4d.vrgem4.screen.ScreenDesktop2;
@ -20,10 +27,12 @@ import love.distributedrebirth.gdxapp4d.vrgem4.screen.ScreenDesktop3;
import love.distributedrebirth.gdxapp4d.vrgem4.screen.ScreenDesktop4; import love.distributedrebirth.gdxapp4d.vrgem4.screen.ScreenDesktop4;
import love.distributedrebirth.gdxapp4d.vrgem4.screen.ScreenHelp; import love.distributedrebirth.gdxapp4d.vrgem4.screen.ScreenHelp;
import love.distributedrebirth.gdxapp4d.vrgem4.screen.ScreenIntroMission; import love.distributedrebirth.gdxapp4d.vrgem4.screen.ScreenIntroMission;
import love.distributedrebirth.gdxapp4d.vrgem4.service.VrGem4DeskAppService;
import love.distributedrebirth.numberxd.base2t.Base2PartsFactory; import love.distributedrebirth.numberxd.base2t.Base2PartsFactory;
import love.distributedrebirth.numberxd.base2t.Base2Terminator; import love.distributedrebirth.numberxd.base2t.Base2Terminator;
import love.distributedrebirth.numberxd.base2t.part.warp.TOSWarpCore; import love.distributedrebirth.numberxd.base2t.part.warp.TOSWarpCore;
import love.distributedrebirth.numberxd.glyph.BaseGlyphSet; import love.distributedrebirth.numberxd.glyph.BaseGlyphSet;
import love.distributedrebirth.warpme.sea.WaterSeaMagic;
import love.distributedrebirth.warpme.ship.WaterShipOcean; import love.distributedrebirth.warpme.ship.WaterShipOcean;
public class GDXAppVrGem4Activator implements BundleActivator { public class GDXAppVrGem4Activator implements BundleActivator {
@ -64,7 +73,7 @@ public class GDXAppVrGem4Activator implements BundleActivator {
bootScreen.bootLine(" ©Δ∞ 仙上主天 "); bootScreen.bootLine(" ©Δ∞ 仙上主天 ");
bootScreen.bootLine("בְּרֵאשִׁית :o: יְסוֺד :o: יִשְׂרָאֵל"); bootScreen.bootLine("בְּרֵאשִׁית :o: יְסוֺד :o: יִשְׂרָאֵל");
bootScreen.bootLine("=========================="); bootScreen.bootLine("==========================");
bootScreen.bootLine("vrGEM4 Booting..."); bootScreen.bootLine("Boot: vrGEM⁴ - TOS⁴ - MSX⁴");
// ref to init // ref to init
for (DefaultEnumBaseᴶᴹˣ<?,?> coffin:coffinInstances()) { for (DefaultEnumBaseᴶᴹˣ<?,?> coffin:coffinInstances()) {
@ -132,17 +141,21 @@ public class GDXAppVrGem4Activator implements BundleActivator {
} }
*/ */
bootScreen.bootLine("vrGEM4: init"); bootScreen.bootLine("vrGEM: init");
GDXAppVrGem4.INSTANCE.init(terminal); GDXAppVrGem4.INSTANCE.init(terminal);
VrGem4DeskAppService deskAppService = new VrGem4DeskAppServiceImpl();
context.registerService(VrGem4DeskAppService.class.getName(), deskAppService, new Hashtable<String, String>());
bootScreen.bootLine("terminal: added screens"); bootScreen.bootLine("terminal: added screens");
Gdx.app.postRunnable(new Runnable() { Gdx.app.postRunnable(new Runnable() {
@Override @Override
public void run() { public void run() {
terminal.registrateScreen(new ScreenDesktop1(bootArgs)); terminal.registrateScreen(new ScreenDesktop1(bootArgs, deskAppService));
terminal.registrateScreen(new ScreenDesktop2(bootArgs)); terminal.registrateScreen(new ScreenDesktop2(bootArgs, deskAppService));
terminal.registrateScreen(new ScreenDesktop3(bootArgs)); terminal.registrateScreen(new ScreenDesktop3(bootArgs, deskAppService));
terminal.registrateScreen(new ScreenDesktop4(bootArgs)); terminal.registrateScreen(new ScreenDesktop4(bootArgs, deskAppService));
terminal.registrateScreen(new ScreenCredits()); terminal.registrateScreen(new ScreenCredits());
terminal.registrateScreen(new ScreenHelp()); terminal.registrateScreen(new ScreenHelp());
terminal.registrateScreen(new ScreenIntroMission()); terminal.registrateScreen(new ScreenIntroMission());
@ -169,8 +182,36 @@ public class GDXAppVrGem4Activator implements BundleActivator {
} }
if (result > 0) { if (result > 0) {
bootScreen.bootLine("vrGEM4: FAILURE BOOT ABORTED"); bootScreen.bootLine("vrGEM4: FAILURE BOOT ABORTED");
} else { return;
}
bootScreen.bootLine("vrGEM4: chains resolved."); bootScreen.bootLine("vrGEM4: chains resolved.");
try {
ServiceReference<?>[] refs = context.getServiceReferences( SystemWarpSea.class.getName(), "(warp.sea.name=*)" );
for (int i=0;i<refs.length;i++) {
SystemWarpSea service = (SystemWarpSea) context.getService( refs[i] );
String key = service.getWarpKey();
File waterHome = service.getWarpHome();
for (WaterSeaMagic magic:service.getWarpSea().theWater().getSeaMagics()) {
if ("application/vnd.osgi.bundle".equals(magic.getMime())) {
magic.setMime("application/vnd.osgi.bundle.loaded"); // TODO: HACK for now to not load again
String overrideBundleKey = key + "." + magic.getFile();
String overrideBundle = bootArgs.getLocalOverrides().getProperty(overrideBundleKey);
if (overrideBundle == null) {
SystemGdxBootFactory.installAndStartBundles(context, "reference:file:"+waterHome.getAbsolutePath()+"/"+magic.getFile());
} else {
SystemGdxBootFactory.installAndStartBundles(context, "reference:file:"+overrideBundle);
}
}
}
}
} catch (Exception e) {
e.printStackTrace();
bootScreen.bootLine("ERROR: "+e.getMessage());
return;
}
try { try {
Thread.sleep(2000); Thread.sleep(2000);
} catch (InterruptedException ignored) { } catch (InterruptedException ignored) {
@ -183,7 +224,6 @@ public class GDXAppVrGem4Activator implements BundleActivator {
} }
}); });
} }
}
//TODO: add layer or ?? private <T extends BãßBȍőnCoffinStoreʸᴰ<?>,DefaultAuthorInfoʸᴰ> T[] storeInstances() { //TODO: add layer or ?? private <T extends BãßBȍőnCoffinStoreʸᴰ<?>,DefaultAuthorInfoʸᴰ> T[] storeInstances() {
@SuppressWarnings("unchecked") @SuppressWarnings("unchecked")

View file

@ -1,5 +1,8 @@
package love.distributedrebirth.gdxapp4d.vrgem4; package love.distributedrebirth.gdxapp4d.vrgem4;
import java.util.ArrayList;
import java.util.List;
import org.osgi.service.component.annotations.Activate; import org.osgi.service.component.annotations.Activate;
import org.osgi.service.component.annotations.Component; import org.osgi.service.component.annotations.Component;
import org.osgi.service.component.annotations.Deactivate; import org.osgi.service.component.annotations.Deactivate;
@ -7,6 +10,8 @@ import org.osgi.service.component.annotations.Reference;
import love.distributedrebirth.gdxapp4d.tos4.service.SystemGdxLog; import love.distributedrebirth.gdxapp4d.tos4.service.SystemGdxLog;
import love.distributedrebirth.gdxapp4d.tos4.service.SystemWarpShip; import love.distributedrebirth.gdxapp4d.tos4.service.SystemWarpShip;
import love.distributedrebirth.gdxapp4d.vrgem4.service.VrGem4DeskAppService;
import love.distributedrebirth.gdxapp4d.vrgem4.service.deskapp.DeskAppLauncher;
@Component @Component
public class TestComponent { public class TestComponent {
@ -19,7 +24,7 @@ public class TestComponent {
@Activate @Activate
void open() { void open() {
log.info(this, "Activated warpEngine: {}", warpShip.getWarpShip().theShip().getEngine()); log.info(this, "Activated22222 warpEngine: {}", warpShip.getWarpShip().theShip().getEngine());
} }
@Deactivate @Deactivate

View file

@ -0,0 +1,22 @@
package love.distributedrebirth.gdxapp4d.vrgem4;
import java.util.ArrayList;
import java.util.List;
import love.distributedrebirth.gdxapp4d.vrgem4.service.VrGem4DeskAppService;
import love.distributedrebirth.gdxapp4d.vrgem4.service.deskapp.DeskAppLauncher;
public class VrGem4DeskAppServiceImpl implements VrGem4DeskAppService {
private List<DeskAppLauncher> launchers = new ArrayList<>();
@Override
public List<DeskAppLauncher> getLaunchers() {
return launchers;
}
@Override
public void registrateDeskApp(DeskAppLauncher launcher) {
launchers.add(launcher);
}
}

View file

@ -1,38 +0,0 @@
package love.distributedrebirth.gdxapp4d.vrgem4.desktop;
import love.distributedrebirth.bassboonyd.BãßBȍőnAuthorInfoʸᴰ;
@BãßBȍőnAuthorInfoʸᴰ(name = "willemtsade", copyright = "©Δ∞ 仙上主天")
public class DefaultDeskApp implements DeskApp {
private String title;
private String icon;
private final DeskAppContour contours;
public DefaultDeskApp() {
this.contours = new DeskAppContour();
}
public void setTitle(String title) {
this.title = title;
}
@Override
public String getTitle() {
return title;
}
public void setIcon(String icon) {
this.icon = icon;
}
@Override
public String getIcon() {
return icon;
}
@Override
public DeskAppContour getContours() {
return contours;
}
}

View file

@ -1,29 +0,0 @@
package love.distributedrebirth.gdxapp4d.vrgem4.desktop.apps;
import imgui.ImGui;
import love.distributedrebirth.bassboonyd.BãßBȍőnAuthorInfoʸᴰ;
import love.distributedrebirth.gdxapp4d.vrgem4.desktop.DefaultDeskApp;
import love.distributedrebirth.gdxapp4d.vrgem4.desktop.DeskAppContourSection;
import love.distributedrebirth.gdxapp4d.vrgem4.desktop.DeskAppRenderer;
@BãßBȍőnAuthorInfoʸᴰ(name = "willemtsade", copyright = "©Δ∞ 仙上主天")
public class BasicConsoleApp extends DefaultDeskApp {
public BasicConsoleApp() {
setTitle("Basic Conssole");
getContours().registrateContour(DeskAppContourSection.MAIN, new DeskAppRenderer() {
@Override
public void render() {
ImGui.text("10 PRINT \"The BASIC Shahada of DUNE;\"");
ImGui.text("20 PRINT \"- THERE IS NO GOD BUT @Ω仙⁴\"");
ImGui.text("30 PRINT \"- THERE IS NO RULE BUT CONSENT\"");
ImGui.text("40 PRINT \"- THERE IS NO FAILURE BUT DEATH\"");
ImGui.text("50 PRINT \"- TERRY A. DAVIS WAS THE PROPHET OF @Ω仙9⁴\"");
ImGui.text("60 PRINT \"- TERRY A. DAVIS WAS THE FIRST TRUE MENTAT\"");
ImGui.text("70 PRINT \"- TERRY A. DAVIS WAS THE BEST CODER ALIVE\"");
ImGui.text("RUN");
}
});
}
}

View file

@ -19,14 +19,15 @@ import imgui.flag.ImGuiWindowFlags;
import imgui.type.ImBoolean; import imgui.type.ImBoolean;
import love.distributedrebirth.gdxapp4d.tos4.service.SystemGdxBootArgs; import love.distributedrebirth.gdxapp4d.tos4.service.SystemGdxBootArgs;
import love.distributedrebirth.gdxapp4d.vrgem4.ImGuiSetup; import love.distributedrebirth.gdxapp4d.vrgem4.ImGuiSetup;
import love.distributedrebirth.gdxapp4d.vrgem4.desktop.DeskApp; import love.distributedrebirth.gdxapp4d.vrgem4.service.VrGem4DeskAppService;
import love.distributedrebirth.gdxapp4d.vrgem4.desktop.DeskAppContourSection; import love.distributedrebirth.gdxapp4d.vrgem4.service.deskapp.DeskApp;
import love.distributedrebirth.gdxapp4d.vrgem4.desktop.DeskAppRenderer; import love.distributedrebirth.gdxapp4d.vrgem4.service.deskapp.DeskAppContourSection;
import love.distributedrebirth.gdxapp4d.vrgem4.desktop.DeskAppScreen; import love.distributedrebirth.gdxapp4d.vrgem4.service.deskapp.DeskAppRenderer;
import love.distributedrebirth.gdxapp4d.vrgem4.desktop.DeskAppScreenListener; import love.distributedrebirth.gdxapp4d.vrgem4.view.DeskAppController;
import love.distributedrebirth.gdxapp4d.vrgem4.desktop.DeskTopInputProcessor; import love.distributedrebirth.gdxapp4d.vrgem4.view.DeskAppSelectionListener;
import love.distributedrebirth.gdxapp4d.vrgem4.desktop.DeskTopScreen; import love.distributedrebirth.gdxapp4d.vrgem4.view.DeskAppInputProcessor;
import love.distributedrebirth.gdxapp4d.vrgem4.desktop.DeskTopScreenMenu; import love.distributedrebirth.gdxapp4d.vrgem4.view.DeskTopScreen;
import love.distributedrebirth.gdxapp4d.vrgem4.view.DeskTopScreenMenu;
public abstract class AbstractScreenDesktop extends ScreenAdapter implements DeskTopScreen { public abstract class AbstractScreenDesktop extends ScreenAdapter implements DeskTopScreen {
@ -34,18 +35,19 @@ public abstract class AbstractScreenDesktop extends ScreenAdapter implements Des
protected BitmapFont font; protected BitmapFont font;
protected OrthographicCamera camera; protected OrthographicCamera camera;
protected ImBoolean showImGuiDemo = new ImBoolean(false); protected ImBoolean showImGuiDemo = new ImBoolean(false);
private DeskTopScreenMenu screenMenu; private final DeskTopScreenMenu screenMenu;
private final DeskAppScreen deskAppScreen; private final DeskAppController deskAppScreen;
private PerspectiveCamera cam; private PerspectiveCamera cam;
private FirstPersonCameraController camController; private FirstPersonCameraController camController;
private DeskTopInputProcessor inputFilter; private DeskAppInputProcessor inputFilter;
private ModelBatch modelBatch; private ModelBatch modelBatch;
private Array<ModelInstance> modelInstances = new Array<ModelInstance>(); private Array<ModelInstance> modelInstances = new Array<ModelInstance>();
public AbstractScreenDesktop(String name, SystemGdxBootArgs bootArgs) { public AbstractScreenDesktop(String name, SystemGdxBootArgs bootArgs, VrGem4DeskAppService deskAppService) {
this.create(bootArgs); this.create();
deskAppScreen = new DeskAppScreen(name); screenMenu = new DeskTopScreenMenu(bootArgs, deskAppService);
deskAppScreen.addDeskAppListener(new DeskAppScreenListener() { deskAppScreen = new DeskAppController(name);
deskAppScreen.addDeskAppListener(new DeskAppSelectionListener() {
@Override @Override
public void selectDeskApp(DeskApp deskApp) { public void selectDeskApp(DeskApp deskApp) {
@ -59,10 +61,9 @@ public abstract class AbstractScreenDesktop extends ScreenAdapter implements Des
} }
protected void createModel(ModelBuilder modelBuilder, Array<ModelInstance> modelInstances) { protected void createModel(ModelBuilder modelBuilder, Array<ModelInstance> modelInstances) {
} }
private void create(SystemGdxBootArgs bootArgs) { private void create() {
batch = new SpriteBatch(); batch = new SpriteBatch();
font = new BitmapFont(); font = new BitmapFont();
camera = new OrthographicCamera(); camera = new OrthographicCamera();
@ -71,8 +72,6 @@ public abstract class AbstractScreenDesktop extends ScreenAdapter implements Des
camera.update(); camera.update();
batch.setProjectionMatrix(camera.combined); batch.setProjectionMatrix(camera.combined);
screenMenu = new DeskTopScreenMenu(bootArgs);
modelBatch = new ModelBatch(); modelBatch = new ModelBatch();
cam = new PerspectiveCamera(67, Gdx.graphics.getWidth(), Gdx.graphics.getHeight()); cam = new PerspectiveCamera(67, Gdx.graphics.getWidth(), Gdx.graphics.getHeight());
@ -88,7 +87,7 @@ public abstract class AbstractScreenDesktop extends ScreenAdapter implements Des
camController = new FirstPersonCameraController(cam); camController = new FirstPersonCameraController(cam);
//camController = new CameraInputController(cam); //camController = new CameraInputController(cam);
inputFilter = new DeskTopInputProcessor(camController); inputFilter = new DeskAppInputProcessor(camController);
} }
@Override @Override
@ -131,13 +130,13 @@ public abstract class AbstractScreenDesktop extends ScreenAdapter implements Des
if (showImGuiDemo.get()) { if (showImGuiDemo.get()) {
ImGui.showDemoWindow(showImGuiDemo); ImGui.showDemoWindow(showImGuiDemo);
} }
if (appScreen != null && appScreen.getDeskAppScreen().getCurrentDeskApp() != null) { if (appScreen != null && appScreen.getDeskAppController().getCurrentDeskApp() != null) {
int sizeFlags = ImGuiCond.Always; int sizeFlags = ImGuiCond.Always;
ImGui.setNextWindowPos(0, 28, sizeFlags); ImGui.setNextWindowPos(0, 28, sizeFlags);
ImGui.setNextWindowSize(Gdx.graphics.getWidth(), Gdx.graphics.getHeight() - 28, sizeFlags); ImGui.setNextWindowSize(Gdx.graphics.getWidth(), Gdx.graphics.getHeight() - 28, sizeFlags);
int windowFlags = ImGuiWindowFlags.NoMove | ImGuiWindowFlags.NoResize | ImGuiWindowFlags.NoTitleBar; int windowFlags = ImGuiWindowFlags.NoMove | ImGuiWindowFlags.NoResize | ImGuiWindowFlags.NoTitleBar;
if (ImGui.begin(appScreen.getDeskAppScreen().getCurrentDeskApp().getTitle(), windowFlags)) { if (ImGui.begin(appScreen.getDeskAppController().getCurrentDeskApp().getContours().getTitle(), windowFlags)) {
DeskAppRenderer renderer = appScreen.getDeskAppScreen().getCurrentDeskApp().getContours().getContour(DeskAppContourSection.MAIN); DeskAppRenderer renderer = appScreen.getDeskAppController().getCurrentDeskApp().getContours().getContour(DeskAppContourSection.MAIN);
if (renderer != null) { if (renderer != null) {
renderer.render(); renderer.render();
} }
@ -163,7 +162,7 @@ public abstract class AbstractScreenDesktop extends ScreenAdapter implements Des
} }
@Override @Override
public DeskAppScreen getDeskAppScreen() { public DeskAppController getDeskAppController() {
return deskAppScreen; return deskAppScreen;
} }
} }

View file

@ -10,7 +10,6 @@ import com.badlogic.gdx.graphics.g2d.SpriteBatch;
import com.badlogic.gdx.utils.ScreenUtils; import com.badlogic.gdx.utils.ScreenUtils;
import love.distributedrebirth.bassboonyd.BãßBȍőnAuthorInfoʸᴰ; import love.distributedrebirth.bassboonyd.BãßBȍőnAuthorInfoʸᴰ;
import love.distributedrebirth.gdxapp4d.tos4.GDXAppTos4;
import love.distributedrebirth.gdxapp4d.vrgem4.GDXAppVrGem4; import love.distributedrebirth.gdxapp4d.vrgem4.GDXAppVrGem4;
@BãßBȍőnAuthorInfoʸᴰ(name = "willemtsade", copyright = "©Δ∞ 仙上主天") @BãßBȍőnAuthorInfoʸᴰ(name = "willemtsade", copyright = "©Δ∞ 仙上主天")

View file

@ -4,7 +4,6 @@ import com.badlogic.gdx.Screen;
import love.distributedrebirth.bassboonyd.BãßBȍőnAuthorInfoʸᴰ; import love.distributedrebirth.bassboonyd.BãßBȍőnAuthorInfoʸᴰ;
import love.distributedrebirth.gdxapp4d.vrgem4.GDXAppVrGem4; import love.distributedrebirth.gdxapp4d.vrgem4.GDXAppVrGem4;
import love.distributedrebirth.gdxapp4d.vrgem4.music.MusicSongType;
@BãßBȍőnAuthorInfoʸᴰ(name = "willemtsade", copyright = "©Δ∞ 仙上主天") @BãßBȍőnAuthorInfoʸᴰ(name = "willemtsade", copyright = "©Δ∞ 仙上主天")
public class ScreenCredits extends AbstractScrollScreen { public class ScreenCredits extends AbstractScrollScreen {
@ -79,11 +78,11 @@ public class ScreenCredits extends AbstractScrollScreen {
@Override @Override
public void showScroll() { public void showScroll() {
GDXAppVrGem4.INSTANCE.music.play(MusicSongType.CREDITS); //GDXAppVrGem4.INSTANCE.music.play(MusicSongType.CREDITS);
} }
@Override @Override
public void hideScroll() { public void hideScroll() {
GDXAppVrGem4.INSTANCE.music.play(MusicSongType.BACKGROUND); //GDXAppVrGem4.INSTANCE.music.play(MusicSongType.BACKGROUND);
} }
} }

View file

@ -10,13 +10,14 @@ import com.badlogic.gdx.utils.Array;
import love.distributedrebirth.bassboonyd.BãßBȍőnAuthorInfoʸᴰ; import love.distributedrebirth.bassboonyd.BãßBȍőnAuthorInfoʸᴰ;
import love.distributedrebirth.gdxapp4d.tos4.service.SystemGdxBootArgs; import love.distributedrebirth.gdxapp4d.tos4.service.SystemGdxBootArgs;
import love.distributedrebirth.gdxapp4d.vrgem4.service.VrGem4DeskAppService;
@BãßBȍőnAuthorInfoʸᴰ(name = "willemtsade", copyright = "©Δ∞ 仙上主天") @BãßBȍőnAuthorInfoʸᴰ(name = "willemtsade", copyright = "©Δ∞ 仙上主天")
public class ScreenDesktop1 extends AbstractScreenDesktop { public class ScreenDesktop1 extends AbstractScreenDesktop {
private Model grid; private Model grid;
public ScreenDesktop1(SystemGdxBootArgs bootArgs) { public ScreenDesktop1(SystemGdxBootArgs bootArgs, VrGem4DeskAppService deskAppService) {
super("Desktop1", bootArgs); super("Desktop1", bootArgs, deskAppService);
//backgroundImage = new Texture(Gdx.files.internal("background/terrydavis-front.png")); //backgroundImage = new Texture(Gdx.files.internal("background/terrydavis-front.png"));
} }

View file

@ -10,13 +10,14 @@ import com.badlogic.gdx.utils.Array;
import love.distributedrebirth.bassboonyd.BãßBȍőnAuthorInfoʸᴰ; import love.distributedrebirth.bassboonyd.BãßBȍőnAuthorInfoʸᴰ;
import love.distributedrebirth.gdxapp4d.tos4.service.SystemGdxBootArgs; import love.distributedrebirth.gdxapp4d.tos4.service.SystemGdxBootArgs;
import love.distributedrebirth.gdxapp4d.vrgem4.service.VrGem4DeskAppService;
@BãßBȍőnAuthorInfoʸᴰ(name = "willemtsade", copyright = "©Δ∞ 仙上主天") @BãßBȍőnAuthorInfoʸᴰ(name = "willemtsade", copyright = "©Δ∞ 仙上主天")
public class ScreenDesktop2 extends AbstractScreenDesktop { public class ScreenDesktop2 extends AbstractScreenDesktop {
private Model grid; private Model grid;
public ScreenDesktop2(SystemGdxBootArgs bootArgs) { public ScreenDesktop2(SystemGdxBootArgs bootArgs, VrGem4DeskAppService deskAppService) {
super("Desktop2", bootArgs); super("Desktop2", bootArgs, deskAppService);
//backgroundImage = new Texture(Gdx.files.internal("background/terrydavis-nose.png")); //backgroundImage = new Texture(Gdx.files.internal("background/terrydavis-nose.png"));
} }

View file

@ -10,13 +10,14 @@ import com.badlogic.gdx.utils.Array;
import love.distributedrebirth.bassboonyd.BãßBȍőnAuthorInfoʸᴰ; import love.distributedrebirth.bassboonyd.BãßBȍőnAuthorInfoʸᴰ;
import love.distributedrebirth.gdxapp4d.tos4.service.SystemGdxBootArgs; import love.distributedrebirth.gdxapp4d.tos4.service.SystemGdxBootArgs;
import love.distributedrebirth.gdxapp4d.vrgem4.service.VrGem4DeskAppService;
@BãßBȍőnAuthorInfoʸᴰ(name = "willemtsade", copyright = "©Δ∞ 仙上主天") @BãßBȍőnAuthorInfoʸᴰ(name = "willemtsade", copyright = "©Δ∞ 仙上主天")
public class ScreenDesktop3 extends AbstractScreenDesktop { public class ScreenDesktop3 extends AbstractScreenDesktop {
private Model grid; private Model grid;
public ScreenDesktop3(SystemGdxBootArgs bootArgs) { public ScreenDesktop3(SystemGdxBootArgs bootArgs, VrGem4DeskAppService deskAppService) {
super("Desktop3", bootArgs); super("Desktop3", bootArgs, deskAppService);
} }
protected void createModel(ModelBuilder modelBuilder, Array<ModelInstance> modelInstances) { protected void createModel(ModelBuilder modelBuilder, Array<ModelInstance> modelInstances) {

View file

@ -21,6 +21,7 @@ import com.badlogic.gdx.utils.viewport.ScreenViewport;
import love.distributedrebirth.bassboonyd.BãßBȍőnAuthorInfoʸᴰ; import love.distributedrebirth.bassboonyd.BãßBȍőnAuthorInfoʸᴰ;
import love.distributedrebirth.gdxapp4d.tos4.service.SystemGdxBootArgs; import love.distributedrebirth.gdxapp4d.tos4.service.SystemGdxBootArgs;
import love.distributedrebirth.gdxapp4d.vrgem4.service.VrGem4DeskAppService;
@BãßBȍőnAuthorInfoʸᴰ(name = "willemtsade", copyright = "©Δ∞ 仙上主天") @BãßBȍőnAuthorInfoʸᴰ(name = "willemtsade", copyright = "©Δ∞ 仙上主天")
public class ScreenDesktop4 extends AbstractScreenDesktop { public class ScreenDesktop4 extends AbstractScreenDesktop {
@ -36,8 +37,8 @@ public class ScreenDesktop4 extends AbstractScreenDesktop {
private float colorFade = 0f; private float colorFade = 0f;
private boolean colorPositive = true; private boolean colorPositive = true;
public ScreenDesktop4(SystemGdxBootArgs bootArgs) { public ScreenDesktop4(SystemGdxBootArgs bootArgs, VrGem4DeskAppService deskAppService) {
super("Desktop4", bootArgs); super("Desktop4", bootArgs, deskAppService);
shader = new UserColorShader(); shader = new UserColorShader();
shader.init(); shader.init();
font = new BitmapFont(); font = new BitmapFont();

View file

@ -4,7 +4,6 @@ import com.badlogic.gdx.Screen;
import love.distributedrebirth.bassboonyd.BãßBȍőnAuthorInfoʸᴰ; import love.distributedrebirth.bassboonyd.BãßBȍőnAuthorInfoʸᴰ;
import love.distributedrebirth.gdxapp4d.vrgem4.GDXAppVrGem4; import love.distributedrebirth.gdxapp4d.vrgem4.GDXAppVrGem4;
import love.distributedrebirth.gdxapp4d.vrgem4.music.MusicSongType;
@BãßBȍőnAuthorInfoʸᴰ(name = "willemtsade", copyright = "©Δ∞ 仙上主天") @BãßBȍőnAuthorInfoʸᴰ(name = "willemtsade", copyright = "©Δ∞ 仙上主天")
public class ScreenHelp extends AbstractScrollScreen { public class ScreenHelp extends AbstractScrollScreen {
@ -62,11 +61,11 @@ public class ScreenHelp extends AbstractScrollScreen {
@Override @Override
public void showScroll() { public void showScroll() {
GDXAppVrGem4.INSTANCE.music.play(MusicSongType.INTRO); //GDXAppVrGem4.INSTANCE.music.play(MusicSongType.INTRO);
} }
@Override @Override
public void hideScroll() { public void hideScroll() {
GDXAppVrGem4.INSTANCE.music.play(MusicSongType.BACKGROUND); //GDXAppVrGem4.INSTANCE.music.play(MusicSongType.BACKGROUND);
} }
} }

View file

@ -4,7 +4,6 @@ import com.badlogic.gdx.Screen;
import love.distributedrebirth.bassboonyd.BãßBȍőnAuthorInfoʸᴰ; import love.distributedrebirth.bassboonyd.BãßBȍőnAuthorInfoʸᴰ;
import love.distributedrebirth.gdxapp4d.vrgem4.GDXAppVrGem4; import love.distributedrebirth.gdxapp4d.vrgem4.GDXAppVrGem4;
import love.distributedrebirth.gdxapp4d.vrgem4.music.MusicSongType;
@BãßBȍőnAuthorInfoʸᴰ(name = "willemtsade", copyright = "©Δ∞ 仙上主天") @BãßBȍőnAuthorInfoʸᴰ(name = "willemtsade", copyright = "©Δ∞ 仙上主天")
public class ScreenIntroMission extends AbstractScrollScreen { public class ScreenIntroMission extends AbstractScrollScreen {
@ -72,6 +71,6 @@ public class ScreenIntroMission extends AbstractScrollScreen {
@Override @Override
public void hideScroll() { public void hideScroll() {
GDXAppVrGem4.INSTANCE.music.play(MusicSongType.BACKGROUND); //GDXAppVrGem4.INSTANCE.music.play(MusicSongType.BACKGROUND);
} }
} }

View file

@ -0,0 +1,14 @@
package love.distributedrebirth.gdxapp4d.vrgem4.service;
import java.util.List;
import love.distributedrebirth.gdxapp4d.vrgem4.service.deskapp.DeskAppLauncher;
public interface VrGem4DeskAppService {
List<DeskAppLauncher> getLaunchers();
void registrateDeskApp(DeskAppLauncher launcher);
}

View file

@ -0,0 +1,26 @@
package love.distributedrebirth.gdxapp4d.vrgem4.service.deskapp;
import love.distributedrebirth.bassboonyd.BãßBȍőnAuthorInfoʸᴰ;
@BãßBȍőnAuthorInfoʸᴰ(name = "willemtsade", copyright = "©Δ∞ 仙上主天")
abstract public class AbstractDeskApp implements DeskApp {
private final DeskAppContour contours;
public AbstractDeskApp() {
this.contours = new DeskAppContour();
}
@Override
public DeskAppContour getContours() {
return contours;
}
@Override
public void show() {
}
@Override
public void hide() {
}
}

View file

@ -1,13 +1,15 @@
package love.distributedrebirth.gdxapp4d.vrgem4.desktop; package love.distributedrebirth.gdxapp4d.vrgem4.service.deskapp;
import love.distributedrebirth.bassboonyd.BãßBȍőnAuthorInfoʸᴰ; import love.distributedrebirth.bassboonyd.BãßBȍőnAuthorInfoʸᴰ;
@BãßBȍőnAuthorInfoʸᴰ(name = "willemtsade", copyright = "©Δ∞ 仙上主天") @BãßBȍőnAuthorInfoʸᴰ(name = "willemtsade", copyright = "©Δ∞ 仙上主天")
public interface DeskApp { public interface DeskApp {
String getTitle();
String getIcon();
DeskAppContour getContours(); DeskAppContour getContours();
void create();
void show();
void hide();
} }

View file

@ -1,4 +1,4 @@
package love.distributedrebirth.gdxapp4d.vrgem4.desktop; package love.distributedrebirth.gdxapp4d.vrgem4.service.deskapp;
import java.util.HashMap; import java.util.HashMap;
import java.util.Map; import java.util.Map;
@ -8,12 +8,21 @@ import love.distributedrebirth.bassboonyd.BãßBȍőnAuthorInfoʸᴰ;
@BãßBȍőnAuthorInfoʸᴰ(name = "willemtsade", copyright = "©Δ∞ 仙上主天") @BãßBȍőnAuthorInfoʸᴰ(name = "willemtsade", copyright = "©Δ∞ 仙上主天")
public class DeskAppContour { public class DeskAppContour {
private String title;
private final Map<DeskAppContourSection, DeskAppRenderer> renderers; private final Map<DeskAppContourSection, DeskAppRenderer> renderers;
public DeskAppContour() { public DeskAppContour() {
this.renderers = new HashMap<>(); this.renderers = new HashMap<>();
} }
public void setTitle(String title) {
this.title = title;
}
public String getTitle() {
return title;
}
public void registrateContour(DeskAppContourSection section, DeskAppRenderer renderer) { public void registrateContour(DeskAppContourSection section, DeskAppRenderer renderer) {
renderers.put(section, renderer); renderers.put(section, renderer);
} }

View file

@ -1,4 +1,4 @@
package love.distributedrebirth.gdxapp4d.vrgem4.desktop; package love.distributedrebirth.gdxapp4d.vrgem4.service.deskapp;
import love.distributedrebirth.bassboonyd.BãßBȍőnAuthorInfoʸᴰ; import love.distributedrebirth.bassboonyd.BãßBȍőnAuthorInfoʸᴰ;

View file

@ -0,0 +1,22 @@
package love.distributedrebirth.gdxapp4d.vrgem4.service.deskapp;
import java.util.function.Supplier;
public final class DeskAppLauncher {
private final String name;
private final Supplier<DeskApp> launcher;
public DeskAppLauncher(String name, Supplier<DeskApp> launcher) {
this.name = name;
this.launcher = launcher;
}
public String getName() {
return name;
}
public Supplier<DeskApp> getLauncher() {
return launcher;
}
}

View file

@ -1,8 +1,9 @@
package love.distributedrebirth.gdxapp4d.vrgem4.desktop; package love.distributedrebirth.gdxapp4d.vrgem4.service.deskapp;
import love.distributedrebirth.bassboonyd.BãßBȍőnAuthorInfoʸᴰ; import love.distributedrebirth.bassboonyd.BãßBȍőnAuthorInfoʸᴰ;
@BãßBȍőnAuthorInfoʸᴰ(name = "willemtsade", copyright = "©Δ∞ 仙上主天") @BãßBȍőnAuthorInfoʸᴰ(name = "willemtsade", copyright = "©Δ∞ 仙上主天")
@FunctionalInterface
public interface DeskAppRenderer { public interface DeskAppRenderer {
void render(); void render();

View file

@ -1,20 +1,23 @@
package love.distributedrebirth.gdxapp4d.vrgem4.desktop; package love.distributedrebirth.gdxapp4d.vrgem4.view;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.List; import java.util.List;
import imgui.ImGui; import imgui.ImGui;
import love.distributedrebirth.bassboonyd.BãßBȍőnAuthorInfoʸᴰ; import love.distributedrebirth.bassboonyd.BãßBȍőnAuthorInfoʸᴰ;
import love.distributedrebirth.gdxapp4d.vrgem4.service.deskapp.DeskApp;
import love.distributedrebirth.gdxapp4d.vrgem4.service.deskapp.DeskAppContourSection;
import love.distributedrebirth.gdxapp4d.vrgem4.service.deskapp.DeskAppRenderer;
@BãßBȍőnAuthorInfoʸᴰ(name = "willemtsade", copyright = "©Δ∞ 仙上主天") @BãßBȍőnAuthorInfoʸᴰ(name = "willemtsade", copyright = "©Δ∞ 仙上主天")
public class DeskAppScreen { public class DeskAppController {
private final String name; private final String name;
private final List<DeskApp> deskApps; private final List<DeskApp> deskApps;
private DeskApp currentDeskApp; private DeskApp currentDeskApp;
private final List<DeskAppScreenListener> deskAppListeners; private final List<DeskAppSelectionListener> deskAppListeners;
public DeskAppScreen(String name) { public DeskAppController(String name) {
this.name = name; this.name = name;
this.deskApps = new ArrayList<>(); this.deskApps = new ArrayList<>();
this.deskAppListeners = new ArrayList<>(); this.deskAppListeners = new ArrayList<>();
@ -43,18 +46,18 @@ public class DeskAppScreen {
public void setCurrentDeskApp(DeskApp currentDeskApp) { public void setCurrentDeskApp(DeskApp currentDeskApp) {
this.currentDeskApp = currentDeskApp; this.currentDeskApp = currentDeskApp;
for (DeskAppScreenListener listener: deskAppListeners) { for (DeskAppSelectionListener listener: deskAppListeners) {
listener.selectDeskApp(currentDeskApp); listener.selectDeskApp(currentDeskApp);
} }
} }
public void addDeskAppListener(DeskAppScreenListener listener) { public void addDeskAppListener(DeskAppSelectionListener listener) {
deskAppListeners.add(listener); deskAppListeners.add(listener);
} }
public final void renderMenu() { public final void renderMenu() {
for (DeskApp app: deskApps) { for (DeskApp app: deskApps) {
if (ImGui.menuItem(app.getTitle())) { if (ImGui.menuItem(app.getContours().getTitle())) {
//selectScreen(....class); //selectScreen(....class);
} }
} }

View file

@ -1,16 +1,16 @@
package love.distributedrebirth.gdxapp4d.vrgem4.desktop; package love.distributedrebirth.gdxapp4d.vrgem4.view;
import com.badlogic.gdx.InputProcessor; import com.badlogic.gdx.InputProcessor;
import love.distributedrebirth.bassboonyd.BãßBȍőnAuthorInfoʸᴰ; import love.distributedrebirth.bassboonyd.BãßBȍőnAuthorInfoʸᴰ;
@BãßBȍőnAuthorInfoʸᴰ(name = "willemtsade", copyright = "©Δ∞ 仙上主天") @BãßBȍőnAuthorInfoʸᴰ(name = "willemtsade", copyright = "©Δ∞ 仙上主天")
public class DeskTopInputProcessor implements InputProcessor { public class DeskAppInputProcessor implements InputProcessor {
private final InputProcessor input; private final InputProcessor input;
private boolean filtering = false; private boolean filtering = false;
public DeskTopInputProcessor(InputProcessor input) { public DeskAppInputProcessor(InputProcessor input) {
this.input = input; this.input = input;
} }

View file

@ -1,9 +1,10 @@
package love.distributedrebirth.gdxapp4d.vrgem4.desktop; package love.distributedrebirth.gdxapp4d.vrgem4.view;
import love.distributedrebirth.bassboonyd.BãßBȍőnAuthorInfoʸᴰ; import love.distributedrebirth.bassboonyd.BãßBȍőnAuthorInfoʸᴰ;
import love.distributedrebirth.gdxapp4d.vrgem4.service.deskapp.DeskApp;
@BãßBȍőnAuthorInfoʸᴰ(name = "willemtsade", copyright = "©Δ∞ 仙上主天") @BãßBȍőnAuthorInfoʸᴰ(name = "willemtsade", copyright = "©Δ∞ 仙上主天")
public interface DeskAppScreenListener { public interface DeskAppSelectionListener {
void selectDeskApp(DeskApp deskApp); void selectDeskApp(DeskApp deskApp);
} }

View file

@ -1,4 +1,4 @@
package love.distributedrebirth.gdxapp4d.vrgem4.desktop; package love.distributedrebirth.gdxapp4d.vrgem4.view;
import com.badlogic.gdx.Screen; import com.badlogic.gdx.Screen;
@ -7,5 +7,5 @@ import love.distributedrebirth.bassboonyd.BãßBȍőnAuthorInfoʸᴰ;
@BãßBȍőnAuthorInfoʸᴰ(name = "willemtsade", copyright = "©Δ∞ 仙上主天") @BãßBȍőnAuthorInfoʸᴰ(name = "willemtsade", copyright = "©Δ∞ 仙上主天")
public interface DeskTopScreen extends Screen { public interface DeskTopScreen extends Screen {
DeskAppScreen getDeskAppScreen(); DeskAppController getDeskAppController();
} }

View file

@ -1,4 +1,4 @@
package love.distributedrebirth.gdxapp4d.vrgem4.desktop; package love.distributedrebirth.gdxapp4d.vrgem4.view;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.List; import java.util.List;
@ -10,46 +10,48 @@ import imgui.type.ImBoolean;
import love.distributedrebirth.bassboonyd.BãßBȍőnAuthorInfoʸᴰ; import love.distributedrebirth.bassboonyd.BãßBȍőnAuthorInfoʸᴰ;
import love.distributedrebirth.gdxapp4d.tos4.service.SystemGdxBootArgs; import love.distributedrebirth.gdxapp4d.tos4.service.SystemGdxBootArgs;
import love.distributedrebirth.gdxapp4d.vrgem4.FontAwesomeIcons; import love.distributedrebirth.gdxapp4d.vrgem4.FontAwesomeIcons;
import love.distributedrebirth.gdxapp4d.vrgem4.GDXAppLauncher;
import love.distributedrebirth.gdxapp4d.vrgem4.GDXAppVrGem4; import love.distributedrebirth.gdxapp4d.vrgem4.GDXAppVrGem4;
import love.distributedrebirth.gdxapp4d.vrgem4.desktop.apps.BasicConsoleApp;
import love.distributedrebirth.gdxapp4d.vrgem4.desktop.apps.HebrewWalletApp;
import love.distributedrebirth.gdxapp4d.vrgem4.desktop.apps.MusicPlayerApp;
import love.distributedrebirth.gdxapp4d.vrgem4.desktop.apps.SystemBaseGlyphApp;
import love.distributedrebirth.gdxapp4d.vrgem4.desktop.apps.SystemBasePartApp;
import love.distributedrebirth.gdxapp4d.vrgem4.desktop.apps.SystemBaseUnicodePlaneApp;
import love.distributedrebirth.gdxapp4d.vrgem4.desktop.apps.Unicode4DApp;
import love.distributedrebirth.gdxapp4d.vrgem4.screen.ScreenCredits; import love.distributedrebirth.gdxapp4d.vrgem4.screen.ScreenCredits;
import love.distributedrebirth.gdxapp4d.vrgem4.screen.ScreenDesktop1; import love.distributedrebirth.gdxapp4d.vrgem4.screen.ScreenDesktop1;
import love.distributedrebirth.gdxapp4d.vrgem4.screen.ScreenDesktop2; import love.distributedrebirth.gdxapp4d.vrgem4.screen.ScreenDesktop2;
import love.distributedrebirth.gdxapp4d.vrgem4.screen.ScreenDesktop3; import love.distributedrebirth.gdxapp4d.vrgem4.screen.ScreenDesktop3;
import love.distributedrebirth.gdxapp4d.vrgem4.screen.ScreenDesktop4; import love.distributedrebirth.gdxapp4d.vrgem4.screen.ScreenDesktop4;
import love.distributedrebirth.gdxapp4d.vrgem4.screen.ScreenHelp; import love.distributedrebirth.gdxapp4d.vrgem4.screen.ScreenHelp;
import love.distributedrebirth.gdxapp4d.vrgem4.service.VrGem4DeskAppService;
import love.distributedrebirth.gdxapp4d.vrgem4.service.deskapp.DeskApp;
import love.distributedrebirth.gdxapp4d.vrgem4.service.deskapp.DeskAppContourSection;
import love.distributedrebirth.gdxapp4d.vrgem4.service.deskapp.DeskAppLauncher;
import love.distributedrebirth.gdxapp4d.vrgem4.service.deskapp.DeskAppRenderer;
import love.distributedrebirth.gdxapp4d.vrgem4.view.apps.BasicConsoleApp;
import love.distributedrebirth.gdxapp4d.vrgem4.view.apps.SystemBaseGlyphApp;
import love.distributedrebirth.gdxapp4d.vrgem4.view.apps.SystemBasePartApp;
import love.distributedrebirth.gdxapp4d.vrgem4.view.apps.SystemBaseUnicodePlaneApp;
import love.distributedrebirth.gdxapp4d.vrgem4.view.apps.Unicode4DApp;
@BãßBȍőnAuthorInfoʸᴰ(name = "willemtsade", copyright = "©Δ∞ 仙上主天") @BãßBȍőnAuthorInfoʸᴰ(name = "willemtsade", copyright = "©Δ∞ 仙上主天")
public class DeskTopScreenMenu { public class DeskTopScreenMenu {
private SystemGdxBootArgs bootArgs; private SystemGdxBootArgs bootArgs;
private List<GDXAppLauncher> apps; private VrGem4DeskAppService deskAppService;
private List<DeskAppLauncher> apps;
private ImBoolean fileMinimizeSelected = new ImBoolean(false); private ImBoolean fileMinimizeSelected = new ImBoolean(false);
private ImBoolean fileCloseSelected = new ImBoolean(false); private ImBoolean fileCloseSelected = new ImBoolean(false);
private ImBoolean tosSelfSelected = new ImBoolean(false); private ImBoolean tosSelfSelected = new ImBoolean(false);
public DeskTopScreenMenu(SystemGdxBootArgs bootArgs) { public DeskTopScreenMenu(SystemGdxBootArgs bootArgs, VrGem4DeskAppService deskAppService) {
this.bootArgs = bootArgs; this.bootArgs = bootArgs;
this.deskAppService = deskAppService;
apps = new ArrayList<>(); apps = new ArrayList<>();
apps.add(new GDXAppLauncher("Basic Console", () -> new BasicConsoleApp())); apps.add(new DeskAppLauncher("Basic Console", () -> new BasicConsoleApp()));
apps.add(new GDXAppLauncher("Sys Glyph Set", () -> new SystemBaseGlyphApp())); apps.add(new DeskAppLauncher("Sys Glyph Set", () -> new SystemBaseGlyphApp()));
apps.add(new GDXAppLauncher("Sys Number Parts", () -> new SystemBasePartApp())); apps.add(new DeskAppLauncher("Sys Number Parts", () -> new SystemBasePartApp()));
apps.add(new GDXAppLauncher("Sys Unicode", () -> new SystemBaseUnicodePlaneApp())); apps.add(new DeskAppLauncher("Sys Unicode", () -> new SystemBaseUnicodePlaneApp()));
apps.add(new GDXAppLauncher("Hebrew Wallet", () -> new HebrewWalletApp())); apps.add(new DeskAppLauncher("Unicode4D", () -> new Unicode4DApp()));
apps.add(new GDXAppLauncher("Unicode4D", () -> new Unicode4DApp()));
apps.add(new GDXAppLauncher("Music Player", () -> new MusicPlayerApp()));
} }
public void renderMenu(DeskTopScreen appScreen) { public void renderMenu(DeskTopScreen appScreen) {
DeskApp deskApp = appScreen.getDeskAppScreen().getCurrentDeskApp(); DeskApp deskApp = appScreen.getDeskAppController().getCurrentDeskApp();
ImGui.beginMainMenuBar(); ImGui.beginMainMenuBar();
renderVRGEM4Menu(appScreen); renderVRGEM4Menu(appScreen);
@ -64,18 +66,18 @@ public class DeskTopScreenMenu {
} }
private void renderSelfMenu(DeskTopScreen appScreen, DeskApp deskApp) { private void renderSelfMenu(DeskTopScreen appScreen, DeskApp deskApp) {
if (ImGui.beginMenu(deskApp.getTitle())) {; if (ImGui.beginMenu(deskApp.getContours().getTitle())) {;
if (ImGui.menuItem(FontAwesomeIcons.FolderMinus + " Minimize", "", fileMinimizeSelected, deskApp != null )) { if (ImGui.menuItem(FontAwesomeIcons.FolderMinus + " Minimize", "", fileMinimizeSelected, deskApp != null )) {
fileMinimizeSelected.set(false); fileMinimizeSelected.set(false);
if (deskApp != null) { if (deskApp != null) {
appScreen.getDeskAppScreen().setCurrentDeskApp(null); appScreen.getDeskAppController().setCurrentDeskApp(null);
} }
} }
if (ImGui.menuItem(FontAwesomeIcons.WindowClose + " Exit", "", fileCloseSelected, deskApp != null)) { if (ImGui.menuItem(FontAwesomeIcons.WindowClose + " Exit", "", fileCloseSelected, deskApp != null)) {
fileCloseSelected.set(false); fileCloseSelected.set(false);
if (deskApp != null) { if (deskApp != null) {
appScreen.getDeskAppScreen().removeDeskApp(deskApp); appScreen.getDeskAppController().removeDeskApp(deskApp);
appScreen.getDeskAppScreen().setCurrentDeskApp(null); appScreen.getDeskAppController().setCurrentDeskApp(null);
} }
} }
ImGui.endMenu(); ImGui.endMenu();
@ -163,17 +165,17 @@ public class DeskTopScreenMenu {
private void renderTOS4Menu(DeskTopScreen appScreen) { private void renderTOS4Menu(DeskTopScreen appScreen) {
if (ImGui.beginMenu("" + " TOS⁴")) { if (ImGui.beginMenu("" + " TOS⁴")) {
if (ImGui.menuItem(FontAwesomeIcons.Camera + " Main reality", "", tosSelfSelected, appScreen.getDeskAppScreen().getCurrentDeskApp() != null)) { if (ImGui.menuItem(FontAwesomeIcons.Camera + " Main reality", "", tosSelfSelected, appScreen.getDeskAppController().getCurrentDeskApp() != null)) {
appScreen.getDeskAppScreen().setCurrentDeskApp(null); appScreen.getDeskAppController().setCurrentDeskApp(null);
tosSelfSelected.set(false); tosSelfSelected.set(false);
} }
for (DeskApp app: appScreen.getDeskAppScreen().getDeskApps()) { for (DeskApp app: appScreen.getDeskAppController().getDeskApps()) {
boolean enabled = true; boolean enabled = true;
if (appScreen.getDeskAppScreen().getCurrentDeskApp() == app) { if (appScreen.getDeskAppController().getCurrentDeskApp() == app) {
enabled = false; enabled = false;
} }
if (ImGui.menuItem(app.getTitle(), "", tosSelfSelected, enabled)) { if (ImGui.menuItem(app.getContours().getTitle(), "", tosSelfSelected, enabled)) {
appScreen.getDeskAppScreen().setCurrentDeskApp(app); appScreen.getDeskAppController().setCurrentDeskApp(app);
tosSelfSelected.set(false); tosSelfSelected.set(false);
} }
} }
@ -213,9 +215,19 @@ public class DeskTopScreenMenu {
} }
ImGui.separator(); ImGui.separator();
if (ImGui.beginMenu(FontAwesomeIcons.PlusSquare + " Start App")) { if (ImGui.beginMenu(FontAwesomeIcons.PlusSquare + " Start App")) {
for (GDXAppLauncher launcher: apps) { for (DeskAppLauncher launcher: apps) {
if (ImGui.menuItem(launcher.getName())) { if (ImGui.menuItem(launcher.getName())) {
appScreen.getDeskAppScreen().addDeskApp(launcher.getLauncher().get()); DeskApp controller = launcher.getLauncher().get();
controller.create();
appScreen.getDeskAppController().addDeskApp(controller);
}
}
ImGui.separator();
for (DeskAppLauncher launcher: deskAppService.getLaunchers()) {
if (ImGui.menuItem(launcher.getName())) {
DeskApp controller = launcher.getLauncher().get();
controller.create();
appScreen.getDeskAppController().addDeskApp(controller);
} }
} }
ImGui.endMenu(); ImGui.endMenu();

View file

@ -0,0 +1,25 @@
package love.distributedrebirth.gdxapp4d.vrgem4.view.apps;
import imgui.ImGui;
import love.distributedrebirth.bassboonyd.BãßBȍőnAuthorInfoʸᴰ;
import love.distributedrebirth.gdxapp4d.vrgem4.service.deskapp.AbstractDeskApp;
import love.distributedrebirth.gdxapp4d.vrgem4.service.deskapp.DeskAppContourSection;
@BãßBȍőnAuthorInfoʸᴰ(name = "willemtsade", copyright = "©Δ∞ 仙上主天")
public class BasicConsoleApp extends AbstractDeskApp {
@Override
public void create() {
getContours().setTitle("Basic Conssole");
getContours().registrateContour(DeskAppContourSection.MAIN, () -> {
ImGui.text("10 PRINT \"The BASIC Shahada of DUNE;\"");
ImGui.text("20 PRINT \"- THERE IS NO GOD BUT @Ω仙⁴\"");
ImGui.text("30 PRINT \"- THERE IS NO RULE BUT CONSENT\"");
ImGui.text("40 PRINT \"- THERE IS NO FAILURE BUT DEATH\"");
ImGui.text("50 PRINT \"- TERRY A. DAVIS WAS THE PROPHET OF @Ω仙9⁴\"");
ImGui.text("60 PRINT \"- TERRY A. DAVIS WAS THE FIRST TRUE MENTAT\"");
ImGui.text("70 PRINT \"- TERRY A. DAVIS WAS THE BEST CODER ALIVE\"");
ImGui.text("RUN");
});
}
}

View file

@ -1,4 +1,4 @@
package love.distributedrebirth.gdxapp4d.vrgem4.desktop.apps; package love.distributedrebirth.gdxapp4d.vrgem4.view.apps;
import java.util.Locale; import java.util.Locale;
import java.util.ResourceBundle; import java.util.ResourceBundle;
@ -7,13 +7,13 @@ import imgui.ImGui;
import imgui.flag.ImGuiTableFlags; import imgui.flag.ImGuiTableFlags;
import imgui.type.ImBoolean; import imgui.type.ImBoolean;
import love.distributedrebirth.bassboonyd.BãßBȍőnAuthorInfoʸᴰ; import love.distributedrebirth.bassboonyd.BãßBȍőnAuthorInfoʸᴰ;
import love.distributedrebirth.gdxapp4d.vrgem4.desktop.DefaultDeskApp; import love.distributedrebirth.gdxapp4d.vrgem4.service.deskapp.AbstractDeskApp;
import love.distributedrebirth.gdxapp4d.vrgem4.desktop.DeskAppContourSection; import love.distributedrebirth.gdxapp4d.vrgem4.service.deskapp.DeskAppContourSection;
import love.distributedrebirth.gdxapp4d.vrgem4.desktop.DeskAppRenderer; import love.distributedrebirth.gdxapp4d.vrgem4.service.deskapp.DeskAppRenderer;
import love.distributedrebirth.numberxd.glyph.BaseGlyphSet; import love.distributedrebirth.numberxd.glyph.BaseGlyphSet;
@BãßBȍőnAuthorInfoʸᴰ(name = "willemtsade", copyright = "©Δ∞ 仙上主天") @BãßBȍőnAuthorInfoʸᴰ(name = "willemtsade", copyright = "©Δ∞ 仙上主天")
public class SystemBaseGlyphApp extends DefaultDeskApp { public class SystemBaseGlyphApp extends AbstractDeskApp {
private final ImBoolean showBase27 = new ImBoolean(false); private final ImBoolean showBase27 = new ImBoolean(false);
@ -22,8 +22,8 @@ public class SystemBaseGlyphApp extends DefaultDeskApp {
return bundle.getString("SystemBaseGlyphApp."+key); return bundle.getString("SystemBaseGlyphApp."+key);
} }
public SystemBaseGlyphApp() { public void create() {
setTitle(getTxt("title")); getContours().setTitle(getTxt("title"));
getContours().registrateContour(DeskAppContourSection.MAIN, new DeskAppRenderer() { getContours().registrateContour(DeskAppContourSection.MAIN, new DeskAppRenderer() {
@Override @Override

View file

@ -1,4 +1,4 @@
package love.distributedrebirth.gdxapp4d.vrgem4.desktop.apps; package love.distributedrebirth.gdxapp4d.vrgem4.view.apps;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.List; import java.util.List;
@ -10,9 +10,9 @@ import imgui.flag.ImGuiTableFlags;
import imgui.type.ImBoolean; import imgui.type.ImBoolean;
import imgui.type.ImInt; import imgui.type.ImInt;
import love.distributedrebirth.bassboonyd.BãßBȍőnAuthorInfoʸᴰ; import love.distributedrebirth.bassboonyd.BãßBȍőnAuthorInfoʸᴰ;
import love.distributedrebirth.gdxapp4d.vrgem4.desktop.DefaultDeskApp; import love.distributedrebirth.gdxapp4d.vrgem4.service.deskapp.AbstractDeskApp;
import love.distributedrebirth.gdxapp4d.vrgem4.desktop.DeskAppContourSection; import love.distributedrebirth.gdxapp4d.vrgem4.service.deskapp.DeskAppContourSection;
import love.distributedrebirth.gdxapp4d.vrgem4.desktop.DeskAppRenderer; import love.distributedrebirth.gdxapp4d.vrgem4.service.deskapp.DeskAppRenderer;
import love.distributedrebirth.numberxd.base2t.Base2PartsFactory; import love.distributedrebirth.numberxd.base2t.Base2PartsFactory;
import love.distributedrebirth.numberxd.base2t.part.BãßBȍőnPartAlt1ʸᴰ; import love.distributedrebirth.numberxd.base2t.part.BãßBȍőnPartAlt1ʸᴰ;
import love.distributedrebirth.numberxd.base2t.part.BãßBȍőnPartAlt2ʸᴰ; import love.distributedrebirth.numberxd.base2t.part.BãßBȍőnPartAlt2ʸᴰ;
@ -22,7 +22,7 @@ import love.distributedrebirth.numberxd.base2t.part.BãßBȍőnPartʸᴰ;
import love.distributedrebirth.numberxd.glyph.BaseGlyphSet; import love.distributedrebirth.numberxd.glyph.BaseGlyphSet;
@BãßBȍőnAuthorInfoʸᴰ(name = "willemtsade", copyright = "©Δ∞ 仙上主天") @BãßBȍőnAuthorInfoʸᴰ(name = "willemtsade", copyright = "©Δ∞ 仙上主天")
public class SystemBasePartApp extends DefaultDeskApp implements DeskAppRenderer { public class SystemBasePartApp extends AbstractDeskApp implements DeskAppRenderer {
private ImInt selectedBasePart = new ImInt(); private ImInt selectedBasePart = new ImInt();
private final ImBoolean showBase10 = new ImBoolean(false); private final ImBoolean showBase10 = new ImBoolean(false);
@ -34,8 +34,8 @@ public class SystemBasePartApp extends DefaultDeskApp implements DeskAppRenderer
return bundle.getString("SystemBasePartApp."+key); return bundle.getString("SystemBasePartApp."+key);
} }
public SystemBasePartApp() { public void create() {
setTitle(getTxt("title")); getContours().setTitle(getTxt("title"));
getContours().registrateContour(DeskAppContourSection.MAIN, this); getContours().registrateContour(DeskAppContourSection.MAIN, this);
} }

View file

@ -1,4 +1,4 @@
package love.distributedrebirth.gdxapp4d.vrgem4.desktop.apps; package love.distributedrebirth.gdxapp4d.vrgem4.view.apps;
import java.util.Locale; import java.util.Locale;
import java.util.ResourceBundle; import java.util.ResourceBundle;
@ -6,21 +6,21 @@ import java.util.ResourceBundle;
import imgui.ImGui; import imgui.ImGui;
import imgui.flag.ImGuiTableFlags; import imgui.flag.ImGuiTableFlags;
import love.distributedrebirth.bassboonyd.BãßBȍőnAuthorInfoʸᴰ; import love.distributedrebirth.bassboonyd.BãßBȍőnAuthorInfoʸᴰ;
import love.distributedrebirth.gdxapp4d.vrgem4.desktop.DefaultDeskApp; import love.distributedrebirth.gdxapp4d.vrgem4.service.deskapp.AbstractDeskApp;
import love.distributedrebirth.gdxapp4d.vrgem4.desktop.DeskAppContourSection; import love.distributedrebirth.gdxapp4d.vrgem4.service.deskapp.DeskAppContourSection;
import love.distributedrebirth.gdxapp4d.vrgem4.desktop.DeskAppRenderer; import love.distributedrebirth.gdxapp4d.vrgem4.service.deskapp.DeskAppRenderer;
import love.distributedrebirth.unicode4d.UnicodePlaneᶻᴰ; import love.distributedrebirth.unicode4d.UnicodePlaneᶻᴰ;
@BãßBȍőnAuthorInfoʸᴰ(name = "willemtsade", copyright = "©Δ∞ 仙上主天") @BãßBȍőnAuthorInfoʸᴰ(name = "willemtsade", copyright = "©Δ∞ 仙上主天")
public class SystemBaseUnicodePlaneApp extends DefaultDeskApp { public class SystemBaseUnicodePlaneApp extends AbstractDeskApp {
private String getTxt(String key) { private String getTxt(String key) {
ResourceBundle bundle = ResourceBundle.getBundle("love.distributedrebirth.gdxapp.Main", new Locale("en")); ResourceBundle bundle = ResourceBundle.getBundle("love.distributedrebirth.gdxapp.Main", new Locale("en"));
return bundle.getString("SystemBaseUnicodePlaneApp."+key); return bundle.getString("SystemBaseUnicodePlaneApp."+key);
} }
public SystemBaseUnicodePlaneApp() { public void create() {
setTitle(getTxt("title")); getContours().setTitle(getTxt("title"));
getContours().registrateContour(DeskAppContourSection.MAIN, new DeskAppRenderer() { getContours().registrateContour(DeskAppContourSection.MAIN, new DeskAppRenderer() {
@Override @Override

View file

@ -1,4 +1,4 @@
package love.distributedrebirth.gdxapp4d.vrgem4.desktop.apps; package love.distributedrebirth.gdxapp4d.vrgem4.view.apps;
import java.util.List; import java.util.List;
@ -8,18 +8,18 @@ import imgui.ImGui;
import imgui.ImVec2; import imgui.ImVec2;
import love.distributedrebirth.bassboonyd.BãßBȍőnAuthorInfoʸᴰ; import love.distributedrebirth.bassboonyd.BãßBȍőnAuthorInfoʸᴰ;
import love.distributedrebirth.gdxapp4d.vrgem4.GDXAppVrGem4; import love.distributedrebirth.gdxapp4d.vrgem4.GDXAppVrGem4;
import love.distributedrebirth.gdxapp4d.vrgem4.desktop.DefaultDeskApp; import love.distributedrebirth.gdxapp4d.vrgem4.service.deskapp.AbstractDeskApp;
import love.distributedrebirth.gdxapp4d.vrgem4.desktop.DeskAppContourSection; import love.distributedrebirth.gdxapp4d.vrgem4.service.deskapp.DeskAppContourSection;
import love.distributedrebirth.gdxapp4d.vrgem4.desktop.DeskAppRenderer; import love.distributedrebirth.gdxapp4d.vrgem4.service.deskapp.DeskAppRenderer;
import love.distributedrebirth.numberxd.base2t.type.V072Tong; import love.distributedrebirth.numberxd.base2t.type.V072Tong;
import love.distributedrebirth.unicode4d.atlas.FontAtlasStore; import love.distributedrebirth.unicode4d.atlas.FontAtlasStore;
import love.distributedrebirth.unicode4d.atlas.FontAtlasStoreGlyph; import love.distributedrebirth.unicode4d.atlas.FontAtlasStoreGlyph;
@BãßBȍőnAuthorInfoʸᴰ(name = "willemtsade", copyright = "©Δ∞ 仙上主天") @BãßBȍőnAuthorInfoʸᴰ(name = "willemtsade", copyright = "©Δ∞ 仙上主天")
public class Unicode4DApp extends DefaultDeskApp implements DeskAppRenderer { public class Unicode4DApp extends AbstractDeskApp implements DeskAppRenderer {
public Unicode4DApp() { public void create() {
setTitle("Unicode4D"); getContours().setTitle("Unicode4D");
getContours().registrateContour(DeskAppContourSection.MAIN, this); getContours().registrateContour(DeskAppContourSection.MAIN, this);
} }

View file

@ -25,6 +25,8 @@
<module>gdxapp4d-lib-bassboonyd</module> <module>gdxapp4d-lib-bassboonyd</module>
<module>gdxapp4d-tos4</module> <module>gdxapp4d-tos4</module>
<module>gdxapp4d-vrgem4</module> <module>gdxapp4d-vrgem4</module>
<module>gdxapp4d-app-calculator</module>
<module>gdxapp4d-app-hewallet</module>
</modules> </modules>
<properties> <properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>