@gamepark/react-game 6.24.3 → 6.26.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.
Files changed (106) hide show
  1. package/dist/components/dialogs/ResultDialog/ResultDialog.js +19 -18
  2. package/dist/components/dialogs/ResultDialog/ResultDialog.js.map +1 -1
  3. package/dist/components/dialogs/RulesDialog/MaterialRulesDialogContent.js +1 -1
  4. package/dist/components/dialogs/RulesDialog/MaterialRulesDialogContent.js.map +1 -1
  5. package/dist/components/material/Dices/CubicDiceDescription.d.ts +1 -1
  6. package/dist/components/material/Dices/CubicDiceDescription.js +1 -1
  7. package/dist/components/material/Dices/CubicDiceDescription.js.map +1 -1
  8. package/dist/components/material/DraggableMaterial.js +10 -3
  9. package/dist/components/material/DraggableMaterial.js.map +1 -1
  10. package/dist/components/material/FlatMaterial/FlatMaterial.d.ts +1 -1
  11. package/dist/components/material/FlatMaterial/FlatMaterial.js +7 -4
  12. package/dist/components/material/FlatMaterial/FlatMaterial.js.map +1 -1
  13. package/dist/components/material/FlatMaterial/PolyhexDescription.d.ts +9 -0
  14. package/dist/components/material/FlatMaterial/PolyhexDescription.js +35 -0
  15. package/dist/components/material/FlatMaterial/PolyhexDescription.js.map +1 -0
  16. package/dist/components/material/FlatMaterial/index.d.ts +1 -0
  17. package/dist/components/material/FlatMaterial/index.js +1 -0
  18. package/dist/components/material/FlatMaterial/index.js.map +1 -1
  19. package/dist/components/material/GameTable/DropPreview.d.ts +2 -0
  20. package/dist/components/material/GameTable/DropPreview.js +60 -0
  21. package/dist/components/material/GameTable/DropPreview.js.map +1 -0
  22. package/dist/components/material/GameTable/GameMaterialDisplay.js +2 -1
  23. package/dist/components/material/GameTable/GameMaterialDisplay.js.map +1 -1
  24. package/dist/components/material/GameTable/GameTable.js +7 -15
  25. package/dist/components/material/GameTable/GameTable.js.map +1 -1
  26. package/dist/components/material/GameTable/ItemDisplay.d.ts +2 -0
  27. package/dist/components/material/GameTable/ItemDisplay.js +1 -1
  28. package/dist/components/material/GameTable/ItemDisplay.js.map +1 -1
  29. package/dist/components/material/MaterialComponent.d.ts +4 -0
  30. package/dist/components/material/MaterialComponent.js +2 -2
  31. package/dist/components/material/MaterialComponent.js.map +1 -1
  32. package/dist/components/material/MaterialDescription.d.ts +14 -4
  33. package/dist/components/material/MaterialDescription.js +35 -9
  34. package/dist/components/material/MaterialDescription.js.map +1 -1
  35. package/dist/components/material/MobileMaterialDescription.d.ts +1 -1
  36. package/dist/components/material/MobileMaterialDescription.js +4 -5
  37. package/dist/components/material/MobileMaterialDescription.js.map +1 -1
  38. package/dist/components/material/Wheel/WheelContent.d.ts +14 -0
  39. package/dist/components/material/Wheel/WheelContent.js +52 -0
  40. package/dist/components/material/Wheel/WheelContent.js.map +1 -0
  41. package/dist/components/material/Wheel/WheelDescription.d.ts +19 -0
  42. package/dist/components/material/Wheel/WheelDescription.js +91 -0
  43. package/dist/components/material/Wheel/WheelDescription.js.map +1 -0
  44. package/dist/components/material/Wheel/WheelItem.d.ts +15 -0
  45. package/dist/components/material/Wheel/WheelItem.js +54 -0
  46. package/dist/components/material/Wheel/WheelItem.js.map +1 -0
  47. package/dist/components/material/Wheel/index.d.ts +1 -0
  48. package/dist/components/material/Wheel/index.js +18 -0
  49. package/dist/components/material/Wheel/index.js.map +1 -0
  50. package/dist/components/material/animations/CreateItemAnimations.d.ts +1 -1
  51. package/dist/components/material/animations/CreateItemAnimations.js +6 -6
  52. package/dist/components/material/animations/CreateItemAnimations.js.map +1 -1
  53. package/dist/components/material/animations/DeleteItemAnimations.js +3 -3
  54. package/dist/components/material/animations/DeleteItemAnimations.js.map +1 -1
  55. package/dist/components/material/animations/MoveItemAnimations.js +3 -3
  56. package/dist/components/material/animations/MoveItemAnimations.js.map +1 -1
  57. package/dist/components/material/animations/getFirstStockItemTransforms.util.js +3 -3
  58. package/dist/components/material/animations/getFirstStockItemTransforms.util.js.map +1 -1
  59. package/dist/components/material/animations/transformItem.util.js +6 -5
  60. package/dist/components/material/animations/transformItem.util.js.map +1 -1
  61. package/dist/components/material/index.d.ts +1 -0
  62. package/dist/components/material/index.js +1 -0
  63. package/dist/components/material/index.js.map +1 -1
  64. package/dist/components/material/locations/DropAreaDescription.d.ts +2 -1
  65. package/dist/components/material/locations/DropAreaDescription.js +1 -1
  66. package/dist/components/material/locations/DropAreaDescription.js.map +1 -1
  67. package/dist/components/material/locations/HexGridDropArea.d.ts +11 -0
  68. package/dist/components/material/locations/HexGridDropArea.js +74 -0
  69. package/dist/components/material/locations/HexGridDropArea.js.map +1 -0
  70. package/dist/components/material/locations/HexGridDropAreaDescription.d.ts +10 -0
  71. package/dist/components/material/locations/HexGridDropAreaDescription.js +87 -0
  72. package/dist/components/material/locations/HexGridDropAreaDescription.js.map +1 -0
  73. package/dist/components/material/locations/LocationDescription.d.ts +1 -0
  74. package/dist/components/material/locations/LocationDescription.js +3 -2
  75. package/dist/components/material/locations/LocationDescription.js.map +1 -1
  76. package/dist/components/material/locations/index.d.ts +1 -0
  77. package/dist/components/material/locations/index.js +1 -0
  78. package/dist/components/material/locations/index.js.map +1 -1
  79. package/dist/components/material/utils/getBestDropMove.d.ts +4 -0
  80. package/dist/components/material/utils/getBestDropMove.js +34 -0
  81. package/dist/components/material/utils/getBestDropMove.js.map +1 -0
  82. package/dist/components/material/utils/isDroppedItem.js +2 -1
  83. package/dist/components/material/utils/isDroppedItem.js.map +1 -1
  84. package/dist/components/tutorial/MaterialTutorial.js +1 -2
  85. package/dist/components/tutorial/MaterialTutorial.js.map +1 -1
  86. package/dist/hooks/useItemLocations.js +5 -19
  87. package/dist/hooks/useItemLocations.js.map +1 -1
  88. package/dist/locators/HandLocator.js +1 -1
  89. package/dist/locators/HandLocator.js.map +1 -1
  90. package/dist/locators/HexagonalGridLocator.d.ts +81 -0
  91. package/dist/locators/HexagonalGridLocator.js +221 -0
  92. package/dist/locators/HexagonalGridLocator.js.map +1 -0
  93. package/dist/locators/ListLocator.js +4 -4
  94. package/dist/locators/ListLocator.js.map +1 -1
  95. package/dist/locators/Locator.d.ts +25 -0
  96. package/dist/locators/Locator.js +33 -1
  97. package/dist/locators/Locator.js.map +1 -1
  98. package/dist/locators/PileLocator.js +2 -3
  99. package/dist/locators/PileLocator.js.map +1 -1
  100. package/dist/locators/index.d.ts +1 -0
  101. package/dist/locators/index.js +1 -0
  102. package/dist/locators/index.js.map +1 -1
  103. package/dist/locators/utils/grid.hex.util.d.ts +43 -0
  104. package/dist/locators/utils/grid.hex.util.js +92 -0
  105. package/dist/locators/utils/grid.hex.util.js.map +1 -0
  106. package/package.json +3 -3
@@ -15,6 +15,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
15
15
  };
16
16
  Object.defineProperty(exports, "__esModule", { value: true });
17
17
  exports.useExpectedDropLocations = exports.useItemLocations = void 0;
18
+ var lodash_1 = require("lodash");
18
19
  var isEqual_1 = __importDefault(require("lodash/isEqual"));
19
20
  var react_1 = require("react");
20
21
  var components_1 = require("../components");
@@ -56,25 +57,10 @@ var useExpectedDropLocations = function () {
56
57
  delete context.expectedDropLocations;
57
58
  }
58
59
  else if (!context.expectedDropLocations) {
59
- var description = context.material[draggedItem.type];
60
- var item = context.rules.material(draggedItem.type).getItem(draggedItem.index);
61
- var itemContext = __assign(__assign({}, context), draggedItem);
62
- var locations = [];
63
- for (var _i = 0, legalMoves_1 = legalMoves; _i < legalMoves_1.length; _i++) {
64
- var move = legalMoves_1[_i];
65
- if (description === null || description === void 0 ? void 0 : description.canDrag(move, itemContext)) {
66
- var _loop_2 = function (dropLocation) {
67
- if (!locations.some(function (location) { return (0, isEqual_1.default)(location, dropLocation); })) {
68
- locations.push(dropLocation);
69
- }
70
- };
71
- for (var _b = 0, _c = description.getDropLocations(item, move, itemContext); _b < _c.length; _b++) {
72
- var dropLocation = _c[_b];
73
- _loop_2(dropLocation);
74
- }
75
- }
76
- }
77
- context.expectedDropLocations = locations;
60
+ var description_1 = context.material[draggedItem.type];
61
+ var itemContext_1 = __assign(__assign({}, context), draggedItem);
62
+ var dragMoves = legalMoves.filter(function (move) { return description_1.canDrag(move, itemContext_1); });
63
+ context.expectedDropLocations = (0, lodash_1.uniqWith)(description_1.getDropLocations(itemContext_1, dragMoves), isEqual_1.default);
78
64
  }
79
65
  return (_a = context.expectedDropLocations) !== null && _a !== void 0 ? _a : [];
80
66
  }, [draggedItem]);
@@ -1 +1 @@
1
- {"version":3,"file":"useItemLocations.js","sourceRoot":"","sources":["../../src/hooks/useItemLocations.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"useItemLocations.js","sourceRoot":"","sources":["../../src/hooks/useItemLocations.ts"],"names":[],"mappings":"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"}
@@ -155,7 +155,7 @@ var HandLocator = /** @class */ (function (_super) {
155
155
  HandLocator.prototype.generateLocationDescriptionFromDraggedItem = function (_location, context) {
156
156
  var _a;
157
157
  var itemDescription = (_a = context.material[context.type]) !== null && _a !== void 0 ? _a : new components_1.CardDescription();
158
- var item = context.rules.material(context.type).getItem(context.index);
158
+ var item = (0, Locator_1.getItemFromContext)(context);
159
159
  var _b = itemDescription.getSize(item.id), width = _b.width, height = _b.height;
160
160
  var borderRadius = itemDescription.getBorderRadius(item.id);
161
161
  var max = Math.max(width, height);
@@ -1 +1 @@
1
- {"version":3,"file":"HandLocator.js","sourceRoot":"","sources":["../../src/locators/HandLocator.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"HandLocator.js","sourceRoot":"","sources":["../../src/locators/HandLocator.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,81 @@
1
+ import { Coordinates, GridBoundaries, HexGridSystem, Location, MaterialItem, MoveItem, XYCoordinates } from '@gamepark/rules-api';
2
+ import { LocationDescription } from '../components';
3
+ import { ItemContext, Locator, MaterialContext } from './Locator';
4
+ /**
5
+ * This locator is responsible for placing locations and items on a hexagonal grid.
6
+ */
7
+ export declare abstract class HexagonalGridLocator<P extends number = number, M extends number = number, L extends number = number> extends Locator<P, M, L> {
8
+ /**
9
+ * The coordinates system used by the location and items to place
10
+ */
11
+ abstract coordinatesSystem: HexGridSystem;
12
+ /**
13
+ * The size of one hexagon, i.e. the distance between the center of the hexagon and its vertices.
14
+ * For irregular hexagons, the distance can use XY values.
15
+ */
16
+ abstract size: number | XYCoordinates;
17
+ /**
18
+ * Horizontal size of a hexagon
19
+ */
20
+ protected get sizeX(): number;
21
+ /**
22
+ * Vertical size of a hexagon
23
+ */
24
+ protected get sizeY(): number;
25
+ /**
26
+ * The min and max X and Y coordinates of the grid, if any.
27
+ * Define the boundaries to get the drop area automatically sized and centered.
28
+ */
29
+ boundaries: Partial<GridBoundaries>;
30
+ /**
31
+ * Override if you need dynamic {@link boundaries}.
32
+ * @param _location The location to consider
33
+ * @param _context Context of the game
34
+ * @return current grid boundaries
35
+ */
36
+ getBoundaries(_location: Location<P, L>, _context: MaterialContext<P, M, L>): Partial<GridBoundaries>;
37
+ /**
38
+ * Get the delta X and Y coordinates to apply to place some area given its boundaries.
39
+ * @param boundaries Boundaries of the location to place
40
+ * @return X and Y delta to apply
41
+ */
42
+ private getAreaDelta;
43
+ /**
44
+ * Get the coordinates for the full grid area
45
+ * @param location Location to place
46
+ * @param context Context of the game
47
+ * @returns The coordinates of the area
48
+ */
49
+ getAreaCoordinates(location: Location<P, L>, context: MaterialContext<P, M, L>): Partial<Coordinates>;
50
+ /**
51
+ * Get the coordinates of a location on the grid
52
+ * @param location Location to place
53
+ * @param context Context of the game
54
+ * @return the coordinates
55
+ */
56
+ getLocationCoordinates(location: Location<P, L>, context: MaterialContext<P, M, L>): Partial<Coordinates>;
57
+ /**
58
+ * Get the coordinates of an item on the grid. If the item is a Polyhex, the shape will be use to center the origin coordinates of the item on the
59
+ * correct grid location.
60
+ * @param item Item to place
61
+ * @param context Context of the game
62
+ * @return the coordinates of the item
63
+ */
64
+ getItemCoordinates(item: MaterialItem<P, L>, context: ItemContext<P, M, L>): Partial<Coordinates>;
65
+ /**
66
+ * Rotate the item. On a hexagonal grid, by default the item's rotation is multiplied by 60 degrees.
67
+ * @param item Item to rotate
68
+ * @param _context Context of the item
69
+ * @return the item's rotation in degrees
70
+ */
71
+ getItemRotateZ(item: MaterialItem<P, L>, _context: ItemContext<P, M, L>): number;
72
+ /**
73
+ * Returns the drop locations for current dragged item. The hexagonal grid must be one simple drop location.
74
+ */
75
+ getDropLocations(moves: MoveItem<P, M, L>[], _context: ItemContext<P, M, L>): Location<P, L>[];
76
+ dropPreview: boolean;
77
+ /**
78
+ * Generate automatically a {@link HexGridDropAreaDescription} based on the grid boundaries
79
+ */
80
+ getLocationDescription(location: Location<P, L>, context: MaterialContext<P, M, L> | ItemContext<P, M, L>): LocationDescription<P, M, L> | undefined;
81
+ }
@@ -0,0 +1,221 @@
1
+ "use strict";
2
+ var __extends = (this && this.__extends) || (function () {
3
+ var extendStatics = function (d, b) {
4
+ extendStatics = Object.setPrototypeOf ||
5
+ ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
6
+ function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
7
+ return extendStatics(d, b);
8
+ };
9
+ return function (d, b) {
10
+ if (typeof b !== "function" && b !== null)
11
+ throw new TypeError("Class extends value " + String(b) + " is not a constructor or null");
12
+ extendStatics(d, b);
13
+ function __() { this.constructor = d; }
14
+ d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
15
+ };
16
+ })();
17
+ var __importDefault = (this && this.__importDefault) || function (mod) {
18
+ return (mod && mod.__esModule) ? mod : { "default": mod };
19
+ };
20
+ Object.defineProperty(exports, "__esModule", { value: true });
21
+ exports.HexagonalGridLocator = void 0;
22
+ var rules_api_1 = require("@gamepark/rules-api");
23
+ var isEqual_1 = __importDefault(require("lodash/isEqual"));
24
+ var maxBy_1 = __importDefault(require("lodash/maxBy"));
25
+ var minBy_1 = __importDefault(require("lodash/minBy"));
26
+ var omit_1 = __importDefault(require("lodash/omit"));
27
+ var uniqWith_1 = __importDefault(require("lodash/uniqWith"));
28
+ var components_1 = require("../components");
29
+ var Locator_1 = require("./Locator");
30
+ /**
31
+ * This locator is responsible for placing locations and items on a hexagonal grid.
32
+ */
33
+ var HexagonalGridLocator = /** @class */ (function (_super) {
34
+ __extends(HexagonalGridLocator, _super);
35
+ function HexagonalGridLocator() {
36
+ var _this = _super !== null && _super.apply(this, arguments) || this;
37
+ /**
38
+ * The min and max X and Y coordinates of the grid, if any.
39
+ * Define the boundaries to get the drop area automatically sized and centered.
40
+ */
41
+ _this.boundaries = {};
42
+ _this.dropPreview = true;
43
+ return _this;
44
+ }
45
+ Object.defineProperty(HexagonalGridLocator.prototype, "sizeX", {
46
+ /**
47
+ * Horizontal size of a hexagon
48
+ */
49
+ get: function () {
50
+ return typeof this.size === 'number' ? this.size : this.size.x;
51
+ },
52
+ enumerable: false,
53
+ configurable: true
54
+ });
55
+ Object.defineProperty(HexagonalGridLocator.prototype, "sizeY", {
56
+ /**
57
+ * Vertical size of a hexagon
58
+ */
59
+ get: function () {
60
+ return typeof this.size === 'number' ? this.size : this.size.y;
61
+ },
62
+ enumerable: false,
63
+ configurable: true
64
+ });
65
+ /**
66
+ * Override if you need dynamic {@link boundaries}.
67
+ * @param _location The location to consider
68
+ * @param _context Context of the game
69
+ * @return current grid boundaries
70
+ */
71
+ HexagonalGridLocator.prototype.getBoundaries = function (_location, _context) {
72
+ return this.boundaries;
73
+ };
74
+ /**
75
+ * Get the delta X and Y coordinates to apply to place some area given its boundaries.
76
+ * @param boundaries Boundaries of the location to place
77
+ * @return X and Y delta to apply
78
+ */
79
+ HexagonalGridLocator.prototype.getAreaDelta = function (boundaries) {
80
+ var _a = boundaries.xMin, xMin = _a === void 0 ? 0 : _a, _b = boundaries.xMax, xMax = _b === void 0 ? 0 : _b, _c = boundaries.yMin, yMin = _c === void 0 ? 0 : _c, _d = boundaries.yMax, yMax = _d === void 0 ? 0 : _d;
81
+ switch (this.coordinatesSystem) {
82
+ case rules_api_1.HexGridSystem.Axial: {
83
+ throw new Error('Axial HexGridSystem is not yet implemented');
84
+ }
85
+ case rules_api_1.HexGridSystem.OddQ: {
86
+ var deltaX = (xMin + xMax) / 2;
87
+ var deltaY = ((xMin !== xMax ? 0.5 : xMin % 2 === 0 ? 0 : 1) + yMin + yMax) / 2;
88
+ return { x: deltaX * 3 / 2 * this.sizeX, y: deltaY * Math.sqrt(3) * this.sizeY };
89
+ }
90
+ case rules_api_1.HexGridSystem.EvenQ: {
91
+ var deltaX = (xMin + xMax) / 2;
92
+ var deltaY = ((xMin !== xMax ? -0.5 : xMin % 2 === 0 ? 0 : -1) + yMin + yMax) / 2;
93
+ return { x: deltaX * 3 / 2 * this.sizeX, y: deltaY * Math.sqrt(3) * this.sizeY };
94
+ }
95
+ case rules_api_1.HexGridSystem.OddR: {
96
+ throw new Error('OddR HexGridSystem is not yet implemented');
97
+ }
98
+ case rules_api_1.HexGridSystem.EvenR: {
99
+ throw new Error('EvenR HexGridSystem is not yet implemented');
100
+ }
101
+ }
102
+ };
103
+ /**
104
+ * Get the coordinates for the full grid area
105
+ * @param location Location to place
106
+ * @param context Context of the game
107
+ * @returns The coordinates of the area
108
+ */
109
+ HexagonalGridLocator.prototype.getAreaCoordinates = function (location, context) {
110
+ var _a = _super.prototype.getCoordinates.call(this, location, context), _b = _a.x, x = _b === void 0 ? 0 : _b, _c = _a.y, y = _c === void 0 ? 0 : _c, z = _a.z;
111
+ var _d = this.getAreaDelta(this.getBoundaries(location, context)), _e = _d.x, deltaX = _e === void 0 ? 0 : _e, _f = _d.y, deltaY = _f === void 0 ? 0 : _f;
112
+ return { x: x + deltaX, y: y + deltaY, z: z };
113
+ };
114
+ /**
115
+ * Get the coordinates of a location on the grid
116
+ * @param location Location to place
117
+ * @param context Context of the game
118
+ * @return the coordinates
119
+ */
120
+ HexagonalGridLocator.prototype.getLocationCoordinates = function (location, context) {
121
+ if (location.x === undefined && location.y === undefined) {
122
+ return this.getAreaCoordinates(location, context);
123
+ }
124
+ var _a = location.x, x = _a === void 0 ? 0 : _a, _b = location.y, y = _b === void 0 ? 0 : _b;
125
+ switch (this.coordinatesSystem) {
126
+ case rules_api_1.HexGridSystem.Axial: {
127
+ throw new Error('Axial HexGridSystem is not yet implemented');
128
+ }
129
+ case rules_api_1.HexGridSystem.OddQ: {
130
+ if (x % 2 !== 0)
131
+ y += 0.5;
132
+ return {
133
+ x: x * 3 / 2 * this.sizeX,
134
+ y: y * Math.sqrt(3) * this.sizeY
135
+ };
136
+ }
137
+ case rules_api_1.HexGridSystem.EvenQ: {
138
+ if (x % 2 !== 0)
139
+ y -= 0.5;
140
+ return {
141
+ x: x * 3 / 2 * this.sizeX,
142
+ y: y * Math.sqrt(3) * this.sizeY
143
+ };
144
+ }
145
+ case rules_api_1.HexGridSystem.OddR: {
146
+ throw new Error('OddR HexGridSystem is not yet implemented');
147
+ }
148
+ case rules_api_1.HexGridSystem.EvenR: {
149
+ throw new Error('EvenR HexGridSystem is not yet implemented');
150
+ }
151
+ }
152
+ };
153
+ /**
154
+ * Get the coordinates of an item on the grid. If the item is a Polyhex, the shape will be use to center the origin coordinates of the item on the
155
+ * correct grid location.
156
+ * @param item Item to place
157
+ * @param context Context of the game
158
+ * @return the coordinates of the item
159
+ */
160
+ HexagonalGridLocator.prototype.getItemCoordinates = function (item, context) {
161
+ var _this = this;
162
+ var _a, _b, _c, _d;
163
+ var description = context.material[context.type];
164
+ if (description && (0, components_1.isPolyhexDescription)(description)) {
165
+ var shape = description.getPolyhexShape(item, context).map(function (hex) {
166
+ return (0, rules_api_1.hexFromAxial)((0, rules_api_1.hexRotate)((0, rules_api_1.hexToAxial)(hex, description.coordinatesSystem), item.location.rotation), _this.coordinatesSystem);
167
+ });
168
+ var xMin = (_a = (0, minBy_1.default)(shape, 'x')) === null || _a === void 0 ? void 0 : _a.x, xMax = (_b = (0, maxBy_1.default)(shape, 'x')) === null || _b === void 0 ? void 0 : _b.x, yMin = (_c = (0, minBy_1.default)(shape, 'y')) === null || _c === void 0 ? void 0 : _c.y, yMax = (_d = (0, maxBy_1.default)(shape, 'y')) === null || _d === void 0 ? void 0 : _d.y;
169
+ var _e = _super.prototype.getItemCoordinates.call(this, item, context), _f = _e.x, x = _f === void 0 ? 0 : _f, _g = _e.y, y = _g === void 0 ? 0 : _g, z = _e.z;
170
+ var _h = this.getAreaDelta({ xMin: xMin, xMax: xMax, yMin: yMin, yMax: yMax }), _j = _h.x, deltaX = _j === void 0 ? 0 : _j, _k = _h.y, deltaY = _k === void 0 ? 0 : _k;
171
+ return { x: x + deltaX, y: y + deltaY, z: z };
172
+ }
173
+ return _super.prototype.getItemCoordinates.call(this, item, context);
174
+ };
175
+ /**
176
+ * Rotate the item. On a hexagonal grid, by default the item's rotation is multiplied by 60 degrees.
177
+ * @param item Item to rotate
178
+ * @param _context Context of the item
179
+ * @return the item's rotation in degrees
180
+ */
181
+ HexagonalGridLocator.prototype.getItemRotateZ = function (item, _context) {
182
+ var _a;
183
+ return ((_a = item.location.rotation) !== null && _a !== void 0 ? _a : 0) * 60;
184
+ };
185
+ /**
186
+ * Returns the drop locations for current dragged item. The hexagonal grid must be one simple drop location.
187
+ */
188
+ HexagonalGridLocator.prototype.getDropLocations = function (moves, _context) {
189
+ return (0, uniqWith_1.default)(moves.map(function (move) { return (0, omit_1.default)(move.location, ['x', 'y', 'z', 'rotation']); }), isEqual_1.default);
190
+ };
191
+ /**
192
+ * Generate automatically a {@link HexGridDropAreaDescription} based on the grid boundaries
193
+ */
194
+ HexagonalGridLocator.prototype.getLocationDescription = function (location, context) {
195
+ if (this.locationDescription)
196
+ return this.locationDescription;
197
+ var _a = this.getBoundaries(location, context), _b = _a.xMin, xMin = _b === void 0 ? 0 : _b, _c = _a.xMax, xMax = _c === void 0 ? 0 : _c, _d = _a.yMin, yMin = _d === void 0 ? 0 : _d, _e = _a.yMax, yMax = _e === void 0 ? 0 : _e;
198
+ var borderRadius = this.sizeX / 3;
199
+ switch (this.coordinatesSystem) {
200
+ case rules_api_1.HexGridSystem.Axial: {
201
+ throw new Error('Axial HexGridSystem is not yet implemented');
202
+ }
203
+ case rules_api_1.HexGridSystem.OddQ:
204
+ case rules_api_1.HexGridSystem.EvenQ:
205
+ return new components_1.HexGridDropAreaDescription({
206
+ width: (xMax - xMin + 1) * 3 / 2 * this.sizeX,
207
+ height: (yMax - yMin + 1) * Math.sqrt(3) * this.sizeY,
208
+ borderRadius: borderRadius
209
+ });
210
+ case rules_api_1.HexGridSystem.OddR: {
211
+ throw new Error('OddR HexGridSystem is not yet implemented');
212
+ }
213
+ case rules_api_1.HexGridSystem.EvenR: {
214
+ throw new Error('EvenR HexGridSystem is not yet implemented');
215
+ }
216
+ }
217
+ };
218
+ return HexagonalGridLocator;
219
+ }(Locator_1.Locator));
220
+ exports.HexagonalGridLocator = HexagonalGridLocator;
221
+ //# sourceMappingURL=HexagonalGridLocator.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"HexagonalGridLocator.js","sourceRoot":"","sources":["../../src/locators/HexagonalGridLocator.ts"],"names":[],"mappings":"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"}
@@ -106,12 +106,12 @@ var ListLocator = /** @class */ (function (_super) {
106
106
  };
107
107
  ListLocator.prototype.generateLocationDescriptionFromDraggedItem = function (location, context) {
108
108
  var _a, _b, _c, _d;
109
- var item = context.rules.material(context.type).getItem(context.index);
110
- if (!item)
111
- return;
109
+ var item = (0, Locator_1.getItemFromContext)(context);
112
110
  var _e = (_b = (_a = context.material[context.type]) === null || _a === void 0 ? void 0 : _a.getSize(item.id)) !== null && _b !== void 0 ? _b : {}, _f = _e.width, width = _f === void 0 ? 0 : _f, _g = _e.height, height = _g === void 0 ? 0 : _g;
113
- var _h = this.getCurrentMaxGap(location, context), x = _h.x, y = _h.y;
114
111
  var borderRadius = (_d = (_c = context.material[context.type]) === null || _c === void 0 ? void 0 : _c.getBorderRadius(item.id)) !== null && _d !== void 0 ? _d : 0;
112
+ if (this.getLocationIndex(location, context) !== undefined)
113
+ return new components_1.DropAreaDescription({ width: width, height: height, borderRadius: borderRadius });
114
+ var _h = this.getCurrentMaxGap(location, context), x = _h.x, y = _h.y;
115
115
  return new components_1.DropAreaDescription({
116
116
  width: width + Math.abs(x),
117
117
  height: height + Math.abs(y),
@@ -1 +1 @@
1
- {"version":3,"file":"ListLocator.js","sourceRoot":"","sources":["../../src/locators/ListLocator.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ListLocator.js","sourceRoot":"","sources":["../../src/locators/ListLocator.ts"],"names":[],"mappings":"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"}
@@ -208,6 +208,25 @@ export declare class Locator<P extends number = number, M extends number = numbe
208
208
  * @returns true if the items must be animated
209
209
  */
210
210
  isItemToAnimate(item: MaterialItem<P, L>, context: ItemContext<P, M, L>, move: MoveItem<P, M, L> | DeleteItem<M>): boolean;
211
+ /**
212
+ * Given an item being dragged, and all the moves for this item going to this location type, this function must return the list of valid drop locations
213
+ * for the item
214
+ * @param moves Legal movements for the item
215
+ * @param _context Context of the item
216
+ * @return the drop locations to display
217
+ */
218
+ getDropLocations(moves: MoveItem<P, M, L>[], _context: ItemContext<P, M, L>): Location<P, L>[];
219
+ /**
220
+ * If set to true, each time an item is dragged over
221
+ */
222
+ dropPreview: boolean;
223
+ /**
224
+ * If this function returns true, a preview of the dragged item will be displayed when it is over this location.
225
+ * @param _move The move that will be played if the item is dropped
226
+ * @param _context Context of the game
227
+ * @return true if a preview must be displayed
228
+ */
229
+ showDropPreview(_move: MoveItem<P, M, L>, _context: MaterialContext<P, M, L>): boolean;
211
230
  }
212
231
  /**
213
232
  * A record of item locators, to provide to the game context.
@@ -239,6 +258,12 @@ export type ItemContext<P extends number = number, M extends number = number, L
239
258
  * @returns true if the context also hold information about a specific item in the game.
240
259
  */
241
260
  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>;
261
+ /**
262
+ * Help function to get an item from an ItemContext
263
+ * @param context Context of the item
264
+ * @return The item
265
+ */
266
+ export declare function getItemFromContext<Id = any, P extends number = number, M extends number = number, L extends number = number>(context: ItemContext<P, M, L>): MaterialItem<P, L, Id>;
242
267
  /**
243
268
  * Context of a location in a displayed game.
244
269
  * @property canDrop Whether some item is currently being dragged, and can be dropped in the location.
@@ -14,7 +14,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
14
14
  return (mod && mod.__esModule) ? mod : { "default": mod };
15
15
  };
16
16
  Object.defineProperty(exports, "__esModule", { value: true });
17
- exports.isItemContext = exports.Locator = void 0;
17
+ exports.getItemFromContext = exports.isItemContext = exports.Locator = void 0;
18
18
  /** @jsxImportSource @emotion/react */
19
19
  var rules_api_1 = require("@gamepark/rules-api");
20
20
  var sumBy_1 = __importDefault(require("lodash/sumBy"));
@@ -59,6 +59,10 @@ var Locator = /** @class */ (function () {
59
59
  * How items in the same location area are sorted for the help dialog navigation arrows.
60
60
  */
61
61
  this.navigationSorts = [function (item) { var _a; return (_a = item.location.x) !== null && _a !== void 0 ? _a : 0; }, function (item) { var _a; return (_a = item.location.y) !== null && _a !== void 0 ? _a : 0; }, function (item) { var _a; return (_a = item.location.z) !== null && _a !== void 0 ? _a : 0; }];
62
+ /**
63
+ * If set to true, each time an item is dragged over
64
+ */
65
+ this.dropPreview = false;
62
66
  Object.assign(this, clone);
63
67
  }
64
68
  /**
@@ -325,6 +329,25 @@ var Locator = /** @class */ (function () {
325
329
  }
326
330
  return this.getItemIndex(item, context) >= itemsNotMoving;
327
331
  };
332
+ /**
333
+ * Given an item being dragged, and all the moves for this item going to this location type, this function must return the list of valid drop locations
334
+ * for the item
335
+ * @param moves Legal movements for the item
336
+ * @param _context Context of the item
337
+ * @return the drop locations to display
338
+ */
339
+ Locator.prototype.getDropLocations = function (moves, _context) {
340
+ return moves.map(function (move) { return move.location; });
341
+ };
342
+ /**
343
+ * If this function returns true, a preview of the dragged item will be displayed when it is over this location.
344
+ * @param _move The move that will be played if the item is dropped
345
+ * @param _context Context of the game
346
+ * @return true if a preview must be displayed
347
+ */
348
+ Locator.prototype.showDropPreview = function (_move, _context) {
349
+ return this.dropPreview;
350
+ };
328
351
  return Locator;
329
352
  }());
330
353
  exports.Locator = Locator;
@@ -338,4 +361,13 @@ function isItemContext(context) {
338
361
  return itemContext.type !== undefined && itemContext.index !== undefined && itemContext.displayIndex !== undefined;
339
362
  }
340
363
  exports.isItemContext = isItemContext;
364
+ /**
365
+ * Help function to get an item from an ItemContext
366
+ * @param context Context of the item
367
+ * @return The item
368
+ */
369
+ function getItemFromContext(context) {
370
+ return context.rules.material(context.type).getItem(context.index);
371
+ }
372
+ exports.getItemFromContext = getItemFromContext;
341
373
  //# sourceMappingURL=Locator.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"Locator.js","sourceRoot":"","sources":["../../src/locators/Locator.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Locator.js","sourceRoot":"","sources":["../../src/locators/Locator.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AAAA,sCAAsC;AACtC,iDAAgK;AAChK,uDAAgC;AAChC,4CAAmG;AAInG;;GAEG;AACH;IAEE;;;;OAIG;IACH,iBAAY,KAAwB;QAIpC;;;;WAIG;QACO,cAAS,GAAQ,EAAE,CAAA;QAY7B;;WAEG;QACH,iBAAY,GAAW,KAAK,CAAA;QAO5B;;WAEG;QACH,cAAS,GAAqB,EAAE,CAAA;QAgIhC;;WAEG;QACH,qBAAgB,GAAkB,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,CAAA;QAelD;;WAEG;QACH,gBAAW,GAAyB,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAA;QAuCxD;;WAEG;QACH,YAAO,GAAW,CAAC,CAAA;QAkEnB;;WAEG;QACH,oBAAe,GAAmB,CAAC,UAAC,IAAI,YAAK,OAAA,MAAA,IAAI,CAAC,QAAQ,CAAC,CAAC,mCAAI,CAAC,CAAA,EAAA,EAAE,UAAC,IAAI,YAAK,OAAA,MAAA,IAAI,CAAC,QAAQ,CAAC,CAAC,mCAAI,CAAC,CAAA,EAAA,EAAE,UAAC,IAAI,YAAK,OAAA,MAAA,IAAI,CAAC,QAAQ,CAAC,CAAC,mCAAI,CAAC,CAAA,EAAA,CAAC,CAAA;QA8ClI;;WAEG;QACH,gBAAW,GAAY,KAAK,CAAA;QAtV1B,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,KAAK,CAAC,CAAA;IAC5B,CAAC;IAkCD;;;OAGG;IACH,8BAAY,GAAZ,UAAa,QAAkC;QAC7C,OAAO,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAA;IACzD,CAAC;IAOD;;;;;;OAMG;IACH,wCAAsB,GAAtB,UAAuB,QAAwB,EAAE,OAAwD;QACvG,IAAI,CAAC,IAAI,CAAC,mBAAmB,EAAE;YAC7B,IAAI,IAAI,CAAC,cAAc,KAAK,SAAS,IAAI,QAAQ,CAAC,CAAC,KAAK,SAAS,IAAI,QAAQ,CAAC,CAAC,KAAK,SAAS,IAAI,QAAQ,CAAC,CAAC,KAAK,SAAS,EAAE;gBACzH,IAAM,QAAQ,GAAG,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,cAAc,CAAC,CAAA;gBACtD,IAAI,QAAQ,EAAE;oBACZ,IAAI,CAAC,mBAAmB,GAAG,IAAI,gCAAmB,CAAU,QAAQ,CAAC,CAAA;iBACtE;aACF;iBAAM,IAAI,aAAa,CAAC,OAAO,CAAC,EAAE;gBACjC,OAAO,IAAI,CAAC,0CAA0C,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAA;aAC1E;SACF;QACD,OAAO,IAAI,CAAC,mBAAmB,CAAA;IACjC,CAAC;IAED;;OAEG;IACO,4DAA0C,GAApD,UAAqD,SAAyB,EAAE,OAA6B;QAC3G,OAAO,IAAI,gCAAmB,CAAC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAA;IAChE,CAAC;IAED;;;;;OAKG;IACH,sBAAI,GAAJ,UAAK,IAAwB,EAAE,OAA6B;QAC1D,OAAO,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC,IAAI,EAAE,OAAO,CAAC,IAAI,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAA;IAC5E,CAAC;IAED;;;;;OAKG;IACH,+BAAa,GAAb,UAAc,QAAwB,EAAE,OAAiC;QACvE,IAAM,SAAS,GAAa,EAAE,CAAA;QACxB,IAAA,KAA0B,IAAI,CAAC,sBAAsB,CAAC,QAAQ,EAAE,OAAO,CAAC,EAAtE,SAAK,EAAL,CAAC,mBAAG,CAAC,KAAA,EAAE,SAAK,EAAL,CAAC,mBAAG,CAAC,KAAA,EAAE,SAAK,EAAL,CAAC,mBAAG,CAAC,KAAmD,CAAA;QAC9E,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;YACf,SAAS,CAAC,IAAI,CAAC,sBAAe,CAAC,iBAAO,CAAC,iBAAO,CAAC,QAAK,CAAC,CAAA;SACtD;QACD,IAAM,OAAO,GAAG,IAAI,CAAC,UAAU,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAA;QAClD,IAAI,OAAO,EAAE;YACX,SAAS,CAAC,IAAI,CAAC,kBAAW,OAAO,SAAG,IAAI,CAAC,YAAY,MAAG,CAAC,CAAA;SAC1D;QACD,IAAI,OAAO,CAAC,OAAO;YAAE,SAAS,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAA;QACtD,OAAO,SAAS,CAAA;IAClB,CAAC;IAED;;;;;OAKG;IACH,2BAAS,GAAT,UAAU,IAAwB,EAAE,OAA6B;QAC/D,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE;YAC1C,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAA;SAClC;QACD,IAAM,SAAS,GAAG,IAAI,CAAC,iBAAiB,CAAC,IAAI,EAAE,OAAO,CAAC,CAAA;QACjD,IAAA,KAA0B,IAAI,CAAC,kBAAkB,CAAC,IAAI,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;QACtE,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;YACf,SAAS,CAAC,IAAI,CAAC,sBAAe,CAAC,iBAAO,CAAC,iBAAO,CAAC,QAAK,CAAC,CAAA;SACtD;QACD,IAAM,OAAO,GAAG,IAAI,CAAC,cAAc,CAAC,IAAI,EAAE,OAAO,CAAC,CAAA;QAClD,IAAI,OAAO,EAAE;YACX,SAAS,CAAC,IAAI,CAAC,kBAAW,OAAO,SAAG,IAAI,CAAC,YAAY,MAAG,CAAC,CAAA;SAC1D;QACD,OAAO,SAAS,CAAA;IAClB,CAAC;IAED;;;;;OAKG;IACO,mCAAiB,GAA3B,UAA4B,IAAwB,EAAE,OAA6B;;QACjF,IAAM,UAAU,GAAG,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAA;QAC7D,IAAI,IAAI,CAAC,cAAc,KAAK,SAAS,IAAI,CAAC,UAAU;YAAE,OAAO,EAAE,CAAA;QAC/D,IAAM,OAAO,GAAG,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAA;QAC1D,IAAM,aAAa,yBAAQ,OAAO,KAAE,IAAI,EAAE,IAAI,CAAC,cAAc,EAAE,YAAY,EAAE,CAAC,GAAE,CAAA;QAChF,IAAM,SAAS,GAAG,MAAA,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,SAAS,CAAC,UAAU,EAAE,aAAa,CAAC,mCAAI,EAAE,CAAA;QACrE,IAAM,cAAc,GAAG,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,cAAc,CAAC,CAAA;QACtD,IAAA,KAAW,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,QAAQ,EAAE,OAAO,CAAC,EAAzD,CAAC,OAAA,EAAE,CAAC,OAAqD,CAAA;QACjE,IAAI,cAAc,IAAI,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE;YACpC,IAAA,KAAoB,cAAc,CAAC,OAAO,CAAC,UAAU,CAAC,EAAE,CAAC,EAAvD,KAAK,WAAA,EAAE,MAAM,YAA0C,CAAA;YAC/D,SAAS,CAAC,IAAI,CAAC,sBAAe,KAAK,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC,GAAG,GAAG,iBAAO,MAAM,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC,GAAG,GAAG,iBAAO,cAAc,CAAC,YAAY,CAAC,UAAU,EAAE,aAAa,CAAC,QAAK,CAAC,CAAA;SACtJ;QACD,OAAO,SAAS,CAAA;IAClB,CAAC;IAED;;;;;OAKG;IACH,+BAAa,GAAb,UAAc,QAAwB,EAAE,EAA6C;;YAA3C,KAAK,WAAA,EAAE,QAAQ,cAAA;QACvD,IAAI,IAAI,CAAC,cAAc,KAAK,SAAS;YAAE,OAAO,SAAS,CAAA;QACvD,IAAI,QAAQ,CAAC,MAAM,KAAK,SAAS;YAAE,OAAO,MAAA,QAAQ,CAAC,IAAI,CAAC,cAAc,CAAC,0CAAE,UAAU,CAAA;QACnF,OAAO,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAA;IACrE,CAAC;IAOD;;;;;;;;OAQG;IACH,qCAAmB,GAAnB,UAAoB,SAAyB,EAAE,QAAkC;QAC/E,OAAO,IAAI,CAAC,gBAAgB,CAAA;IAC9B,CAAC;IAOD;;;;;;;;OAQG;IACH,gCAAc,GAAd,UAAe,SAAyB,EAAE,QAAkC;QAC1E,OAAO,IAAI,CAAC,WAAW,CAAA;IACzB,CAAC;IAED;;;;;;;;OAQG;IACH,wCAAsB,GAAtB,UAAuB,QAAwB,EAAE,OAAiC;QAChF,OAAO,IAAI,CAAC,cAAc,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAA;IAC/C,CAAC;IAED;;;;;;OAMG;IACH,oCAAkB,GAAlB,UAAmB,IAAwB,EAAE,OAA6B;QACxE,OAAO,IAAI,CAAC,sBAAsB,CAAC,IAAI,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAA;IAC5D,CAAC;IAOD;;;;;OAKG;IACH,4BAAU,GAAV,UAAW,SAAyB,EAAE,QAAkC;QACtE,OAAO,IAAI,CAAC,OAAO,CAAA;IACrB,CAAC;IAED;;;;;OAKG;IACH,gCAAc,GAAd,UAAe,IAAwB,EAAE,OAA6B;QACpE,OAAO,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAA;IAChD,CAAC;IAED;;;;;;;;OAQG;IACH,kCAAgB,GAAhB,UAAiB,QAAwB,EAAE,QAAkC;;QAC3E,OAAO,MAAA,MAAA,QAAQ,CAAC,CAAC,mCAAI,QAAQ,CAAC,CAAC,mCAAI,QAAQ,CAAC,CAAC,CAAA;IAC/C,CAAC;IAED;;;;;OAKG;IACH,8BAAY,GAAZ,UAAa,IAAwB,EAAE,OAA6B;;QAClE,OAAO,MAAA,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,QAAQ,EAAE,OAAO,CAAC,mCAAI,OAAO,CAAC,YAAY,CAAA;IAC9E,CAAC;IAED;;;;;;OAMG;IACH,4BAAU,GAAV,UAAW,QAAwB,EAAE,EAAmC;YAAjC,KAAK,WAAA;QAC1C,OAAO,IAAA,eAAK,EAAC,IAAI,CAAC,SAAS,EAAE,UAAA,IAAI,IAAI,OAAA,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,UAAA,YAAY,IAAI,OAAA,IAAA,8BAAkB,EAAC,YAAY,EAAE,QAAQ,CAAC,EAA1C,CAA0C,CAAC,CAAC,WAAW,EAAE,EAAvG,CAAuG,CAAC,CAAA;IAC/I,CAAC;IAED;;;;;OAKG;IACH,mCAAiB,GAAjB,UAAkB,KAAyB,EAAE,QAA8B;QACzE,OAAO,EAAE,CAAA;IACX,CAAC;IAOD;;;;OAIG;IACH,oCAAkB,GAAlB,UAAmB,QAA8B;QAC/C,OAAO,IAAI,CAAC,eAAe,CAAA;IAC7B,CAAC;IAED;;;;;;OAMG;IACH,iCAAe,GAAf,UAAgB,IAAwB,EAAE,OAA6B,EAAE,IAAuC;;QACtG,IAAA,KAAK,GAAgC,OAAO,MAAvC,EAAE,IAAI,GAA0B,OAAO,KAAjC,EAAE,KAAK,GAAmB,OAAO,MAA1B,EAAE,YAAY,GAAK,OAAO,aAAZ,CAAY;QACpD,IAAI,IAAI,CAAC,QAAQ,KAAK,IAAI,IAAI,IAAI,CAAC,SAAS,KAAK,KAAK;YAAE,OAAO,KAAK,CAAA;QACpE,IAAM,QAAQ,GAAG,MAAA,IAAI,CAAC,QAAQ,mCAAI,CAAC,CAAA;QACnC,IAAM,aAAa,GAAG,MAAA,IAAI,CAAC,QAAQ,mCAAI,CAAC,CAAA;QACxC,IAAI,QAAQ,KAAK,aAAa;YAAE,OAAO,IAAI,CAAA;QAC3C,4FAA4F;QAC5F,IAAM,WAAW,GAAG,KAAK,CAAC,IAAI,CAAC,WAAW,CAAA;QAC1C,IAAI,cAAc,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,QAAQ,EAAE,IAAI,CAAC,KAAK,CAAC,GAAG,aAAa,CAAC,CAAC,CAAC,QAAQ,GAAG,aAAa,CAAA;QAC3G,IAAI,CAAA,WAAW,aAAX,WAAW,uBAAX,WAAW,CAAE,IAAI,MAAK,IAAI,IAAI,WAAW,CAAC,KAAK,KAAK,KAAK,EAAE;YAC7D,IAAM,YAAY,GAAG,WAAW,CAAC,YAAY,CAAA;YAC7C,IAAI,YAAY,KAAK,YAAY;gBAAE,OAAO,IAAI,CAAA;YAC9C,IAAI,YAAY,GAAG,cAAc;gBAAE,cAAc,EAAE,CAAA;SACpD;QACD,OAAO,IAAI,CAAC,YAAY,CAAC,IAAI,EAAE,OAAO,CAAC,IAAI,cAAc,CAAA;IAC3D,CAAC;IAED;;;;;;OAMG;IACH,kCAAgB,GAAhB,UAAiB,KAA0B,EAAE,QAA8B;QACzE,OAAO,KAAK,CAAC,GAAG,CAAC,UAAA,IAAI,IAAI,OAAA,IAAI,CAAC,QAA0B,EAA/B,CAA+B,CAAC,CAAA;IAC3D,CAAC;IAOD;;;;;OAKG;IACH,iCAAe,GAAf,UAAgB,KAAwB,EAAE,QAAkC;QAC1E,OAAO,IAAI,CAAC,WAAW,CAAA;IACzB,CAAC;IACH,cAAC;AAAD,CAAC,AAzWD,IAyWC;AAzWY,0BAAO;AAsYpB;;;;GAIG;AACH,SAAgB,aAAa,CAC3B,OAAiC;IAEjC,IAAM,WAAW,GAAG,OAA+B,CAAA;IACnD,OAAO,WAAW,CAAC,IAAI,KAAK,SAAS,IAAI,WAAW,CAAC,KAAK,KAAK,SAAS,IAAI,WAAW,CAAC,YAAY,KAAK,SAAS,CAAA;AACpH,CAAC;AALD,sCAKC;AAED;;;;GAIG;AACH,SAAgB,kBAAkB,CAChC,OAA6B;IAE7B,OAAO,OAAO,CAAC,KAAK,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,OAAO,CAAK,OAAO,CAAC,KAAK,CAAC,CAAA;AACxE,CAAC;AAJD,gDAIC"}
@@ -90,7 +90,6 @@ var PileLocator = /** @class */ (function (_super) {
90
90
  return pilePositions.get(index);
91
91
  };
92
92
  PileLocator.prototype.getItemRotateZ = function (item, context) {
93
- var _a;
94
93
  var index = this.getItemIndex(item, context);
95
94
  var pileId = this.getPileId(item, context);
96
95
  if (!this.rotations.has(pileId))
@@ -100,12 +99,12 @@ var PileLocator = /** @class */ (function (_super) {
100
99
  var maxAngle = this.getMaxAngle(item.location, context);
101
100
  pileRotations.set(index, (Math.random() - 0.5) * maxAngle);
102
101
  }
103
- return (_a = pileRotations.get(index)) !== null && _a !== void 0 ? _a : 0;
102
+ return this.getRotateZ(item.location, context) + pileRotations.get(index);
104
103
  };
105
104
  PileLocator.prototype.generateLocationDescriptionFromDraggedItem = function (location, context) {
106
105
  var _a;
107
106
  var itemDescription = (_a = context.material[context.type]) !== null && _a !== void 0 ? _a : new components_1.CardDescription();
108
- var item = context.rules.material(context.type).getItem(context.index);
107
+ var item = (0, Locator_1.getItemFromContext)(context);
109
108
  var _b = itemDescription.getSize(item.id), width = _b.width, height = _b.height;
110
109
  if (this.getMaxAngle(location, context) < 180) {
111
110
  return new components_1.DropAreaDescription(itemDescription);
@@ -1 +1 @@
1
- {"version":3,"file":"PileLocator.js","sourceRoot":"","sources":["../../src/locators/PileLocator.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"PileLocator.js","sourceRoot":"","sources":["../../src/locators/PileLocator.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;AACA,4CAAyF;AACzF,qCAAqF;AAErF;;GAEG;AACH;IAAkH,+BAAgB;IAEhI,qBAAY,KAA4B;QAAxC,YACE,iBAAO,SAER;QAEO,eAAS,GAAG,IAAI,GAAG,EAAoC,CAAA;QACvD,eAAS,GAAG,IAAI,GAAG,EAA+B,CAAA;QAE1D;;WAEG;QACH,WAAK,GAAG,EAAE,CAAA;QAEV;;WAEG;QACH,YAAM,GAA2B,CAAC,CAAA;QAYlC;;WAEG;QACH,cAAQ,GAAG,GAAG,CAAA;QA7BZ,MAAM,CAAC,MAAM,CAAC,KAAI,EAAE,KAAK,CAAC,CAAA;;IAC5B,CAAC;IAeD;;;;;OAKG;IACH,+BAAS,GAAT,UAAU,SAAyB,EAAE,QAAkC;QACrE,OAAO,IAAI,CAAC,MAAM,CAAA;IACpB,CAAC;IAOD;;;;;OAKG;IACH,iCAAW,GAAX,UAAY,SAAyB,EAAE,QAAkC;QACvE,OAAO,IAAI,CAAC,QAAQ,CAAA;IACtB,CAAC;IAED;;;;;OAKG;IACH,+BAAS,GAAT,UAAU,IAAwB,EAAE,QAA8B;QAChE,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,UAAA,IAAI,IAAI,OAAA,IAAI,KAAK,SAAS,EAAlB,CAAkB,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;IACpH,CAAC;IAED,wCAAkB,GAAlB,UAAmB,IAAwB,EAAE,OAA6B;QACxE,IAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAA;QAC9B,IAAM,KAAK,GAAG,IAAI,CAAC,YAAY,CAAC,IAAI,EAAE,OAAO,CAAC,CAAA;QAC9C,IAAM,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,OAAO,CAAC,CAAA;QAC5C,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,MAAM,CAAC;YAAE,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,MAAM,EAAE,IAAI,GAAG,EAAE,CAAC,CAAA;QACtE,IAAM,aAAa,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,MAAM,CAAE,CAAA;QACjD,IAAM,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAA;QAChD,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE;YACvB,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;YACtE,IAAM,QAAQ,GAAG,IAAI,CAAC,MAAM,EAAE,CAAA;YAC9B,IAAM,SAAS,GAAG,IAAI,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,IAAI,CAAC,EAAE,CAAA;YAC7C,aAAa,CAAC,GAAG,CAAC,KAAK,EAAE;gBACvB,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,OAAO,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC;gBACnG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,OAAO,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC;gBACnG,CAAC,EAAE,CAAC,GAAG,KAAK,GAAG,IAAI;aACpB,CAAC,CAAA;SACH;QACD,OAAO,aAAa,CAAC,GAAG,CAAC,KAAK,CAAE,CAAA;IAClC,CAAC;IAED,oCAAc,GAAd,UAAe,IAAwB,EAAE,OAA6B;QACpE,IAAM,KAAK,GAAG,IAAI,CAAC,YAAY,CAAC,IAAI,EAAE,OAAO,CAAC,CAAA;QAC9C,IAAM,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,OAAO,CAAC,CAAA;QAC5C,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,MAAM,CAAC;YAAE,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,MAAM,EAAE,IAAI,GAAG,EAAE,CAAC,CAAA;QACtE,IAAM,aAAa,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,MAAM,CAAE,CAAA;QACjD,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE;YAC7B,IAAM,QAAQ,GAAG,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAA;YACzD,aAAa,CAAC,GAAG,CAAC,KAAK,EAAE,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,GAAG,CAAC,GAAG,QAAQ,CAAC,CAAA;SAC3D;QACD,OAAO,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,QAAQ,EAAE,OAAO,CAAC,GAAG,aAAa,CAAC,GAAG,CAAC,KAAK,CAAE,CAAA;IAC5E,CAAC;IAES,gEAA0C,GAApD,UAAqD,QAAwB,EAAE,OAA6B;;QAC1G,IAAM,eAAe,GAAG,MAAA,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,mCAAI,IAAI,4BAAe,EAAE,CAAA;QAC/E,IAAM,IAAI,GAAG,IAAA,4BAAkB,EAAC,OAAO,CAAC,CAAA;QAClC,IAAA,KAAoB,eAAe,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC,EAAlD,KAAK,WAAA,EAAE,MAAM,YAAqC,CAAA;QAC1D,IAAI,IAAI,CAAC,WAAW,CAAC,QAAQ,EAAE,OAAO,CAAC,GAAG,GAAG,EAAE;YAC7C,OAAO,IAAI,gCAAmB,CAAC,eAAe,CAAC,CAAA;SAChD;aAAM;YACL,IAAM,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,MAAM,CAAC,CAAA;YACnC,IAAM,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAA;YAChD,OAAO,IAAI,gCAAmB,CAAC;gBAC7B,KAAK,EAAE,GAAG,GAAG,CAAC,OAAO,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC;gBACrE,MAAM,EAAE,GAAG,GAAG,CAAC,OAAO,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC;gBACtE,YAAY,EAAE,GAAG,GAAG,CAAC,GAAG,CAAC,OAAO,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC;aAC7F,CAAC,CAAA;SACH;IACH,CAAC;IACH,kBAAC;AAAD,CAAC,AAvGD,CAAkH,iBAAO,GAuGxH;AAvGY,kCAAW"}