@gamepark/react-game 7.0.3 → 7.2.0
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/PlayerPanel/Counters.d.ts +1 -1
- package/dist/components/dialogs/RulesDialog/MaterialRulesDialog.js +1 -1
- package/dist/components/material/DraggableMaterial.d.ts +2 -1
- package/dist/components/material/DraggableMaterial.js +9 -5
- package/dist/components/material/DraggableMaterial.js.map +1 -1
- package/dist/components/material/GameTable/DropPreview.d.ts +4 -2
- package/dist/components/material/GameTable/DropPreview.js +5 -3
- package/dist/components/material/GameTable/DropPreview.js.map +1 -1
- package/dist/components/material/GameTable/DynamicItemsDisplay.d.ts +3 -3
- package/dist/components/material/GameTable/DynamicItemsDisplay.js +2 -2
- package/dist/components/material/GameTable/DynamicItemsDisplay.js.map +1 -1
- package/dist/components/material/GameTable/GameMaterialDisplay.d.ts +7 -6
- package/dist/components/material/GameTable/GameMaterialDisplay.js +3 -6
- package/dist/components/material/GameTable/GameMaterialDisplay.js.map +1 -1
- package/dist/components/material/GameTable/GameTable.js +2 -1
- package/dist/components/material/GameTable/GameTable.js.map +1 -1
- package/dist/components/material/GameTable/StaticItemsDisplay.d.ts +3 -3
- package/dist/components/material/GameTable/StaticItemsDisplay.js +7 -4
- package/dist/components/material/GameTable/StaticItemsDisplay.js.map +1 -1
- package/dist/components/material/GameTable/StaticLocationsDisplay.d.ts +3 -3
- package/dist/components/material/GameTable/StaticLocationsDisplay.js +5 -3
- package/dist/components/material/GameTable/StaticLocationsDisplay.js.map +1 -1
- package/dist/components/material/animations/CreateItemAnimations.d.ts +2 -2
- package/dist/components/material/animations/CreateItemAnimations.js +14 -4
- package/dist/components/material/animations/CreateItemAnimations.js.map +1 -1
- package/dist/components/material/animations/DeleteItemAnimations.d.ts +2 -2
- package/dist/components/material/animations/DeleteItemAnimations.js +14 -4
- package/dist/components/material/animations/DeleteItemAnimations.js.map +1 -1
- package/dist/components/material/animations/ItemAnimations.d.ts +2 -2
- package/dist/components/material/animations/ItemAnimations.js +1 -1
- package/dist/components/material/animations/ItemAnimations.js.map +1 -1
- package/dist/components/material/animations/MaterialAnimations.d.ts +2 -2
- package/dist/components/material/animations/MaterialAnimations.js +2 -2
- package/dist/components/material/animations/MaterialAnimations.js.map +1 -1
- package/dist/components/material/animations/MaterialGameAnimations.d.ts +2 -2
- package/dist/components/material/animations/MaterialGameAnimations.js +2 -2
- package/dist/components/material/animations/MaterialGameAnimations.js.map +1 -1
- package/dist/components/material/animations/MoveItemAnimations.d.ts +3 -3
- package/dist/components/material/animations/MoveItemAnimations.js +16 -7
- package/dist/components/material/animations/MoveItemAnimations.js.map +1 -1
- package/dist/components/material/animations/MoveItemAtOnceAnimations.d.ts +3 -3
- package/dist/components/material/animations/MoveItemAtOnceAnimations.js +13 -3
- package/dist/components/material/animations/MoveItemAtOnceAnimations.js.map +1 -1
- package/dist/components/material/animations/getFirstStockItemTransforms.util.d.ts +2 -0
- package/dist/components/material/animations/getFirstStockItemTransforms.util.js +8 -0
- package/dist/components/material/animations/getFirstStockItemTransforms.util.js.map +1 -1
- package/dist/css/buttonCss.js +1 -0
- package/dist/css/buttonCss.js.map +1 -1
- package/dist/locators/DelegateLocator.d.ts +10 -0
- package/dist/locators/DelegateLocator.js +13 -0
- package/dist/locators/DelegateLocator.js.map +1 -0
- package/dist/locators/LocationOrigin.d.ts +17 -0
- package/dist/locators/LocationOrigin.js +35 -0
- package/dist/locators/LocationOrigin.js.map +1 -0
- package/dist/locators/Locator.d.ts +16 -0
- package/dist/locators/Locator.js +22 -0
- package/dist/locators/Locator.js.map +1 -1
- package/dist/locators/PlaceholderLocator.d.ts +9 -0
- package/dist/locators/PlaceholderLocator.js +13 -0
- package/dist/locators/PlaceholderLocator.js.map +1 -0
- package/dist/locators/index.d.ts +3 -0
- package/dist/locators/index.js +3 -0
- package/dist/locators/index.js.map +1 -1
- package/dist/utilities/translation.util.js +1 -0
- package/dist/utilities/translation.util.js.map +1 -1
- package/package.json +78 -82
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
import { Interpolation, Theme } from '@emotion/react';
|
|
2
2
|
import { Animation, Animations } from '@gamepark/react-client';
|
|
3
|
-
import { DisplayedItem, ItemMove, MaterialGame, MaterialMove } from '@gamepark/rules-api';
|
|
3
|
+
import { DisplayedItem, GridBoundaries, ItemMove, MaterialGame, MaterialMove } from '@gamepark/rules-api';
|
|
4
4
|
import { ItemContext, MaterialContext } from '../../../locators';
|
|
5
5
|
import { MaterialGameAnimationContext } from './MaterialGameAnimations';
|
|
6
6
|
export declare class ItemAnimations<P extends number = number, M extends number = number, L extends number = number> extends Animations<MaterialGame<P, M, L>, MaterialMove<P, M, L>, P> {
|
|
7
|
-
getItemAnimation(_context: ItemContext<P, M, L>, _animation: Animation<MaterialMove<P, M, L
|
|
7
|
+
getItemAnimation(_context: ItemContext<P, M, L>, _animation: Animation<MaterialMove<P, M, L>>, _boundaries: GridBoundaries): Interpolation<Theme>;
|
|
8
8
|
getMaterialContext({ Rules, game, material, locators, playerId }: MaterialGameAnimationContext<P, M, L>): MaterialContext<P, M, L>;
|
|
9
9
|
getItemContext(context: MaterialGameAnimationContext<P, M, L>, item: Omit<DisplayedItem<M>, 'displayIndex'>): Omit<ItemContext<P, M, L>, 'displayIndex'>;
|
|
10
10
|
protected getTransformKeyframes(origin: string, destination: string, _animation: Animation<ItemMove<P, M, L>>, _context: ItemContext<P, M, L>): {
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { keyframes } from '@emotion/react';
|
|
2
2
|
import { Animations } from '@gamepark/react-client';
|
|
3
3
|
export class ItemAnimations extends Animations {
|
|
4
|
-
getItemAnimation(_context, _animation) {
|
|
4
|
+
getItemAnimation(_context, _animation, _boundaries) {
|
|
5
5
|
return;
|
|
6
6
|
}
|
|
7
7
|
getMaterialContext({ Rules, game, material, locators, playerId }) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ItemAnimations.js","sourceRoot":"","sources":["../../../../src/components/material/animations/ItemAnimations.ts"],"names":[],"mappings":"AAAA,OAAO,EAAiB,SAAS,EAAS,MAAM,gBAAgB,CAAA;AAChE,OAAO,EAAa,UAAU,EAAE,MAAM,wBAAwB,CAAA;AAK9D,MAAM,OAAO,cACX,SAAQ,UAA2D;IAEnE,gBAAgB,CAAC,QAA8B,EAAE,UAA4C;
|
|
1
|
+
{"version":3,"file":"ItemAnimations.js","sourceRoot":"","sources":["../../../../src/components/material/animations/ItemAnimations.ts"],"names":[],"mappings":"AAAA,OAAO,EAAiB,SAAS,EAAS,MAAM,gBAAgB,CAAA;AAChE,OAAO,EAAa,UAAU,EAAE,MAAM,wBAAwB,CAAA;AAK9D,MAAM,OAAO,cACX,SAAQ,UAA2D;IAEnE,gBAAgB,CAAC,QAA8B,EAAE,UAA4C,EAAE,WAA2B;QACxH,OAAM;IACR,CAAC;IAED,kBAAkB,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAyC;QACrG,OAAO,EAAE,KAAK,EAAE,IAAI,KAAK,CAAC,IAAI,EAAE,EAAE,MAAM,EAAE,QAAQ,EAAE,CAA2B,EAAE,QAAQ,EAAE,QAAS,EAAE,QAAQ,EAAE,QAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAA;IAC/I,CAAC;IAED,cAAc,CAAC,OAA8C,EAAE,IAA4C;QACzG,OAAO,EAAE,GAAG,IAAI,CAAC,kBAAkB,CAAC,OAAO,CAAC,EAAE,GAAG,IAAI,EAAE,CAAA;IACzD,CAAC;IAES,qBAAqB,CAAC,MAAc,EAAE,WAAmB,EAAE,UAAwC,EAAE,QAA8B;QAC3I,OAAO,SAAS,CAAA;;qBAEC,MAAM;;;qBAGN,WAAW;;KAE3B,CAAA;IACH,CAAC;CACF"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { Interpolation, Theme } from '@emotion/react';
|
|
2
2
|
import { Animation, Animations } from '@gamepark/react-client';
|
|
3
|
-
import { ItemMove, ItemMoveType, MaterialGame, MaterialMove, MaterialRules } from '@gamepark/rules-api';
|
|
3
|
+
import { GridBoundaries, ItemMove, ItemMoveType, MaterialGame, MaterialMove, MaterialRules } from '@gamepark/rules-api';
|
|
4
4
|
import { ItemContext, Locator } from '../../../locators';
|
|
5
5
|
import { MaterialDescription } from '../MaterialDescription';
|
|
6
6
|
import { ItemAnimations } from './ItemAnimations';
|
|
@@ -9,7 +9,7 @@ export declare class MaterialAnimations<P extends number = number, M extends num
|
|
|
9
9
|
protected readonly animations: Partial<Record<ItemMoveType, ItemAnimations<P, M, L>>>;
|
|
10
10
|
constructor(duration?: number, droppedItemDuration?: number);
|
|
11
11
|
getDuration(move: ItemMove<P, M, L>, context: MaterialGameAnimationContext<P, M, L>): number;
|
|
12
|
-
getItemAnimation(context: ItemContext<P, M, L>, animation: Animation<MaterialMove<P, M, L
|
|
12
|
+
getItemAnimation(context: ItemContext<P, M, L>, animation: Animation<MaterialMove<P, M, L>>, boundaries: GridBoundaries): Interpolation<Theme>;
|
|
13
13
|
}
|
|
14
14
|
export type ItemAnimationContext<P extends number = number, M extends number = number, L extends number = number> = {
|
|
15
15
|
material: Record<M, MaterialDescription<P, M, L>>;
|
|
@@ -24,10 +24,10 @@ export class MaterialAnimations extends Animations {
|
|
|
24
24
|
getDuration(move, context) {
|
|
25
25
|
return this.animations[move.type]?.getDuration(move, context) ?? 0;
|
|
26
26
|
}
|
|
27
|
-
getItemAnimation(context, animation) {
|
|
27
|
+
getItemAnimation(context, animation, boundaries) {
|
|
28
28
|
if (animation.move.kind !== MoveKind.ItemMove)
|
|
29
29
|
return;
|
|
30
|
-
return this.animations[animation.move.type]?.getItemAnimation(context, animation);
|
|
30
|
+
return this.animations[animation.move.type]?.getItemAnimation(context, animation, boundaries);
|
|
31
31
|
}
|
|
32
32
|
}
|
|
33
33
|
//# sourceMappingURL=MaterialAnimations.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MaterialAnimations.js","sourceRoot":"","sources":["../../../../src/components/material/animations/MaterialAnimations.ts"],"names":[],"mappings":"AACA,OAAO,EAAa,UAAU,EAAE,MAAM,wBAAwB,CAAA;AAC9D,OAAO,
|
|
1
|
+
{"version":3,"file":"MaterialAnimations.js","sourceRoot":"","sources":["../../../../src/components/material/animations/MaterialAnimations.ts"],"names":[],"mappings":"AACA,OAAO,EAAa,UAAU,EAAE,MAAM,wBAAwB,CAAA;AAC9D,OAAO,EAA4B,YAAY,EAA6C,QAAQ,EAAE,MAAM,qBAAqB,CAAA;AAGjI,OAAO,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAA;AAC7D,OAAO,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAA;AAC7D,OAAO,EAAE,0BAA0B,EAAE,MAAM,8BAA8B,CAAA;AAGzE,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAA;AACzD,OAAO,EAAE,wBAAwB,EAAE,MAAM,4BAA4B,CAAA;AACrE,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAA;AACzD,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAA;AAEvD,MAAM,OAAO,kBACX,SAAQ,UAA2D;IAEhD,UAAU,CAAwD;IAErF,YAAY,QAAQ,GAAG,CAAC,EAAE,mBAAmB,GAAG,GAAG;QACjD,KAAK,EAAE,CAAA;QACP,IAAI,CAAC,UAAU,GAAG;YAChB,CAAC,YAAY,CAAC,MAAM,CAAC,EAAE,IAAI,oBAAoB,CAAC,QAAQ,CAAC;YACzD,CAAC,YAAY,CAAC,IAAI,CAAC,EAAE,IAAI,kBAAkB,CAAC,QAAQ,EAAE,mBAAmB,CAAC;YAC1E,CAAC,YAAY,CAAC,UAAU,CAAC,EAAE,IAAI,wBAAwB,CAAC,QAAQ,CAAC;YACjE,CAAC,YAAY,CAAC,MAAM,CAAC,EAAE,IAAI,oBAAoB,CAAC,QAAQ,EAAE,mBAAmB,CAAC;YAC9E,CAAC,YAAY,CAAC,YAAY,CAAC,EAAE,IAAI,0BAA0B,CAAC,QAAQ,CAAC;YACrE,CAAC,YAAY,CAAC,OAAO,CAAC,EAAE,IAAI,iBAAiB,CAAC,CAAC,CAAC;YAChD,CAAC,YAAY,CAAC,IAAI,CAAC,EAAE,IAAI,kBAAkB,CAAC,QAAQ,CAAC;SACtD,CAAA;IACH,CAAC;IAED,WAAW,CAAC,IAAuB,EAAE,OAA8C;QACjF,OAAO,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,WAAW,CAAC,IAAI,EAAE,OAAO,CAAC,IAAI,CAAC,CAAA;IACpE,CAAC;IAED,gBAAgB,CAAC,OAA6B,EAAE,SAA2C,EAAE,UAA0B;QACrH,IAAI,SAAS,CAAC,IAAI,CAAC,IAAI,KAAK,QAAQ,CAAC,QAAQ;YAAE,OAAM;QACrD,OAAO,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,gBAAgB,CAAC,OAAO,EAAE,SAAS,EAAE,UAAU,CAAC,CAAA;IAC/F,CAAC;CACF"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { Interpolation, Theme } from '@emotion/react';
|
|
2
2
|
import { Animation, AnimationContext, Animations, DisplayedAction } from '@gamepark/react-client';
|
|
3
|
-
import { MaterialGame, MaterialMove } from '@gamepark/rules-api';
|
|
3
|
+
import { GridBoundaries, MaterialGame, MaterialMove } from '@gamepark/rules-api';
|
|
4
4
|
import { ItemContext, MaterialContext } from '../../../locators';
|
|
5
5
|
import { GameContext } from '../../GameProvider';
|
|
6
6
|
import { MaterialSoundConfig } from '../sound';
|
|
@@ -29,6 +29,6 @@ declare class AnimationConfig<P extends number = number, M extends number = numb
|
|
|
29
29
|
sound(sound: string | MaterialSoundConfig | false): this;
|
|
30
30
|
none(): this;
|
|
31
31
|
getDuration(move: MaterialMove<P, M, L>, context: MaterialGameAnimationContext<P, M, L>): number;
|
|
32
|
-
getItemAnimation(context: ItemContext<P, M, L>, animation: Animation<MaterialMove<P, M, L
|
|
32
|
+
getItemAnimation(context: ItemContext<P, M, L>, animation: Animation<MaterialMove<P, M, L>>, boundaries: GridBoundaries): Interpolation<Theme>;
|
|
33
33
|
}
|
|
34
34
|
export {};
|
|
@@ -71,8 +71,8 @@ class AnimationConfig extends ItemAnimations {
|
|
|
71
71
|
return context.step === AnimationStep.BEFORE_MOVE ? this.d ?? 0 : 0;
|
|
72
72
|
return new MaterialAnimations(this.d).getDuration(move, context);
|
|
73
73
|
}
|
|
74
|
-
getItemAnimation(context, animation) {
|
|
75
|
-
return new MaterialAnimations(this.d).getItemAnimation(context, animation);
|
|
74
|
+
getItemAnimation(context, animation, boundaries) {
|
|
75
|
+
return new MaterialAnimations(this.d).getItemAnimation(context, animation, boundaries);
|
|
76
76
|
}
|
|
77
77
|
}
|
|
78
78
|
//# sourceMappingURL=MaterialGameAnimations.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MaterialGameAnimations.js","sourceRoot":"","sources":["../../../../src/components/material/animations/MaterialGameAnimations.ts"],"names":[],"mappings":"AACA,OAAO,EAA+B,UAAU,EAAE,aAAa,EAAmB,MAAM,wBAAwB,CAAA;AAChH,OAAO,
|
|
1
|
+
{"version":3,"file":"MaterialGameAnimations.js","sourceRoot":"","sources":["../../../../src/components/material/animations/MaterialGameAnimations.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { Interpolation, Theme } from '@emotion/react';
|
|
2
2
|
import { Animation } from '@gamepark/react-client';
|
|
3
|
-
import { MaterialItem, MoveItem } from '@gamepark/rules-api';
|
|
3
|
+
import { GridBoundaries, MaterialItem, MoveItem } from '@gamepark/rules-api';
|
|
4
4
|
import { ItemContext } from '../../../locators';
|
|
5
5
|
import { ItemAnimations } from './ItemAnimations';
|
|
6
6
|
import { MaterialGameAnimationContext } from './MaterialGameAnimations';
|
|
@@ -9,8 +9,8 @@ export declare class MoveItemAnimations<P extends number = number, M extends num
|
|
|
9
9
|
protected droppedItemDuration: number;
|
|
10
10
|
constructor(duration?: number, droppedItemDuration?: number);
|
|
11
11
|
getPreDuration(move: MoveItem<P, M, L>, context: MaterialGameAnimationContext<P, M, L>): number;
|
|
12
|
-
getItemAnimation(context: ItemContext<P, M, L>, animation: Animation<MoveItem<P, M, L
|
|
13
|
-
getMovedItemAnimation(context: ItemContext<P, M, L>, animation: Animation<MoveItem<P, M, L
|
|
12
|
+
getItemAnimation(context: ItemContext<P, M, L>, animation: Animation<MoveItem<P, M, L>>, boundaries: GridBoundaries): Interpolation<Theme>;
|
|
13
|
+
getMovedItemAnimation(context: ItemContext<P, M, L>, animation: Animation<MoveItem<P, M, L>>, boundaries: GridBoundaries): Interpolation<Theme>;
|
|
14
14
|
getItemIndexAfterMove({ rules }: ItemContext<P, M, L>, move: MoveItem<P, M, L>): number;
|
|
15
15
|
getChildItemAnimation(item: MaterialItem<P, L>, context: ItemContext<P, M, L>, animation: Animation<MoveItem<P, M, L>>): Interpolation<Theme>;
|
|
16
16
|
}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { isEqual } from 'es-toolkit';
|
|
2
|
-
import { getItemFromContext } from '../../../locators';
|
|
2
|
+
import { defaultOrigin, getItemFromContext, getOriginDeltaPosition } from '../../../locators';
|
|
3
3
|
import { isDroppedItem } from '../utils/isDroppedItem';
|
|
4
4
|
import { isPlacedOnItem } from '../utils/isPlacedOnItem';
|
|
5
5
|
import { ItemAnimations } from './ItemAnimations';
|
|
@@ -23,18 +23,18 @@ export class MoveItemAnimations extends ItemAnimations {
|
|
|
23
23
|
}
|
|
24
24
|
return this.duration;
|
|
25
25
|
}
|
|
26
|
-
getItemAnimation(context, animation) {
|
|
26
|
+
getItemAnimation(context, animation, boundaries) {
|
|
27
27
|
const item = getItemFromContext(context);
|
|
28
28
|
const itemLocator = context.locators[item.location.type];
|
|
29
29
|
if (itemLocator?.isItemToAnimate(item, context, animation.move)) {
|
|
30
|
-
return this.getMovedItemAnimation(context, animation);
|
|
30
|
+
return this.getMovedItemAnimation(context, animation, boundaries);
|
|
31
31
|
}
|
|
32
32
|
const animatedItemContext = { ...context, type: animation.move.itemType, index: animation.move.itemIndex };
|
|
33
33
|
if (isPlacedOnItem(item, animatedItemContext)) {
|
|
34
34
|
return this.getChildItemAnimation(item, context, animation);
|
|
35
35
|
}
|
|
36
36
|
}
|
|
37
|
-
getMovedItemAnimation(context, animation) {
|
|
37
|
+
getMovedItemAnimation(context, animation, boundaries) {
|
|
38
38
|
const { type, rules, material, player } = context;
|
|
39
39
|
const description = material[type];
|
|
40
40
|
const Rules = rules.constructor;
|
|
@@ -45,10 +45,19 @@ export class MoveItemAnimations extends ItemAnimations {
|
|
|
45
45
|
// TODO: if animation.move.quantity > 1, we will have to give a different target to each moving item. Formula bellow works only if 1 item moves
|
|
46
46
|
const futureDisplayIndex = (futureItem.quantity ?? 1) - (animation.move.quantity ?? 1);
|
|
47
47
|
const futureContext = { ...context, rules: futureRules, index: futureIndex, displayIndex: futureDisplayIndex };
|
|
48
|
-
const
|
|
48
|
+
const currentTransforms = toSingleRotation(transformItem(context));
|
|
49
49
|
const targetTransforms = toSingleRotation(description?.getItemTransform(futureItem, futureContext) ?? []);
|
|
50
|
-
toClosestRotations(
|
|
51
|
-
const
|
|
50
|
+
toClosestRotations(currentTransforms, targetTransforms);
|
|
51
|
+
const item = getItemFromContext(context);
|
|
52
|
+
const currentOrigin = context.locators[item.location.type]?.getLocationOrigin(item.location, context) ?? defaultOrigin;
|
|
53
|
+
const futureOrigin = context.locators[futureItem.location.type]?.getLocationOrigin(futureItem.location, futureContext) ?? defaultOrigin;
|
|
54
|
+
if (currentOrigin.x !== futureOrigin.x) {
|
|
55
|
+
targetTransforms.unshift(`translateX(${getOriginDeltaPosition(boundaries.xMin, boundaries.xMax, futureOrigin.x, currentOrigin.x)}em)`);
|
|
56
|
+
}
|
|
57
|
+
if (currentOrigin.y !== futureOrigin.y) {
|
|
58
|
+
targetTransforms.unshift(`translateY(${getOriginDeltaPosition(boundaries.yMin, boundaries.yMax, futureOrigin.y, currentOrigin.y)}em)`);
|
|
59
|
+
}
|
|
60
|
+
const animationKeyframes = this.getTransformKeyframes(currentTransforms.join(' '), targetTransforms.join(' '), animation, context);
|
|
52
61
|
return description?.getAnimationCss(animationKeyframes, animation.duration);
|
|
53
62
|
}
|
|
54
63
|
getItemIndexAfterMove({ rules }, move) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MoveItemAnimations.js","sourceRoot":"","sources":["../../../../src/components/material/animations/MoveItemAnimations.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,OAAO,EAAE,MAAM,YAAY,CAAA;AACpC,OAAO,EAAE,kBAAkB,EAAe,MAAM,mBAAmB,CAAA;
|
|
1
|
+
{"version":3,"file":"MoveItemAnimations.js","sourceRoot":"","sources":["../../../../src/components/material/animations/MoveItemAnimations.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { Interpolation, Theme } from '@emotion/react';
|
|
2
2
|
import { Animation } from '@gamepark/react-client';
|
|
3
|
-
import { MoveItemsAtOnce } from '@gamepark/rules-api';
|
|
3
|
+
import { GridBoundaries, MoveItemsAtOnce } from '@gamepark/rules-api';
|
|
4
4
|
import { ItemContext } from '../../../locators';
|
|
5
5
|
import { ItemAnimations } from './ItemAnimations';
|
|
6
6
|
import { MaterialGameAnimationContext } from './MaterialGameAnimations';
|
|
@@ -9,6 +9,6 @@ export declare class MoveItemAtOnceAnimations<P extends number = number, M exten
|
|
|
9
9
|
protected droppedItemDuration: number;
|
|
10
10
|
constructor(duration?: number, droppedItemDuration?: number);
|
|
11
11
|
getPreDuration(move: MoveItemsAtOnce<P, M, L>, context: MaterialGameAnimationContext<P, M, L>): number;
|
|
12
|
-
getItemAnimation(context: ItemContext<P, M, L>, animation: Animation<MoveItemsAtOnce<P, M, L
|
|
13
|
-
getMovedItemAnimation(context: ItemContext<P, M, L>, animation: Animation<MoveItemsAtOnce<P, M, L
|
|
12
|
+
getItemAnimation(context: ItemContext<P, M, L>, animation: Animation<MoveItemsAtOnce<P, M, L>>, boundaries: GridBoundaries): Interpolation<Theme>;
|
|
13
|
+
getMovedItemAnimation(context: ItemContext<P, M, L>, animation: Animation<MoveItemsAtOnce<P, M, L>>, boundaries: GridBoundaries): Interpolation<Theme>;
|
|
14
14
|
}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { defaultOrigin, getItemFromContext, getOriginDeltaPosition } from '../../../locators';
|
|
1
2
|
import { isDroppedItem } from '../utils/isDroppedItem';
|
|
2
3
|
import { ItemAnimations } from './ItemAnimations';
|
|
3
4
|
import { toClosestRotations, toSingleRotation } from './rotations.utils';
|
|
@@ -17,12 +18,12 @@ export class MoveItemAtOnceAnimations extends ItemAnimations {
|
|
|
17
18
|
}
|
|
18
19
|
return this.duration;
|
|
19
20
|
}
|
|
20
|
-
getItemAnimation(context, animation) {
|
|
21
|
+
getItemAnimation(context, animation, boundaries) {
|
|
21
22
|
if (context.type === animation.move.itemType && animation.move.indexes.includes(context.index)) {
|
|
22
|
-
return this.getMovedItemAnimation(context, animation);
|
|
23
|
+
return this.getMovedItemAnimation(context, animation, boundaries);
|
|
23
24
|
}
|
|
24
25
|
}
|
|
25
|
-
getMovedItemAnimation(context, animation) {
|
|
26
|
+
getMovedItemAnimation(context, animation, boundaries) {
|
|
26
27
|
const { type, rules, material, player } = context;
|
|
27
28
|
const description = material[type];
|
|
28
29
|
const Rules = rules.constructor;
|
|
@@ -34,6 +35,15 @@ export class MoveItemAtOnceAnimations extends ItemAnimations {
|
|
|
34
35
|
const originTransforms = toSingleRotation(transformItem(context));
|
|
35
36
|
const targetTransforms = toSingleRotation(description?.getItemTransform(futureItem, futureContext) ?? []);
|
|
36
37
|
toClosestRotations(originTransforms, targetTransforms);
|
|
38
|
+
const item = getItemFromContext(context);
|
|
39
|
+
const currentOrigin = context.locators[item.location.type]?.getLocationOrigin(item.location, context) ?? defaultOrigin;
|
|
40
|
+
const futureOrigin = context.locators[futureItem.location.type]?.getLocationOrigin(futureItem.location, futureContext) ?? defaultOrigin;
|
|
41
|
+
if (currentOrigin.x !== futureOrigin.x) {
|
|
42
|
+
targetTransforms.unshift(`translateX(${getOriginDeltaPosition(boundaries.xMin, boundaries.xMax, futureOrigin.x, currentOrigin.x)}em)`);
|
|
43
|
+
}
|
|
44
|
+
if (currentOrigin.y !== futureOrigin.y) {
|
|
45
|
+
targetTransforms.unshift(`translateY(${getOriginDeltaPosition(boundaries.yMin, boundaries.yMax, futureOrigin.y, currentOrigin.y)}em)`);
|
|
46
|
+
}
|
|
37
47
|
const animationKeyframes = this.getTransformKeyframes(originTransforms.join(' '), targetTransforms.join(' '), animation, context);
|
|
38
48
|
return description?.getAnimationCss(animationKeyframes, animation.duration);
|
|
39
49
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MoveItemAtOnceAnimations.js","sourceRoot":"","sources":["../../../../src/components/material/animations/MoveItemAtOnceAnimations.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"MoveItemAtOnceAnimations.js","sourceRoot":"","sources":["../../../../src/components/material/animations/MoveItemAtOnceAnimations.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,2 +1,4 @@
|
|
|
1
|
+
import { MaterialItem } from '@gamepark/rules-api';
|
|
1
2
|
import { ItemContext } from '../../../locators';
|
|
2
3
|
export declare const getFirstStockItemTransforms: <P extends number = number, M extends number = number, L extends number = number>(context: ItemContext<P, M, L>) => string[];
|
|
4
|
+
export declare const getFirstStockItem: <P extends number = number, M extends number = number, L extends number = number>(context: ItemContext<P, M, L>) => MaterialItem<P, L> | undefined;
|
|
@@ -10,4 +10,12 @@ export const getFirstStockItemTransforms = (context) => {
|
|
|
10
10
|
const displayIndex = stockItem?.quantity ? stockItem.quantity - 1 : 0;
|
|
11
11
|
return description.getItemTransform(stockItem ?? { location: stockLocation }, { ...context, index: 0, displayIndex });
|
|
12
12
|
};
|
|
13
|
+
export const getFirstStockItem = (context) => {
|
|
14
|
+
const description = context.material[context.type];
|
|
15
|
+
const item = getItemFromContext(context);
|
|
16
|
+
const stockLocation = description?.getStockLocation(item, context);
|
|
17
|
+
if (!description || !stockLocation)
|
|
18
|
+
return;
|
|
19
|
+
return description?.getStaticItems(context).find(item => isEqual(item.location, stockLocation));
|
|
20
|
+
};
|
|
13
21
|
//# sourceMappingURL=getFirstStockItemTransforms.util.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"getFirstStockItemTransforms.util.js","sourceRoot":"","sources":["../../../../src/components/material/animations/getFirstStockItemTransforms.util.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"getFirstStockItemTransforms.util.js","sourceRoot":"","sources":["../../../../src/components/material/animations/getFirstStockItemTransforms.util.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAE,MAAM,YAAY,CAAA;AACpC,OAAO,EAAE,kBAAkB,EAAe,MAAM,mBAAmB,CAAA;AAEnE,MAAM,CAAC,MAAM,2BAA2B,GAAG,CACzC,OAA6B,EACnB,EAAE;IACZ,MAAM,WAAW,GAAG,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,CAAA;IAClD,MAAM,IAAI,GAAG,kBAAkB,CAAC,OAAO,CAAC,CAAA;IACxC,MAAM,aAAa,GAAG,WAAW,EAAE,gBAAgB,CAAC,IAAI,EAAE,OAAO,CAAC,CAAA;IAClE,IAAI,CAAC,WAAW,IAAI,CAAC,aAAa;QAAE,OAAO,EAAE,CAAA;IAC7C,MAAM,SAAS,GAAG,WAAW,EAAE,cAAc,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,QAAQ,EAAE,aAAa,CAAC,CAAC,CAAA;IAC1G,MAAM,YAAY,GAAG,SAAS,EAAE,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC,QAAQ,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;IACrE,OAAO,WAAW,CAAC,gBAAgB,CAAC,SAAS,IAAI,EAAE,QAAQ,EAAE,aAAa,EAAE,EAAE,EAAE,GAAG,OAAO,EAAE,KAAK,EAAE,CAAC,EAAE,YAAY,EAAE,CAAC,CAAA;AACvH,CAAC,CAAA;AAED,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAC/B,OAA6B,EACG,EAAE;IAClC,MAAM,WAAW,GAAG,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,CAAA;IAClD,MAAM,IAAI,GAAG,kBAAkB,CAAC,OAAO,CAAC,CAAA;IACxC,MAAM,aAAa,GAAG,WAAW,EAAE,gBAAgB,CAAC,IAAI,EAAE,OAAO,CAAC,CAAA;IAClE,IAAI,CAAC,WAAW,IAAI,CAAC,aAAa;QAAE,OAAM;IAC1C,OAAO,WAAW,EAAE,cAAc,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,QAAQ,EAAE,aAAa,CAAC,CAAC,CAAA;AACjG,CAAC,CAAA"}
|
package/dist/css/buttonCss.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"buttonCss.js","sourceRoot":"","sources":["../../src/css/buttonCss.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,gBAAgB,CAAA;AAEpC,MAAM,CAAC,MAAM,cAAc,GAAG,GAAG,CAAA;;;;;;;CAOhC,CAAA;AAED,MAAM,CAAC,MAAM,SAAS,GAAG,CAAC,KAAa,EAAE,KAAa,EAAE,MAAc,EAAE,EAAE,CAAC,GAAG,CAAA;IAC1E,cAAc;;;;yBAIO,KAAK;WACnB,KAAK;;;;kBAIE,KAAK;;;;kBAIL,MAAM;;;;;;;;;;CAUvB,CAAA;AAED,MAAM,CAAC,MAAM,aAAa,GAAG,GAAG,CAAA;IAC5B,cAAc
|
|
1
|
+
{"version":3,"file":"buttonCss.js","sourceRoot":"","sources":["../../src/css/buttonCss.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,gBAAgB,CAAA;AAEpC,MAAM,CAAC,MAAM,cAAc,GAAG,GAAG,CAAA;;;;;;;CAOhC,CAAA;AAED,MAAM,CAAC,MAAM,SAAS,GAAG,CAAC,KAAa,EAAE,KAAa,EAAE,MAAc,EAAE,EAAE,CAAC,GAAG,CAAA;IAC1E,cAAc;;;;yBAIO,KAAK;WACnB,KAAK;;;;kBAIE,KAAK;;;;kBAIL,MAAM;;;;;;;;;;CAUvB,CAAA;AAED,MAAM,CAAC,MAAM,aAAa,GAAG,GAAG,CAAA;IAC5B,cAAc;;;;;;;;;;CAUjB,CAAA"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { Location, MaterialItem } from '@gamepark/rules-api';
|
|
2
|
+
import { ItemContext, LocationContext, Locator, MaterialContext } from './Locator';
|
|
3
|
+
/**
|
|
4
|
+
* A locator able to delegate placing items and locations to other locators depending on the context
|
|
5
|
+
*/
|
|
6
|
+
export declare abstract class DelegateLocator<P extends number = number, M extends number = number, L extends number = number> extends Locator<P, M, L> {
|
|
7
|
+
abstract getDelegate(context: MaterialContext<P, M, L>): Locator<P, M, L>;
|
|
8
|
+
placeItem(item: MaterialItem<P, L>, context: ItemContext<P, M, L>): string[];
|
|
9
|
+
placeLocation(location: Location<P, L>, context: LocationContext<P, M, L>): string[];
|
|
10
|
+
}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { Locator } from './Locator';
|
|
2
|
+
/**
|
|
3
|
+
* A locator able to delegate placing items and locations to other locators depending on the context
|
|
4
|
+
*/
|
|
5
|
+
export class DelegateLocator extends Locator {
|
|
6
|
+
placeItem(item, context) {
|
|
7
|
+
return this.getDelegate(context).placeItem(item, context);
|
|
8
|
+
}
|
|
9
|
+
placeLocation(location, context) {
|
|
10
|
+
return this.getDelegate(context).placeLocation(location, context);
|
|
11
|
+
}
|
|
12
|
+
}
|
|
13
|
+
//# sourceMappingURL=DelegateLocator.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"DelegateLocator.js","sourceRoot":"","sources":["../../src/locators/DelegateLocator.ts"],"names":[],"mappings":"AACA,OAAO,EAAgC,OAAO,EAAmB,MAAM,WAAW,CAAA;AAElF;;GAEG;AACH,MAAM,OAAgB,eAAiG,SAAQ,OAAgB;IAI7I,SAAS,CAAC,IAAwB,EAAE,OAA6B;QAC/D,OAAO,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC,SAAS,CAAC,IAAI,EAAE,OAAO,CAAC,CAAA;IAC3D,CAAC;IAED,aAAa,CAAC,QAAwB,EAAE,OAAiC;QACvE,OAAO,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC,aAAa,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAA;IACnE,CAAC;CACF"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { GridBoundaries } from '@gamepark/rules-api';
|
|
2
|
+
export declare enum OriginType {
|
|
3
|
+
Origin = 0,
|
|
4
|
+
Center = 1,
|
|
5
|
+
Min = 2,
|
|
6
|
+
Max = 3
|
|
7
|
+
}
|
|
8
|
+
export type LocationOrigin = {
|
|
9
|
+
x: OriginType;
|
|
10
|
+
y: OriginType;
|
|
11
|
+
};
|
|
12
|
+
export declare const defaultOrigin: {
|
|
13
|
+
x: OriginType;
|
|
14
|
+
y: OriginType;
|
|
15
|
+
};
|
|
16
|
+
export declare function getLocationOriginCss(tableBoundaries: GridBoundaries, origin?: LocationOrigin): import("@emotion/react").SerializedStyles;
|
|
17
|
+
export declare function getOriginDeltaPosition(min: number, max: number, before: OriginType, after: OriginType): number;
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
import { css } from '@emotion/react';
|
|
2
|
+
export var OriginType;
|
|
3
|
+
(function (OriginType) {
|
|
4
|
+
OriginType[OriginType["Origin"] = 0] = "Origin";
|
|
5
|
+
OriginType[OriginType["Center"] = 1] = "Center";
|
|
6
|
+
OriginType[OriginType["Min"] = 2] = "Min";
|
|
7
|
+
OriginType[OriginType["Max"] = 3] = "Max";
|
|
8
|
+
})(OriginType || (OriginType = {}));
|
|
9
|
+
export const defaultOrigin = { x: OriginType.Origin, y: OriginType.Origin };
|
|
10
|
+
export function getLocationOriginCss(tableBoundaries, origin) {
|
|
11
|
+
const { xMin, xMax, yMin, yMax } = tableBoundaries;
|
|
12
|
+
return positionCss(getPosition(xMin, xMax, origin?.x), getPosition(yMin, yMax, origin?.y));
|
|
13
|
+
}
|
|
14
|
+
function getPosition(min, max, origin = OriginType.Origin) {
|
|
15
|
+
switch (origin) {
|
|
16
|
+
case OriginType.Origin:
|
|
17
|
+
return -min;
|
|
18
|
+
case OriginType.Center:
|
|
19
|
+
return (max - min) / 2;
|
|
20
|
+
case OriginType.Min:
|
|
21
|
+
return 0;
|
|
22
|
+
case OriginType.Max:
|
|
23
|
+
return max - min;
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
export function getOriginDeltaPosition(min, max, before, after) {
|
|
27
|
+
return getPosition(min, max, before) - getPosition(min, max, after);
|
|
28
|
+
}
|
|
29
|
+
const positionCss = (left, top) => css `
|
|
30
|
+
position: absolute;
|
|
31
|
+
left: ${left}em;
|
|
32
|
+
top: ${top}em;
|
|
33
|
+
transform-style: preserve-3d;
|
|
34
|
+
`;
|
|
35
|
+
//# sourceMappingURL=LocationOrigin.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"LocationOrigin.js","sourceRoot":"","sources":["../../src/locators/LocationOrigin.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,gBAAgB,CAAA;AAGpC,MAAM,CAAN,IAAY,UAKX;AALD,WAAY,UAAU;IACpB,+CAAM,CAAA;IACN,+CAAM,CAAA;IACN,yCAAG,CAAA;IACH,yCAAG,CAAA;AACL,CAAC,EALW,UAAU,KAAV,UAAU,QAKrB;AAOD,MAAM,CAAC,MAAM,aAAa,GAAG,EAAE,CAAC,EAAE,UAAU,CAAC,MAAM,EAAE,CAAC,EAAE,UAAU,CAAC,MAAM,EAAE,CAAA;AAE3E,MAAM,UAAU,oBAAoB,CAAC,eAA+B,EAAE,MAAuB;IAC3F,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,GAAG,eAAe,CAAA;IAClD,OAAO,WAAW,CAAC,WAAW,CAAC,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC,CAAC,EAAE,WAAW,CAAC,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC,CAAA;AAC5F,CAAC;AAED,SAAS,WAAW,CAAC,GAAW,EAAE,GAAW,EAAE,MAAM,GAAG,UAAU,CAAC,MAAM;IACvE,QAAQ,MAAM,EAAE,CAAC;QACf,KAAK,UAAU,CAAC,MAAM;YACpB,OAAO,CAAC,GAAG,CAAA;QACb,KAAK,UAAU,CAAC,MAAM;YACpB,OAAO,CAAC,GAAG,GAAG,GAAG,CAAC,GAAG,CAAC,CAAA;QACxB,KAAK,UAAU,CAAC,GAAG;YACjB,OAAO,CAAC,CAAA;QACV,KAAK,UAAU,CAAC,GAAG;YACjB,OAAO,GAAG,GAAG,GAAG,CAAA;IACpB,CAAC;AACH,CAAC;AAED,MAAM,UAAU,sBAAsB,CAAC,GAAW,EAAE,GAAW,EAAE,MAAkB,EAAE,KAAiB;IACpG,OAAO,WAAW,CAAC,GAAG,EAAE,GAAG,EAAE,MAAM,CAAC,GAAG,WAAW,CAAC,GAAG,EAAE,GAAG,EAAE,KAAK,CAAC,CAAA;AACrE,CAAC;AAED,MAAM,WAAW,GAAG,CAAC,IAAY,EAAE,GAAW,EAAE,EAAE,CAAC,GAAG,CAAA;;UAE5C,IAAI;SACL,GAAG;;CAEX,CAAA"}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { Coordinates, DeleteItem, DisplayedItem, Location, MaterialItem, MaterialRules, MoveItem, MoveItemsAtOnce, XYCoordinates } from '@gamepark/rules-api';
|
|
2
2
|
import { ComponentType } from 'react';
|
|
3
3
|
import { LocationDescription, LocationHelpProps, MaterialDescriptionRecord } from '../components';
|
|
4
|
+
import { LocationOrigin } from './LocationOrigin';
|
|
4
5
|
export type SortFunction = ((item: MaterialItem) => number);
|
|
5
6
|
/**
|
|
6
7
|
* A Locator is responsible for placing item and locations (such as drop areas) on the Game Table.
|
|
@@ -66,6 +67,21 @@ export declare class Locator<P extends number = number, M extends number = numbe
|
|
|
66
67
|
* @returns true if the item must be hidden
|
|
67
68
|
*/
|
|
68
69
|
hide(item: MaterialItem<P, L>, context: ItemContext<P, M, L>): boolean;
|
|
70
|
+
/**
|
|
71
|
+
* Value returned by {@link getLocationOrigin} default implementation
|
|
72
|
+
*/
|
|
73
|
+
locationOrigin: LocationOrigin;
|
|
74
|
+
/**
|
|
75
|
+
* Return the origin position or the location on x and y axes before it is placed using css transform
|
|
76
|
+
* Origin: the (0, 0) coordinates
|
|
77
|
+
* Center: (xMax - xMin) / 2 or (yMax - yMin) / 2
|
|
78
|
+
* Min: xMin or yMin
|
|
79
|
+
* Max: xMax or yMax
|
|
80
|
+
* @param location Location to place
|
|
81
|
+
* @param context Context of the location in the game
|
|
82
|
+
* @returns the origin for the location
|
|
83
|
+
*/
|
|
84
|
+
getLocationOrigin(location: Location<P, L>, context: LocationContext<P, M, L>): LocationOrigin;
|
|
69
85
|
/**
|
|
70
86
|
* Provide a list of css transform operations to place a location on the game table.
|
|
71
87
|
* @param location Location to place
|
package/dist/locators/Locator.js
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { isMoveItem, isSameLocationArea } from '@gamepark/rules-api';
|
|
2
2
|
import { isEqual, sumBy, uniqWith } from 'es-toolkit';
|
|
3
3
|
import { DropAreaDescription } from '../components';
|
|
4
|
+
import { defaultOrigin, OriginType } from './LocationOrigin';
|
|
4
5
|
/**
|
|
5
6
|
* A Locator is responsible for placing item and locations (such as drop areas) on the Game Table.
|
|
6
7
|
*/
|
|
@@ -86,6 +87,27 @@ export class Locator {
|
|
|
86
87
|
hide(item, context) {
|
|
87
88
|
return this.limit !== undefined && this.getItemIndex(item, context) < 0;
|
|
88
89
|
}
|
|
90
|
+
/**
|
|
91
|
+
* Value returned by {@link getLocationOrigin} default implementation
|
|
92
|
+
*/
|
|
93
|
+
locationOrigin = defaultOrigin;
|
|
94
|
+
/**
|
|
95
|
+
* Return the origin position or the location on x and y axes before it is placed using css transform
|
|
96
|
+
* Origin: the (0, 0) coordinates
|
|
97
|
+
* Center: (xMax - xMin) / 2 or (yMax - yMin) / 2
|
|
98
|
+
* Min: xMin or yMin
|
|
99
|
+
* Max: xMax or yMax
|
|
100
|
+
* @param location Location to place
|
|
101
|
+
* @param context Context of the location in the game
|
|
102
|
+
* @returns the origin for the location
|
|
103
|
+
*/
|
|
104
|
+
getLocationOrigin(location, context) {
|
|
105
|
+
const parentItem = this.getParentItem(location, context);
|
|
106
|
+
if (!parentItem)
|
|
107
|
+
return this.locationOrigin;
|
|
108
|
+
const locator = context.locators[parentItem.location.type];
|
|
109
|
+
return locator?.getLocationOrigin(parentItem.location, context) ?? { x: OriginType.Origin, y: OriginType.Origin };
|
|
110
|
+
}
|
|
89
111
|
/**
|
|
90
112
|
* Provide a list of css transform operations to place a location on the game table.
|
|
91
113
|
* @param location Location to place
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Locator.js","sourceRoot":"","sources":["../../src/locators/Locator.ts"],"names":[],"mappings":"AAAA,OAAO,EAIL,UAAU,EACV,kBAAkB,EAOnB,MAAM,qBAAqB,CAAA;AAC5B,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAA;AAErD,OAAO,EAAE,mBAAmB,EAAqE,MAAM,eAAe,CAAA;
|
|
1
|
+
{"version":3,"file":"Locator.js","sourceRoot":"","sources":["../../src/locators/Locator.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { MaterialItem } from '@gamepark/rules-api';
|
|
2
|
+
import { ItemContext, Locator } from './Locator';
|
|
3
|
+
/**
|
|
4
|
+
* Locator that hides all the items but defines coordinates to animate the items from and to when they move
|
|
5
|
+
*/
|
|
6
|
+
export declare class PlaceholderLocator<P extends number = number, M extends number = number, L extends number = number> extends Locator<P, M, L> {
|
|
7
|
+
hide(): boolean;
|
|
8
|
+
placeItem(item: MaterialItem<P, L>, context: ItemContext<P, M, L>): string[];
|
|
9
|
+
}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { Locator } from './Locator';
|
|
2
|
+
/**
|
|
3
|
+
* Locator that hides all the items but defines coordinates to animate the items from and to when they move
|
|
4
|
+
*/
|
|
5
|
+
export class PlaceholderLocator extends Locator {
|
|
6
|
+
hide() {
|
|
7
|
+
return true;
|
|
8
|
+
}
|
|
9
|
+
placeItem(item, context) {
|
|
10
|
+
return super.placeItem(item, context).concat(`scale(0)`);
|
|
11
|
+
}
|
|
12
|
+
}
|
|
13
|
+
//# sourceMappingURL=PlaceholderLocator.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"PlaceholderLocator.js","sourceRoot":"","sources":["../../src/locators/PlaceholderLocator.ts"],"names":[],"mappings":"AACA,OAAO,EAAe,OAAO,EAAE,MAAM,WAAW,CAAA;AAEhD;;GAEG;AACH,MAAM,OAAO,kBAAoG,SAAQ,OAAgB;IACvI,IAAI;QACF,OAAO,IAAI,CAAA;IACb,CAAC;IAED,SAAS,CAAC,IAAwB,EAAE,OAA6B;QAC/D,OAAO,KAAK,CAAC,SAAS,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC,MAAM,CAAC,UAAU,CAAC,CAAA;IAC1D,CAAC;CACF"}
|
package/dist/locators/index.d.ts
CHANGED
|
@@ -1,8 +1,11 @@
|
|
|
1
1
|
export * from './utils';
|
|
2
2
|
export * from './DeckLocator';
|
|
3
|
+
export * from './DelegateLocator';
|
|
3
4
|
export * from './FlexLocator';
|
|
4
5
|
export * from './HandLocator';
|
|
5
6
|
export * from './HexagonalGridLocator';
|
|
7
|
+
export * from './LocationOrigin';
|
|
6
8
|
export * from './Locator';
|
|
7
9
|
export * from './ListLocator';
|
|
8
10
|
export * from './PileLocator';
|
|
11
|
+
export * from './PlaceholderLocator';
|
package/dist/locators/index.js
CHANGED
|
@@ -1,9 +1,12 @@
|
|
|
1
1
|
export * from './utils';
|
|
2
2
|
export * from './DeckLocator';
|
|
3
|
+
export * from './DelegateLocator';
|
|
3
4
|
export * from './FlexLocator';
|
|
4
5
|
export * from './HandLocator';
|
|
5
6
|
export * from './HexagonalGridLocator';
|
|
7
|
+
export * from './LocationOrigin';
|
|
6
8
|
export * from './Locator';
|
|
7
9
|
export * from './ListLocator';
|
|
8
10
|
export * from './PileLocator';
|
|
11
|
+
export * from './PlaceholderLocator';
|
|
9
12
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/locators/index.ts"],"names":[],"mappings":"AAAA,cAAc,SAAS,CAAA;AACvB,cAAc,eAAe,CAAA;AAC7B,cAAc,eAAe,CAAA;AAC7B,cAAc,eAAe,CAAA;AAC7B,cAAc,wBAAwB,CAAA;AACtC,cAAc,WAAW,CAAA;AACzB,cAAc,eAAe,CAAA;AAC7B,cAAc,eAAe,CAAA"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/locators/index.ts"],"names":[],"mappings":"AAAA,cAAc,SAAS,CAAA;AACvB,cAAc,eAAe,CAAA;AAC7B,cAAc,mBAAmB,CAAA;AACjC,cAAc,eAAe,CAAA;AAC7B,cAAc,eAAe,CAAA;AAC7B,cAAc,wBAAwB,CAAA;AACtC,cAAc,kBAAkB,CAAA;AAChC,cAAc,WAAW,CAAA;AACzB,cAAc,eAAe,CAAA;AAC7B,cAAc,eAAe,CAAA;AAC7B,cAAc,sBAAsB,CAAA"}
|
|
@@ -14,6 +14,7 @@ export const setupTranslation = (translations, options) => {
|
|
|
14
14
|
i18next.use(initReactI18next).use(ICU);
|
|
15
15
|
const query = new URLSearchParams(window.location.search);
|
|
16
16
|
const locale = query.get('locale') || 'en';
|
|
17
|
+
document.documentElement.lang = locale;
|
|
17
18
|
i18next.init({
|
|
18
19
|
lng: locale,
|
|
19
20
|
debug: process.env.NODE_ENV === 'development',
|