import { Coordinates, Location, MaterialItem } from '@gamepark/rules-api'; import { LocationDescription } from '../components'; import { ItemContext, Locator, MaterialContext } from './Locator'; /** * This Locator places items fan-shaped to mimic the ways we hold cards in our hands. */ export declare class HandLocator

extends Locator { constructor(clone?: Partial); /** * Items are place around the circle of an arc. This is the radius of the arc. Override {@link getRadius} to provide a dynamic radius. */ radius: number; /** * Provide the radius of the circle. Defaults to {@link radius} property. * @param _location Location to position * @param _context Context of the game * @returns the radius of the circle in cm */ getRadius(_location: Location, _context: MaterialContext): number; /** * The default angle of the hand items. For instance, 180 will display the hand oriented towards the bottom of the screen. */ baseAngle: number; /** * Function to override to provide a {@link baseAngle} that depends on the context * @param _location Location to position * @param _context Context of the game * @returns the default angle of the items */ getBaseAngle(_location: Location, _context: MaterialContext): number; /** * The maximum angle that is allowed between the first and the last items displayed. */ maxAngle: number; /** * Function to override to provide a {@link maxAngle} that depends on the context * @param _location Location to position * @param _context Context of the game * @returns the maximum angle between the first and the last items */ getMaxAngle(_location: Location, _context: MaterialContext): number; /** * The maximum angle between two consecutive items in the hand */ gapMaxAngle: number; /** * Function to override to provide a {@link gapMaxAngle} that depends on the context * @param _location Location to position * @param _context Context of the game * @returns The maximum angle between two consecutive items in the hand */ getGapMaxAngle(_location: Location, _context: MaterialContext): number; /** * The direction of the items displayed, for the first to the last index. Default is true. */ clockwise: boolean; /** * Function to override to provide a {@link clockwise} info that depends on the context * @param _location Location to position * @param _context Context of the game * @returns true if items should be displayed clockwise around the arc of circle. Default is true. */ isClockwise(_location: Location, _context: MaterialContext): boolean; /** * The Z-axis position difference between 2 consecutive items in the hand. Default is 0.05cm. */ deltaZ: number; /** * Function to override to provide a {@link deltaZ} that depends on the context * @param _location Location to position * @param _context Context of the game * @returns The Z-axis position difference between 2 consecutive items in the hand. Default is 0.05cm. */ getDeltaZ(_location: Location, _context: MaterialContext): number; getPositionDependencies(location: Location, context: MaterialContext): unknown; /** * See {@link Locator.getLocationCoordinates}. * @param location Location to position * @param context Context of the game * @param index Index of the item (or location) to place */ getLocationCoordinates(location: Location, context: MaterialContext, index?: number | undefined): Coordinates; getItemCoordinates(item: MaterialItem, context: ItemContext): Coordinates; /** * See {@link Locator.getRotateZ}. * @param location Location to position * @param context Context of the game * @param index Index of the item (or location) to place */ getRotateZ(location: Location, context: MaterialContext, index?: number | undefined): number; getItemRotateZ(item: MaterialItem, context: ItemContext): number; protected generateLocationDescriptionFromDraggedItem(_location: Location, context: ItemContext): LocationDescription; /** * See {@link Locator.getHoverTransform}. By default, display the item on top of others, straight, and twice as big. */ getHoverTransform(item: MaterialItem, context: ItemContext): string[]; }