private CodeParameterDeclarationExpression GetParametter(GameDataVariable v) { if (v.IsVector) { return(new CodeParameterDeclarationExpression("List<object>", v.VariableName)); } else if (PrimitiveType.singleton.ContainsKey(v.VariableType)) { return(new CodeParameterDeclarationExpression(_primitiveType[v.VariableType], v.VariableName)); } else { return(new CodeParameterDeclarationExpression(v.VariableType, v.VariableName)); } }
private void ParseLine(string line) { if (line.Contains("Vector")) { string[] spliter = line.Split(':'); string variableName = spliter[0].Substring(spliter[0].LastIndexOf(" ")).Replace("_", "").Replace(" ", ""); string variableType = spliter[1].Replace("Vector.", "List").Replace(";", ""); mOutputClass.Variables.Add(new GameDataVariable(variableName, variableType)); } else { string[] spliter = line.Split(':'); GameDataVariable gdtv = new GameDataVariable(spliter[0].Substring(spliter[0].LastIndexOf(" ") + 1).Replace("_", ""), spliter[1]); if (gdtv.IsPrimitive && !gdtv.IsVector && gdtv.VariableType.ToLower() == "uint") { } mOutputClass.Variables.Add(gdtv); } }
private void AddClassVariableToCodeBase(GameDataVariable classVariable) { if (classVariable.VariableType.Contains("List")) { CodeMemberProperty publicProperty = new CodeMemberProperty(); publicProperty.Attributes = MemberAttributes.Public; publicProperty.HasGet = true; publicProperty.HasSet = true; publicProperty.SetStatements.Add(new CodeAssignStatement(new CodeVariableReferenceExpression(classVariable.PrivateVariableName), new CodeVariableReferenceExpression("value"))); publicProperty.Name = classVariable.PublicVariableName; publicProperty.Type = new CodeTypeReference(classVariable.VariableType); CodeExpression getter = new CodeSnippetExpression(string.Format("return {0}", classVariable.PrivateVariableName)); publicProperty.GetStatements.Add(getter); _codeBase.Namespaces[0].Types[0].Members.Add(publicProperty); CodeMemberField var = new CodeMemberField(classVariable.VariableType, classVariable.PrivateVariableName); var.Attributes = MemberAttributes.Private; var.InitExpression = new CodeSnippetExpression("new " + classVariable.VariableType + "()"); _codeBase.Namespaces[0].Types[0].Members.Add(var); } else if (classVariable.VariableType.Contains("I18n")) { CodeMemberProperty publicProperty = new CodeMemberProperty(); publicProperty.Attributes = MemberAttributes.Public; publicProperty.HasGet = true; publicProperty.HasSet = true; publicProperty.SetStatements.Add(new CodeAssignStatement(new CodeVariableReferenceExpression(classVariable.PrivateVariableName), new CodeVariableReferenceExpression("value"))); publicProperty.Name = classVariable.PublicVariableName; publicProperty.Type = new CodeTypeReference(typeof(string)); CodeExpression getter = new CodeSnippetExpression(string.Format("return {0}", classVariable.PrivateVariableName + ".GetText()")); publicProperty.GetStatements.Add(getter); _codeBase.Namespaces[0].Types[0].Members.Add(publicProperty); CodeMemberField privateVar = new CodeMemberField("I18nProperty", classVariable.PrivateVariableName); privateVar.Attributes = MemberAttributes.Private; _codeBase.Namespaces[0].Types[0].Members.Add(privateVar); } else if (_primitiveType.ContainsKey(classVariable.VariableType)) { Type Type = _primitiveType[classVariable.VariableType]; CodeMemberProperty publicProperty = new CodeMemberProperty(); publicProperty.Attributes = MemberAttributes.Public; publicProperty.HasGet = true; publicProperty.HasSet = true; publicProperty.SetStatements.Add(new CodeAssignStatement(new CodeVariableReferenceExpression(classVariable.PrivateVariableName), new CodeVariableReferenceExpression("value"))); publicProperty.Name = classVariable.PublicVariableName; publicProperty.Type = new CodeTypeReference(Type); CodeExpression getter = new CodeSnippetExpression(string.Format("return {0}", classVariable.PrivateVariableName)); publicProperty.GetStatements.Add(getter); _codeBase.Namespaces[0].Types[0].Members.Add(publicProperty); CodeMemberField privateVar = new CodeMemberField(Type, classVariable.PrivateVariableName); privateVar.Attributes = MemberAttributes.Private; _codeBase.Namespaces[0].Types[0].Members.Add(privateVar); } else { CodeMemberProperty publicProperty = new CodeMemberProperty(); publicProperty.Attributes = MemberAttributes.Public; publicProperty.HasGet = true; publicProperty.HasSet = true; publicProperty.SetStatements.Add(new CodeAssignStatement(new CodeVariableReferenceExpression(classVariable.PrivateVariableName), new CodeVariableReferenceExpression("value"))); publicProperty.Name = classVariable.PublicVariableName; publicProperty.Type = new CodeTypeReference(classVariable.VariableType.Replace(";", "")); CodeExpression getter = new CodeSnippetExpression(string.Format("return {0}", classVariable.PrivateVariableName)); publicProperty.GetStatements.Add(getter); _codeBase.Namespaces[0].Types[0].Members.Add(publicProperty); CodeMemberField var = new CodeMemberField(classVariable.VariableType.Replace(";", ""), classVariable.PrivateVariableName); _codeBase.Namespaces[0].Types[0].Members.Add(var); } }