using System.Numerics; using Robust.Client.Graphics; using Robust.Shared.Graphics.RSI; using Robust.Shared.Maths; namespace Robust.Client.GameObjects { [NotContentImplementable] public interface ISpriteLayer { SpriteComponent.DirectionOffset DirOffset { get; set; } RSI? Rsi { get; set; } RSI.StateId RsiState { get; set; } RSI? ActualRsi { get; } Texture? Texture { get; set; } Angle Rotation { get; set; } Vector2 Scale { get; set; } bool Visible { get; set; } Color Color { get; set; } float AnimationTime { get; set; } int AnimationFrame { get; } bool AutoAnimated { get; set; } RsiDirection EffectiveDirection(Angle worldRotation); /// /// Layer size in pixels. /// Don't account layer scale or sprite world transform. /// Vector2i PixelSize { get; } /// /// Calculate layer bounding box in sprite local-space coordinates. /// /// Bounding box in sprite local-space coordinates. Box2 CalculateBoundingBox(); } }