using System; using Artemis.Storage.Entities.Profile.Abstract; namespace Artemis.Core; /// /// Represents a condition applied to a /// public interface ICondition : IDisposable, IStorageModel, IPluginFeatureDependent { /// /// Gets the entity used to store this condition /// public IConditionEntity Entity { get; } /// /// Gets the profile element this condition applies to /// public RenderProfileElement ProfileElement { get; } /// /// Gets a boolean indicating whether the condition is currently met /// bool IsMet { get; } /// /// Updates the condition /// void Update(); /// /// Updates the timeline according to the provided as the display condition sees fit. /// void UpdateTimeline(double deltaTime); /// /// Overrides the timeline to the provided as the display condition sees fit. /// void OverrideTimeline(TimeSpan position); } /// /// Represents a condition applied to a using a /// public interface INodeScriptCondition : ICondition { /// /// Gets the node script of this node script condition /// INodeScript? NodeScript { get; } /// /// Loads the node script this node script condition uses /// void LoadNodeScript(); }