public AddonSpace GetSpace(string spaceid) { WantCore(); if (m_loadedSpaces.ContainsKey(spaceid)) { return(m_loadedSpaces[spaceid]); } string[] itms = spaceid.Split(':'); AddonSpace res = null; AddonType type = FindAddonType(itms[0]); switch (itms[1]) { case "folder": res = new FolderAddonSpace(type, itms[2], GetCommonSpace(itms[0])); break; case "common": res = new CommonAddonSpace(type, GetPredefinedSpace(itms[0])); break; case "predefined": res = new PredefinedAddonSpace(type, GetStaticSpace(itms[0])); break; case "static": res = new StaticAddonSpace(type); break; default: throw new InternalError("DAE-00074 Addon Space ID cannot be parsed:" + spaceid); } m_loadedSpaces[res.SpaceId] = res; return(res); }
public AddonCreateFactory(AddonType adtype, string group, string grpname, Bitmap bitmap) { m_group = group; m_grpname = grpname; m_bitmap = bitmap; m_adtype = adtype; }
public void LoadFromXml(XmlElement xml) { Clear(); foreach (XmlElement x in xml.SelectNodes("Item")) { Add(AddonType.LoadAddon(x)); } }
public NewAddonForm(AddonType type) { InitializeComponent(); m_type = type; foreach (var hld in m_type.CommonSpace.GetAllAddons()) { cbxType.Items.Add(hld); } }
public static NamedAddonInstance Run(AddonType type) { var win = new NewAddonForm(type); if (win.ShowDialogEx() == DialogResult.OK) { return(new NamedAddonInstance(win.m_addon, win.tbxNewName.Text)); } return(null); }
private void RegisterType(AddonType adtype) { m_addonTypes[adtype.Name] = adtype; if (adtype.InterfaceType != null) { m_addonTypesByInterfaceType[adtype.InterfaceType] = adtype; } adtype.StaticSpace = (StaticAddonSpace)GetStaticSpace(adtype.Name); adtype.PredefinedSpace = (PredefinedAddonSpace)GetPredefinedSpace(adtype.Name); adtype.CommonSpace = (CommonAddonSpace)GetCommonSpace(adtype.Name); }
public static object PropertyFromString(PropertyInfo prop, string sval) { if (sval == null) { return(null); } if (prop.PropertyType == typeof(AddonHolder)) { foreach (RegisterItemTypeAttribute attr in prop.GetCustomAttributes(typeof(RegisterItemTypeAttribute), true)) { AddonType type = (AddonType)attr.AddonTypeClass.GetStaticPropertyOrField("Instance"); return(type.StaticSpace.FindHolder(sval)); } return(null); } else { return(ValueFromString(prop.PropertyType, sval)); } }
public override void RunCommand() { if (Entity == "entity") { foreach (var item in AddonRegister.Instance.GetAddonTypes()) { Console.Out.WriteLine(item.Name); } } else { AddonType type = AddonRegister.Instance.FindAddonType(Entity); string format = "{0,-30} | {1}"; Console.WriteLine(format, "Name", "Title"); Console.WriteLine("-----------------------------------------------------"); foreach (var item in type.CommonSpace.GetAllAddons()) { Console.WriteLine(format, item.Name, Texts.Get(item.Title)); } } }
private void WantAddons() { if (m_addons != null) { return; } m_addons = new List <IAddonInstance>(); string dir = AddonType.GetDirectory(); try { Directory.CreateDirectory(dir); } catch { } foreach (string fn in AddonType.GetFiles()) { var doc = new XmlDocument(); doc.Load(fn); var addon = AddonType.LoadAddon(doc.DocumentElement); var fitem = addon as IFileBasedAddonInstance; if (fitem != null) { fitem.AddonFileName = fn; } m_addons.Add(addon); } }
public AddonSpace(AddonType addontype, AddonSpace parent) { ParentSpace = parent; AddonType = addontype; }
public CollectionNamedAddonListEditor(AddonType adtype) : base(adtype) { }
public DirectoryAddonListEditor(AddonType adtype) : base(adtype) { }
public AddonListEditor(AddonType adtype) { m_adtype = adtype; }
public CommonAddonSpace(AddonType type, AddonSpace parent) : base(type, Path.Combine(Framework.AddonsDirectory, type.Name), parent) { }
public NamedAddonCollection(AddonType type) { m_addonType = type; }
public PredefinedAddonSpace(AddonType type, AddonSpace parent) : base(type, parent) { }
public static IAddonInstance Load(XmlElement xml) { AddonType adtype = AddonRegister.Instance.FindAddonType(xml.GetAttribute("adtype")); return(adtype.LoadAddon(xml)); }
public StaticAddonSpace(AddonType addontype) : base(addontype, null) { }
private void ProcessAssembly(Assembly assembly, AddonType adtype) { adtype.StaticSpace.AddAssembly(assembly); }
public override void GetThisAddons(List <AddonHolder> res) { AddonType.GetPredefinedAddons(res); }
public NamedAddonInstance(XmlElement xml, AddonType type) { this.LoadPropertiesCore(xml); Instance = type.LoadAddon(xml); }
public FolderAddonSpace(AddonType addontype, string folder, AddonSpace parent) : base(addontype, parent) { Folder = folder; }