Plugins - Added timed updates

Modules - Added option to disable updates while activation is overridden
Display conditions - Added SKColor support
Data bindings - Added SKColor support
This commit is contained in:
Robert committed 2020-09-16 20:17:54 +02:00
1 parent d9017c67b4
commit 2eb4d615ae
48 files changed
+269 -100

No files matched your search

+10 -3
View File
@@ -93,7 +93,13 @@ namespace Artemis.Core.Modules
/// Gets whether this module's activation was due to an override, can only be true if <see cref="IsActivated" /> is
/// true
/// </summary>
public bool IsActivatedOverride { get; set; }
public bool IsActivatedOverride { get; private set; }
/// <summary>
/// Gets whether this module should update if <see cref="IsActivatedOverride" /> is true
/// <para>Defaults to <c>true</c></para>
/// </summary>
public bool UpdateDuringActivationOverride { get; protected set; } = true;
/// <summary>
/// A list of activation requirements
@@ -180,10 +186,11 @@ namespace Artemis.Core.Modules
return false;
}
internal virtual void InternalUpdate(double deltaTime)
{
Update(deltaTime);
if (!IsActivatedOverride || UpdateDuringActivationOverride)
Update(deltaTime);
}
internal virtual void InternalRender(double deltaTime, ArtemisSurface surface, SKCanvas canvas, SKImageInfo canvasInfo)
@@ -141,7 +141,8 @@ namespace Artemis.Core.Modules
internal override void InternalUpdate(double deltaTime)
{
Update(deltaTime);
if (!IsActivatedOverride || UpdateDuringActivationOverride)
Update(deltaTime);
lock (this)
{
@@ -1,5 +1,6 @@
using System;
using System.Timers;
using Artemis.Core.Modules;
namespace Artemis.Core
{
@@ -53,6 +54,13 @@ namespace Artemis.Core
if (_timer != null)
return;
// Don't update during override if that is disabled on the module
if (PluginInfo.Instance is Module module)
{
if (module.IsActivatedOverride && !module.UpdateDuringActivationOverride)
return;
}
_lastEvent = DateTime.Now;
_timer = new Timer(Interval.TotalMilliseconds);
_timer.Elapsed += TimerOnElapsed;