@gamepark/react-game 6.24.2 → 6.24.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/components/Avatar/Avatar.d.ts +4 -6
- package/dist/components/Avatar/Avatar.js +5 -4
- package/dist/components/Avatar/Avatar.js.map +1 -1
- package/dist/components/Avatar/ChatSpeechBubble.js +3 -2
- package/dist/components/Avatar/ChatSpeechBubble.js.map +1 -1
- package/dist/components/Avatar/SpeechBubble.d.ts +1 -0
- package/dist/components/Avatar/SpeechBubble.js +2 -1
- package/dist/components/Avatar/SpeechBubble.js.map +1 -1
- package/dist/components/GamePoints/GamePointIcon.js +1 -0
- package/dist/components/GamePoints/GamePointIcon.js.map +1 -1
- package/dist/components/GamePoints/GamePoints.js +1 -0
- package/dist/components/GamePoints/GamePoints.js.map +1 -1
- package/dist/components/GameProvider/GameContext.js +2 -1
- package/dist/components/GameProvider/GameContext.js.map +1 -1
- package/dist/components/GameProvider/GameProvider.js +3 -0
- package/dist/components/GameProvider/GameProvider.js.map +1 -1
- package/dist/components/Header/Header.d.ts +1 -0
- package/dist/components/Header/Header.js +3 -2
- package/dist/components/Header/Header.js.map +1 -1
- package/dist/components/Header/MaterialHeader.js +1 -0
- package/dist/components/Header/MaterialHeader.js.map +1 -1
- package/dist/components/ImagesLoader/ImagesLoader.js +1 -0
- package/dist/components/ImagesLoader/ImagesLoader.js.map +1 -1
- package/dist/components/JournalTabs/Chat/Chat.d.ts +1 -0
- package/dist/components/JournalTabs/Chat/ChatMessage.js +1 -0
- package/dist/components/JournalTabs/Chat/ChatMessage.js.map +1 -1
- package/dist/components/JournalTabs/Chat/ChatMessageAuthor.js +1 -0
- package/dist/components/JournalTabs/Chat/ChatMessageAuthor.js.map +1 -1
- package/dist/components/JournalTabs/Chat/ChatTextInput.js +1 -0
- package/dist/components/JournalTabs/Chat/ChatTextInput.js.map +1 -1
- package/dist/components/JournalTabs/Chat/CommonChat.js +1 -0
- package/dist/components/JournalTabs/Chat/CommonChat.js.map +1 -1
- package/dist/components/JournalTabs/Chat/SignInToChat.js +1 -0
- package/dist/components/JournalTabs/Chat/SignInToChat.js.map +1 -1
- package/dist/components/JournalTabs/History/GameOverHistory.js +1 -0
- package/dist/components/JournalTabs/History/GameOverHistory.js.map +1 -1
- package/dist/components/JournalTabs/History/History.js +2 -0
- package/dist/components/JournalTabs/History/History.js.map +1 -1
- package/dist/components/JournalTabs/History/HistoryEntry.js +1 -0
- package/dist/components/JournalTabs/History/HistoryEntry.js.map +1 -1
- package/dist/components/JournalTabs/History/StartGameHistory.js +1 -0
- package/dist/components/JournalTabs/History/StartGameHistory.js.map +1 -1
- package/dist/components/JournalTabs/JournalTabs.d.ts +1 -0
- package/dist/components/JournalTabs/JournalTabs.js +5 -1
- package/dist/components/JournalTabs/JournalTabs.js.map +1 -1
- package/dist/components/Letterbox/Letterbox.js +1 -0
- package/dist/components/Letterbox/Letterbox.js.map +1 -1
- package/dist/components/LoadingScreen/LoadingScreen.js +1 -0
- package/dist/components/LoadingScreen/LoadingScreen.js.map +1 -1
- package/dist/components/Picture/Picture.d.ts +1 -0
- package/dist/components/Picture/Picture.js +1 -0
- package/dist/components/Picture/Picture.js.map +1 -1
- package/dist/components/PlayerPanel/Counters.d.ts +1 -0
- package/dist/components/PlayerPanel/Counters.js +1 -0
- package/dist/components/PlayerPanel/Counters.js.map +1 -1
- package/dist/components/PlayerPanel/PlayerPanel.js +1 -0
- package/dist/components/PlayerPanel/PlayerPanel.js.map +1 -1
- package/dist/components/PlayerPanel/StyledPlayerPanel.d.ts +1 -0
- package/dist/components/PlayerPanel/StyledPlayerPanel.js +44 -16
- package/dist/components/PlayerPanel/StyledPlayerPanel.js.map +1 -1
- package/dist/components/PlayerTimer/PlayerTimer.d.ts +1 -0
- package/dist/components/PlayerTimer/PlayerTimer.js +1 -0
- package/dist/components/PlayerTimer/PlayerTimer.js.map +1 -1
- package/dist/components/buttons/PlayMoveButton/PlayMoveButton.js +1 -0
- package/dist/components/buttons/PlayMoveButton/PlayMoveButton.js.map +1 -1
- package/dist/components/buttons/ThemeButton/ThemeButton.d.ts +1 -0
- package/dist/components/buttons/UndoMovesButton/UndoMovesButton.d.ts +1 -0
- package/dist/components/dialogs/Dialog.d.ts +1 -0
- package/dist/components/dialogs/Dialog.js +3 -0
- package/dist/components/dialogs/Dialog.js.map +1 -1
- package/dist/components/dialogs/FailuresDialog.js +1 -0
- package/dist/components/dialogs/FailuresDialog.js.map +1 -1
- package/dist/components/dialogs/ResultDialog/RematchDisplay.js +1 -0
- package/dist/components/dialogs/ResultDialog/RematchDisplay.js.map +1 -1
- package/dist/components/dialogs/ResultDialog/RematchSection.js +1 -0
- package/dist/components/dialogs/ResultDialog/RematchSection.js.map +1 -1
- package/dist/components/dialogs/ResultDialog/ResultDialog.js +1 -0
- package/dist/components/dialogs/ResultDialog/ResultDialog.js.map +1 -1
- package/dist/components/dialogs/RulesDialog/LocationRulesDialogContent.js +1 -0
- package/dist/components/dialogs/RulesDialog/LocationRulesDialogContent.js.map +1 -1
- package/dist/components/dialogs/RulesDialog/MaterialRulesDialog.js +1 -0
- package/dist/components/dialogs/RulesDialog/MaterialRulesDialog.js.map +1 -1
- package/dist/components/dialogs/RulesDialog/MaterialRulesDialogContent.js +1 -0
- package/dist/components/dialogs/RulesDialog/MaterialRulesDialogContent.js.map +1 -1
- package/dist/components/dialogs/RulesDialog/RulesDialog.js +1 -0
- package/dist/components/dialogs/RulesDialog/RulesDialog.js.map +1 -1
- package/dist/components/dialogs/RulesDialog/RulesHelpDialogContent.js +1 -0
- package/dist/components/dialogs/RulesDialog/RulesHelpDialogContent.js.map +1 -1
- package/dist/components/material/ComponentDescription.d.ts +32 -0
- package/dist/components/material/ComponentDescription.js +15 -1
- package/dist/components/material/ComponentDescription.js.map +1 -1
- package/dist/components/material/Dices/CubicDiceDescription.d.ts +4 -4
- package/dist/components/material/Dices/CubicDiceDescription.js +6 -7
- package/dist/components/material/Dices/CubicDiceDescription.js.map +1 -1
- package/dist/components/material/DraggableMaterial.js +4 -0
- package/dist/components/material/DraggableMaterial.js.map +1 -1
- package/dist/components/material/FlatMaterial/BoardDescription.js +1 -1
- package/dist/components/material/FlatMaterial/CardDescription.js +3 -3
- package/dist/components/material/FlatMaterial/CardDescription.js.map +1 -1
- package/dist/components/material/FlatMaterial/FlatMaterial.d.ts +1 -0
- package/dist/components/material/FlatMaterial/FlatMaterial.js +2 -1
- package/dist/components/material/FlatMaterial/FlatMaterial.js.map +1 -1
- package/dist/components/material/FlatMaterial/MoneyDescription.d.ts +7 -0
- package/dist/components/material/FlatMaterial/MoneyDescription.js +39 -0
- package/dist/components/material/FlatMaterial/MoneyDescription.js.map +1 -0
- package/dist/components/material/FlatMaterial/TokenDescription.js +2 -2
- package/dist/components/material/FlatMaterial/index.d.ts +1 -0
- package/dist/components/material/FlatMaterial/index.js +1 -0
- package/dist/components/material/FlatMaterial/index.js.map +1 -1
- package/dist/components/material/GameTable/DynamicItemsDisplay.js +2 -1
- package/dist/components/material/GameTable/DynamicItemsDisplay.js.map +1 -1
- package/dist/components/material/GameTable/GameMaterialDisplay.js +1 -0
- package/dist/components/material/GameTable/GameMaterialDisplay.js.map +1 -1
- package/dist/components/material/GameTable/GameTable.d.ts +1 -0
- package/dist/components/material/GameTable/GameTable.js +1 -0
- package/dist/components/material/GameTable/GameTable.js.map +1 -1
- package/dist/components/material/GameTable/GameTableNavigation.js +1 -0
- package/dist/components/material/GameTable/GameTableNavigation.js.map +1 -1
- package/dist/components/material/GameTable/ItemDisplay.js +2 -1
- package/dist/components/material/GameTable/ItemDisplay.js.map +1 -1
- package/dist/components/material/GameTable/StaticItemsDisplay.d.ts +1 -0
- package/dist/components/material/GameTable/StaticLocationsDisplay.d.ts +1 -0
- package/dist/components/material/GameTable/focus/FocusProvider.js +1 -0
- package/dist/components/material/GameTable/focus/FocusProvider.js.map +1 -1
- package/dist/components/material/MaterialComponent.js +1 -0
- package/dist/components/material/MaterialComponent.js.map +1 -1
- package/dist/components/material/MaterialDescription.d.ts +119 -0
- package/dist/components/material/MaterialDescription.js +107 -1
- package/dist/components/material/MaterialDescription.js.map +1 -1
- package/dist/components/material/MobileMaterialDescription.d.ts +1 -0
- package/dist/components/material/MobileMaterialDescription.js +2 -1
- package/dist/components/material/MobileMaterialDescription.js.map +1 -1
- package/dist/components/material/Writing/WritingDescription.js +2 -1
- package/dist/components/material/Writing/WritingDescription.js.map +1 -1
- package/dist/components/material/animations/CreateItemAnimations.js +1 -1
- package/dist/components/material/animations/DeleteItemAnimations.js +5 -3
- package/dist/components/material/animations/DeleteItemAnimations.js.map +1 -1
- package/dist/components/material/animations/ItemAnimations.js +1 -1
- package/dist/components/material/animations/MaterialAnimations.js +1 -1
- package/dist/components/material/animations/MaterialGameAnimations.js +2 -2
- package/dist/components/material/animations/MoveItemAnimations.js +7 -5
- package/dist/components/material/animations/MoveItemAnimations.js.map +1 -1
- package/dist/components/material/animations/MoveItemAtOnceAnimations.js +2 -1
- package/dist/components/material/animations/MoveItemAtOnceAnimations.js.map +1 -1
- package/dist/components/material/animations/RollItemAnimations.js +4 -1
- package/dist/components/material/animations/RollItemAnimations.js.map +1 -1
- package/dist/components/material/animations/ShuffleAnimations.js +1 -1
- package/dist/components/material/animations/isMovedOrDeletedItem.util.d.ts +1 -1
- package/dist/components/material/animations/isMovedOrDeletedItem.util.js +1 -4
- package/dist/components/material/animations/isMovedOrDeletedItem.util.js.map +1 -1
- package/dist/components/material/animations/rotations.utils.js +23 -12
- package/dist/components/material/animations/rotations.utils.js.map +1 -1
- package/dist/components/material/locations/DropAreaDescription.js +1 -1
- package/dist/components/material/locations/LocationComponent.js +2 -1
- package/dist/components/material/locations/LocationComponent.js.map +1 -1
- package/dist/components/material/locations/LocationDescription.d.ts +7 -0
- package/dist/components/material/locations/LocationDescription.js +8 -1
- package/dist/components/material/locations/LocationDescription.js.map +1 -1
- package/dist/components/material/locations/LocationDisplay.js +1 -0
- package/dist/components/material/locations/LocationDisplay.js.map +1 -1
- package/dist/components/material/locations/SimpleDropArea.js +1 -0
- package/dist/components/material/locations/SimpleDropArea.js.map +1 -1
- package/dist/components/menus/EjectPlayer/EjectPlayerButton.js +1 -0
- package/dist/components/menus/EjectPlayer/EjectPlayerButton.js.map +1 -1
- package/dist/components/menus/EjectPlayer/EjectPlayerDialog.js +1 -0
- package/dist/components/menus/EjectPlayer/EjectPlayerDialog.js.map +1 -1
- package/dist/components/menus/EjectPlayer/EjectPlayerPopButton.js +1 -0
- package/dist/components/menus/EjectPlayer/EjectPlayerPopButton.js.map +1 -1
- package/dist/components/menus/Fullscreen/FullscreenButton.js +1 -0
- package/dist/components/menus/Fullscreen/FullscreenButton.js.map +1 -1
- package/dist/components/menus/Fullscreen/FullscreenDialog.js +1 -0
- package/dist/components/menus/Fullscreen/FullscreenDialog.js.map +1 -1
- package/dist/components/menus/Fullscreen/FullscreenPopButton.js +1 -0
- package/dist/components/menus/Fullscreen/FullscreenPopButton.js.map +1 -1
- package/dist/components/menus/GiveUpButton/GiveUpButton.js +1 -0
- package/dist/components/menus/GiveUpButton/GiveUpButton.js.map +1 -1
- package/dist/components/menus/Menu/Menu.js +1 -0
- package/dist/components/menus/Menu/Menu.js.map +1 -1
- package/dist/components/menus/Menu/MenuPopButton.js +1 -0
- package/dist/components/menus/Menu/MenuPopButton.js.map +1 -1
- package/dist/components/menus/Menu/NavButton.d.ts +1 -0
- package/dist/components/menus/PlayerQuit/TrackPlayersQuit.js +1 -0
- package/dist/components/menus/PlayerQuit/TrackPlayersQuit.js.map +1 -1
- package/dist/components/menus/RestartTutorialButton/RestartTutorialButton.js +1 -0
- package/dist/components/menus/RestartTutorialButton/RestartTutorialButton.js.map +1 -1
- package/dist/components/menus/Result/ResultButton.js +1 -0
- package/dist/components/menus/Result/ResultButton.js.map +1 -1
- package/dist/components/menus/Result/ResultPopButton.js +1 -0
- package/dist/components/menus/Result/ResultPopButton.js.map +1 -1
- package/dist/components/menus/SoundButton/SoundButton.js +1 -0
- package/dist/components/menus/SoundButton/SoundButton.js.map +1 -1
- package/dist/components/menus/TimeStatsButton/TimeStatsButton.js +1 -0
- package/dist/components/menus/TimeStatsButton/TimeStatsButton.js.map +1 -1
- package/dist/components/menus/UndoButton/UndoButton.js +1 -0
- package/dist/components/menus/UndoButton/UndoButton.js.map +1 -1
- package/dist/components/menus/UndoButton/UndoPopButton.js +1 -0
- package/dist/components/menus/UndoButton/UndoPopButton.js.map +1 -1
- package/dist/components/tutorial/MaterialTutorial.js +1 -1
- package/dist/components/tutorial/MaterialTutorialDisplay.js +1 -0
- package/dist/components/tutorial/MaterialTutorialDisplay.js.map +1 -1
- package/dist/components/tutorial/TutorialRulesWrapper.js +1 -0
- package/dist/components/tutorial/TutorialRulesWrapper.js.map +1 -1
- package/dist/hooks/useFullscreen.js +1 -0
- package/dist/hooks/useFullscreen.js.map +1 -1
- package/dist/hooks/useOpponentWithMaxTime.d.ts +3 -0
- package/dist/hooks/useOpponentWithMaxTime.js +3 -0
- package/dist/hooks/useOpponentWithMaxTime.js.map +1 -1
- package/dist/hooks/usePlayerTime.js +1 -1
- package/dist/hooks/usePlayerTime.js.map +1 -1
- package/dist/hooks/useResultText.js +1 -0
- package/dist/hooks/useResultText.js.map +1 -1
- package/dist/hooks/useSound.js +1 -0
- package/dist/hooks/useSound.js.map +1 -1
- package/dist/hooks/useWebP.js +2 -2
- package/dist/hooks/useWebP.js.map +1 -1
- package/dist/hooks/useZoomToElements.d.ts +3 -0
- package/dist/hooks/useZoomToElements.js +3 -0
- package/dist/hooks/useZoomToElements.js.map +1 -1
- package/dist/locators/DeckLocator.d.ts +3 -0
- package/dist/locators/DeckLocator.js +4 -1
- package/dist/locators/DeckLocator.js.map +1 -1
- package/dist/locators/FlexLocator.d.ts +39 -0
- package/dist/locators/FlexLocator.js +31 -1
- package/dist/locators/FlexLocator.js.map +1 -1
- package/dist/locators/HandLocator.d.ts +72 -0
- package/dist/locators/HandLocator.js +73 -1
- package/dist/locators/HandLocator.js.map +1 -1
- package/dist/locators/ListLocator.d.ts +36 -0
- package/dist/locators/ListLocator.js +28 -1
- package/dist/locators/ListLocator.js.map +1 -1
- package/dist/locators/Locator.d.ts +199 -1
- package/dist/locators/Locator.js +189 -1
- package/dist/locators/Locator.js.map +1 -1
- package/dist/locators/PileLocator.d.ts +30 -0
- package/dist/locators/PileLocator.js +31 -1
- package/dist/locators/PileLocator.js.map +1 -1
- package/dist/utilities/DeepPartial.d.ts +3 -0
- package/dist/utilities/combineEventListeners.d.ts +6 -0
- package/dist/utilities/combineEventListeners.js +6 -0
- package/dist/utilities/combineEventListeners.js.map +1 -1
- package/dist/utilities/findIfUnique.util.d.ts +6 -0
- package/dist/utilities/findIfUnique.util.js +6 -0
- package/dist/utilities/findIfUnique.util.js.map +1 -1
- package/dist/utilities/translation.util.d.ts +5 -0
- package/dist/utilities/translation.util.js +5 -0
- package/dist/utilities/translation.util.js.map +1 -1
- package/dist/utilities/zoom-pan-pinch/animations.constants.js +20 -0
- package/dist/utilities/zoom-pan-pinch/animations.constants.js.map +1 -1
- package/dist/utilities/zoom-pan-pinch/animations.util.js +7 -0
- package/dist/utilities/zoom-pan-pinch/animations.util.js.map +1 -1
- package/dist/utilities/zoom-pan-pinch/bounds.util.d.ts +10 -0
- package/dist/utilities/zoom-pan-pinch/bounds.util.js +8 -0
- package/dist/utilities/zoom-pan-pinch/bounds.util.js.map +1 -1
- package/dist/utilities/zoom-pan-pinch/calculation.util.d.ts +12 -0
- package/dist/utilities/zoom-pan-pinch/calculation.util.js +12 -0
- package/dist/utilities/zoom-pan-pinch/calculation.util.js.map +1 -1
- package/dist/utilities/zoom-pan-pinch/index.d.ts +4 -0
- package/dist/utilities/zoom-pan-pinch/index.js +4 -0
- package/dist/utilities/zoom-pan-pinch/index.js.map +1 -1
- package/dist/utilities/zoom-pan-pinch/zoom.util.d.ts +3 -0
- package/dist/utilities/zoom-pan-pinch/zoom.util.js +3 -0
- package/dist/utilities/zoom-pan-pinch/zoom.util.js.map +1 -1
- package/package.json +3 -3
|
@@ -1,24 +1,96 @@
|
|
|
1
1
|
import { Coordinates, Location, MaterialItem } from '@gamepark/rules-api';
|
|
2
2
|
import { LocationDescription } from '../components';
|
|
3
3
|
import { ItemContext, Locator, MaterialContext } from './Locator';
|
|
4
|
+
/**
|
|
5
|
+
* This Locator places items fan-shaped to mimic the ways we hold cards in our hands.
|
|
6
|
+
*/
|
|
4
7
|
export declare class HandLocator<P extends number = number, M extends number = number, L extends number = number> extends Locator<P, M, L> {
|
|
5
8
|
constructor(clone?: Partial<HandLocator>);
|
|
9
|
+
/**
|
|
10
|
+
* Items are place around the circle of an arc. This is the radius of the arc. Override {@link getRadius} to provide a dynamic radius.
|
|
11
|
+
*/
|
|
6
12
|
radius: number;
|
|
13
|
+
/**
|
|
14
|
+
* Provide the radius of the circle. Defaults to {@link radius} property.
|
|
15
|
+
* @param _location Location to position
|
|
16
|
+
* @param _context Context of the game
|
|
17
|
+
* @returns the radius of the circle in cm
|
|
18
|
+
*/
|
|
7
19
|
getRadius(_location: Location<P, L>, _context: MaterialContext<P, M, L>): number;
|
|
20
|
+
/**
|
|
21
|
+
* The default angle of the hand items. For instance, 180 will display the hand oriented towards the bottom of the screen.
|
|
22
|
+
*/
|
|
8
23
|
baseAngle: number;
|
|
24
|
+
/**
|
|
25
|
+
* Function to override to provide a {@link baseAngle} that depends on the context
|
|
26
|
+
* @param _location Location to position
|
|
27
|
+
* @param _context Context of the game
|
|
28
|
+
* @returns the default angle of the items
|
|
29
|
+
*/
|
|
9
30
|
getBaseAngle(_location: Location<P, L>, _context: MaterialContext<P, M, L>): number;
|
|
31
|
+
/**
|
|
32
|
+
* The maximum angle that is allowed between the first and the last items displayed.
|
|
33
|
+
*/
|
|
10
34
|
maxAngle: number;
|
|
35
|
+
/**
|
|
36
|
+
* Function to override to provide a {@link maxAngle} that depends on the context
|
|
37
|
+
* @param _location Location to position
|
|
38
|
+
* @param _context Context of the game
|
|
39
|
+
* @returns the maximum angle between the first and the last items
|
|
40
|
+
*/
|
|
11
41
|
getMaxAngle(_location: Location<P, L>, _context: MaterialContext<P, M, L>): number;
|
|
42
|
+
/**
|
|
43
|
+
* The maximum angle between two consecutive items in the hand
|
|
44
|
+
*/
|
|
12
45
|
gapMaxAngle: number;
|
|
46
|
+
/**
|
|
47
|
+
* Function to override to provide a {@link gapMaxAngle} that depends on the context
|
|
48
|
+
* @param _location Location to position
|
|
49
|
+
* @param _context Context of the game
|
|
50
|
+
* @returns The maximum angle between two consecutive items in the hand
|
|
51
|
+
*/
|
|
13
52
|
getGapMaxAngle(_location: Location<P, L>, _context: MaterialContext<P, M, L>): number;
|
|
53
|
+
/**
|
|
54
|
+
* The direction of the items displayed, for the first to the last index. Default is true.
|
|
55
|
+
*/
|
|
14
56
|
clockwise: boolean;
|
|
57
|
+
/**
|
|
58
|
+
* Function to override to provide a {@link clockwise} info that depends on the context
|
|
59
|
+
* @param _location Location to position
|
|
60
|
+
* @param _context Context of the game
|
|
61
|
+
* @returns true if items should be displayed clockwise around the arc of circle. Default is true.
|
|
62
|
+
*/
|
|
15
63
|
isClockwise(_location: Location<P, L>, _context: MaterialContext<P, M, L>): boolean;
|
|
64
|
+
/**
|
|
65
|
+
* The Z-axis position difference between 2 consecutive items in the hand. Default is 0.05cm.
|
|
66
|
+
*/
|
|
16
67
|
deltaZ: number;
|
|
68
|
+
/**
|
|
69
|
+
* Function to override to provide a {@link deltaZ} that depends on the context
|
|
70
|
+
* @param _location Location to position
|
|
71
|
+
* @param _context Context of the game
|
|
72
|
+
* @returns The Z-axis position difference between 2 consecutive items in the hand. Default is 0.05cm.
|
|
73
|
+
*/
|
|
17
74
|
getDeltaZ(_location: Location<P, L>, _context: MaterialContext<P, M, L>): number;
|
|
75
|
+
/**
|
|
76
|
+
* See {@link Locator.getLocationCoordinates}.
|
|
77
|
+
* @param location Location to position
|
|
78
|
+
* @param context Context of the game
|
|
79
|
+
* @param index Index of the item (or location) to place
|
|
80
|
+
*/
|
|
18
81
|
getLocationCoordinates(location: Location<P, L>, context: MaterialContext<P, M, L>, index?: number | undefined): Coordinates;
|
|
19
82
|
getItemCoordinates(item: MaterialItem<P, L>, context: ItemContext<P, M, L>): Coordinates;
|
|
83
|
+
/**
|
|
84
|
+
* See {@link Locator.getRotateZ}.
|
|
85
|
+
* @param location Location to position
|
|
86
|
+
* @param context Context of the game
|
|
87
|
+
* @param index Index of the item (or location) to place
|
|
88
|
+
*/
|
|
20
89
|
getRotateZ(location: Location<P, L>, context: MaterialContext<P, M, L>, index?: number | undefined): number;
|
|
21
90
|
getItemRotateZ(item: MaterialItem<P, L>, context: ItemContext<P, M, L>): number;
|
|
22
91
|
protected generateLocationDescriptionFromDraggedItem(_location: Location<P, L>, context: ItemContext<P, M, L>): LocationDescription<P, M, L>;
|
|
92
|
+
/**
|
|
93
|
+
* See {@link Locator.getHoverTransform}. By default, display the item on top of others, straight, and twice as big.
|
|
94
|
+
*/
|
|
23
95
|
getHoverTransform(item: MaterialItem<P, L>, context: ItemContext<P, M, L>): string[];
|
|
24
96
|
}
|
|
@@ -18,37 +18,100 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
18
18
|
exports.HandLocator = void 0;
|
|
19
19
|
var components_1 = require("../components");
|
|
20
20
|
var Locator_1 = require("./Locator");
|
|
21
|
-
|
|
21
|
+
/**
|
|
22
|
+
* This Locator places items fan-shaped to mimic the ways we hold cards in our hands.
|
|
23
|
+
*/
|
|
24
|
+
var HandLocator = /** @class */ (function (_super) {
|
|
22
25
|
__extends(HandLocator, _super);
|
|
23
26
|
function HandLocator(clone) {
|
|
24
27
|
var _this = _super.call(this) || this;
|
|
28
|
+
/**
|
|
29
|
+
* Items are place around the circle of an arc. This is the radius of the arc. Override {@link getRadius} to provide a dynamic radius.
|
|
30
|
+
*/
|
|
25
31
|
_this.radius = 100;
|
|
32
|
+
/**
|
|
33
|
+
* The default angle of the hand items. For instance, 180 will display the hand oriented towards the bottom of the screen.
|
|
34
|
+
*/
|
|
26
35
|
_this.baseAngle = 0;
|
|
36
|
+
/**
|
|
37
|
+
* The maximum angle that is allowed between the first and the last items displayed.
|
|
38
|
+
*/
|
|
27
39
|
_this.maxAngle = 15;
|
|
40
|
+
/**
|
|
41
|
+
* The maximum angle between two consecutive items in the hand
|
|
42
|
+
*/
|
|
28
43
|
_this.gapMaxAngle = 3;
|
|
44
|
+
/**
|
|
45
|
+
* The direction of the items displayed, for the first to the last index. Default is true.
|
|
46
|
+
*/
|
|
29
47
|
_this.clockwise = true;
|
|
48
|
+
/**
|
|
49
|
+
* The Z-axis position difference between 2 consecutive items in the hand. Default is 0.05cm.
|
|
50
|
+
*/
|
|
30
51
|
_this.deltaZ = 0.05;
|
|
31
52
|
Object.assign(_this, clone);
|
|
32
53
|
return _this;
|
|
33
54
|
}
|
|
55
|
+
/**
|
|
56
|
+
* Provide the radius of the circle. Defaults to {@link radius} property.
|
|
57
|
+
* @param _location Location to position
|
|
58
|
+
* @param _context Context of the game
|
|
59
|
+
* @returns the radius of the circle in cm
|
|
60
|
+
*/
|
|
34
61
|
HandLocator.prototype.getRadius = function (_location, _context) {
|
|
35
62
|
return this.radius;
|
|
36
63
|
};
|
|
64
|
+
/**
|
|
65
|
+
* Function to override to provide a {@link baseAngle} that depends on the context
|
|
66
|
+
* @param _location Location to position
|
|
67
|
+
* @param _context Context of the game
|
|
68
|
+
* @returns the default angle of the items
|
|
69
|
+
*/
|
|
37
70
|
HandLocator.prototype.getBaseAngle = function (_location, _context) {
|
|
38
71
|
return this.baseAngle;
|
|
39
72
|
};
|
|
73
|
+
/**
|
|
74
|
+
* Function to override to provide a {@link maxAngle} that depends on the context
|
|
75
|
+
* @param _location Location to position
|
|
76
|
+
* @param _context Context of the game
|
|
77
|
+
* @returns the maximum angle between the first and the last items
|
|
78
|
+
*/
|
|
40
79
|
HandLocator.prototype.getMaxAngle = function (_location, _context) {
|
|
41
80
|
return this.maxAngle;
|
|
42
81
|
};
|
|
82
|
+
/**
|
|
83
|
+
* Function to override to provide a {@link gapMaxAngle} that depends on the context
|
|
84
|
+
* @param _location Location to position
|
|
85
|
+
* @param _context Context of the game
|
|
86
|
+
* @returns The maximum angle between two consecutive items in the hand
|
|
87
|
+
*/
|
|
43
88
|
HandLocator.prototype.getGapMaxAngle = function (_location, _context) {
|
|
44
89
|
return this.gapMaxAngle;
|
|
45
90
|
};
|
|
91
|
+
/**
|
|
92
|
+
* Function to override to provide a {@link clockwise} info that depends on the context
|
|
93
|
+
* @param _location Location to position
|
|
94
|
+
* @param _context Context of the game
|
|
95
|
+
* @returns true if items should be displayed clockwise around the arc of circle. Default is true.
|
|
96
|
+
*/
|
|
46
97
|
HandLocator.prototype.isClockwise = function (_location, _context) {
|
|
47
98
|
return this.clockwise;
|
|
48
99
|
};
|
|
100
|
+
/**
|
|
101
|
+
* Function to override to provide a {@link deltaZ} that depends on the context
|
|
102
|
+
* @param _location Location to position
|
|
103
|
+
* @param _context Context of the game
|
|
104
|
+
* @returns The Z-axis position difference between 2 consecutive items in the hand. Default is 0.05cm.
|
|
105
|
+
*/
|
|
49
106
|
HandLocator.prototype.getDeltaZ = function (_location, _context) {
|
|
50
107
|
return this.deltaZ;
|
|
51
108
|
};
|
|
109
|
+
/**
|
|
110
|
+
* See {@link Locator.getLocationCoordinates}.
|
|
111
|
+
* @param location Location to position
|
|
112
|
+
* @param context Context of the game
|
|
113
|
+
* @param index Index of the item (or location) to place
|
|
114
|
+
*/
|
|
52
115
|
HandLocator.prototype.getLocationCoordinates = function (location, context, index) {
|
|
53
116
|
if (index === void 0) { index = this.getLocationIndex(location, context); }
|
|
54
117
|
var _a = this.getCoordinates(location, context), _b = _a.x, x = _b === void 0 ? 0 : _b, _c = _a.y, y = _c === void 0 ? 0 : _c, _d = _a.z, z = _d === void 0 ? 0 : _d;
|
|
@@ -67,6 +130,12 @@ var HandLocator = (function (_super) {
|
|
|
67
130
|
HandLocator.prototype.getItemCoordinates = function (item, context) {
|
|
68
131
|
return this.getLocationCoordinates(item.location, context, this.getItemIndex(item, context));
|
|
69
132
|
};
|
|
133
|
+
/**
|
|
134
|
+
* See {@link Locator.getRotateZ}.
|
|
135
|
+
* @param location Location to position
|
|
136
|
+
* @param context Context of the game
|
|
137
|
+
* @param index Index of the item (or location) to place
|
|
138
|
+
*/
|
|
70
139
|
HandLocator.prototype.getRotateZ = function (location, context, index) {
|
|
71
140
|
if (index === void 0) { index = this.getLocationIndex(location, context); }
|
|
72
141
|
var baseAngle = this.getBaseAngle(location, context);
|
|
@@ -96,6 +165,9 @@ var HandLocator = (function (_super) {
|
|
|
96
165
|
borderRadius: borderRadius
|
|
97
166
|
});
|
|
98
167
|
};
|
|
168
|
+
/**
|
|
169
|
+
* See {@link Locator.getHoverTransform}. By default, display the item on top of others, straight, and twice as big.
|
|
170
|
+
*/
|
|
99
171
|
HandLocator.prototype.getHoverTransform = function (item, context) {
|
|
100
172
|
return ['translateZ(10em)', "rotateZ(".concat(-this.getItemRotateZ(item, context)).concat(this.rotationUnit, ")"), 'scale(2)'];
|
|
101
173
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"HandLocator.js","sourceRoot":"","sources":["../../src/locators/HandLocator.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;AACA,4CAAyF;AACzF,qCAAiE;
|
|
1
|
+
{"version":3,"file":"HandLocator.js","sourceRoot":"","sources":["../../src/locators/HandLocator.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,14 +1,50 @@
|
|
|
1
1
|
import { Coordinates, Location, MaterialItem, XYCoordinates } from '@gamepark/rules-api';
|
|
2
2
|
import { LocationDescription } from '../components';
|
|
3
3
|
import { ItemContext, Locator, MaterialContext } from './Locator';
|
|
4
|
+
/**
|
|
5
|
+
* This Locator places items at regular intervals.
|
|
6
|
+
*/
|
|
4
7
|
export declare class ListLocator<P extends number = number, M extends number = number, L extends number = number> extends Locator<P, M, L> {
|
|
5
8
|
constructor(clone?: Partial<ListLocator>);
|
|
9
|
+
/**
|
|
10
|
+
* The default gap between 2 consecutive items
|
|
11
|
+
*/
|
|
6
12
|
gap?: Partial<Coordinates>;
|
|
13
|
+
/**
|
|
14
|
+
* Function to override to provide a {@link gap} that depends on the context
|
|
15
|
+
* @param _location Location to position
|
|
16
|
+
* @param _context Context of the game
|
|
17
|
+
* @returns The default gap between 2 consecutive items
|
|
18
|
+
*/
|
|
7
19
|
getGap(_location: Location<P, L>, _context: MaterialContext<P, M, L>): Partial<Coordinates>;
|
|
20
|
+
/**
|
|
21
|
+
* The maximum number of items that can be displayed in the list before the gap between items is reduced to fill in the same space.
|
|
22
|
+
*/
|
|
8
23
|
maxCount?: number;
|
|
24
|
+
/**
|
|
25
|
+
* Function to override to provide a {@link maxCount that depends on the context
|
|
26
|
+
* @param _location Location to position
|
|
27
|
+
* @param _context Context of the game
|
|
28
|
+
* @returns The maximum number of items that can be displayed in the list before the gap between items is reduced to fill in the same space.
|
|
29
|
+
*/
|
|
9
30
|
getMaxCount(_location: Location<P, L>, _context: MaterialContext<P, M, L>): number | undefined;
|
|
31
|
+
/**
|
|
32
|
+
* The maximum gap between the first and the last items. See {@link maxCount} to get a maxGap based on a max number of items.
|
|
33
|
+
*/
|
|
10
34
|
maxGap?: Partial<Coordinates>;
|
|
35
|
+
/**
|
|
36
|
+
* Function to override to provide a {@link maxGap} that depends on the context
|
|
37
|
+
* @param location Location to position
|
|
38
|
+
* @param context Context of the game
|
|
39
|
+
* @returns The maximum gap between the first and the last items
|
|
40
|
+
*/
|
|
11
41
|
getMaxGap(location: Location<P, L>, context: MaterialContext<P, M, L>): Partial<Coordinates>;
|
|
42
|
+
/**
|
|
43
|
+
* The number of items displayed in the list
|
|
44
|
+
* @param location Location area of the items
|
|
45
|
+
* @param context Context of the game
|
|
46
|
+
* @returns number of items in the location area
|
|
47
|
+
*/
|
|
12
48
|
countListItems(location: Location<P, L>, context: MaterialContext<P, M, L>): number;
|
|
13
49
|
protected getAreaCoordinates(location: Location<P, L>, context: MaterialContext<P, M, L>): Partial<Coordinates>;
|
|
14
50
|
protected getCurrentMaxGap(location: Location<P, L>, context: MaterialContext<P, M, L>): XYCoordinates;
|
|
@@ -18,20 +18,41 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
18
18
|
exports.ListLocator = void 0;
|
|
19
19
|
var components_1 = require("../components");
|
|
20
20
|
var Locator_1 = require("./Locator");
|
|
21
|
-
|
|
21
|
+
/**
|
|
22
|
+
* This Locator places items at regular intervals.
|
|
23
|
+
*/
|
|
24
|
+
var ListLocator = /** @class */ (function (_super) {
|
|
22
25
|
__extends(ListLocator, _super);
|
|
23
26
|
function ListLocator(clone) {
|
|
24
27
|
var _this = _super.call(this) || this;
|
|
25
28
|
Object.assign(_this, clone);
|
|
26
29
|
return _this;
|
|
27
30
|
}
|
|
31
|
+
/**
|
|
32
|
+
* Function to override to provide a {@link gap} that depends on the context
|
|
33
|
+
* @param _location Location to position
|
|
34
|
+
* @param _context Context of the game
|
|
35
|
+
* @returns The default gap between 2 consecutive items
|
|
36
|
+
*/
|
|
28
37
|
ListLocator.prototype.getGap = function (_location, _context) {
|
|
29
38
|
var _a;
|
|
30
39
|
return (_a = this.gap) !== null && _a !== void 0 ? _a : {};
|
|
31
40
|
};
|
|
41
|
+
/**
|
|
42
|
+
* Function to override to provide a {@link maxCount that depends on the context
|
|
43
|
+
* @param _location Location to position
|
|
44
|
+
* @param _context Context of the game
|
|
45
|
+
* @returns The maximum number of items that can be displayed in the list before the gap between items is reduced to fill in the same space.
|
|
46
|
+
*/
|
|
32
47
|
ListLocator.prototype.getMaxCount = function (_location, _context) {
|
|
33
48
|
return this.maxCount;
|
|
34
49
|
};
|
|
50
|
+
/**
|
|
51
|
+
* Function to override to provide a {@link maxGap} that depends on the context
|
|
52
|
+
* @param location Location to position
|
|
53
|
+
* @param context Context of the game
|
|
54
|
+
* @returns The maximum gap between the first and the last items
|
|
55
|
+
*/
|
|
35
56
|
ListLocator.prototype.getMaxGap = function (location, context) {
|
|
36
57
|
if (this.maxGap)
|
|
37
58
|
return this.maxGap;
|
|
@@ -45,6 +66,12 @@ var ListLocator = (function (_super) {
|
|
|
45
66
|
z: z ? z * (maxCount - 1) : z
|
|
46
67
|
};
|
|
47
68
|
};
|
|
69
|
+
/**
|
|
70
|
+
* The number of items displayed in the list
|
|
71
|
+
* @param location Location area of the items
|
|
72
|
+
* @param context Context of the game
|
|
73
|
+
* @returns number of items in the location area
|
|
74
|
+
*/
|
|
48
75
|
ListLocator.prototype.countListItems = function (location, context) {
|
|
49
76
|
var _a;
|
|
50
77
|
return Math.min((_a = this.limit) !== null && _a !== void 0 ? _a : Infinity, this.countItems(location, context));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ListLocator.js","sourceRoot":"","sources":["../../src/locators/ListLocator.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;AACA,4CAAwE;AACxE,qCAAiE;
|
|
1
|
+
{"version":3,"file":"ListLocator.js","sourceRoot":"","sources":["../../src/locators/ListLocator.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;AACA,4CAAwE;AACxE,qCAAiE;AAEjE;;GAEG;AACH;IAAkH,+BAAgB;IAEhI,qBAAY,KAA4B;QAAxC,YACE,iBAAO,SAER;QADC,MAAM,CAAC,MAAM,CAAC,KAAI,EAAE,KAAK,CAAC,CAAA;;IAC5B,CAAC;IAOD;;;;;OAKG;IACH,4BAAM,GAAN,UAAO,SAAyB,EAAE,QAAkC;;QAClE,OAAO,MAAA,IAAI,CAAC,GAAG,mCAAI,EAAE,CAAA;IACvB,CAAC;IAOD;;;;;OAKG;IACH,iCAAW,GAAX,UAAY,SAAyB,EAAE,QAAkC;QACvE,OAAO,IAAI,CAAC,QAAQ,CAAA;IACtB,CAAC;IAOD;;;;;OAKG;IACH,+BAAS,GAAT,UAAU,QAAwB,EAAE,OAAiC;QACnE,IAAI,IAAI,CAAC,MAAM;YAAE,OAAO,IAAI,CAAC,MAAM,CAAA;QACnC,IAAM,QAAQ,GAAG,IAAI,CAAC,WAAW,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAA;QACpD,IAAI,QAAQ,KAAK,SAAS;YAAE,OAAO,EAAE,CAAA;QAC/B,IAAA,KAAc,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE,OAAO,CAAC,EAA1C,CAAC,OAAA,EAAE,CAAC,OAAA,EAAE,CAAC,OAAmC,CAAA;QAClD,OAAO;YACL,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,QAAQ,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YAC7B,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,QAAQ,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YAC7B,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,QAAQ,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;SAC9B,CAAA;IACH,CAAC;IAED;;;;;OAKG;IACH,oCAAc,GAAd,UAAe,QAAwB,EAAE,OAAiC;;QACxE,OAAO,IAAI,CAAC,GAAG,CAAC,MAAA,IAAI,CAAC,KAAK,mCAAI,QAAQ,EAAE,IAAI,CAAC,UAAU,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC,CAAA;IAC7E,CAAC;IAES,wCAAkB,GAA5B,UAA6B,QAAwB,EAAE,OAAiC;QAChF,IAAA,KAA0B,IAAI,CAAC,cAAc,CAAC,QAAQ,EAAE,OAAO,CAAC,EAA9D,SAAK,EAAL,CAAC,mBAAG,CAAC,KAAA,EAAE,SAAK,EAAL,CAAC,mBAAG,CAAC,KAAA,EAAE,SAAK,EAAL,CAAC,mBAAG,CAAC,KAA2C,CAAA;QAChE,IAAA,KAAmB,IAAI,CAAC,gBAAgB,CAAC,QAAQ,EAAE,OAAO,CAAC,EAAtD,EAAE,OAAA,EAAK,EAAE,OAA6C,CAAA;QACjE,OAAO,EAAE,CAAC,EAAE,CAAC,GAAG,EAAE,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,EAAE,GAAG,CAAC,EAAE,CAAC,GAAA,EAAE,CAAA;IAC5C,CAAC;IAES,sCAAgB,GAA1B,UAA2B,QAAwB,EAAE,OAAiC;QAC9E,IAAA,KAA2B,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE,OAAO,CAAC,EAAvD,SAAS,EAAN,EAAE,mBAAG,CAAC,KAAA,EAAE,SAAS,EAAN,EAAE,mBAAG,CAAC,KAAmC,CAAA;QACzD,IAAA,KAAqB,IAAI,CAAC,SAAS,CAAC,QAAQ,EAAE,OAAO,CAAC,EAAjD,GAAG,OAAA,EAAK,GAAG,OAAsC,CAAA;QAC5D,IAAM,KAAK,GAAG,IAAI,CAAC,cAAc,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAA;QACpD,OAAO,EAAE,CAAC,EAAE,CAAC,GAAG,aAAH,GAAG,cAAH,GAAG,GAAI,EAAE,GAAG,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,aAAH,GAAG,cAAH,GAAG,GAAI,EAAE,GAAG,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,EAAE,CAAA;IACvE,CAAC;IAED,4CAAsB,GAAtB,UAAuB,QAAwB,EAAE,OAAiC,EAC3D,KAAgD;QAAhD,sBAAA,EAAA,QAAQ,IAAI,CAAC,gBAAgB,CAAC,QAAQ,EAAE,OAAO,CAAC;QACrE,IAAI,KAAK,KAAK,SAAS;YAAE,OAAO,IAAI,CAAC,kBAAkB,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAA;QACpE,IAAA,KAA0B,IAAI,CAAC,cAAc,CAAC,QAAQ,EAAE,OAAO,CAAC,EAA9D,SAAK,EAAL,CAAC,mBAAG,CAAC,KAAA,EAAE,SAAK,EAAL,CAAC,mBAAG,CAAC,KAAA,EAAE,SAAK,EAAL,CAAC,mBAAG,CAAC,KAA2C,CAAA;QAChE,IAAA,KAAyC,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE,OAAO,CAAC,EAArE,SAAS,EAAN,EAAE,mBAAG,CAAC,KAAA,EAAE,SAAS,EAAN,EAAE,mBAAG,CAAC,KAAA,EAAE,SAAY,EAAT,EAAE,mBAAG,IAAI,KAAmC,CAAA;QACvE,IAAA,KAA6B,IAAI,CAAC,SAAS,CAAC,QAAQ,EAAE,OAAO,CAAC,EAAzD,GAAG,OAAA,EAAK,GAAG,OAAA,EAAK,GAAG,OAAsC,CAAA;QACpE,IAAM,KAAK,GAAG,IAAI,CAAC,cAAc,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAA;QACpD,OAAO;YACL,CAAC,EAAE,CAAC,GAAG,KAAK,GAAG,CAAC,GAAG,IAAI,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,EAAE,GAAG,GAAG,EAAE,CAAC,GAAG,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;YAClF,CAAC,EAAE,CAAC,GAAG,KAAK,GAAG,CAAC,GAAG,IAAI,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,EAAE,GAAG,GAAG,EAAE,CAAC,GAAG,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;YAClF,CAAC,EAAE,CAAC,GAAG,KAAK,GAAG,CAAC,GAAG,IAAI,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,EAAE,GAAG,GAAG,EAAE,CAAC,GAAG,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;SACnF,CAAA;IACH,CAAC;IAED,wCAAkB,GAAlB,UAAmB,IAAwB,EAAE,OAA6B;QACxE,OAAO,IAAI,CAAC,sBAAsB,CAAC,IAAI,CAAC,QAAQ,EAAE,OAAO,EAAE,IAAI,CAAC,YAAY,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC,CAAA;IAC9F,CAAC;IAES,gEAA0C,GAApD,UAAqD,QAAwB,EAAE,OAA6B;;QAC1G,IAAM,IAAI,GAAG,OAAO,CAAC,KAAK,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,CAAA;QACxE,IAAI,CAAC,IAAI;YAAE,OAAM;QACX,IAAA,KAA4B,MAAA,MAAA,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,0CAAE,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC,mCAAI,EAAE,EAAhF,aAAS,EAAT,KAAK,mBAAG,CAAC,KAAA,EAAE,cAAU,EAAV,MAAM,mBAAG,CAAC,KAA2D,CAAA;QAClF,IAAA,KAAW,IAAI,CAAC,gBAAgB,CAAC,QAAQ,EAAE,OAAO,CAAC,EAAjD,CAAC,OAAA,EAAE,CAAC,OAA6C,CAAA;QACzD,IAAM,YAAY,GAAG,MAAA,MAAA,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,0CAAE,eAAe,CAAC,IAAI,CAAC,EAAE,CAAC,mCAAI,CAAC,CAAA;QAClF,OAAO,IAAI,gCAAmB,CAAC;YAC7B,KAAK,EAAE,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;YAC1B,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;YAC5B,YAAY,cAAA;SACb,CAAC,CAAA;IACJ,CAAC;IACH,kBAAC;AAAD,CAAC,AAjHD,CAAkH,iBAAO,GAiHxH;AAjHY,kCAAW"}
|
|
@@ -1,50 +1,248 @@
|
|
|
1
|
-
|
|
1
|
+
/** @jsxImportSource @emotion/react */
|
|
2
|
+
import { Coordinates, DeleteItem, DisplayedItem, Location, MaterialItem, MaterialRules, MoveItem, XYCoordinates } from '@gamepark/rules-api';
|
|
2
3
|
import { LocationDescription, MaterialDescriptionRecord } from '../components';
|
|
3
4
|
export type SortFunction = ((item: MaterialItem) => number);
|
|
5
|
+
/**
|
|
6
|
+
* A Locator is responsible for placing item and locations (such as drop areas) on the Game Table.
|
|
7
|
+
*/
|
|
4
8
|
export declare class Locator<P extends number = number, M extends number = number, L extends number = number> {
|
|
9
|
+
/**
|
|
10
|
+
* With the constructor, you can create new locators in one line.
|
|
11
|
+
* @example `new Locator({ coordinates: { x: -10, y: -5 } })`
|
|
12
|
+
* @param clone Object to clone into the class
|
|
13
|
+
*/
|
|
5
14
|
constructor(clone?: Partial<Locator>);
|
|
15
|
+
/**
|
|
16
|
+
* Types of items placed by the locator since it was created
|
|
17
|
+
* @internal
|
|
18
|
+
* @protected
|
|
19
|
+
*/
|
|
6
20
|
protected itemTypes: M[];
|
|
21
|
+
/**
|
|
22
|
+
* If the locator places items on top of another item (a game board for instance), the type of the parent item must be provided here.
|
|
23
|
+
*/
|
|
7
24
|
parentItemType?: M;
|
|
25
|
+
/**
|
|
26
|
+
* The maximum number of items do display.
|
|
27
|
+
*/
|
|
8
28
|
limit?: number;
|
|
29
|
+
/**
|
|
30
|
+
* The rotation unit to use. See {@link getRotateZ}
|
|
31
|
+
*/
|
|
9
32
|
rotationUnit: string;
|
|
33
|
+
/**
|
|
34
|
+
* Declare this field if you always need to display one location that does not depend on the context. See {@link getLocations}.
|
|
35
|
+
*/
|
|
10
36
|
location?: Location<P, L>;
|
|
37
|
+
/**
|
|
38
|
+
* Declare this field if you always need to display some locations that does not depend on the context. See {@link getLocations}.
|
|
39
|
+
*/
|
|
11
40
|
locations: Location<P, L>[];
|
|
41
|
+
/**
|
|
42
|
+
* Override this if you need to display some locations on the Game Table that depends on the context.
|
|
43
|
+
* By default, return any {@link location} or {@link locations}.
|
|
44
|
+
*/
|
|
12
45
|
getLocations(_context: MaterialContext<P, M, L>): Location<P, L>[];
|
|
46
|
+
/**
|
|
47
|
+
* If you need do display custom locations in the game, provide their description here.
|
|
48
|
+
*/
|
|
13
49
|
locationDescription?: LocationDescription<P, M, L>;
|
|
50
|
+
/**
|
|
51
|
+
* @internal
|
|
52
|
+
* This function automatically create some drop location descriptions based on the context (dragged item, parent item).
|
|
53
|
+
*
|
|
54
|
+
* Do not override it but use {@link locationDescription},
|
|
55
|
+
* otherwise the images of the location descriptions will not be preloaded by the {@link MaterialImageLoader}.
|
|
56
|
+
*/
|
|
14
57
|
getLocationDescription(location: Location<P, L>, context: MaterialContext<P, M, L> | ItemContext<P, M, L>): LocationDescription<P, M, L> | undefined;
|
|
58
|
+
/**
|
|
59
|
+
* @internal This function provides a custom location description for the current dragged item.
|
|
60
|
+
*/
|
|
15
61
|
protected generateLocationDescriptionFromDraggedItem(_location: Location<P, L>, context: ItemContext<P, M, L>): LocationDescription<P, M, L> | undefined;
|
|
62
|
+
/**
|
|
63
|
+
* This function can hide some items on the game table depending on the context.
|
|
64
|
+
* @param item The item
|
|
65
|
+
* @param context The context of the item
|
|
66
|
+
* @returns true if the item must be hidden
|
|
67
|
+
*/
|
|
16
68
|
hide(item: MaterialItem<P, L>, context: ItemContext<P, M, L>): boolean;
|
|
69
|
+
/**
|
|
70
|
+
* Provide a list of css transform operations to place a location on the game table.
|
|
71
|
+
* @param location Location to place
|
|
72
|
+
* @param context Context of the location in the game
|
|
73
|
+
* @returns the css transform that will be applied to the location
|
|
74
|
+
*/
|
|
17
75
|
placeLocation(location: Location<P, L>, context: LocationContext<P, M, L>): string[];
|
|
76
|
+
/**
|
|
77
|
+
* Provide a list of css transform operations to place an item on the game table.
|
|
78
|
+
* @param item Item to place
|
|
79
|
+
* @param context Context of the item in the game
|
|
80
|
+
* @returns the css transform that will be applied to the item
|
|
81
|
+
*/
|
|
18
82
|
placeItem(item: MaterialItem<P, L>, context: ItemContext<P, M, L>): string[];
|
|
83
|
+
/**
|
|
84
|
+
* Provide a list of css transform operations to place an item on a parent item.
|
|
85
|
+
* @param item Item to place
|
|
86
|
+
* @param context Context of the item in the game
|
|
87
|
+
* @returns the css transform that will be applied to the item
|
|
88
|
+
*/
|
|
19
89
|
protected placeItemOnParent(item: MaterialItem<P, L>, context: ItemContext<P, M, L>): string[];
|
|
90
|
+
/**
|
|
91
|
+
* If a location belongs to an item, returns the item
|
|
92
|
+
* @param location A location
|
|
93
|
+
* @param context Context of the game
|
|
94
|
+
* @returns the parent item of the location if any
|
|
95
|
+
*/
|
|
20
96
|
getParentItem(location: Location<P, L>, { rules, material }: MaterialContext<P, M, L>): MaterialItem<P, L> | undefined;
|
|
97
|
+
/**
|
|
98
|
+
* Position of the location on the parent item, in percentage. Use {@link getPositionOnParent} to provide a dynamic position.
|
|
99
|
+
*/
|
|
21
100
|
positionOnParent: XYCoordinates;
|
|
101
|
+
/**
|
|
102
|
+
* Place the center of the item in the plan of their parent item. This is ignored if "parentItemType" is undefined.
|
|
103
|
+
* Examples: {x: 0, y: 0} places the center of the item in the top-left corner of the parent item
|
|
104
|
+
* {x: 50, y: 50} centers the item in the parent item.
|
|
105
|
+
*
|
|
106
|
+
* @param _location Location of the item or area inside the parent item
|
|
107
|
+
* @param _context THe material game context
|
|
108
|
+
* @return {x, y} with "x" as a percentage from the parent's width, "y" a percentage of the height
|
|
109
|
+
*/
|
|
22
110
|
getPositionOnParent(_location: Location<P, L>, _context: MaterialContext<P, M, L>): XYCoordinates;
|
|
111
|
+
/**
|
|
112
|
+
* Coordinates of the location on the Game Table. Use {@link getCoordinates} to provide dynamic coordinates.
|
|
113
|
+
*/
|
|
23
114
|
coordinates: Partial<Coordinates>;
|
|
115
|
+
/**
|
|
116
|
+
* Provide the coordinates of a location on the Game Table.
|
|
117
|
+
*
|
|
118
|
+
* Called by {@link getLocationCoordinates} but can be used as the Hand, List or Pile "initial" position in subclasses.
|
|
119
|
+
*
|
|
120
|
+
* @param _location Location to position
|
|
121
|
+
* @param _context Context of the game
|
|
122
|
+
* @returns the x, y, z coordinates (in cm) of the location
|
|
123
|
+
*/
|
|
24
124
|
getCoordinates(_location: Location<P, L>, _context: MaterialContext<P, M, L>): Partial<Coordinates>;
|
|
125
|
+
/**
|
|
126
|
+
* Provide the coordinates of a location on the Game Table.
|
|
127
|
+
*
|
|
128
|
+
* Fallback to {@link getCoordinates} but the differences appear in subclasses {@link ListLocator}, {@link PileLocator}, {@link HandLocator}.
|
|
129
|
+
*
|
|
130
|
+
* @param location Location to position
|
|
131
|
+
* @param context Context of the game
|
|
132
|
+
* @returns the x, y, z coordinates (in cm) of the location
|
|
133
|
+
*/
|
|
25
134
|
getLocationCoordinates(location: Location<P, L>, context: MaterialContext<P, M, L>): Partial<Coordinates>;
|
|
135
|
+
/**
|
|
136
|
+
* Provide the coordinates of the center of an item on the Game Table.
|
|
137
|
+
*
|
|
138
|
+
* @param item Item being placed
|
|
139
|
+
* @param context Context of the item in the game
|
|
140
|
+
* @return The x, y, z coordinates in cm of the center of the item on the table
|
|
141
|
+
*/
|
|
26
142
|
getItemCoordinates(item: MaterialItem<P, L>, context: ItemContext<P, M, L>): Partial<Coordinates>;
|
|
143
|
+
/**
|
|
144
|
+
* The default Z-axis rotation of the items or locations to place if {@link getRotateZ} is not overridden.
|
|
145
|
+
*/
|
|
27
146
|
rotateZ: number;
|
|
147
|
+
/**
|
|
148
|
+
* Get the Z-axis rotation of a location.
|
|
149
|
+
* @param _location Location to place
|
|
150
|
+
* @param _context Context of the location
|
|
151
|
+
* @returns the rotation (unit in {@link rotationUnit})
|
|
152
|
+
*/
|
|
28
153
|
getRotateZ(_location: Location<P, L>, _context: MaterialContext<P, M, L>): number;
|
|
154
|
+
/**
|
|
155
|
+
* Get the Z-axis rotation of an item. Defaults to {@link getRotateZ}.
|
|
156
|
+
* @param item item to place
|
|
157
|
+
* @param context Context of the item
|
|
158
|
+
* @returns the rotation (unit in {@link rotationUnit})
|
|
159
|
+
*/
|
|
29
160
|
getItemRotateZ(item: MaterialItem<P, L>, context: ItemContext<P, M, L>): number;
|
|
161
|
+
/**
|
|
162
|
+
* The index of a location to place, if it matters in the locator's context (see {@link HandLocator}, {@link ListLocator} or {@link PileLocator}).
|
|
163
|
+
*
|
|
164
|
+
* Defaults to location.x first, y otherwise, z last.
|
|
165
|
+
*
|
|
166
|
+
* @param location Location to index in the location area (see {@link isSameLocationArea})
|
|
167
|
+
* @param _context Context of the game
|
|
168
|
+
* @returns the index of the location in the location area
|
|
169
|
+
*/
|
|
30
170
|
getLocationIndex(location: Location<P, L>, _context: MaterialContext<P, M, L>): number | undefined;
|
|
171
|
+
/**
|
|
172
|
+
* Index of an item to place (fallback to {@link getLocationIndex} or item's displayIndex).
|
|
173
|
+
* @param item Item to place
|
|
174
|
+
* @param context Context of the item
|
|
175
|
+
* @returns the index of the item in the location area
|
|
176
|
+
*/
|
|
31
177
|
getItemIndex(item: MaterialItem<P, L>, context: ItemContext<P, M, L>): number;
|
|
178
|
+
/**
|
|
179
|
+
* The total number of items in the same location area (see {@link isSameLocationArea}).
|
|
180
|
+
*
|
|
181
|
+
* @param location the location area
|
|
182
|
+
* @param context Context of the game
|
|
183
|
+
* @returns the total number of items in the location area
|
|
184
|
+
*/
|
|
32
185
|
countItems(location: Location<P, L>, { rules }: MaterialContext<P, M, L>): number;
|
|
186
|
+
/**
|
|
187
|
+
* Any css transform to apply to the item when it is hovered by the pointer. See {@link HandLocator} override for example.
|
|
188
|
+
* @param _item The item
|
|
189
|
+
* @param _context Context of the item
|
|
190
|
+
* @returns the list of css transforms
|
|
191
|
+
*/
|
|
33
192
|
getHoverTransform(_item: MaterialItem<P, L>, _context: ItemContext<P, M, L>): string[];
|
|
193
|
+
/**
|
|
194
|
+
* How items in the same location area are sorted for the help dialog navigation arrows.
|
|
195
|
+
*/
|
|
34
196
|
navigationSorts: SortFunction[];
|
|
197
|
+
/**
|
|
198
|
+
* How items in the same location area are sorted for the help dialog navigation arrows.
|
|
199
|
+
* @param _context Context of the game
|
|
200
|
+
* @returns The list of sort functions to sort the items.
|
|
201
|
+
*/
|
|
35
202
|
getNavigationSorts(_context: ItemContext<P, M, L>): SortFunction[];
|
|
203
|
+
/**
|
|
204
|
+
* Utility function for animation to know if the item is one that should be animated.
|
|
205
|
+
* @param item Item to consider
|
|
206
|
+
* @param context Context of the Item
|
|
207
|
+
* @param move Move to animate
|
|
208
|
+
* @returns true if the items must be animated
|
|
209
|
+
*/
|
|
210
|
+
isItemToAnimate(item: MaterialItem<P, L>, context: ItemContext<P, M, L>, move: MoveItem<P, M, L> | DeleteItem<M>): boolean;
|
|
36
211
|
}
|
|
212
|
+
/**
|
|
213
|
+
* A record of item locators, to provide to the game context.
|
|
214
|
+
*/
|
|
37
215
|
export type ItemLocatorRecord<P extends number = number, M extends number = number, L extends number = number> = Record<L, Locator<P, M, L>>;
|
|
216
|
+
/**
|
|
217
|
+
* Data structure for the context of a game displayed.
|
|
218
|
+
* @property rules The rules of the game with current game state.
|
|
219
|
+
* @property material The record of the material descriptions to display the items.
|
|
220
|
+
* @property locators The record of the locators to place the items.
|
|
221
|
+
* @property player The player currently displaying the game. Undefined for spectators.
|
|
222
|
+
*/
|
|
38
223
|
export type MaterialContext<P extends number = number, M extends number = number, L extends number = number> = {
|
|
39
224
|
rules: MaterialRules<P, M, L>;
|
|
40
225
|
material: Partial<MaterialDescriptionRecord<P, M, L>>;
|
|
41
226
|
locators: Partial<ItemLocatorRecord<P, M, L>>;
|
|
42
227
|
player?: P;
|
|
43
228
|
};
|
|
229
|
+
/**
|
|
230
|
+
* Data structure for the context of an item in a game displayed.
|
|
231
|
+
* @property dragTransform The CSS translate operation applied to the item, if any.
|
|
232
|
+
*/
|
|
44
233
|
export type ItemContext<P extends number = number, M extends number = number, L extends number = number> = MaterialContext<P, M, L> & DisplayedItem<M> & {
|
|
45
234
|
dragTransform?: string;
|
|
46
235
|
};
|
|
236
|
+
/**
|
|
237
|
+
* Type guard to test if some MaterialContext is also an item context.
|
|
238
|
+
* @param context Context of the game
|
|
239
|
+
* @returns true if the context also hold information about a specific item in the game.
|
|
240
|
+
*/
|
|
47
241
|
export declare function isItemContext<P extends number = number, M extends number = number, L extends number = number>(context: MaterialContext<P, M, L>): context is ItemContext<P, M, L>;
|
|
242
|
+
/**
|
|
243
|
+
* Context of a location in a displayed game.
|
|
244
|
+
* @property canDrop Whether some item is currently being dragged, and can be dropped in the location.
|
|
245
|
+
*/
|
|
48
246
|
export type LocationContext<P extends number = number, M extends number = number, L extends number = number> = MaterialContext<P, M, L> & {
|
|
49
247
|
canDrop?: boolean;
|
|
50
248
|
};
|