From 2a18249a49d185e7841bbffe4fa1fdc3bfbc4190 Mon Sep 17 00:00:00 2001 From: fgnm Date: Sat, 18 Dec 2021 19:53:02 +0100 Subject: [PATCH] [Editor only] When an asset is deleted has to be removed in any scene --- .../rednblack/editor/proxy/SceneDataManager.java | 12 ------------ .../editor/utils/asset/impl/ImageAsset.java | 16 ++++++++++++---- .../utils/asset/impl/ParticleEffectAsset.java | 12 ++++++++++++ .../editor/utils/asset/impl/SpineAsset.java | 12 ++++++++++++ .../asset/impl/SpriteAnimationAtlasAsset.java | 12 ++++++++++++ .../editor/utils/asset/impl/TalosVFXAsset.java | 12 ++++++++++++ 6 files changed, 60 insertions(+), 16 deletions(-) diff --git a/src/main/java/games/rednblack/editor/proxy/SceneDataManager.java b/src/main/java/games/rednblack/editor/proxy/SceneDataManager.java index c78458da..269cbb8c 100644 --- a/src/main/java/games/rednblack/editor/proxy/SceneDataManager.java +++ b/src/main/java/games/rednblack/editor/proxy/SceneDataManager.java @@ -65,18 +65,6 @@ public class SceneDataManager extends Proxy { return vo; } - public void loadScene(SceneVO sceneVO, String resolution) { - /* - if (sceneVO == null || sceneVO.composite == null) return; - - FontSizePair[] fonts = sceneVO.composite.getRecursiveFontList(); - TextureManager textureManager = facade.retrieveProxy(TextureManager.NAME); - ResolutionManager resolutionManager = facade.retrieveProxy(ResolutionManager.NAME); - textureManager.loadBitmapFonts(fonts, resolutionManager.getCurrentMul());*/ - - // Apparently all was loaded when project was loaded - } - public String getCurrProjectScenePathByName(String sceneName) { ProjectManager projectManager = facade.retrieveProxy(ProjectManager.NAME); return projectManager.getCurrentProjectPath() + "/scenes/" + sceneName + ".dt"; diff --git a/src/main/java/games/rednblack/editor/utils/asset/impl/ImageAsset.java b/src/main/java/games/rednblack/editor/utils/asset/impl/ImageAsset.java index 401c03c1..ec0f2671 100644 --- a/src/main/java/games/rednblack/editor/utils/asset/impl/ImageAsset.java +++ b/src/main/java/games/rednblack/editor/utils/asset/impl/ImageAsset.java @@ -7,12 +7,10 @@ import com.badlogic.gdx.utils.Array; import com.kotcrab.vis.ui.util.dialog.Dialogs; import games.rednblack.editor.proxy.ProjectManager; import games.rednblack.editor.proxy.ResolutionManager; +import games.rednblack.editor.proxy.SceneDataManager; import games.rednblack.editor.renderer.components.NinePatchComponent; import games.rednblack.editor.renderer.components.TextureRegionComponent; -import games.rednblack.editor.renderer.data.CompositeItemVO; -import games.rednblack.editor.renderer.data.Image9patchVO; -import games.rednblack.editor.renderer.data.ResolutionEntryVO; -import games.rednblack.editor.renderer.data.SimpleImageVO; +import games.rednblack.editor.renderer.data.*; import games.rednblack.editor.utils.ImportUtils; import games.rednblack.editor.utils.asset.Asset; import games.rednblack.editor.utils.runtime.EntityUtils; @@ -128,6 +126,16 @@ public class ImageAsset extends Asset { for (CompositeItemVO compositeItemVO : projectManager.getCurrentProjectInfoVO().libraryItems.values()) { deleteAllImagesOfItem(compositeItemVO, imageName); } + + for (SceneVO scene : projectManager.currentProjectInfoVO.scenes) { + CompositeItemVO tmpVo = new CompositeItemVO(); + SceneVO loadedScene = resourceManager.getSceneVO(scene.sceneName); + tmpVo.composite = loadedScene.composite; + deleteAllImagesOfItem(tmpVo, imageName); + loadedScene.composite = tmpVo.composite; + SceneDataManager sceneDataManager = facade.retrieveProxy(SceneDataManager.NAME); + sceneDataManager.saveScene(loadedScene); + } } private void deleteAllImagesOfItem(CompositeItemVO compositeItemVO, String imageName) { diff --git a/src/main/java/games/rednblack/editor/utils/asset/impl/ParticleEffectAsset.java b/src/main/java/games/rednblack/editor/utils/asset/impl/ParticleEffectAsset.java index b1c4c6ac..dcdf1521 100644 --- a/src/main/java/games/rednblack/editor/utils/asset/impl/ParticleEffectAsset.java +++ b/src/main/java/games/rednblack/editor/utils/asset/impl/ParticleEffectAsset.java @@ -5,9 +5,11 @@ import com.badlogic.gdx.utils.Array; import com.kotcrab.vis.ui.util.dialog.Dialogs; import games.rednblack.editor.proxy.ProjectManager; import games.rednblack.editor.proxy.ResolutionManager; +import games.rednblack.editor.proxy.SceneDataManager; import games.rednblack.editor.renderer.components.particle.ParticleComponent; import games.rednblack.editor.renderer.data.CompositeItemVO; import games.rednblack.editor.renderer.data.ParticleEffectVO; +import games.rednblack.editor.renderer.data.SceneVO; import games.rednblack.editor.utils.ImportUtils; import games.rednblack.editor.utils.asset.Asset; import games.rednblack.editor.utils.runtime.EntityUtils; @@ -154,6 +156,16 @@ public class ParticleEffectAsset extends Asset { for (CompositeItemVO compositeItemVO : projectManager.getCurrentProjectInfoVO().libraryItems.values()) { deleteAllParticles(compositeItemVO, name); } + + for (SceneVO scene : projectManager.currentProjectInfoVO.scenes) { + CompositeItemVO tmpVo = new CompositeItemVO(); + SceneVO loadedScene = resourceManager.getSceneVO(scene.sceneName); + tmpVo.composite = loadedScene.composite; + deleteAllParticles(tmpVo, name); + loadedScene.composite = tmpVo.composite; + SceneDataManager sceneDataManager = facade.retrieveProxy(SceneDataManager.NAME); + sceneDataManager.saveScene(loadedScene); + } } private void deleteAllParticles(CompositeItemVO compositeItemVO, String name) { diff --git a/src/main/java/games/rednblack/editor/utils/asset/impl/SpineAsset.java b/src/main/java/games/rednblack/editor/utils/asset/impl/SpineAsset.java index 22cf5b69..42c3b8af 100644 --- a/src/main/java/games/rednblack/editor/utils/asset/impl/SpineAsset.java +++ b/src/main/java/games/rednblack/editor/utils/asset/impl/SpineAsset.java @@ -7,9 +7,11 @@ import com.badlogic.gdx.utils.JsonReader; import com.badlogic.gdx.utils.JsonValue; import com.kotcrab.vis.ui.util.dialog.Dialogs; import games.rednblack.editor.proxy.ProjectManager; +import games.rednblack.editor.proxy.SceneDataManager; import games.rednblack.editor.renderer.components.SpineDataComponent; import games.rednblack.editor.renderer.data.CompositeItemVO; import games.rednblack.editor.renderer.data.ResolutionEntryVO; +import games.rednblack.editor.renderer.data.SceneVO; import games.rednblack.editor.renderer.data.SpineVO; import games.rednblack.editor.renderer.utils.Version; import games.rednblack.editor.utils.HyperLap2DUtils; @@ -213,6 +215,16 @@ public class SpineAsset extends Asset { for (CompositeItemVO compositeItemVO : projectManager.getCurrentProjectInfoVO().libraryItems.values()) { deleteAllSpineAnimationsOfItem(compositeItemVO, spineAnimationName); } + + for (SceneVO scene : projectManager.currentProjectInfoVO.scenes) { + CompositeItemVO tmpVo = new CompositeItemVO(); + SceneVO loadedScene = resourceManager.getSceneVO(scene.sceneName); + tmpVo.composite = loadedScene.composite; + deleteAllSpineAnimationsOfItem(tmpVo, spineAnimationName); + loadedScene.composite = tmpVo.composite; + SceneDataManager sceneDataManager = facade.retrieveProxy(SceneDataManager.NAME); + sceneDataManager.saveScene(loadedScene); + } } private void deleteAllSpineAnimationsOfItem(CompositeItemVO compositeItemVO, String spineAnimationName) { diff --git a/src/main/java/games/rednblack/editor/utils/asset/impl/SpriteAnimationAtlasAsset.java b/src/main/java/games/rednblack/editor/utils/asset/impl/SpriteAnimationAtlasAsset.java index f0519719..bae7102b 100644 --- a/src/main/java/games/rednblack/editor/utils/asset/impl/SpriteAnimationAtlasAsset.java +++ b/src/main/java/games/rednblack/editor/utils/asset/impl/SpriteAnimationAtlasAsset.java @@ -4,9 +4,11 @@ import com.badlogic.gdx.files.FileHandle; import com.badlogic.gdx.graphics.g2d.TextureAtlas; import com.badlogic.gdx.utils.Array; import games.rednblack.editor.proxy.ProjectManager; +import games.rednblack.editor.proxy.SceneDataManager; import games.rednblack.editor.renderer.components.sprite.SpriteAnimationComponent; import games.rednblack.editor.renderer.data.CompositeItemVO; import games.rednblack.editor.renderer.data.ResolutionEntryVO; +import games.rednblack.editor.renderer.data.SceneVO; import games.rednblack.editor.renderer.data.SpriteAnimationVO; import games.rednblack.editor.utils.ImportUtils; import games.rednblack.editor.utils.asset.Asset; @@ -136,6 +138,16 @@ public class SpriteAnimationAtlasAsset extends Asset { for (CompositeItemVO compositeItemVO : projectManager.getCurrentProjectInfoVO().libraryItems.values()) { deleteAllSpriteAnimationsOfItem(compositeItemVO, spriteAnimationName); } + + for (SceneVO scene : projectManager.currentProjectInfoVO.scenes) { + CompositeItemVO tmpVo = new CompositeItemVO(); + SceneVO loadedScene = resourceManager.getSceneVO(scene.sceneName); + tmpVo.composite = loadedScene.composite; + deleteAllSpriteAnimationsOfItem(tmpVo, spriteAnimationName); + loadedScene.composite = tmpVo.composite; + SceneDataManager sceneDataManager = facade.retrieveProxy(SceneDataManager.NAME); + sceneDataManager.saveScene(loadedScene); + } } private void deleteAllSpriteAnimationsOfItem(CompositeItemVO rootItemVo, String spriteAnimationName) { 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 0f4f450d..d6c5013e 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 @@ -7,8 +7,10 @@ import com.kotcrab.vis.ui.util.dialog.Dialogs; import com.talosvfx.talos.runtime.ParticleEmitterDescriptor; import games.rednblack.editor.proxy.ProjectManager; import games.rednblack.editor.proxy.ResolutionManager; +import games.rednblack.editor.proxy.SceneDataManager; import games.rednblack.editor.renderer.components.particle.TalosDataComponent; import games.rednblack.editor.renderer.data.CompositeItemVO; +import games.rednblack.editor.renderer.data.SceneVO; import games.rednblack.editor.renderer.data.TalosVO; import games.rednblack.editor.utils.ImportUtils; import games.rednblack.editor.utils.asset.Asset; @@ -196,6 +198,16 @@ public class TalosVFXAsset extends Asset { for (CompositeItemVO compositeItemVO : projectManager.getCurrentProjectInfoVO().libraryItems.values()) { deleteAllParticles(compositeItemVO, name); } + + for (SceneVO scene : projectManager.currentProjectInfoVO.scenes) { + CompositeItemVO tmpVo = new CompositeItemVO(); + SceneVO loadedScene = resourceManager.getSceneVO(scene.sceneName); + tmpVo.composite = loadedScene.composite; + deleteAllParticles(tmpVo, name); + loadedScene.composite = tmpVo.composite; + SceneDataManager sceneDataManager = facade.retrieveProxy(SceneDataManager.NAME); + sceneDataManager.saveScene(loadedScene); + } } private void deleteAllParticles(CompositeItemVO compositeItemVO, String name) {