Advertisement
Guest User

Untitled

a guest
Jan 9th, 2013
83
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 4.33 KB | None | 0 0
  1. public void ReadFromFile(string file)
  2.         {
  3.             try
  4.             {
  5.                 if (File.Exists(file))
  6.                 {
  7.                     path = file;
  8.                     XmlReader reader = XmlReader.Create(file);
  9.                     if (!reader.ReadToFollowing("ParticleEffect"))
  10.                         return;
  11.                     if (!reader.ReadToFollowing("Emitters"))
  12.                         return;
  13.                     while (reader.ReadToFollowing("Emitter"))
  14.                         Emitters.Add(readEmitter(reader));
  15.                     reader.Close();
  16.                     Name = Path.GetFileNameWithoutExtension(file);
  17.                 }
  18.             }
  19.             catch
  20.             {
  21.                 MessageBox.Show("Error while reading: " + path);
  22.             }
  23.         }
  24.  
  25.         private Emitter readEmitter(XmlReader reader)
  26.         {
  27.             Emitter returnEmit = new Emitter();
  28.             reader.MoveToAttribute("Type");
  29.             returnEmit.Type = Emitter.stringToEnum(reader.Value);
  30.             reader.MoveToAttribute("x");
  31.             float.TryParse(reader.Value, NumberStyles.Any, CultureInfo.InvariantCulture, out returnEmit.x);
  32.             reader.MoveToAttribute("y");
  33.             float.TryParse(reader.Value, NumberStyles.Any, CultureInfo.InvariantCulture, out returnEmit.y);
  34.             reader.MoveToAttribute("z");
  35.             float.TryParse(reader.Value, NumberStyles.Any, CultureInfo.InvariantCulture, out returnEmit.z);
  36.             reader.MoveToAttribute("datablock");
  37.             returnEmit.datablock = reader.Value;
  38.             reader.MoveToAttribute("emitter");
  39.             returnEmit.emitter = reader.Value;
  40.             reader.MoveToAttribute("Start");
  41.             float.TryParse(reader.Value, NumberStyles.Any, CultureInfo.InvariantCulture, out returnEmit.Start);
  42.             reader.MoveToAttribute("End");
  43.             float.TryParse(reader.Value, NumberStyles.Any, CultureInfo.InvariantCulture, out returnEmit.End);
  44.             if (reader.MoveToAttribute("Tag"))
  45.                 returnEmit.Tag = reader.Value != "" ? reader.Value : null;
  46.             reader.MoveToElement();
  47.             string innerXML = reader.ReadInnerXml();
  48.             XmlReader subReader = XmlReader.Create(new StringReader("<root>"+innerXML+"</root>"));
  49.             while (subReader.ReadToFollowing("Value"))
  50.             {
  51.                 Emitter.value val = new Emitter.value();
  52.                 val.points = new List<Emitter.PointOnValue>();
  53.                 subReader.MoveToAttribute("Name");
  54.                 val.valueName = subReader.Value;
  55.                 subReader.MoveToAttribute("DeltaValue");
  56.                 float.TryParse(reader.Value, NumberStyles.Any, CultureInfo.InvariantCulture, out val.deltaValue);
  57.                 subReader.MoveToAttribute("setTime");
  58.                 float.TryParse(reader.Value, NumberStyles.Any, CultureInfo.InvariantCulture, out val.setTime);
  59.                 subReader.MoveToAttribute("Ease");
  60.                 val.Ease = bool.Parse(subReader.Value);
  61.                 subReader.MoveToAttribute("DeltaValue");
  62.                 subReader.MoveToElement();
  63.                 string innerXML2 = subReader.ReadInnerXml();
  64.                 XmlReader subReader2 = XmlReader.Create(new StringReader("<root>"+innerXML2+"</root>"));
  65.                 while (subReader2.ReadToFollowing("Point"))
  66.                 {
  67.                     Emitter.PointOnValue pt = new Emitter.PointOnValue();
  68.                     if(subReader2.MoveToAttribute("X"))
  69.                         float.TryParse(reader.Value, NumberStyles.Any, CultureInfo.InvariantCulture, out pt.point.X);
  70.                     subReader2.MoveToAttribute("Y");
  71.                     float.TryParse(reader.Value, NumberStyles.Any, CultureInfo.InvariantCulture, out pt.point.Y);
  72.                     subReader2.MoveToAttribute("Easing");
  73.                     pt.Easing = subReader2.Value;
  74.                     subReader2.MoveToAttribute("EaseIn");
  75.                     pt.EaseIn = bool.Parse(subReader2.Value);
  76.                     subReader2.MoveToAttribute("EaseOut");
  77.                     pt.EaseOut = bool.Parse(subReader2.Value);
  78.                     val.points.Add(pt);
  79.                 }
  80.                 subReader2.Close();
  81.                 returnEmit.Values.Add(val);
  82.             }
  83.             subReader.Close();
  84.             return returnEmit;
  85.         }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement