public static ParticleSystem createSystem(JsonObject initData) { ParticleSystem ps = new ParticleSystem(); ps.continuous = (bool)initData["continuous"]; ps.lifetime = (float)initData["lifetime"]; ps.maxParticles = (int)initData["maxParticles"]; String textureName = (string)initData["material"]; TextureDescriptor td = new TextureDescriptor(textureName); ps.material = Renderer.resourceManager.getResource(td) as Texture; JsonObject features = initData["features"]; foreach (String key in features.keys) { ParticleFeatureCreator creator = null; if (featureFactory.TryGetValue(key, out creator) == true) { JsonObject featureData = features[key]; ParticleFeature f = creator.create(featureData); ps.addFeature(f); } else { //don't get here throw new Exception(String.Format("Unable to find creator for {0}", key)); } } addParticleSystem(ps); return(ps); }
public static JsonObject serialize(ParticleFeature feature) { JsonObject obj = null; if (feature is LinearForceFeature) { obj = serialize(feature as LinearForceFeature); } if (feature is RadialForceFeature) { obj = serialize(feature as RadialForceFeature); } if (feature is TangentialForceFeature) { obj = serialize(feature as TangentialForceFeature); } if (feature is DragForceFeature) { obj = serialize(feature as DragForceFeature); } if (feature is RotationFeature) { obj = serialize(feature as RotationFeature); } if (feature is ScaleFeature) { obj = serialize(feature as ScaleFeature); } if (feature is AlphaFeature) { obj = serialize(feature as AlphaFeature); } if (feature is AlphaFromLifeFeature) { obj = serialize(feature as AlphaFromLifeFeature); } if (feature is EmitterFeature) { obj = serialize(feature as EmitterFeature); } return(obj); }
public void removeFeature(ParticleFeature feature) { features.Remove(feature); }
public void addFeature(ParticleFeature feature) { features.Add(feature); feature.mySystem = this; }