diff --git a/build.gradle b/build.gradle index 91ece871..252bd830 100644 --- a/build.gradle +++ b/build.gradle @@ -17,6 +17,7 @@ group 'games.rednblack' version '0.1.4' repositories { + mavenLocal() mavenCentral() maven { url "https://oss.sonatype.org/content/repositories/snapshots/" } maven { url 'https://jitpack.io' } @@ -126,7 +127,7 @@ dependencies { implementation project(":h2d-libgdx-typinglabel-extension") implementation project(":h2d-libgdx-tinyvg-extension") - implementation "com.talosvfx:talos-libgdx:$talosVersion" + implementation "games.rednblack.talos:runtime-libgdx:$talosVersion" implementation "space.earlygrey:shapedrawer:$shapedrawerVersion" implementation "com.rafaskoberg.gdx:typing-label:$typingLabelVersion" implementation "com.kotcrab.vis:vis-ui:$visuiVersion" diff --git a/gradle.properties b/gradle.properties index 59edb0bd..f5486e92 100644 --- a/gradle.properties +++ b/gradle.properties @@ -5,6 +5,6 @@ spineVersion = 4.1.0 visuiVersion = 1.5.3 typingLabelVersion = 1.3.0 shapedrawerVersion = 2.5.0 -talosVersion = 1.4.0 +talosVersion = 1.5.0-SNAPSHOT gdxTinyVGVersion=7a8927633e pureMvcVersion=1.0.2 \ No newline at end of file diff --git a/h2d-libgdx-talos-extension b/h2d-libgdx-talos-extension index 17f24b7c..b564f270 160000 --- a/h2d-libgdx-talos-extension +++ b/h2d-libgdx-talos-extension @@ -1 +1 @@ -Subproject commit 17f24b7c13dbea6ec8f862c53d09dc7ec4394a99 +Subproject commit b564f27018e3a0bf5e967ae89ea466afb5cbbb11 diff --git a/src/main/java/games/rednblack/editor/proxy/ResourceManager.java b/src/main/java/games/rednblack/editor/proxy/ResourceManager.java index 9c793cb0..15af2d81 100644 --- a/src/main/java/games/rednblack/editor/proxy/ResourceManager.java +++ b/src/main/java/games/rednblack/editor/proxy/ResourceManager.java @@ -14,9 +14,9 @@ import com.badlogic.gdx.scenes.scene2d.ui.Skin; import com.badlogic.gdx.utils.*; import com.esotericsoftware.spine.SkeletonJson; import com.kotcrab.vis.ui.VisUI; -import com.talosvfx.talos.runtime.ParticleEffectDescriptor; -import com.talosvfx.talos.runtime.utils.ShaderDescriptor; -import com.talosvfx.talos.runtime.utils.VectorField; +import games.rednblack.talos.runtime.ParticleEffectDescriptor; +import games.rednblack.talos.runtime.utils.ShaderDescriptor; +import games.rednblack.talos.runtime.utils.VectorField; import dev.lyze.gdxtinyvg.TinyVG; import games.rednblack.editor.renderer.data.*; import games.rednblack.editor.renderer.resources.FontSizePair; diff --git a/src/main/java/games/rednblack/editor/system/TalosContinuousSystem.java b/src/main/java/games/rednblack/editor/system/TalosContinuousSystem.java index 4b50c567..f06dcc9a 100644 --- a/src/main/java/games/rednblack/editor/system/TalosContinuousSystem.java +++ b/src/main/java/games/rednblack/editor/system/TalosContinuousSystem.java @@ -1,7 +1,7 @@ package games.rednblack.editor.system; import com.artemis.annotations.All; -import com.talosvfx.talos.runtime.ParticleEffectInstance; +import games.rednblack.talos.runtime.ParticleEffectInstance; import games.rednblack.h2d.extension.talos.TalosComponent; import games.rednblack.h2d.extension.talos.TalosSystem; diff --git a/src/main/java/games/rednblack/editor/utils/asset/impl/TalosVFXAsset.java b/src/main/java/games/rednblack/editor/utils/asset/impl/TalosVFXAsset.java index faa5fa12..2a6cbbb0 100644 --- a/src/main/java/games/rednblack/editor/utils/asset/impl/TalosVFXAsset.java +++ b/src/main/java/games/rednblack/editor/utils/asset/impl/TalosVFXAsset.java @@ -4,9 +4,10 @@ import com.badlogic.gdx.files.FileHandle; import com.badlogic.gdx.utils.Array; import com.badlogic.gdx.utils.Json; import com.kotcrab.vis.ui.util.dialog.Dialogs; -import com.talosvfx.talos.runtime.ParticleEffectDescriptor; -import com.talosvfx.talos.runtime.ParticleEmitterDescriptor; -import com.talosvfx.talos.runtime.modules.*; +import games.rednblack.talos.runtime.ParticleEffectDescriptor; +import games.rednblack.talos.runtime.ParticleEmitterDescriptor; +import games.rednblack.talos.runtime.modules.*; +import games.rednblack.talos.runtime.serialization.ExportData; import games.rednblack.editor.proxy.ProjectManager; import games.rednblack.editor.proxy.ResolutionManager; import games.rednblack.editor.proxy.SceneDataManager; @@ -20,7 +21,6 @@ import games.rednblack.editor.utils.AssetsUtils; import games.rednblack.editor.utils.asset.Asset; import games.rednblack.editor.utils.runtime.EntityUtils; import games.rednblack.editor.utils.runtime.SandboxComponentRetriever; -import games.rednblack.editor.utils.runtime.TalosResources; import games.rednblack.editor.view.stage.Sandbox; import games.rednblack.h2d.common.ProgressHandler; import org.apache.commons.io.FileUtils; @@ -64,7 +64,7 @@ public class TalosVFXAsset extends Asset { json.setIgnoreUnknownFields(true); ParticleEmitterDescriptor.registerModules(); for (Class clazz: ParticleEmitterDescriptor.registeredModules) { - json.addClassTag(clazz.getSimpleName(), TalosResources.Module.class); + json.addClassTag(clazz.getSimpleName(), clazz); } final String targetPath = projectManager.getCurrentProjectPath() + File.separator + ProjectManager.TALOS_VFX_DIR_PATH; @@ -73,7 +73,7 @@ public class TalosVFXAsset extends Asset { for (FileHandle fileHandle : new Array.ArrayIterator<>(files)) { if (!fileHandle.isDirectory() && fileHandle.exists()) { try { - TalosResources talosResources = json.fromJson(TalosResources.class, fileHandle); + ExportData talosResources = json.fromJson(ExportData.class, fileHandle); //copy images boolean allImagesFound = addTalosImages(talosResources, fileHandle, images); if (allImagesFound) { @@ -131,11 +131,11 @@ public class TalosVFXAsset extends Asset { return false; } - private boolean addTalosImages(TalosResources talosResources, FileHandle fileHandle, Array imgs) { + private boolean addTalosImages(ExportData talosResources, FileHandle fileHandle, Array imgs) { try { Array resources = talosResources.metadata.resources; for (String res : resources) { - if (res.endsWith(".fga")) + if (res.endsWith(".fga") || res.endsWith(".shdr")) continue; res += ".png"; @@ -157,11 +157,11 @@ public class TalosVFXAsset extends Asset { return true; } - private boolean addTalosRes(TalosResources talosResources, FileHandle fileHandle, Array imgs) { + private boolean addTalosRes(ExportData talosResources, FileHandle fileHandle, Array imgs) { try { Array resources = talosResources.metadata.resources; for (String res : resources) { - if (res.endsWith(".fga")) { + if (res.endsWith(".fga") || res.endsWith(".shdr")) { File file = new File(FilenameUtils.getFullPath(fileHandle.path()) + res); if (file.exists()) { imgs.add(new FileHandle(file)); @@ -173,23 +173,6 @@ public class TalosVFXAsset extends Asset { } } } - - for (TalosResources.Emitter emitter : talosResources.emitters) { - for (TalosResources.Module module : emitter.modules) { - if (module.get("shdrAssetName") != null) { - String assetName = module.get("shdrAssetName").toString(); - File file = new File(FilenameUtils.getFullPath(fileHandle.path()) + assetName); - if (file.exists()) { - imgs.add(new FileHandle(file)); - } else { - Dialogs.showErrorDialog(Sandbox.getInstance().getUIStage(), - "\nCould not find " + file.getName() + ".\nCheck if the file exists in the same directory.").padBottom(20).pack(); - imgs.clear(); - return false; - } - } - } - } } catch (Exception e) { e.printStackTrace(); } @@ -275,6 +258,12 @@ public class TalosVFXAsset extends Asset { File f = new File(currentProjectPath + ProjectManager.TALOS_VFX_DIR_PATH + File.separator + path); FileUtils.copyFileToDirectory(f, tmpDir); } + + if (module instanceof VectorFieldModule) { + String path = ((VectorFieldModule) module).fgaFileName + ".fga"; + File f = new File(currentProjectPath + ProjectManager.TALOS_VFX_DIR_PATH + File.separator + path); + FileUtils.copyFileToDirectory(f, tmpDir); + } } } return true; diff --git a/src/main/java/games/rednblack/editor/utils/runtime/TalosResources.java b/src/main/java/games/rednblack/editor/utils/runtime/TalosResources.java deleted file mode 100644 index 2a1f1111..00000000 --- a/src/main/java/games/rednblack/editor/utils/runtime/TalosResources.java +++ /dev/null @@ -1,24 +0,0 @@ -package games.rednblack.editor.utils.runtime; - -import com.badlogic.gdx.utils.Array; - -import java.util.HashMap; - -public class TalosResources { - - public Metadata metadata = new Metadata(); - - public Array emitters = new Array<>(); - - public static class Metadata { - public Array resources = new Array<>(); - } - - public static class Emitter { - public Array modules = new Array<>(); - } - - public static class Module extends HashMap { - - } -}