Skip to content

Commit

Permalink
Les poules du PersistentKSPParticleEmitter persistent.
Browse files Browse the repository at this point in the history
  • Loading branch information
eggrobin committed Mar 15, 2014
1 parent 6c1b093 commit 8b53dce
Show file tree
Hide file tree
Showing 3 changed files with 27 additions and 27 deletions.
10 changes: 5 additions & 5 deletions ModelMultiParticlePersistFX.cs
Expand Up @@ -121,7 +121,7 @@ public class ModelMultiParticlePersistFX : EffectBehaviour
public FXCurve angle = new FXCurve("angle", 1f);
public FXCurve distance = new FXCurve("distance", 1f);

private List<PersistantKSPParticleEmitter> peristantEmitters;
private List<PersistentKSPParticleEmitter> peristantEmitters;

private float emissionPower;
private float minEmissionBase;
Expand Down Expand Up @@ -557,7 +557,7 @@ public override void OnInitialize()
templateKspParticleEmitter.material.shader = shader;


// TODO : move those in PersistantKSPParticleEmitter
// TODO : move those in PersistentKSPParticleEmitter
scale1DBase = (templateKspParticleEmitter.shape1D *= fixedScale);
scale2DBase = (templateKspParticleEmitter.shape2D *= fixedScale);
scale3DBase = (templateKspParticleEmitter.shape3D *= fixedScale);
Expand All @@ -573,7 +573,7 @@ public override void OnInitialize()
localVelocityBase = templateKspParticleEmitter.localVelocity;

if (peristantEmitters == null)
peristantEmitters = new List<PersistantKSPParticleEmitter>();
peristantEmitters = new List<PersistentKSPParticleEmitter>();


for (int i = 0; i < transforms.Count; i++)
Expand All @@ -582,7 +582,7 @@ public override void OnInitialize()
GameObject emmitterGameObject = UnityEngine.Object.Instantiate(model) as GameObject;
KSPParticleEmitter componentInChildren = emmitterGameObject.GetComponentInChildren<KSPParticleEmitter>();

PersistantKSPParticleEmitter pkpe = new PersistantKSPParticleEmitter(emmitterGameObject, componentInChildren, templateKspParticleEmitter.maxParticleSize);
PersistentKSPParticleEmitter pkpe = new PersistentKSPParticleEmitter(emmitterGameObject, componentInChildren, templateKspParticleEmitter.maxParticleSize);

if (componentInChildren != null)
{
Expand All @@ -609,7 +609,7 @@ public override void OnInitialize()
emmitterGameObject.transform.localPosition = localPosition;
emmitterGameObject.transform.localRotation = Quaternion.Euler(localRotation);

PersistantEmitterManager.Add(pkpe);
PersistentEmitterManager.Add(pkpe);

}

Expand Down
36 changes: 18 additions & 18 deletions PersistantEmitterManager.cs
Expand Up @@ -14,19 +14,19 @@


[KSPAddon(KSPAddon.Startup.EveryScene, false)]
class PersistantEmitterManager : MonoBehaviour
class PersistentEmitterManager : MonoBehaviour
{

public static PersistantEmitterManager Instance { get; private set; }
public static PersistentEmitterManager Instance { get; private set; }

private static List<PersistantKSPParticleEmitter> persistantEmitters;
private static List<PersistentKSPParticleEmitter> persistentEmitters;


private void Awake()
{
PersistantEmitterManager.Instance = this;
PersistentEmitterManager.Instance = this;

persistantEmitters = new List<PersistantKSPParticleEmitter>();
persistentEmitters = new List<PersistentKSPParticleEmitter>();

GameEvents.onGameSceneLoadRequested.Add(new EventData<GameScenes>.OnEvent(this.OnSceneChange));
}
Expand All @@ -36,34 +36,34 @@ private void OnDestroy()
GameEvents.onGameSceneLoadRequested.Remove(new EventData<GameScenes>.OnEvent(this.OnSceneChange));
}

static public void Add(PersistantKSPParticleEmitter pkpe)
static public void Add(PersistentKSPParticleEmitter pkpe)
{
persistantEmitters.Add(pkpe);
persistentEmitters.Add(pkpe);
EffectBehaviour.AddParticleEmitter(pkpe.pe);
}

private void OnSceneChange(GameScenes scene)
{
for (int i = 0; i < persistantEmitters.Count; i++)
for (int i = 0; i < persistentEmitters.Count; i++)
{
EffectBehaviour.RemoveParticleEmitter(persistantEmitters[i].pe);
if (persistantEmitters[i].go.transform.parent == null)
Destroy(persistantEmitters[i].go);
EffectBehaviour.RemoveParticleEmitter(persistentEmitters[i].pe);
if (persistentEmitters[i].go.transform.parent == null)
Destroy(persistentEmitters[i].go);
}
persistantEmitters = new List<PersistantKSPParticleEmitter>();
persistentEmitters = new List<PersistentKSPParticleEmitter>();
}


void FixedUpdate()
{
List<PersistantKSPParticleEmitter> persistantEmittersCopy = new List<PersistantKSPParticleEmitter>(persistantEmitters);
for (int i = 0; i < persistantEmittersCopy.Count; i++)
List<PersistentKSPParticleEmitter> persistentEmittersCopy = new List<PersistentKSPParticleEmitter>(persistentEmitters);
for (int i = 0; i < persistentEmittersCopy.Count; i++)
{
if (persistantEmittersCopy[i].go.transform.parent == null && persistantEmittersCopy[i].pe.pe.particles.Count() == 0)
if (persistentEmittersCopy[i].go.transform.parent == null && persistentEmittersCopy[i].pe.pe.particles.Count() == 0)
{
EffectBehaviour.RemoveParticleEmitter(persistantEmittersCopy[i].pe);
persistantEmitters.Remove(persistantEmittersCopy[i]);
Destroy(persistantEmittersCopy[i].go);
EffectBehaviour.RemoveParticleEmitter(persistentEmittersCopy[i].pe);
persistentEmitters.Remove(persistentEmittersCopy[i]);
Destroy(persistentEmittersCopy[i].go);
}
}

Expand Down
8 changes: 4 additions & 4 deletions PersistantKSPParticleEmitter.cs
Expand Up @@ -14,22 +14,22 @@
using UnityEngine;


// TODO : handle the relation with PersistantEmitterManager inside the class
public class PersistantKSPParticleEmitter
// TODO : handle the relation with PersistentEmitterManager inside the class
public class PersistentKSPParticleEmitter
{
public GameObject go;
public KSPParticleEmitter pe;
public bool fixedEmit = false;
public float baseMaxSize;

public PersistantKSPParticleEmitter(GameObject go, KSPParticleEmitter pe, float ms)
public PersistentKSPParticleEmitter(GameObject go, KSPParticleEmitter pe, float ms)
{
this.go = go;
this.pe = pe;
baseMaxSize = ms;
}

public PersistantKSPParticleEmitter(GameObject go, KSPParticleEmitter pe)
public PersistentKSPParticleEmitter(GameObject go, KSPParticleEmitter pe)
{
this.go = go;
this.pe = pe;
Expand Down

0 comments on commit 8b53dce

Please sign in to comment.