using System; using Microsoft.Xna.Framework; using StardewValley; namespace StardewModdingAPI { /// Represents a cursor position in the different coordinate systems. public interface ICursorPosition : IEquatable { /********* ** Accessors *********/ /// The pixel position relative to the top-left corner of the in-game map, adjusted for zoom but not UI scaling. See also . Vector2 AbsolutePixels { get; } /// The pixel position relative to the top-left corner of the visible screen, adjusted for zoom but not UI scaling. See also . Vector2 ScreenPixels { get; } /// The tile position under the cursor relative to the top-left corner of the map. Vector2 Tile { get; } /// The tile position that the game considers under the cursor for purposes of clicking actions. This may be different than if that's too far from the player. Vector2 GrabTile { get; } /********* ** Public methods *********/ /// Get the , adjusted for UI scaling if needed. This is only different if is true. Vector2 GetScaledAbsolutePixels(); /// Get the , adjusted for UI scaling if needed. This is only different if is true. Vector2 GetScaledScreenPixels(); } }