/// /// Write a property of a data class. /// private void WriteProperty(MemberFieldData field) { TextInfo ti = new CultureInfo("en-US", false).TextInfo; m_Writer.WriteLine(m_Indentation + "[ExposeProperty]"); string tmp = string.Empty; if (field.type == CellType.Enum) { tmp += "public " + field.Name + " " + field.Name.ToUpper() + " "; } else { if (field.IsArrayType) { tmp += "public " + field.Type + "[]" + " " + ti.ToTitleCase(field.Name) + " "; } else { tmp += "public " + field.Type + " " + ti.ToTitleCase(field.Name) + " "; } } tmp += "{ get {return " + field.Name.ToLower() + "; } set { " + field.Name.ToLower() + " = value;} }"; m_Writer.WriteLine(m_Indentation + tmp); }
/// /// Write a member field of a data class. /// private void WriteMemberField(MemberFieldData field) { m_Writer.WriteLine(m_Indentation + "[SerializeField]"); string tmp = field.Type + " " + field.Name.ToLower() + ";"; m_Writer.WriteLine(m_Indentation + tmp); }
/// <summary> /// Create a data class which describes the spreadsheet and write it down on the specified folder. /// </summary> protected void CreateDataClassScript(BaseMachine machine, ScriptPrescription sp) { // check the directory path exists string fullPath = TargetPathForData(machine.WorkSheetName); string folderPath = Path.GetDirectoryName(fullPath); if (!Directory.Exists(folderPath)) { EditorUtility.DisplayDialog( "Warning", "The folder for runtime script files does not exist. Check the path " + folderPath + " exists.", "OK" ); return; } List<MemberFieldData> fieldList = new List<MemberFieldData>(); //FIXME: replace ValueType to CellType and support Enum type. foreach (HeaderColumn header in machine.HeaderColumnList) { MemberFieldData member = new MemberFieldData(); member.Name = header.name; member.type = header.type; member.IsArrayType = header.isArray; fieldList.Add(member); } sp.className = machine.WorkSheetName + "Data"; sp.template = GetTemplate("DataClass"); sp.memberFields = fieldList.ToArray(); // write a script to the given folder. using (var writer = new StreamWriter(fullPath)) { writer.Write(new NewScriptGenerator(sp).ToString()); writer.Close(); } }
/// /// Write a member field of a data class. /// private void WriteMemberField(MemberFieldData field) { m_Writer.WriteLine(m_Indentation + "[SerializeField]"); string tmp; if (field.type == CellType.Enum) { tmp = field.Name + " " + field.Name.ToLower() + ";"; } else { if (field.IsArrayType) { tmp = field.Type + "[]" + " " + field.Name.ToLower() + " = new " + field.Type + "[0]" + ";"; } else { tmp = field.Type + " " + field.Name.ToLower() + ";"; } } m_Writer.WriteLine(m_Indentation + tmp); }
/// /// Write a property of a data class. /// private void WriteProperty(MemberFieldData field) { TextInfo ti = new CultureInfo("en-US",false).TextInfo; m_Writer.WriteLine (m_Indentation + "[ExposeProperty]"); string tmp = string.Empty; if (field.type == CellType.Enum) tmp += "public " + field.Name + " " + field.Name.ToUpper() + " "; else { if (field.IsArrayType) tmp += "public " + field.Type + "[]" + " " + ti.ToTitleCase(field.Name) + " "; else tmp += "public " + field.Type + " " + ti.ToTitleCase(field.Name) + " "; } tmp += "{ get {return " + field.Name.ToLower() + "; } set { " + field.Name.ToLower() + " = value;} }"; m_Writer.WriteLine (m_Indentation + tmp); }
/// /// Write a member field of a data class. /// private void WriteMemberField(MemberFieldData field) { m_Writer.WriteLine (m_Indentation + "[SerializeField]"); string tmp; if (field.type == CellType.Enum) tmp = field.Name + " " + field.Name.ToLower() + ";"; else { if (field.IsArrayType) tmp = field.Type + "[]" + " " + field.Name.ToLower() + " = new " + field.Type + "[0]" +";"; else tmp = field.Type + " " + field.Name.ToLower() + ";"; } m_Writer.WriteLine (m_Indentation + tmp); }