public PersistentKSPShurikenEmitter(
        GameObject go,
        ParticleSystem pe,
        ParticleSystemRenderer pr,
        KSPParticleEmitter templateKspParticleEmitter)
    {
        this.go = go;
        this.pe = pe;
        this.pr = pr;

        // TODO That s what we need to also save to emit manually with proper values

        // float emitterVelocityScale
        // Vector3 rndVelocity
        // bool rndRotation
        // float angularVelocity
        // float rndAngularVelocity

        //templateKspParticleEmitter.ve

        shape = templateKspParticleEmitter.shape;

        scale1DBase = shape1D = templateKspParticleEmitter.shape1D;
        scale2DBase = shape2D = templateKspParticleEmitter.shape2D;
        scale3DBase = shape3D = templateKspParticleEmitter.shape3D;

        minEmissionBase = minEmission = templateKspParticleEmitter.minEmission;
        maxEmissionBase = maxEmission = templateKspParticleEmitter.maxEmission;
        minEnergyBase   = minEnergy = templateKspParticleEmitter.minEnergy;
        maxEnergyBase   = maxEnergy = templateKspParticleEmitter.maxEnergy;

        minSizeBase = minSize = templateKspParticleEmitter.minSize;
        maxSizeBase = maxSize = templateKspParticleEmitter.maxSize;

        localVelocityBase = localVelocity = templateKspParticleEmitter.localVelocity;
        worldVelocityBase = worldVelocity = templateKspParticleEmitter.worldVelocity;

        forceBase = force = templateKspParticleEmitter.force;
        rndForce  = templateKspParticleEmitter.rndForce;

        rndVelocity        = templateKspParticleEmitter.rndVelocity;
        rndRotation        = templateKspParticleEmitter.rndRotation;
        angularVelocity    = templateKspParticleEmitter.angularVelocity;
        rndAngularVelocity = templateKspParticleEmitter.rndAngularVelocity;

        // Unity sure love its strange way of using struct (this actually works because each properties of the struct does magic)
        ParticleSystem.ForceOverLifetimeModule fol = pe.forceOverLifetime;
        fol.enabled = force.sqrMagnitude > 0 || rndForce.sqrMagnitude > 0;
        fol.x       = new ParticleSystem.MinMaxCurve(forceBase.x, forceBase.x + rndForce.x);
        fol.y       = new ParticleSystem.MinMaxCurve(forceBase.y, forceBase.y + rndForce.y);
        fol.z       = new ParticleSystem.MinMaxCurve(forceBase.z, forceBase.z + rndForce.z);

        color          = templateKspParticleEmitter.color;
        saturationMult = 1;
        brightnessMult = 1;
        alphaMult      = 1;

        PersistentEmitterManager.Add(this);
    }
    public PersistentKSPShurikenEmitter(
        GameObject go,
        ParticleSystem pe,
        ParticleSystemRenderer pr,
        KSPParticleEmitter templateKspParticleEmitter)
    {
        this.go = go;
        this.pe = pe;
        this.pr = pr;

        // TODO That s what we need to also save to emit manually with proper values

        // float emitterVelocityScale
        // Vector3 rndVelocity
        // bool rndRotation
        // float angularVelocity
        // float rndAngularVelocity

        //templateKspParticleEmitter.ve

        shape = templateKspParticleEmitter.shape;

        scale1DBase = shape1D = templateKspParticleEmitter.shape1D;
        scale2DBase = shape2D = templateKspParticleEmitter.shape2D;
        scale3DBase = shape3D = templateKspParticleEmitter.shape3D;

        minEmissionBase = minEmission = templateKspParticleEmitter.minEmission;
        maxEmissionBase = maxEmission = templateKspParticleEmitter.maxEmission;
        minEnergyBase = minEnergy = templateKspParticleEmitter.minEnergy;
        maxEnergyBase = maxEnergy = templateKspParticleEmitter.maxEnergy;

        minSizeBase = minSize = templateKspParticleEmitter.minSize;
        maxSizeBase = maxSize = templateKspParticleEmitter.maxSize;

        localVelocityBase = localVelocity = templateKspParticleEmitter.localVelocity;
        worldVelocityBase = worldVelocity = templateKspParticleEmitter.worldVelocity;

        forceBase = force = templateKspParticleEmitter.force;
        rndForce = templateKspParticleEmitter.rndForce;

        rndVelocity = templateKspParticleEmitter.rndVelocity;
        rndRotation = templateKspParticleEmitter.rndRotation;
        angularVelocity = templateKspParticleEmitter.angularVelocity;
        rndAngularVelocity = templateKspParticleEmitter.rndAngularVelocity;

        // Unity sure love its strange way of using struct (this actually works because each properties of the struct does magic)
        ParticleSystem.ForceOverLifetimeModule fol = pe.forceOverLifetime;
        fol.enabled = force.sqrMagnitude > 0 || rndForce.sqrMagnitude > 0;
        fol.x = new ParticleSystem.MinMaxCurve(forceBase.x, forceBase.x + rndForce.x);
        fol.y = new ParticleSystem.MinMaxCurve(forceBase.y, forceBase.y + rndForce.y);
        fol.z = new ParticleSystem.MinMaxCurve(forceBase.z, forceBase.z + rndForce.z);

        color = templateKspParticleEmitter.color;

        PersistentEmitterManager.Add(this);
    }