using System.Collections.Generic;
using Artemis.Core.Models.Surface;
using Artemis.Core.Plugins.Models;
using SkiaSharp;
namespace Artemis.Core.Plugins.Abstract
{
///
///
/// Allows you to add support for new games/applications
///
public abstract class Module : Plugin
{
protected Module(PluginInfo pluginInfo) : base(pluginInfo)
{
}
///
/// The modules display name that's shown in the menu
///
public string DisplayName { get; protected set; }
///
/// Whether or not this module expands upon the main data model. If set to true any data in main data model can be
/// accessed by profiles in this module
///
public bool ExpandsMainDataModel { get; protected set; }
///
/// Called each frame when the module must update
///
/// Time since the last update
public abstract void Update(double deltaTime);
///
/// Called each frame when the module must render
///
/// Time since the last render
/// The RGB Surface to render to
///
public abstract void Render(double deltaTime, ArtemisSurface surface, SKCanvas canvas);
///
/// Called when the module's view model is being show, return view models here to create tabs for them
///
///
public abstract IEnumerable GetViewModels();
}
}