コード例 #1
0
 public void writeValue(SaveEntry entry)
 {
     if (entry.ObjectID != SaveEntry.NULL_ID)
     {
         loadControl.addObjectValue(entry.Name, entry.ObjectID);
     }
     else
     {
         loadControl.addValue(entry.Name, entry.Value, entry.ObjectType);
     }
 }
コード例 #2
0
        /// <summary>
        /// Write a given value to the stream using the correct writer.
        /// </summary>
        /// <param name="entry"></param>
        public void writeValue(SaveEntry entry)
        {
            Type objType = entry.ObjectType;

            if (valueWriters.ContainsKey(objType))
            {
                valueWriters[objType].writeValue(entry);
            }
            else if (objType.IsEnum())
            {
                enumWriter.writeValue(entry);
            }
            else if (objType == typeof(Saveable) || objType.GetInterface(typeof(Saveable).Name) != null)
            {
                saveableWriter.writeValue(entry);
            }
            else
            {
                Log.Default.sendMessage("Attempted to save a variable named {0} of type {1} that has no value writer. Object not written.", LogLevel.Warning, "Engine", entry.Name, entry.ObjectType.Name);
            }
        }