public ILayerHandler GetLayerHandlerInstance(string key) { if (LayerHandlers.ContainsKey(key)) { return(GetLayerHandlerInstance(LayerHandlers[key])); } return(null); }
/// <summary> /// Manually registers a layer. Only needed externally. /// </summary> public bool RegisterLayer <T>() where T : ILayerHandler { var t = typeof(T); if (LayerHandlers.ContainsKey(t)) { return(false); } var meta = t.GetCustomAttribute <LayerHandlerMetaAttribute>() as LayerHandlerMetaAttribute; LayerHandlers.Add(t, new LayerHandlerMeta(t, meta)); return(true); }
public bool RegisterLayerHandler(LayerHandlerEntry entry, bool @default = true) { if (LayerHandlers.ContainsKey(entry.Key) || DefaultLayerHandlers.Contains(entry.Key)) { return(false); } LayerHandlers.Add(entry.Key, entry); if (@default) { DefaultLayerHandlers.Add(entry.Key); } return(true); }
public Type GetLayerHandlerType(string key) { return(LayerHandlers.ContainsKey(key) ? LayerHandlers[key].Type : null); }
public bool Initialize() { if (Initialized) { return(true); } processMonitor = new ActiveProcessMonitor(); runningProcessMonitor = new RunningProcessMonitor(); // Register all Application types in the assembly var profileTypes = from type in Assembly.GetExecutingAssembly().GetTypes() where type.BaseType == typeof(Application) && type != typeof(GenericApplication) let inst = (Application)Activator.CreateInstance(type) orderby inst.Config.Name select inst; foreach (var inst in profileTypes) { RegisterEvent(inst); } // Register all layer types that are in the Aurora.Settings.Layers namespace. // Do not register all that are inside the assembly since some are application-specific (e.g. minecraft health layer) var layerTypes = from type in Assembly.GetExecutingAssembly().GetTypes() where type.GetInterfaces().Contains(typeof(ILayerHandler)) let name = type.Name.CamelCaseToSpaceCase() let meta = type.GetCustomAttribute <LayerHandlerMetaAttribute>() where !type.IsGenericType where meta == null || !meta.Exclude select(type, meta); foreach (var(type, meta) in layerTypes) { LayerHandlers.Add(type, new LayerHandlerMeta(type, meta)); } LoadSettings(); LoadPlugins(); if (Directory.Exists(AdditionalProfilesPath)) { List <string> additionals = new List <string>(Directory.EnumerateDirectories(AdditionalProfilesPath)); foreach (var dir in additionals) { if (File.Exists(Path.Combine(dir, "settings.json"))) { string proccess_name = Path.GetFileName(dir); RegisterEvent(new GenericApplication(proccess_name)); } } } foreach (var profile in Events) { profile.Value.Initialize(); } this.InitUpdate(); // Listen for profile keybind triggers Global.InputEvents.KeyDown += CheckProfileKeybinds; Initialized = true; return(Initialized); }