Пример #1
0
 private static void PopulateSectorWithObjects(XmlReader reader, Sector sector)
 {
     while (reader.Read() && !(!reader.IsStartElement() && reader.LocalName.Equals("OBJECTS")))
     {
         if (reader.IsStartElement())
         {
             Debug.Log(reader.LocalName);
             try{
                 DType deserializer = deserializers [reader.LocalName];
                 if (deserializer != null)
                 {
                     IUnityXmlSerializable deserializedThing = deserializer.Invoke(reader);
                     if (deserializedThing)
                     {
                         sector.AddToSector(deserializedThing.gameObject);
                     }
                 }
                 else
                 {
                     Debug.LogError("Cannot find deserialization method for: " + reader.LocalName);
                 }
             } catch (KeyNotFoundException k) {
                 Debug.LogError("Cannot find Type Mapping for: " + reader.LocalName + " " + k.Message);
             }
         }
     }
 }
Пример #2
0
    public static void MyMonoSerializeToStream(XmlWriter xmlWriter, IUnityXmlSerializable thing)
    {
        xmlWriter.WriteStartElement(typeLookup [thing.GetType().Name]);

        thing.WriteXml(xmlWriter);

        xmlWriter.WriteEndElement();
    }
Пример #3
0
    public static void MyMonoSerializeToFile(IUnityXmlSerializable thing, string path)
    {
        FileStream fs = File.Create(path);

        byte[] bytes = Encoding.UTF8.GetBytes(MyMonoSerializeToString(thing));
        int    size  = bytes.Length;

        fs.Write(bytes, 0, size);
        fs.Close();
        fs.Dispose();
    }
Пример #4
0
 private static void DeserializeGameStateObjects(XmlReader reader)
 {
     // while has readable xml, and has not reached the end tag for objects
     while (reader.Read() && !(!reader.IsStartElement() && reader.LocalName.Equals("OBJECTS")))
     {
         if (reader.IsStartElement())
         {
             IUnityXmlSerializable serializable = MyMonoDeserialize(reader);
             if (serializable)
             {
                 GameState.instance.AddObject(serializable);
             }
         }
     }
 }
Пример #5
0
    public static string MyMonoSerializeToString(IUnityXmlSerializable thing)
    {
        MemoryStream      memstrm  = new MemoryStream();
        XmlWriterSettings settings = new XmlWriterSettings();

        settings.Indent       = true;
        settings.IndentChars  = "\t";
        settings.NewLineChars = "\n";
        XmlWriter xmlWriter = XmlWriter.Create(memstrm, settings);

        {
            MyMonoSerializeToStream(xmlWriter, thing);
        }
        xmlWriter.Flush();
        memstrm.Seek(0, SeekOrigin.Begin);
        string returnval = System.Text.Encoding.UTF8.GetString(memstrm.ToArray());

        return(returnval);
    }
Пример #6
0
 public void RemoveObject(IUnityXmlSerializable Object)
 {
     Objects.Remove(Object);
 }
Пример #7
0
 public void AddObject(IUnityXmlSerializable Object)
 {
     Objects.Add(Object, Object);
 }