Pool Talos particles

This commit is contained in:
fgnm
2024-01-29 23:39:10 +01:00
parent 3edf93aca4
commit 8842e186e6
3 changed files with 6 additions and 5 deletions
@@ -15,6 +15,7 @@ import com.badlogic.gdx.utils.*;
import com.esotericsoftware.spine.SkeletonJson;
import com.kotcrab.vis.ui.VisUI;
import games.rednblack.talos.runtime.ParticleEffectDescriptor;
import games.rednblack.talos.runtime.ParticleEffectInstancePool;
import games.rednblack.talos.runtime.utils.ShaderDescriptor;
import games.rednblack.talos.runtime.utils.VectorField;
import dev.lyze.gdxtinyvg.TinyVG;
@@ -53,7 +54,7 @@ public class ResourceManager extends Proxy implements IResourceRetriever {
public static final String NAME = TAG;
private final HashMap<String, ParticleEffectPool> particleEffects = new HashMap<>(1);
private final HashMap<String, ParticleEffectDescriptor> talosVFXs = new HashMap<>(1);
private final HashMap<String, ParticleEffectInstancePool> talosVFXs = new HashMap<>(1);
private final HashMap<String, TextureAtlas> currentProjectAtlas = new HashMap<>(1);
private final HashMap<String, SpineDataObject> spineAnimAtlases = new HashMap<>();
@@ -345,7 +346,7 @@ public class ResourceManager extends Proxy implements IResourceRetriever {
ParticleEffectDescriptor effectDescriptor = new ParticleEffectDescriptor();
effectDescriptor.setAssetProvider(assetProvider);
effectDescriptor.load(Gdx.files.internal(file.getAbsolutePath()));
talosVFXs.put(filename, effectDescriptor);
talosVFXs.put(filename, new ParticleEffectInstancePool(effectDescriptor, 1, games.rednblack.editor.renderer.resources.ResourceManager.PARTICLE_POOL_SIZE));
}
}
@@ -593,7 +594,7 @@ public class ResourceManager extends Proxy implements IResourceRetriever {
return particleEffects;
}
public HashMap<String, ParticleEffectDescriptor> getProjectTalosList() {
public HashMap<String, ParticleEffectInstancePool> getProjectTalosList() {
return talosVFXs;
}
@@ -246,7 +246,7 @@ public class TalosVFXAsset extends Asset {
File fileSrc = new File(currentProjectPath + ProjectManager.TALOS_VFX_DIR_PATH + File.separator + talosVO.particleName);
FileUtils.copyFileToDirectory(fileSrc, tmpDir);
exportMapperVO.mapper.add(new ExportMapperVO.ExportedAsset(AssetsUtils.TYPE_TALOS_VFX, fileSrc.getName()));
ParticleEffectDescriptor particleEffect = resourceManager.getProjectTalosList().get(talosVO.particleName);
ParticleEffectDescriptor particleEffect = resourceManager.getProjectTalosList().get(talosVO.particleName).getParticleEffectDescriptor();
for (ParticleEmitterDescriptor emitter : new Array.ArrayIterator<>(particleEffect.emitterModuleGraphs)) {
for (AbstractModule module : new Array.ArrayIterator<>(emitter.getModules())) {
if (module instanceof TextureModule) {