static ImaginaryObject CreateImaginaryObject(Type type) { if (type.IsEditable()) { EditorData editorData = EditorData.GetEmpty(); EditableSystem.OpenEditor(type, ref editorData); return(new ImaginaryEditableObject(type, editorData)); } if (type.IsEnum) { return(new ImaginaryEnum(type, SelectItem(Enum.GetNames(type)))); } if (type.QualifiesAsPrimitive()) { return(new ImaginaryPrimitive(Convert.ChangeType(Console.ReadLine(), type))); } if (type.GetConstructors().Length > 0) { return(new ImaginaryConstructableObject(type, GetConstructorParameters(type))); } return(new ImaginaryConstructableObject(type)); }
protected override void ReadConstructionInfo(BinaryReader reader) { TypeData = new TypeData(reader); EditorData = EditorData.GetEmpty(); for (var i = 0; i < reader.ReadInt32(); i++) { EditorData.Add(reader.ReadString(), reader.ReadString()); } }
static ImaginaryScript CreateImaginaryScript(Type type) { if (type.IsEditable()) { EditorData editorData = EditorData.GetEmpty(); EditableSystem.OpenEditor(type, ref editorData); return(new ImaginaryScript(new ImaginaryEditableObject(type, editorData))); } if (type.GetConstructors().Length > 0) { return(new ImaginaryScript(new ImaginaryConstructableObject(type, GetConstructorParameters(type)))); } return(new ImaginaryScript(new ImaginaryConstructableObject(type))); }
static ImaginaryHierarchyObject CreateImaginaryHierarchyObject(ref ImaginaryHierarchyObject currentSelectedHierarchyObject, Type ofType) { if (ofType.IsEditable()) { EditorData editorData = EditorData.GetEmpty(); EditableSystem.OpenEditor(ofType, ref editorData); return(new ImaginaryHierarchyObject(currentSelectedHierarchyObject, new ImaginaryEditableObject(ofType, editorData))); } if (ofType.GetConstructors().Length > 0) { return(new ImaginaryHierarchyObject(currentSelectedHierarchyObject, new ImaginaryConstructableObject(ofType, GetConstructorParameters(ofType)))); } return(new ImaginaryHierarchyObject(currentSelectedHierarchyObject, new ImaginaryConstructableObject(ofType))); }