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); } }
/// <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); } }