Profiles - Reworked profile system

Sidebar - Redesigned sidebar with customizable categories
Profiles - Added the ability to configure custom profile icons
Profiles - Added the ability to activate multiple profiles for modules at once
Profiles - Added the ability to create profiles for no modules
Profiles - Added the ability to suspend a profile or an entire category
Profiles - Added profile activation conditions
Profiles - Added file-based importing/exporting
Profile editor - Condensed UI, removed tabs 
Profile editor - Disable condition operators until a left-side is picked
This commit is contained in:
Robert Beekman authored and GitHub committed 2021-06-03 22:34:43 +02:00
1 parent 4152c290d2
commit ceeaa4bf6d
164 files changed
+5019 -4220

No files matched your search

@@ -19,9 +19,9 @@ namespace Artemis.Core.Services
TimeSpan FrameTime { get; }
/// <summary>
/// Gets or sets whether modules are rendered each frame by calling their Render method
/// Gets or sets whether profiles are rendered each frame by calling their Render method
/// </summary>
bool ModuleRenderingDisabled { get; set; }
bool ProfileRenderingDisabled { get; set; }
/// <summary>
/// Gets or sets a list of startup arguments
@@ -38,11 +38,6 @@ namespace Artemis.Core.Services
/// </summary>
void Initialize();
/// <summary>
/// Plays the into animation profile defined in <c>Resources/intro-profile.json</c>
/// </summary>
void PlayIntroAnimation();
/// <summary>
/// Occurs the core has finished initializing
/// </summary>
@@ -1,5 +1,5 @@
using System;
using System.Threading.Tasks;
using System.Collections.Generic;
using Artemis.Core.Modules;
namespace Artemis.Core.Services
@@ -10,33 +10,29 @@ namespace Artemis.Core.Services
public interface IModuleService : IArtemisService
{
/// <summary>
/// Gets the current active module override. If set, all other modules are deactivated and only the
/// <see cref="ActiveModuleOverride" /> is active.
/// Updates all currently active modules
/// </summary>
Module? ActiveModuleOverride { get; }
/// <summary>
/// Changes the current <see cref="ActiveModuleOverride" /> and deactivates all other modules
/// </summary>
/// <param name="overrideModule"></param>
Task SetActiveModuleOverride(Module? overrideModule);
/// <param name="deltaTime"></param>
void UpdateActiveModules(double deltaTime);
/// <summary>
/// Evaluates every enabled module's activation requirements and activates/deactivates modules accordingly
/// </summary>
Task UpdateModuleActivation();
void UpdateModuleActivation();
/// <summary>
/// Updates the priority and priority category of the given module
/// Overrides activation on the provided module and restores regular activation to any remaining modules
/// </summary>
/// <param name="module">The module to update</param>
/// <param name="category">The new priority category of the module</param>
/// <param name="priority">The new priority of the module</param>
void UpdateModulePriority(Module module, ModulePriorityCategory category, int priority);
void SetActivationOverride(Module? module);
/// <summary>
/// Occurs when the priority of a module is updated.
/// Occurs whenever a module is activated
/// </summary>
event EventHandler? ModulePriorityUpdated;
event EventHandler<ModuleEventArgs> ModuleActivated;
/// <summary>
/// Occurs whenever a module is deactivated
/// </summary>
event EventHandler<ModuleEventArgs> ModuleDeactivated;
}
}