diff --git a/assets/test.groovy b/assets/test.groovy index 70f8420..ea4b33b 100644 --- a/assets/test.groovy +++ b/assets/test.groovy @@ -49,12 +49,14 @@ class TestScreen extends FlixelScreen { void create() { super.create() - test = new FlixelSprite().loadGraphic(FlixelPaths.sharedImageAsset('NOTE_hold_assets')) - add(test) - bgColor = new Color(0, 1, 0, 1) Flixel.playMusic('songs/darnell/Inst.ogg') + +// test.changeX(-30) + + test = new FlixelSprite().loadGraphic(FlixelPaths.sharedImageAsset('NOTE_hold_assets')) + add(test) } @Override diff --git a/flixelgdx/src/main/java/me/stringdotjar/flixelgdx/Flixel.java b/flixelgdx/src/main/java/me/stringdotjar/flixelgdx/Flixel.java index e78ff25..bb89a0e 100644 --- a/flixelgdx/src/main/java/me/stringdotjar/flixelgdx/Flixel.java +++ b/flixelgdx/src/main/java/me/stringdotjar/flixelgdx/Flixel.java @@ -317,9 +317,6 @@ public static void playMusic(String path, float volume, boolean looping, boolean /** * Sets the game master/global volume, which is automatically applied to all current sounds. * - *
(This is just a helper method for creating a faster version of {@code
- * Flixel.getAudioEngine().setMasterVolume(float)}).
- *
* @param volume The new master volume to set.
*/
public static void setMasterVolume(float volume) {
diff --git a/flixelgdx/src/main/java/me/stringdotjar/flixelgdx/util/FlixelRuntimeUtil.java b/flixelgdx/src/main/java/me/stringdotjar/flixelgdx/util/FlixelRuntimeUtil.java
index a321235..7f35c86 100644
--- a/flixelgdx/src/main/java/me/stringdotjar/flixelgdx/util/FlixelRuntimeUtil.java
+++ b/flixelgdx/src/main/java/me/stringdotjar/flixelgdx/util/FlixelRuntimeUtil.java
@@ -1,7 +1,10 @@
package me.stringdotjar.flixelgdx.util;
+import me.stringdotjar.flixelgdx.Flixel;
+
import javax.swing.JOptionPane;
import java.awt.EventQueue;
+import java.lang.reflect.InvocationTargetException;
/**
* Utility class for handling operation related to the runtime environment, including OS detection,
@@ -93,9 +96,18 @@ public static void showErrorAlert(String title, Object message) {
* @param type The type of alert (e.g., JOptionPane.INFORMATION_MESSAGE).
*/
public static void showAlert(String title, Object message, int type) {
- EventQueue.invokeLater(() -> {
- JOptionPane.showMessageDialog(null, message, title, type);
- });
+ String msg = message != null ? message.toString() : "null";
+ if (EventQueue.isDispatchThread()) {
+ JOptionPane.showMessageDialog(null, msg, title, type);
+ } else {
+ try {
+ EventQueue.invokeAndWait(() -> {
+ JOptionPane.showMessageDialog(null, msg, title, type);
+ });
+ } catch (InterruptedException | InvocationTargetException e) {
+ Flixel.error(FlixelConstants.System.LOG_TAG, "Failed to show alert message.", e);
+ }
+ }
}
private FlixelRuntimeUtil() {}
diff --git a/polyverse/src/main/java/me/stringdotjar/polyverse/Polyverse.java b/polyverse/src/main/java/me/stringdotjar/polyverse/Polyverse.java
index 297105d..8e7942d 100644
--- a/polyverse/src/main/java/me/stringdotjar/polyverse/Polyverse.java
+++ b/polyverse/src/main/java/me/stringdotjar/polyverse/Polyverse.java
@@ -3,6 +3,7 @@
import com.badlogic.gdx.files.FileHandle;
import groovy.lang.GroovyClassLoader;
import me.stringdotjar.flixelgdx.Flixel;
+import me.stringdotjar.flixelgdx.util.FlixelRuntimeUtil;
import me.stringdotjar.polyverse.script.type.Script;
import java.util.ArrayList;
@@ -81,10 +82,7 @@ public static void registerScript(FileHandle handle) {
var typeScripts = scripts.get(mostSpecificType);
if (!typeScripts.contains(script)) {
typeScripts.add(script);
- Flixel.info(
- "Polyverse",
- "Registered Polyverse script \""
- + script.getClass().getSimpleName()
+ Flixel.info("Polyverse", "Registered Polyverse script \"" + script.getClass().getSimpleName()
+ "\" of script type \""
+ mostSpecificType.getSimpleName()
+ "\".");
@@ -93,7 +91,12 @@ public static void registerScript(FileHandle handle) {
script.onCreate();
}
} catch (Exception e) {
- Flixel.error("Polyverse", "Failed to load script: " + handle.path(), e);
+ StringBuilder errorWindowMessage = new StringBuilder();
+ errorWindowMessage.append("There was an uncaught exception for a script during compilation.\n");
+ errorWindowMessage.append("Location: ").append(handle.path()).append("\n");
+ errorWindowMessage.append("Exception: ").append(e);
+ Flixel.error("Polyverse", "Failed to compile script: " + handle.path(), e);
+ FlixelRuntimeUtil.showErrorAlert("Polyverse Script Exception", errorWindowMessage);
}
}
@@ -136,10 +139,10 @@ public static