mirror of
https://github.com/Artemis-RGB/Artemis
synced 2026-11-11 03:19:56 +00:00
Modules - Added enable override mechanism
Profile modules - Added animated module enable/disable
This commit is contained in:
1 parent
73e992bbb7
commit
ed479abebc
21 files changed
+442
-122
No files matched your search
+3
-2
@@ -1,4 +1,5 @@
|
||||
using System.Diagnostics;
|
||||
using System;
|
||||
using System.Diagnostics;
|
||||
using System.IO;
|
||||
using System.Linq;
|
||||
using Artemis.Core.Extensions;
|
||||
@@ -39,7 +40,7 @@ namespace Artemis.Core.Plugins.Modules.ActivationRequirements
|
||||
|
||||
var processes = ProcessName != null ? Process.GetProcessesByName(ProcessName).Where(p => !p.HasExited) : Process.GetProcesses().Where(p => !p.HasExited);
|
||||
return Location != null
|
||||
? processes.Any(p => Path.GetDirectoryName(p.GetProcessFilename()) == Location)
|
||||
? processes.Any(p => string.Equals(Path.GetDirectoryName(p.GetProcessFilename()), Location, StringComparison.CurrentCultureIgnoreCase))
|
||||
: processes.Any();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -79,6 +79,12 @@ namespace Artemis.Core.Plugins.Modules
|
||||
/// </summary>
|
||||
public string DisplayIcon { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// A path to an image to use as the modules display icon that's shown in the menu.
|
||||
/// <para>If set, takes precedence over <see cref="DisplayIcon" /></para>
|
||||
/// </summary>
|
||||
public string DisplayIconPath { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Gets whether this module is activated. A module can only be active while its <see cref="ActivationRequirements" />
|
||||
/// are met
|
||||
@@ -138,14 +144,22 @@ namespace Artemis.Core.Plugins.Modules
|
||||
public abstract void Render(double deltaTime, ArtemisSurface surface, SKCanvas canvas, SKImageInfo canvasInfo);
|
||||
|
||||
/// <summary>
|
||||
/// Called when the <see cref="ActivationRequirements" /> are met
|
||||
/// Called when the <see cref="ActivationRequirements" /> are met or during an override
|
||||
/// </summary>
|
||||
public abstract void ModuleActivated();
|
||||
/// <param name="isOverride">
|
||||
/// If true, the activation was due to an override. This usually means the module was activated
|
||||
/// by the profile editor
|
||||
/// </param>
|
||||
public abstract void ModuleActivated(bool isOverride);
|
||||
|
||||
/// <summary>
|
||||
/// Called when the <see cref="ActivationRequirements" /> are no longer met
|
||||
/// Called when the <see cref="ActivationRequirements" /> are no longer met or during an override
|
||||
/// </summary>
|
||||
public abstract void ModuleDeactivated();
|
||||
/// <param name="isOverride">
|
||||
/// If true, the deactivation was due to an override. This usually means the module was deactivated
|
||||
/// by the profile editor
|
||||
/// </param>
|
||||
public abstract void ModuleDeactivated(bool isOverride);
|
||||
|
||||
/// <summary>
|
||||
/// Evaluates the activation requirements following the <see cref="ActivationRequirementMode" /> and returns the result
|
||||
@@ -163,22 +177,22 @@ namespace Artemis.Core.Plugins.Modules
|
||||
return false;
|
||||
}
|
||||
|
||||
internal virtual void Activate()
|
||||
internal virtual void Activate(bool isOverride)
|
||||
{
|
||||
if (IsActivated)
|
||||
return;
|
||||
|
||||
ModuleActivated();
|
||||
ModuleActivated(isOverride);
|
||||
IsActivated = true;
|
||||
}
|
||||
|
||||
internal virtual void Deactivate()
|
||||
internal virtual void Deactivate(bool isOverride)
|
||||
{
|
||||
if (!IsActivated)
|
||||
return;
|
||||
|
||||
IsActivated = false;
|
||||
ModuleDeactivated();
|
||||
ModuleDeactivated(isOverride);
|
||||
}
|
||||
|
||||
internal void ApplyToEntity()
|
||||
|
||||
@@ -193,9 +193,9 @@ namespace Artemis.Core.Plugins.Modules
|
||||
/// </summary>
|
||||
public bool AnimatingProfileChange { get; private set; }
|
||||
|
||||
internal override void Deactivate()
|
||||
internal override void Deactivate(bool isOverride)
|
||||
{
|
||||
base.Deactivate();
|
||||
base.Deactivate(isOverride);
|
||||
|
||||
var profile = ActiveProfile;
|
||||
ActiveProfile = null;
|
||||
|
||||
Reference in new issue
Block a user