public string ReadTree(string[] lines, Dialogues.ExportUnity.CameraModes_Items node) { int index = 0; int start = 0; int end = 0; string chunk = ""; if (node.Included) { chunk = "\n"; while (!lines[index].Contains("class " + node.Mode + "CameraMode")) { index++; } start = index; while (!lines[index].Contains("end class " + node.Mode + "CameraMode")) { index++; } end = index; //Extract every line into a string for (index = start; index <= end; index++) { chunk += lines[index] + "\n"; } } foreach (Dialogues.ExportUnity.CameraModes_Items child in node.ChildCameras) { chunk = chunk + ReadTree(lines, child); } return(chunk); }
public void ExportUnity(string path, Dialogues.ExportUnity.CameraModes_Items treeRoot) { int index = 0; string text = ""; string[] lines; string uniScript = ""; //CameraModes Uri uri = new Uri(@"/Resources/BasicCameraModes.txt", UriKind.RelativeOrAbsolute); var resourceStream = Application.GetResourceStream(uri); using (StreamReader sr = new StreamReader(resourceStream.Stream)) { text = sr.ReadToEnd(); lines = text.Split(new string[] { Environment.NewLine }, StringSplitOptions.None); } treeRoot.Mode = ""; uniScript += ReadTree(lines, treeRoot); using (StreamWriter sw = File.CreateText(path + "\\CameraModes.cs")) { index = 0; string packages = ""; while (!lines[index].Contains("Axis System Chosen")) { index++; } for (int start = 0; start <= index; start++) { packages += lines[start] + "\n"; //packages from the top of the document } sw.Write(packages + uniScript); } //CameraControlSystem uri = new Uri(@"/Resources/CameraControlSystem.txt", UriKind.RelativeOrAbsolute); resourceStream = Application.GetResourceStream(uri); using (StreamReader sr = new StreamReader(resourceStream.Stream)) { text = sr.ReadToEnd(); } using (StreamWriter sw = File.CreateText(path + "\\CameraControlSystem.cs")) { sw.Write(text); } //iTightable uri = new Uri(@"/Resources/ITightable.txt", UriKind.RelativeOrAbsolute); resourceStream = Application.GetResourceStream(uri); using (StreamReader sr = new StreamReader(resourceStream.Stream)) { text = sr.ReadToEnd(); } using (StreamWriter sw = File.CreateText(path + "\\ITightable.cs")) { sw.Write(text); } }