public static string FormatSettingJsonText(Type type, string text) { string NewLine = text.Contains("\r\n") ? "\r\n" : "\n"; string NewIndent = NewLine + Indent; foreach (MemberInfo member in type.GetMembers()) { if ((member.MemberType | MemberTypes.Field | MemberTypes.Property) == 0) { continue; } object[] sections = member.GetCustomAttributes(typeof(JsonSection), true); object[] comments = member.GetCustomAttributes(typeof(JsonComment), true); if (sections.Length <= 0 && comments.Length <= 0) { continue; } string propName = NewLine + Indent + JsonConvert.ToString(member.Name); string injection = ""; if (sections.Length > 0) { injection += NewLine + NewIndent + "//" + NewIndent + "// " + (sections[0] as JsonSection)?.Section + NewIndent + "//" + NewLine + NewLine; } if (comments.Length > 0) { string[] lines = (comments[0] as JsonComment)?.Comments; // Insert blank line if not new section if (sections.Length <= 0) { injection += NewLine + NewLine; } // Actual property comment if (lines.Length > 1) { injection += Indent + "/* " + lines[0]; for (int i = 1, len = lines.Length; i < len; i++) { injection += NewIndent + " * " + lines[i]; } injection += " */"; } else if (lines.Length > 0) { injection += Indent + "/* " + lines[0] + " */"; } injection += NewLine; } text = BattleModModule.ReplaceFirst(text, propName, injection + propName); } return(text); }
public BattleMod Add(BattleModModule module) { if (!modules.TryGetValue(this, out List <BattleModModule> list)) { modules.Add(this, list = new List <BattleModModule>()); } if (!list.Contains(module)) { if (module != this) { if (module.Id == Id) { module.Id += "." + Idify(module.Name); } } list.Add(module); TryRun(Log, module.ModStarts); } return(this); }