Example #1
0
        public List <Param> xGetExtraAffectorParams(ParticleAffector af)
        {
            List <Param> list = new List <Param>();

            if (af == null)
            {
                return(list);
            }

            // the default
            //Dictionary<string, string> def = xGetDefEmitterParams(pe.Type);

            //////////////////////////////////////////////////////////////////////////
            Const_ParameterList plist = af.GetParameters();

            foreach (ParameterDef_NativePtr c in plist)
            {
                // dont include base emitter properties!
                //if (def.ContainsKey(c.name) == false) continue;

                string value = af.GetParameter(c.name);
                list.Add(new Param()
                {
                    Property = c.name, Value = value, Description = c.description
                });
            }

            return(list);
        }
Example #2
0
        public List<Param> xGetExtraAffectorParams(ParticleAffector af)
        {
            List<Param> list = new List<Param>();

            if (af == null) return list;

            // the default
            //Dictionary<string, string> def = xGetDefEmitterParams(pe.Type);

            //////////////////////////////////////////////////////////////////////////
            Const_ParameterList plist = af.GetParameters();
            foreach (ParameterDef_NativePtr c in plist)
            {
                // dont include base emitter properties!
                //if (def.ContainsKey(c.name) == false) continue;

                string value = af.GetParameter(c.name);
                list.Add(new Param() { Property = c.name, Value = value, Description = c.description });
            }

            return list;
        }
Example #3
0
        // save flow file
        public void xSaveConfinguration(string filename)
        {
            XmlTextWriter xml = null;

            try
            {
                xml = new XmlTextWriter(filename, null);
            }
            catch (Exception err)
            {
                MessageBox.Show("Error: " + err.Message);
                return;
            }

            xml.Formatting = Formatting.Indented; // tabs & newlines
            xml.WriteStartDocument();
            {
                xml.WriteStartElement("config");
                xml.WriteStartAttribute("version");
                xml.WriteValue(1000);
                xml.WriteEndAttribute();

                for (int i = 0; i < plist.Count; i++)
                {
                    ParticleSystem p = plist[i];
                    xml.WriteStartElement("system");
                    xml.WriteStartAttribute("name");
                    xml.WriteValue(p.Name);
                    xml.WriteEndAttribute();

                    xml.WriteStartElement("params");
                    foreach (ParameterDef_NativePtr param in p.GetParameters())
                    {
                        xml.WriteStartElement("add");
                        xml.WriteStartAttribute("key");
                        xml.WriteValue(param.name);
                        xml.WriteEndAttribute();

                        xml.WriteStartAttribute("value");
                        xml.WriteValue(p.GetParameter(param.name));
                        xml.WriteEndAttribute();
                        xml.WriteEndElement();
                    }

                    // billboard type
                    xml.WriteStartElement("add");
                    xml.WriteStartAttribute("key");
                    xml.WriteValue("billboard_type");
                    xml.WriteEndAttribute();

                    xml.WriteStartAttribute("value");
                    xml.WriteValue(p.Renderer.GetParameter("billboard_type"));
                    xml.WriteEndAttribute();
                    xml.WriteEndElement();

                    // common dir
                    xml.WriteStartElement("add");
                    xml.WriteStartAttribute("key");
                    xml.WriteValue("common_direction");
                    xml.WriteEndAttribute();

                    xml.WriteStartAttribute("value");
                    xml.WriteValue(p.Renderer.GetParameter("common_direction"));
                    xml.WriteEndAttribute();
                    xml.WriteEndElement();
                    xml.WriteEndElement();

                    // affectors
                    for (int j = 0; j < p.NumAffectors; j++)
                    {
                        ParticleAffector af = p.GetAffector((ushort)j);

                        xml.WriteStartElement("affector");
                        xml.WriteStartAttribute("type");
                        xml.WriteValue(af.Type);
                        xml.WriteEndAttribute();

                        xml.WriteStartAttribute("name");
                        xml.WriteValue("Affector" + j);
                        xml.WriteEndAttribute();
                        {
                            xml.WriteStartElement("params");
                            foreach (ParameterDef_NativePtr param in af.GetParameters())
                            {
                                xml.WriteStartElement("add");
                                xml.WriteStartAttribute("key");
                                xml.WriteValue(param.name);
                                xml.WriteEndAttribute();

                                xml.WriteStartAttribute("value");
                                xml.WriteValue(af.GetParameter(param.name));
                                xml.WriteEndAttribute();
                                xml.WriteEndElement();
                            }
                            xml.WriteEndElement();
                        }
                        xml.WriteEndElement();
                    }

                    // emitters
                    for (int j = 0; j < p.NumEmitters; j++)
                    {
                        ParticleEmitter em = p.GetEmitter((ushort)j);
                        xml.WriteStartElement("emitter");
                        xml.WriteStartAttribute("type");
                        xml.WriteValue(em.Type);
                        xml.WriteEndAttribute();

                        xml.WriteStartAttribute("name");
                        xml.WriteValue("Emitter" + j);
                        xml.WriteEndAttribute();
                        {
                            xml.WriteStartElement("params");
                            foreach (ParameterDef_NativePtr param in em.GetParameters())
                            {
                                xml.WriteStartElement("add");
                                xml.WriteStartAttribute("key");
                                xml.WriteValue(param.name);
                                xml.WriteEndAttribute();

                                xml.WriteStartAttribute("value");
                                xml.WriteValue(em.GetParameter(param.name));
                                xml.WriteEndAttribute();
                                xml.WriteEndElement();
                            }
                            xml.WriteEndElement();
                        }
                        xml.WriteEndElement();
                    }

                    xml.WriteEndElement();     // </system>
                }

                xml.WriteEndElement();//</config>
            }
            xml.WriteEndDocument();
            xml.Close();
        }
Example #4
0
        // export ogre particle script
        public void xExportScript(string filename)
        {
            StreamWriter fp = null;

            try
            {
                fp = File.CreateText(filename);
            }
            catch (Exception err)
            {
                MessageBox.Show("Error: " + err.Message);
                return;
            }

            for (int i = 0; i < plist.Count; i++)
            {
                ParticleSystem ps = plist[i];
                fp.WriteLine("particle_system {0}", ps.Name);
                fp.WriteLine("{");

                fp.WriteLine("\tmaterial {0}", ps.MaterialName);
                fp.WriteLine("\tparticle_width {0}", ps.DefaultWidth);
                fp.WriteLine("\tparticle_height {0}", ps.DefaultHeight);
                fp.WriteLine("\tcull_each {0}", ps.CullIndividually);
                fp.WriteLine("\tquota {0}", ps.ParticleQuota);
                fp.WriteLine("\tsorted {0}", ps.SortingEnabled);
                fp.WriteLine("\tbillboard_type {0}", ps.Renderer.GetParameter("billboard_type"));
                fp.WriteLine("\tcommon_direction {0}", ps.Renderer.GetParameter("common_direction"));
                fp.WriteLine("\tcommon_up_vector {0}", ps.Renderer.GetParameter("common_up_vector"));
                fp.WriteLine();

                // emitters
                for (int j = 0; j < ps.NumEmitters; j++)
                {
                    ParticleEmitter pe = ps.GetEmitter((ushort)j);
                    fp.WriteLine("\temitter {0}", pe.Type);
                    fp.WriteLine("\t{");

                    foreach (ParameterDef_NativePtr param in pe.GetParameters())
                    {
                        string value = pe.GetParameter(param.name);
                        if (value == "")
                        {
                            continue;              // no empty
                        }
                        if (param.name == "name")
                        {
                            continue;
                        }
                        fp.WriteLine("\t\t{0} {1}", param.name, value);
                    }

                    fp.WriteLine("\t}");
                    fp.WriteLine();
                }

                // affectors
                for (int j = 0; j < ps.NumAffectors; j++)
                {
                    ParticleAffector af = ps.GetAffector((ushort)j);
                    fp.WriteLine("\taffector {0}", af.Type);
                    fp.WriteLine("\t{");

                    foreach (ParameterDef_NativePtr param in af.GetParameters())
                    {
                        string value = af.GetParameter(param.name);
                        fp.WriteLine("\t\t{0} {1}", param.name, value);
                    }

                    fp.WriteLine("\t}");
                    fp.WriteLine();
                }

                fp.WriteLine("}");
                fp.WriteLine();
            }

            fp.Close();
        }