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(); } }