using System; using UnityEngine; namespace Unity.VisualScripting { [PluginModule(required = true)] public abstract class PluginManifest : IPluginModule, IAboutable { protected PluginManifest(Plugin plugin) { this.plugin = plugin; } public virtual void Initialize() { } public virtual void LateInitialize() { } public Plugin plugin { get; } public abstract string name { get; } public abstract string author { get; } public Texture2D logo { get; private set; } public abstract string description { get; } public abstract SemanticVersion version { get; } public virtual string url => null; public virtual string authorLabel => "Author: "; public Texture2D authorLogo { get; private set; } public virtual string copyrightHolder => author; public virtual int copyrightYear => DateTime.Now.Year; public virtual string authorUrl => null; public SemanticVersion currentVersion => version; public SemanticVersion savedVersion { get { return plugin.configuration.savedVersion; } set { plugin.configuration.savedVersion = value; plugin.configuration.Save(); } } public bool versionMismatch => currentVersion != savedVersion; } }