diff --git a/README.md b/README.md index 697181b1..4a7f24fb 100644 --- a/README.md +++ b/README.md @@ -60,7 +60,7 @@ and set **___Shared VM options___** to `--enable-preview`.
-Cannot resolve symbol 'HorizonForbiddenWest' +Cannot resolve symbol 'HFW' IntelliJ IDEA refuses to provide code analysis for generated RTTI classes due to the enormous size of the generated code, and all references will be highlighted in _red_. The project will still compile and launch just fine. diff --git a/odradek-app/pom.xml b/odradek-app/pom.xml index 619ed2a8..249cd941 100644 --- a/odradek-app/pom.xml +++ b/odradek-app/pom.xml @@ -21,7 +21,7 @@ sh.adelessfox - odradek-game + odradek-game-decima sh.adelessfox diff --git a/odradek-app/src/main/java/module-info.java b/odradek-app/src/main/java/module-info.java index cf3e8304..58207fd5 100644 --- a/odradek-app/src/main/java/module-info.java +++ b/odradek-app/src/main/java/module-info.java @@ -11,9 +11,9 @@ requires jakarta.inject; requires java.desktop; requires odradek.core; - requires odradek.game; - requires odradek.game.hfw; + requires odradek.game.decima; requires odradek.game.hfw.ui; + requires odradek.game.hfw; requires odradek.rtti; requires odradek.ui; requires org.slf4j; diff --git a/odradek-app/src/main/java/sh/adelessfox/odradek/app/Main.java b/odradek-app/src/main/java/sh/adelessfox/odradek/app/Main.java index 88f0bfd6..a79d3ea6 100644 --- a/odradek-app/src/main/java/sh/adelessfox/odradek/app/Main.java +++ b/odradek-app/src/main/java/sh/adelessfox/odradek/app/Main.java @@ -9,7 +9,7 @@ import sh.adelessfox.odradek.app.cli.ExportAssetCommand; import sh.adelessfox.odradek.app.ui.Application; import sh.adelessfox.odradek.app.ui.ApplicationParameters; -import sh.adelessfox.odradek.game.ObjectId; +import sh.adelessfox.odradek.game.decima.ObjectId; import sh.adelessfox.odradek.util.system.OperatingSystem; import javax.swing.*; diff --git a/odradek-app/src/main/java/sh/adelessfox/odradek/app/cli/AbstractCommand.java b/odradek-app/src/main/java/sh/adelessfox/odradek/app/cli/AbstractCommand.java index f00265fe..0549d6bc 100644 --- a/odradek-app/src/main/java/sh/adelessfox/odradek/app/cli/AbstractCommand.java +++ b/odradek-app/src/main/java/sh/adelessfox/odradek/app/cli/AbstractCommand.java @@ -2,6 +2,7 @@ import picocli.CommandLine.Option; import sh.adelessfox.odradek.game.Game; +import sh.adelessfox.odradek.game.decima.DecimaGame; import java.io.IOException; import java.nio.file.Path; @@ -13,15 +14,15 @@ abstract class AbstractCommand implements Callable { @Override public Void call() throws Exception { - try (Game game = createGame(source)) { + try (var game = createGame(source)) { execute(game); return null; } } - abstract void execute(Game game) throws IOException; + abstract void execute(DecimaGame game) throws IOException; - private Game createGame(Path path) throws IOException { - return Game.load(path); + private DecimaGame createGame(Path path) throws IOException { + return (DecimaGame) Game.load(path); } } diff --git a/odradek-app/src/main/java/sh/adelessfox/odradek/app/cli/ExportAssetCommand.java b/odradek-app/src/main/java/sh/adelessfox/odradek/app/cli/ExportAssetCommand.java index 3dbc1cc5..da132fe5 100644 --- a/odradek-app/src/main/java/sh/adelessfox/odradek/app/cli/ExportAssetCommand.java +++ b/odradek-app/src/main/java/sh/adelessfox/odradek/app/cli/ExportAssetCommand.java @@ -7,8 +7,8 @@ import picocli.CommandLine.Parameters; import sh.adelessfox.odradek.game.Converter; import sh.adelessfox.odradek.game.Exporter; -import sh.adelessfox.odradek.game.Game; -import sh.adelessfox.odradek.game.ObjectId; +import sh.adelessfox.odradek.game.decima.DecimaGame; +import sh.adelessfox.odradek.game.decima.ObjectId; import sh.adelessfox.odradek.rtti.data.TypedObject; import java.io.IOException; @@ -32,7 +32,7 @@ public class ExportAssetCommand extends AbstractCommand { private Path output; @Override - void execute(Game game) { + void execute(DecimaGame game) { if (format == null) { log.info("No format specified for export; supported formats are: {}", supportedFormats()); return; diff --git a/odradek-app/src/main/java/sh/adelessfox/odradek/app/ui/Application.java b/odradek-app/src/main/java/sh/adelessfox/odradek/app/ui/Application.java index 5d2a8e07..3bbed733 100644 --- a/odradek-app/src/main/java/sh/adelessfox/odradek/app/ui/Application.java +++ b/odradek-app/src/main/java/sh/adelessfox/odradek/app/ui/Application.java @@ -12,7 +12,7 @@ import sh.adelessfox.odradek.app.ui.settings.SettingsEvent; import sh.adelessfox.odradek.event.EventBus; import sh.adelessfox.odradek.game.Game; -import sh.adelessfox.odradek.game.hfw.game.ForbiddenWestGame; +import sh.adelessfox.odradek.game.decima.DecimaGame; import sh.adelessfox.odradek.ui.actions.Actions; import sh.adelessfox.odradek.ui.data.DataContext; import sh.adelessfox.odradek.ui.editors.EditorManager; @@ -46,7 +46,7 @@ public static synchronized void start(ApplicationParameters params) throws IOExc throw new IllegalStateException("Application is already running"); } - var game = (ForbiddenWestGame) Game.load(params.sourcePath()); + var game = (DecimaGame) Game.load(params.sourcePath()); var component = DaggerApplicationComponent.builder() .game(game) .config(params.configPath()) @@ -59,8 +59,10 @@ public static synchronized void start(ApplicationParameters params) throws IOExc } private static void run(ApplicationComponent component, ApplicationParameters params) { - Thread.setDefaultUncaughtExceptionHandler( - (_, e) -> Dialogs.showExceptionDialog(JOptionPane.getRootFrame(), e.toString(), e)); + Thread.setDefaultUncaughtExceptionHandler((_, e) -> { + log.error("Uncaught exception in thread '{}'", Thread.currentThread().getName(), e); + Dialogs.showExceptionDialog(JOptionPane.getRootFrame(), e.toString(), e); + }); if (OperatingSystem.name() == OperatingSystem.Name.LINUX) { // enable custom window decorations @@ -127,7 +129,7 @@ private static void saveFrameSettings(Settings settings, JFrame frame) { )); } - public ForbiddenWestGame game() { + public DecimaGame game() { return component.game(); } diff --git a/odradek-app/src/main/java/sh/adelessfox/odradek/app/ui/ApplicationComponent.java b/odradek-app/src/main/java/sh/adelessfox/odradek/app/ui/ApplicationComponent.java index 440c1d45..f9f4811d 100644 --- a/odradek-app/src/main/java/sh/adelessfox/odradek/app/ui/ApplicationComponent.java +++ b/odradek-app/src/main/java/sh/adelessfox/odradek/app/ui/ApplicationComponent.java @@ -9,7 +9,7 @@ import sh.adelessfox.odradek.app.ui.settings.Settings; import sh.adelessfox.odradek.app.ui.settings.SettingsModule; import sh.adelessfox.odradek.event.EventBus; -import sh.adelessfox.odradek.game.hfw.game.ForbiddenWestGame; +import sh.adelessfox.odradek.game.decima.DecimaGame; import sh.adelessfox.odradek.ui.editors.EditorManager; import java.nio.file.Path; @@ -27,12 +27,12 @@ interface ApplicationComponent { EventBus events(); - ForbiddenWestGame game(); + DecimaGame game(); @Component.Builder interface Builder { @BindsInstance - Builder game(ForbiddenWestGame game); + Builder game(DecimaGame game); @BindsInstance Builder config(@Named("config") Path config); diff --git a/odradek-app/src/main/java/sh/adelessfox/odradek/app/ui/bookmarks/Bookmark.java b/odradek-app/src/main/java/sh/adelessfox/odradek/app/ui/bookmarks/Bookmark.java index 8423d0b9..16c11165 100644 --- a/odradek-app/src/main/java/sh/adelessfox/odradek/app/ui/bookmarks/Bookmark.java +++ b/odradek-app/src/main/java/sh/adelessfox/odradek/app/ui/bookmarks/Bookmark.java @@ -1,6 +1,6 @@ package sh.adelessfox.odradek.app.ui.bookmarks; -import sh.adelessfox.odradek.game.ObjectId; +import sh.adelessfox.odradek.game.decima.ObjectId; public record Bookmark(ObjectId objectId, String name) { } diff --git a/odradek-app/src/main/java/sh/adelessfox/odradek/app/ui/bookmarks/Bookmarks.java b/odradek-app/src/main/java/sh/adelessfox/odradek/app/ui/bookmarks/Bookmarks.java index f5ed1f02..74b2c4f0 100644 --- a/odradek-app/src/main/java/sh/adelessfox/odradek/app/ui/bookmarks/Bookmarks.java +++ b/odradek-app/src/main/java/sh/adelessfox/odradek/app/ui/bookmarks/Bookmarks.java @@ -3,7 +3,7 @@ import jakarta.inject.Inject; import jakarta.inject.Singleton; import sh.adelessfox.odradek.event.EventBus; -import sh.adelessfox.odradek.game.ObjectId; +import sh.adelessfox.odradek.game.decima.ObjectId; import java.util.LinkedHashMap; import java.util.List; diff --git a/odradek-app/src/main/java/sh/adelessfox/odradek/app/ui/component/bookmarks/BookmarkStructure.java b/odradek-app/src/main/java/sh/adelessfox/odradek/app/ui/component/bookmarks/BookmarkStructure.java index 9f9a20cb..c6a494fc 100644 --- a/odradek-app/src/main/java/sh/adelessfox/odradek/app/ui/component/bookmarks/BookmarkStructure.java +++ b/odradek-app/src/main/java/sh/adelessfox/odradek/app/ui/component/bookmarks/BookmarkStructure.java @@ -1,8 +1,8 @@ package sh.adelessfox.odradek.app.ui.component.bookmarks; import sh.adelessfox.odradek.app.ui.bookmarks.Bookmarks; -import sh.adelessfox.odradek.game.ObjectId; -import sh.adelessfox.odradek.game.ObjectIdHolder; +import sh.adelessfox.odradek.game.decima.ObjectId; +import sh.adelessfox.odradek.game.decima.ObjectIdHolder; import sh.adelessfox.odradek.ui.components.tree.TreeStructure; import java.util.Comparator; diff --git a/odradek-app/src/main/java/sh/adelessfox/odradek/app/ui/component/bookmarks/menu/AbstractBookmarkAction.java b/odradek-app/src/main/java/sh/adelessfox/odradek/app/ui/component/bookmarks/menu/AbstractBookmarkAction.java index 62f27062..435065c6 100644 --- a/odradek-app/src/main/java/sh/adelessfox/odradek/app/ui/component/bookmarks/menu/AbstractBookmarkAction.java +++ b/odradek-app/src/main/java/sh/adelessfox/odradek/app/ui/component/bookmarks/menu/AbstractBookmarkAction.java @@ -1,7 +1,7 @@ package sh.adelessfox.odradek.app.ui.component.bookmarks.menu; -import sh.adelessfox.odradek.game.ObjectId; -import sh.adelessfox.odradek.game.ObjectIdHolder; +import sh.adelessfox.odradek.game.decima.ObjectId; +import sh.adelessfox.odradek.game.decima.ObjectIdHolder; import sh.adelessfox.odradek.ui.actions.Action; import sh.adelessfox.odradek.ui.actions.ActionContext; import sh.adelessfox.odradek.ui.data.DataKeys; diff --git a/odradek-app/src/main/java/sh/adelessfox/odradek/app/ui/component/graph/GraphStructure.java b/odradek-app/src/main/java/sh/adelessfox/odradek/app/ui/component/graph/GraphStructure.java index 168aa521..6b451b82 100644 --- a/odradek-app/src/main/java/sh/adelessfox/odradek/app/ui/component/graph/GraphStructure.java +++ b/odradek-app/src/main/java/sh/adelessfox/odradek/app/ui/component/graph/GraphStructure.java @@ -1,11 +1,6 @@ package sh.adelessfox.odradek.app.ui.component.graph; -import sh.adelessfox.odradek.game.Game; -import sh.adelessfox.odradek.game.ObjectId; -import sh.adelessfox.odradek.game.ObjectIdHolder; -import sh.adelessfox.odradek.game.ObjectSupplier; -import sh.adelessfox.odradek.game.hfw.rtti.HorizonForbiddenWest.StreamingGroupData; -import sh.adelessfox.odradek.game.hfw.storage.StreamingGraphResource; +import sh.adelessfox.odradek.game.decima.*; import sh.adelessfox.odradek.rtti.ClassTypeInfo; import sh.adelessfox.odradek.rtti.data.TypedObject; import sh.adelessfox.odradek.ui.components.tree.TreeStructure; @@ -22,9 +17,9 @@ public sealed interface GraphStructure extends TreeStructure { @SuppressWarnings("unused") abstract sealed class Groupable, O extends Enum> { final EnumSet options; - final StreamingGraphResource graph; + final StreamingGraph graph; - Groupable(StreamingGraphResource graph, EnumSet options) { + Groupable(StreamingGraph graph, EnumSet options) { this.options = EnumSet.copyOf(options); this.graph = graph; } @@ -35,8 +30,8 @@ public Set options() { } abstract sealed class GroupableByGroup extends Groupable { - private static final Comparator> - DEFAULT_COMPARATOR = Comparator.comparingInt(e -> e.getKey().groupID()), + private static final Comparator> + DEFAULT_COMPARATOR = Comparator.comparingInt(e -> e.getKey().id()), COUNT_COMPARATOR = Comparator.comparingInt(e -> -e.getValue().length); public enum Option { @@ -44,7 +39,7 @@ public enum Option { SORT_BY_COUNT } - GroupableByGroup(StreamingGraphResource graph) { + GroupableByGroup(StreamingGraph graph) { super(graph, EnumSet.of(Option.GROUP_BY_GROUP)); } @@ -66,7 +61,11 @@ List getGroupedChildren() { } } - GroupObject toGroupObject(StreamingGroupData group, int index, boolean includeGroupId) { + GroupObject toGroupObject( + StreamingGraph.Group group, + int index, + boolean includeGroupId + ) { return new GroupObject(graph, group, index, includeGroupId); } @@ -75,10 +74,10 @@ public Set