private static void ProcessArguments(String template, String path, SamResource res, String package) { String cl = res.Class; Char[] splitter = new Char[1] { '.' }; String[] parts = res.Class.Split(splitter); cl = parts[parts.Length - 1]; parts = embedSupers[res.ResourceType].Split(splitter); String superClass = parts[parts.Length - 1]; String superPackage = "import " + embedSupers[res.ResourceType] + ";"; template = template.Replace("$(SamSuperClass)", superClass); template = template.Replace("$(SamSuperImport)", superPackage); template = template.Replace("$(SamResource)", res.File); template = template.Replace("$(SamPackage)", package); template = template.Replace("$(SamClass)", cl); template = PluginBase.MainForm.ProcessArgString(template); using (StreamWriter fs = new StreamWriter(Path.Combine(path, cl + ".hx"))) { fs.Write(template); fs.Close(); } }
private static void AddResources(ISamResources toContainer, XmlNodeList fromNodes, List <SamResource> storeIn) { Int32 count = fromNodes.Count; XmlNode node; SamResource res = null; XmlAttribute a; Boolean failed = false; for (Int32 i = 0; i < count; i++) { node = fromNodes[i]; switch (node.LocalName) { case "library": case "swf": res = new SamResource(); res.ResourceType = ResourceNodeType.Swf; a = node.Attributes["import"]; if (a != null) { res.File = a.InnerText; } else { failed = true; } if (!failed) { res.File = a.InnerText; } a = node.Attributes["class"]; if (!failed && a != null) { res.Class = a.InnerText; } else if (node.LocalName == "swf") { failed = true; } break; case "ttf": res = new SamFont(); res.ResourceType = ResourceNodeType.Font; a = node.Attributes["import"]; if (a != null) { res.File = a.InnerText; } else { failed = true; } if (!failed) { res.File = a.InnerText; } a = node.Attributes["name"]; if (!failed && a == null) { failed = true; } AddFontRange((SamFont)res, node.ChildNodes); a = node.Attributes["class"]; if (a != null) { res.Class = a.InnerText; } break; case "sound": res = new SamResource(); res.ResourceType = ResourceNodeType.Sound; a = node.Attributes["import"]; if (a != null) { res.File = a.InnerText; } else { failed = true; } if (!failed) { res.File = a.InnerText; } a = node.Attributes["class"]; if (!failed && a != null) { res.Class = a.InnerText; } else { failed = true; } break; case "image": res = new SamResource(); res.ResourceType = ResourceNodeType.Image; a = node.Attributes["import"]; if (a != null) { res.File = a.InnerText; } else { failed = true; } if (!failed) { res.File = a.InnerText; } a = node.Attributes["class"]; if (!failed && a != null) { res.Class = a.InnerText; } else { failed = true; } break; case "binary": res = new SamResource(); res.ResourceType = ResourceNodeType.Binary; a = node.Attributes["import"]; if (a != null) { res.File = a.InnerText; } else { failed = true; } if (!failed) { res.File = a.InnerText; } a = node.Attributes["class"]; if (!failed && a != null) { res.Class = a.InnerText; } else { failed = true; } break; case "composite": res = new SamComposite(); res.ResourceType = ResourceNodeType.Compose; AddResources(res as ISamResources, node.ChildNodes, storeIn); break; } if (failed) { MessageBox.Show(LocaleHelper.GetErrorString( LocaleHelper.INVALID_FILE_ERROR)); return; } toContainer.Resources.Add(res); if (res.ResourceType != ResourceNodeType.Compose) { if (res.Class != null) { storeIn.Add(res); } } } }