using Robust.Shared.Serialization; namespace Content.Shared.Storage; [DataDefinition, Serializable, NetSerializable] public partial record struct ItemStorageLocation { /// /// The rotation, stored a cardinal direction in order to reduce rounding errors. /// [DataField("_rotation")] public Direction Direction; /// /// The rotation of the piece in storage. /// public Angle Rotation { get => Direction.ToAngle(); set => Direction = value.GetCardinalDir(); } /// /// Where the item is located in storage. /// [DataField] public Vector2i Position; public ItemStorageLocation(Angle rotation, Vector2i position) { Rotation = rotation; Position = position; } public bool Equals(ItemStorageLocation? other) { return Rotation == other?.Rotation && Position == other.Value.Position; } };