using Artemis.Core.Services;
namespace Artemis.Core.ScriptingProviders;
///
/// Represents a script running globally
///
public abstract class GlobalScript : Script
{
///
protected GlobalScript(ScriptConfiguration configuration) : base(configuration)
{
}
internal ScriptingService? ScriptingService { get; set; }
///
/// Called whenever the Artemis Core is about to update
///
/// Seconds passed since last update
public virtual void OnCoreUpdating(double deltaTime)
{
}
///
/// Called whenever the Artemis Core has been updated
///
/// Seconds passed since last update
public virtual void OnCoreUpdated(double deltaTime)
{
}
#region Overrides of Script
///
public override ScriptType ScriptType => ScriptType.Global;
///
internal override void InternalCleanup()
{
ScriptingService?.RemoveScript(ScriptConfiguration);
}
#endregion
}