@gamepark/react-game 6.25.0 → 6.27.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/Header/MaterialHeader.js +2 -1
- package/dist/components/Header/MaterialHeader.js.map +1 -1
- package/dist/components/buttons/PlayMoveButton/PlayMoveButton.d.ts +3 -3
- package/dist/components/buttons/PlayMoveButton/PlayMoveButton.js +1 -1
- package/dist/components/buttons/PlayMoveButton/PlayMoveButton.js.map +1 -1
- package/dist/components/material/Dices/CubicDiceDescription.d.ts +1 -1
- package/dist/components/material/Dices/CubicDiceDescription.js +1 -1
- package/dist/components/material/Dices/CubicDiceDescription.js.map +1 -1
- package/dist/components/material/DraggableMaterial.js +1 -1
- package/dist/components/material/DraggableMaterial.js.map +1 -1
- package/dist/components/material/FlatMaterial/FlatMaterial.d.ts +1 -1
- package/dist/components/material/FlatMaterial/FlatMaterial.js +7 -4
- package/dist/components/material/FlatMaterial/FlatMaterial.js.map +1 -1
- package/dist/components/material/FlatMaterial/PolyhexDescription.d.ts +9 -0
- package/dist/components/material/FlatMaterial/PolyhexDescription.js +35 -0
- package/dist/components/material/FlatMaterial/PolyhexDescription.js.map +1 -0
- 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/DropPreview.d.ts +2 -0
- package/dist/components/material/GameTable/DropPreview.js +60 -0
- package/dist/components/material/GameTable/DropPreview.js.map +1 -0
- package/dist/components/material/GameTable/GameMaterialDisplay.js +2 -1
- package/dist/components/material/GameTable/GameMaterialDisplay.js.map +1 -1
- package/dist/components/material/GameTable/GameTable.js +7 -15
- package/dist/components/material/GameTable/GameTable.js.map +1 -1
- package/dist/components/material/GameTable/ItemDisplay.d.ts +1 -0
- package/dist/components/material/GameTable/ItemDisplay.js +8 -5
- package/dist/components/material/GameTable/ItemDisplay.js.map +1 -1
- package/dist/components/material/ItemMenu.js.map +1 -0
- package/dist/components/material/ItemMenuButton.d.ts +10 -0
- package/dist/components/material/ItemMenuButton.js +46 -0
- package/dist/components/material/ItemMenuButton.js.map +1 -0
- package/dist/components/material/MaterialComponent.d.ts +2 -0
- package/dist/components/material/MaterialComponent.js +2 -2
- package/dist/components/material/MaterialComponent.js.map +1 -1
- package/dist/components/material/MaterialDescription.d.ts +14 -3
- package/dist/components/material/MaterialDescription.js +64 -3
- package/dist/components/material/MaterialDescription.js.map +1 -1
- package/dist/components/material/MobileMaterialDescription.d.ts +1 -1
- package/dist/components/material/MobileMaterialDescription.js +4 -5
- package/dist/components/material/MobileMaterialDescription.js.map +1 -1
- package/dist/components/material/Wheel/WheelDescription.d.ts +2 -1
- package/dist/components/material/Wheel/WheelDescription.js +10 -0
- package/dist/components/material/Wheel/WheelDescription.js.map +1 -1
- package/dist/components/material/Writing/WritingDescription.d.ts +1 -1
- package/dist/components/material/Writing/WritingDescription.js +1 -1
- package/dist/components/material/Writing/WritingDescription.js.map +1 -1
- package/dist/components/material/animations/CreateItemAnimations.d.ts +1 -1
- package/dist/components/material/animations/CreateItemAnimations.js +8 -8
- package/dist/components/material/animations/CreateItemAnimations.js.map +1 -1
- package/dist/components/material/animations/DeleteItemAnimations.js +5 -5
- package/dist/components/material/animations/DeleteItemAnimations.js.map +1 -1
- package/dist/components/material/animations/MoveItemAnimations.js +11 -10
- package/dist/components/material/animations/MoveItemAnimations.js.map +1 -1
- package/dist/components/material/animations/MoveItemAtOnceAnimations.js +8 -7
- package/dist/components/material/animations/MoveItemAtOnceAnimations.js.map +1 -1
- package/dist/components/material/animations/RollItemAnimations.js +4 -4
- package/dist/components/material/animations/RollItemAnimations.js.map +1 -1
- package/dist/components/material/animations/getFirstStockItemTransforms.util.js +3 -3
- package/dist/components/material/animations/getFirstStockItemTransforms.util.js.map +1 -1
- package/dist/components/material/animations/index.d.ts +0 -1
- package/dist/components/material/animations/index.js +1 -3
- package/dist/components/material/animations/index.js.map +1 -1
- package/dist/components/material/animations/rotations.utils.d.ts +1 -0
- package/dist/components/material/animations/rotations.utils.js +3 -7
- package/dist/components/material/animations/rotations.utils.js.map +1 -1
- package/dist/components/material/animations/transformItem.util.js +6 -5
- package/dist/components/material/animations/transformItem.util.js.map +1 -1
- package/dist/components/material/index.d.ts +1 -0
- package/dist/components/material/index.js +1 -0
- package/dist/components/material/index.js.map +1 -1
- package/dist/components/material/locations/DropAreaDescription.d.ts +2 -1
- package/dist/components/material/locations/DropAreaDescription.js +1 -1
- package/dist/components/material/locations/DropAreaDescription.js.map +1 -1
- package/dist/components/material/locations/HexGridDropArea.d.ts +11 -0
- package/dist/components/material/locations/HexGridDropArea.js +74 -0
- package/dist/components/material/locations/HexGridDropArea.js.map +1 -0
- package/dist/components/material/locations/HexGridDropAreaDescription.d.ts +10 -0
- package/dist/components/material/locations/HexGridDropAreaDescription.js +90 -0
- package/dist/components/material/locations/HexGridDropAreaDescription.js.map +1 -0
- package/dist/components/material/locations/LocationDescription.d.ts +1 -0
- package/dist/components/material/locations/LocationDescription.js +5 -4
- package/dist/components/material/locations/LocationDescription.js.map +1 -1
- package/dist/components/material/locations/index.d.ts +1 -0
- package/dist/components/material/locations/index.js +1 -0
- package/dist/components/material/locations/index.js.map +1 -1
- package/dist/components/material/utils/IsLocationSubset.js +7 -1
- package/dist/components/material/utils/IsLocationSubset.js.map +1 -1
- package/dist/components/material/utils/getBestDropMove.d.ts +4 -0
- package/dist/components/material/utils/getBestDropMove.js +34 -0
- package/dist/components/material/utils/getBestDropMove.js.map +1 -0
- package/dist/components/material/utils/isDroppedItem.js +2 -1
- package/dist/components/material/utils/isDroppedItem.js.map +1 -1
- package/dist/components/material/utils/isRotationMove.d.ts +3 -0
- package/dist/components/material/utils/isRotationMove.js +25 -0
- package/dist/components/material/utils/isRotationMove.js.map +1 -0
- package/dist/hooks/useItemLocations.js +5 -19
- package/dist/hooks/useItemLocations.js.map +1 -1
- package/dist/locators/HandLocator.js +1 -1
- package/dist/locators/HandLocator.js.map +1 -1
- package/dist/locators/HexagonalGridLocator.d.ts +81 -0
- package/dist/locators/HexagonalGridLocator.js +219 -0
- package/dist/locators/HexagonalGridLocator.js.map +1 -0
- package/dist/locators/ListLocator.js +1 -3
- package/dist/locators/ListLocator.js.map +1 -1
- package/dist/locators/Locator.d.ts +25 -0
- package/dist/locators/Locator.js +33 -1
- package/dist/locators/Locator.js.map +1 -1
- package/dist/locators/PileLocator.js +1 -1
- package/dist/locators/PileLocator.js.map +1 -1
- package/dist/locators/index.d.ts +1 -0
- package/dist/locators/index.js +1 -0
- package/dist/locators/index.js.map +1 -1
- package/dist/locators/utils/grid.hex.util.d.ts +43 -0
- package/dist/locators/utils/grid.hex.util.js +92 -0
- package/dist/locators/utils/grid.hex.util.js.map +1 -0
- package/dist/utilities/combineEventListeners.js.map +1 -1
- package/dist/utilities/zoom-pan-pinch/animations.util.d.ts +6 -2
- package/dist/utilities/zoom-pan-pinch/animations.util.js.map +1 -1
- package/package.json +7 -7
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"LocationDescription.js","sourceRoot":"","sources":["../../../../src/components/material/locations/LocationDescription.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;AACA,iDAAyH;AACzH,2DAAoC;AAGpC,gEAA6E;AAC7E,kCAA2C;AAC3C,sCAAiD;AACjD,yDAAuD;AACvD,IAAO,mBAAmB,GAAG,+BAAmB,CAAC,mBAAmB,CAAA;AAEpE;IACU,uCAAwB;
|
|
1
|
+
{"version":3,"file":"LocationDescription.js","sourceRoot":"","sources":["../../../../src/components/material/locations/LocationDescription.ts"],"names":[],"mappings":"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"}
|
|
@@ -15,6 +15,7 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
|
15
15
|
};
|
|
16
16
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
17
|
__exportStar(require("./DropAreaDescription"), exports);
|
|
18
|
+
__exportStar(require("./HexGridDropAreaDescription"), exports);
|
|
18
19
|
__exportStar(require("./LocationDescription"), exports);
|
|
19
20
|
__exportStar(require("./LocationsMask"), exports);
|
|
20
21
|
__exportStar(require("./SimpleDropArea"), exports);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/components/material/locations/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,wDAAqC;AACrC,wDAAqC;AACrC,kDAA+B;AAC/B,mDAAgC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/components/material/locations/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,wDAAqC;AACrC,+DAA4C;AAC5C,wDAAqC;AACrC,kDAA+B;AAC/B,mDAAgC"}
|
|
@@ -6,7 +6,13 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
6
6
|
exports.isLocationSubset = void 0;
|
|
7
7
|
var isEqual_1 = __importDefault(require("lodash/isEqual"));
|
|
8
8
|
var isLocationSubset = function (testLocation, parentLocation) {
|
|
9
|
-
|
|
9
|
+
var key;
|
|
10
|
+
for (key in parentLocation) {
|
|
11
|
+
if (parentLocation[key] !== undefined && !(0, isEqual_1.default)(parentLocation[key], testLocation[key])) {
|
|
12
|
+
return false;
|
|
13
|
+
}
|
|
14
|
+
}
|
|
15
|
+
return true;
|
|
10
16
|
};
|
|
11
17
|
exports.isLocationSubset = isLocationSubset;
|
|
12
18
|
//# sourceMappingURL=IsLocationSubset.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"IsLocationSubset.js","sourceRoot":"","sources":["../../../../src/components/material/utils/IsLocationSubset.ts"],"names":[],"mappings":";;;;;;AACA,2DAAoC;AAE7B,IAAM,gBAAgB,GAAG,UAAC,YAA+B,EAAE,cAAwB;IACxF,
|
|
1
|
+
{"version":3,"file":"IsLocationSubset.js","sourceRoot":"","sources":["../../../../src/components/material/utils/IsLocationSubset.ts"],"names":[],"mappings":";;;;;;AACA,2DAAoC;AAE7B,IAAM,gBAAgB,GAAG,UAAC,YAA+B,EAAE,cAAwB;IACxF,IAAI,GAAmB,CAAA;IACvB,KAAK,GAAG,IAAI,cAAc,EAAE;QAC1B,IAAI,cAAc,CAAC,GAAG,CAAC,KAAK,SAAS,IAAI,CAAC,IAAA,iBAAO,EAAC,cAAc,CAAC,GAAG,CAAC,EAAE,YAAY,CAAC,GAAG,CAAC,CAAC,EAAE;YACzF,OAAO,KAAK,CAAA;SACb;KACF;IACD,OAAO,IAAI,CAAA;AACb,CAAC,CAAA;AARY,QAAA,gBAAgB,oBAQ5B"}
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import { DragEndEvent, DragMoveEvent } from '@dnd-kit/core';
|
|
2
|
+
import { MaterialMove } from '../../../../../rules-api';
|
|
3
|
+
import { MaterialContext } from '../../../locators';
|
|
4
|
+
export declare function getBestDropMove<P extends number = number, M extends number = number, L extends number = number>(event: DragMoveEvent | DragEndEvent, context: MaterialContext<P, M, L>, legalMoves: MaterialMove<P, M, L>[]): MaterialMove<P, M, L> | undefined;
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __assign = (this && this.__assign) || function () {
|
|
3
|
+
__assign = Object.assign || function(t) {
|
|
4
|
+
for (var s, i = 1, n = arguments.length; i < n; i++) {
|
|
5
|
+
s = arguments[i];
|
|
6
|
+
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
|
|
7
|
+
t[p] = s[p];
|
|
8
|
+
}
|
|
9
|
+
return t;
|
|
10
|
+
};
|
|
11
|
+
return __assign.apply(this, arguments);
|
|
12
|
+
};
|
|
13
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
14
|
+
exports.getBestDropMove = void 0;
|
|
15
|
+
var DraggableMaterial_1 = require("../DraggableMaterial");
|
|
16
|
+
function getBestDropMove(event, context, legalMoves) {
|
|
17
|
+
if (event.over && (0, DraggableMaterial_1.dataIsDisplayedItem)(event.active.data.current) && dataIsLocation(event.over.data.current)) {
|
|
18
|
+
var item = event.active.data.current;
|
|
19
|
+
var description_1 = context.material[item.type];
|
|
20
|
+
var location_1 = event.over.data.current;
|
|
21
|
+
var locator = context.locators[location_1.type];
|
|
22
|
+
var itemContext_1 = __assign(__assign({}, context), item);
|
|
23
|
+
var locationDescription_1 = locator === null || locator === void 0 ? void 0 : locator.getLocationDescription(location_1, itemContext_1);
|
|
24
|
+
var moves = legalMoves.filter(function (move) { var _a; return (description_1 === null || description_1 === void 0 ? void 0 : description_1.canDrag(move, itemContext_1)) && ((_a = locationDescription_1 === null || locationDescription_1 === void 0 ? void 0 : locationDescription_1.canDrop) === null || _a === void 0 ? void 0 : _a.call(locationDescription_1, move, location_1, itemContext_1)); });
|
|
25
|
+
if (moves.length > 0) {
|
|
26
|
+
return moves.length === 1 ? moves[0] : locationDescription_1.getBestDropMove(moves, location_1, itemContext_1, event);
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
exports.getBestDropMove = getBestDropMove;
|
|
31
|
+
function dataIsLocation(data) {
|
|
32
|
+
return typeof (data === null || data === void 0 ? void 0 : data.type) === 'number';
|
|
33
|
+
}
|
|
34
|
+
//# sourceMappingURL=getBestDropMove.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"getBestDropMove.js","sourceRoot":"","sources":["../../../../src/components/material/utils/getBestDropMove.ts"],"names":[],"mappings":";;;;;;;;;;;;;;AAGA,0DAA0D;AAG1D,SAAgB,eAAe,CAC7B,KAAmC,EAAE,OAAiC,EAAE,UAAmC;IAE3G,IAAI,KAAK,CAAC,IAAI,IAAI,IAAA,uCAAmB,EAAI,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,cAAc,CAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE;QACpH,IAAM,IAAI,GAAG,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAA;QACtC,IAAM,aAAW,GAAG,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;QAC/C,IAAM,UAAQ,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAA;QACxC,IAAM,OAAO,GAAG,OAAO,CAAC,QAAQ,CAAC,UAAQ,CAAC,IAAI,CAAC,CAAA;QAC/C,IAAM,aAAW,yBAAQ,OAAO,GAAK,IAAI,CAAE,CAAA;QAC3C,IAAM,qBAAmB,GAAG,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,sBAAsB,CAAC,UAAQ,EAAE,aAAW,CAAiC,CAAA;QAClH,IAAM,KAAK,GAAG,UAAU,CAAC,MAAM,CAAC,UAAA,IAAI,YAClC,OAAA,CAAA,aAAW,aAAX,aAAW,uBAAX,aAAW,CAAE,OAAO,CAAC,IAAI,EAAE,aAAW,CAAC,MAAI,MAAA,qBAAmB,aAAnB,qBAAmB,uBAAnB,qBAAmB,CAAE,OAAO,sEAAG,IAAI,EAAE,UAAQ,EAAE,aAAW,CAAC,CAAA,CAAA,EAAA,CACvG,CAAA;QACD,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE;YACpB,OAAO,KAAK,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,qBAAmB,CAAC,eAAe,CAAC,KAAK,EAAE,UAAQ,EAAE,aAAW,EAAE,KAAK,CAAC,CAAA;SAChH;KACF;AACH,CAAC;AAjBD,0CAiBC;AAED,SAAS,cAAc,CAAuD,IAA0B;IACtG,OAAO,OAAO,CAAA,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,IAAI,CAAA,KAAK,QAAQ,CAAA;AACvC,CAAC"}
|
|
@@ -12,6 +12,7 @@ var __assign = (this && this.__assign) || function () {
|
|
|
12
12
|
};
|
|
13
13
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
14
14
|
exports.isDroppedItem = void 0;
|
|
15
|
+
var locators_1 = require("../../../locators");
|
|
15
16
|
var isPlacedOnItem_1 = require("./isPlacedOnItem");
|
|
16
17
|
var isDroppedItem = function (context) {
|
|
17
18
|
var type = context.type, index = context.index, displayIndex = context.displayIndex, rules = context.rules;
|
|
@@ -20,7 +21,7 @@ var isDroppedItem = function (context) {
|
|
|
20
21
|
return false;
|
|
21
22
|
if (droppedItem.type === type && droppedItem.index === index && droppedItem.displayIndex === displayIndex)
|
|
22
23
|
return true;
|
|
23
|
-
return (0, isPlacedOnItem_1.isPlacedOnItem)(
|
|
24
|
+
return (0, isPlacedOnItem_1.isPlacedOnItem)((0, locators_1.getItemFromContext)(context), __assign(__assign({}, context), droppedItem));
|
|
24
25
|
};
|
|
25
26
|
exports.isDroppedItem = isDroppedItem;
|
|
26
27
|
//# sourceMappingURL=isDroppedItem.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"isDroppedItem.js","sourceRoot":"","sources":["../../../../src/components/material/utils/isDroppedItem.ts"],"names":[],"mappings":";;;;;;;;;;;;;;
|
|
1
|
+
{"version":3,"file":"isDroppedItem.js","sourceRoot":"","sources":["../../../../src/components/material/utils/isDroppedItem.ts"],"names":[],"mappings":";;;;;;;;;;;;;;AAAA,8CAAmE;AACnE,mDAAiD;AAE1C,IAAM,aAAa,GAAG,UAC3B,OAA6B;IAErB,IAAA,IAAI,GAAiC,OAAO,KAAxC,EAAE,KAAK,GAA0B,OAAO,MAAjC,EAAE,YAAY,GAAY,OAAO,aAAnB,EAAE,KAAK,GAAK,OAAO,MAAZ,CAAY;IACpD,IAAM,WAAW,GAAG,KAAK,CAAC,IAAI,CAAC,WAAW,CAAA;IAC1C,IAAI,CAAC,WAAW;QAAE,OAAO,KAAK,CAAA;IAC9B,IAAI,WAAW,CAAC,IAAI,KAAK,IAAI,IAAI,WAAW,CAAC,KAAK,KAAK,KAAK,IAAI,WAAW,CAAC,YAAY,KAAK,YAAY;QAAE,OAAO,IAAI,CAAA;IACtH,OAAO,IAAA,+BAAc,EAAC,IAAA,6BAAkB,EAAC,OAAO,CAAC,wBAAO,OAAO,GAAK,WAAW,EAAG,CAAA;AACpF,CAAC,CAAA;AARY,QAAA,aAAa,iBAQzB"}
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
import { MoveItem } from '@gamepark/rules-api';
|
|
2
|
+
import { MaterialContext } from '../../../locators';
|
|
3
|
+
export declare const isRotationMove: <P extends number = number, M extends number = number, L extends number = number>(move: MoveItem<P, M, L>, context: MaterialContext<P, M, L>) => boolean;
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __rest = (this && this.__rest) || function (s, e) {
|
|
3
|
+
var t = {};
|
|
4
|
+
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
|
|
5
|
+
t[p] = s[p];
|
|
6
|
+
if (s != null && typeof Object.getOwnPropertySymbols === "function")
|
|
7
|
+
for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
|
|
8
|
+
if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
|
|
9
|
+
t[p[i]] = s[p[i]];
|
|
10
|
+
}
|
|
11
|
+
return t;
|
|
12
|
+
};
|
|
13
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
14
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
15
|
+
};
|
|
16
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
+
exports.isRotationMove = void 0;
|
|
18
|
+
var isEqual_1 = __importDefault(require("lodash/isEqual"));
|
|
19
|
+
var isRotationMove = function (move, context) {
|
|
20
|
+
var _a = context.rules.material(move.itemType).getItem(move.itemIndex).location, itemRotation = _a.rotation, itemLocation = __rest(_a, ["rotation"]);
|
|
21
|
+
var _b = move.location, moveRotation = _b.rotation, moveLocation = __rest(_b, ["rotation"]);
|
|
22
|
+
return (0, isEqual_1.default)(itemLocation, moveLocation) && !(0, isEqual_1.default)(itemRotation, moveRotation);
|
|
23
|
+
};
|
|
24
|
+
exports.isRotationMove = isRotationMove;
|
|
25
|
+
//# sourceMappingURL=isRotationMove.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"isRotationMove.js","sourceRoot":"","sources":["../../../../src/components/material/utils/isRotationMove.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AACA,2DAAoC;AAG7B,IAAM,cAAc,GAAG,UAC5B,IAAuB,EAAE,OAAiC;IAE1D,IAAM,KAA8C,OAAO,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,SAAS,CAAE,CAAC,QAAQ,EAAzG,YAAY,cAAA,EAAK,YAAY,cAAzC,YAA2C,CAA0E,CAAA;IAC3H,IAAM,KAA8C,IAAI,CAAC,QAAQ,EAA/C,YAAY,cAAA,EAAK,YAAY,cAAzC,YAA2C,CAAgB,CAAA;IACjE,OAAO,IAAA,iBAAO,EAAC,YAAY,EAAE,YAAY,CAAC,IAAI,CAAC,IAAA,iBAAO,EAAC,YAAY,EAAE,YAAY,CAAC,CAAA;AACpF,CAAC,CAAA;AANY,QAAA,cAAc,kBAM1B"}
|
|
@@ -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
|
|
60
|
-
var
|
|
61
|
-
var
|
|
62
|
-
|
|
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":";;;;;;;;;;;;;;;;;AACA,2DAAoC;AACpC,+BAA+B;AAC/B,4CAA+C;AAE/C,mDAAiD;AACjD,iDAA+C;AAC/C,2DAAyD;AAOzD,SAAgB,gBAAgB,CAC9B,IAAwB,EAAE,OAA6B;;IAE/C,IAAA,KAAK,GAA+B,OAAO,MAAtC,EAAE,IAAI,GAAyB,OAAO,KAAhC,EAAE,QAAQ,GAAe,OAAO,SAAtB,EAAE,QAAQ,GAAK,OAAO,SAAZ,CAAY;IAC7C,IAAA,KAAsB,IAAA,4BAAe,GAAW,EAA9C,KAAK,WAAA,EAAE,QAAQ,cAA+B,CAAA;IACtD,IAAI,CAAC,IAAI;QAAE,OAAO,EAAE,CAAA;IAEpB,IAAM,SAAS,GAAG,MAAA,MAAA,QAAQ,CAAC,IAAI,CAAC,0CAAE,YAAY,CAAC,IAAI,EAAE,OAAO,CAAC,mCAAI,EAAE,CAAA;IACnE,IAAM,MAAM,GAA6B,SAAS,CAAC,GAAG,CAAC,UAAA,QAAQ,IAAI,OAAA,CAAC,EAAE,QAAQ,UAAA,EAAE,CAAC,EAAd,CAAc,CAAC,CAAA;IAElF,IAAM,cAAc,GAAG,MAAA,MAAA,KAAK,aAAL,KAAK,uBAAL,KAAK,CAAE,SAAS,0CAAE,MAAM,CAAC,UAAA,QAAQ,gBACtD,OAAA,CAAA,MAAA,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,0CAAE,cAAc,MAAK,IAAI,IAAI,CAAC,MAAA,QAAQ,CAAC,MAAM,mCAAI,CAAC,CAAC,KAAK,KAAK,CAAA,EAAA,CACrF,mCAAI,EAAE,CAAA;4BACI,UAAQ;QACjB,IAAM,OAAK,GAAG,MAAM,CAAC,SAAS,CAAC,UAAA,CAAC,IAAI,OAAA,IAAA,iBAAO,EAAC,CAAC,CAAC,QAAQ,EAAE,UAAQ,CAAC,EAA7B,CAA6B,CAAC,CAAA;QAClE,IAAI,OAAK,KAAK,CAAC,CAAC,EAAE;YAChB,MAAM,CAAC,OAAK,CAAC,CAAC,QAAQ,GAAG,QAAQ,CAAA;SAClC;aAAM;YACL,MAAM,CAAC,IAAI,CAAC,EAAE,QAAQ,YAAA,EAAE,QAAQ,UAAA,EAAE,CAAC,CAAA;SACpC;;IANH,KAAuB,UAAc,EAAd,iCAAc,EAAd,4BAAc,EAAd,IAAc;QAAhC,IAAM,UAAQ,uBAAA;gBAAR,UAAQ;KAOlB;IAED,OAAO,MAAM,CAAA;AACf,CAAC;AAvBD,4CAuBC;AAEM,IAAM,wBAAwB,GAAG;IACtC,IAAM,OAAO,GAA4E,IAAA,uCAAkB,GAAW,CAAA;IACtH,IAAM,WAAW,GAAG,IAAA,+BAAc,GAAK,CAAA;IACvC,IAAM,UAAU,GAAG,IAAA,6BAAa,GAAyB,CAAA;IACzD,OAAO,IAAA,eAAO,EAAC;;QACb,IAAI,CAAC,WAAW,EAAE;YAChB,OAAO,OAAO,CAAC,qBAAqB,CAAA;SACrC;aAAM,IAAI,CAAC,OAAO,CAAC,qBAAqB,EAAE;YACzC,IAAM,
|
|
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 =
|
|
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":";;;;;;;;;;;;;;;;;;AACA,4CAAyF;AACzF,
|
|
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,219 @@
|
|
|
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
|
+
y += ((x % 2 + 2) % 2) / 2;
|
|
131
|
+
return {
|
|
132
|
+
x: x * 3 / 2 * this.sizeX,
|
|
133
|
+
y: y * Math.sqrt(3) * this.sizeY
|
|
134
|
+
};
|
|
135
|
+
}
|
|
136
|
+
case rules_api_1.HexGridSystem.EvenQ: {
|
|
137
|
+
y -= ((x % 2 + 2) % 2) / 2;
|
|
138
|
+
return {
|
|
139
|
+
x: x * 3 / 2 * this.sizeX,
|
|
140
|
+
y: y * Math.sqrt(3) * this.sizeY
|
|
141
|
+
};
|
|
142
|
+
}
|
|
143
|
+
case rules_api_1.HexGridSystem.OddR: {
|
|
144
|
+
throw new Error('OddR HexGridSystem is not yet implemented');
|
|
145
|
+
}
|
|
146
|
+
case rules_api_1.HexGridSystem.EvenR: {
|
|
147
|
+
throw new Error('EvenR HexGridSystem is not yet implemented');
|
|
148
|
+
}
|
|
149
|
+
}
|
|
150
|
+
};
|
|
151
|
+
/**
|
|
152
|
+
* 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
|
|
153
|
+
* correct grid location.
|
|
154
|
+
* @param item Item to place
|
|
155
|
+
* @param context Context of the game
|
|
156
|
+
* @return the coordinates of the item
|
|
157
|
+
*/
|
|
158
|
+
HexagonalGridLocator.prototype.getItemCoordinates = function (item, context) {
|
|
159
|
+
var _this = this;
|
|
160
|
+
var _a, _b, _c, _d;
|
|
161
|
+
var description = context.material[context.type];
|
|
162
|
+
if (description && (0, components_1.isPolyhexDescription)(description)) {
|
|
163
|
+
var shape = description.getPolyhexShape(item, context).map(function (hex) {
|
|
164
|
+
return (0, rules_api_1.hexFromAxial)((0, rules_api_1.hexRotate)((0, rules_api_1.hexToAxial)(hex, description.coordinatesSystem), item.location.rotation), _this.coordinatesSystem);
|
|
165
|
+
});
|
|
166
|
+
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;
|
|
167
|
+
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;
|
|
168
|
+
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;
|
|
169
|
+
return { x: x + deltaX, y: y + deltaY, z: z };
|
|
170
|
+
}
|
|
171
|
+
return _super.prototype.getItemCoordinates.call(this, item, context);
|
|
172
|
+
};
|
|
173
|
+
/**
|
|
174
|
+
* Rotate the item. On a hexagonal grid, by default the item's rotation is multiplied by 60 degrees.
|
|
175
|
+
* @param item Item to rotate
|
|
176
|
+
* @param _context Context of the item
|
|
177
|
+
* @return the item's rotation in degrees
|
|
178
|
+
*/
|
|
179
|
+
HexagonalGridLocator.prototype.getItemRotateZ = function (item, _context) {
|
|
180
|
+
var _a;
|
|
181
|
+
return ((_a = item.location.rotation) !== null && _a !== void 0 ? _a : 0) * 60;
|
|
182
|
+
};
|
|
183
|
+
/**
|
|
184
|
+
* Returns the drop locations for current dragged item. The hexagonal grid must be one simple drop location.
|
|
185
|
+
*/
|
|
186
|
+
HexagonalGridLocator.prototype.getDropLocations = function (moves, _context) {
|
|
187
|
+
return (0, uniqWith_1.default)(moves.map(function (move) { return (0, omit_1.default)(move.location, ['x', 'y', 'z', 'rotation']); }), isEqual_1.default);
|
|
188
|
+
};
|
|
189
|
+
/**
|
|
190
|
+
* Generate automatically a {@link HexGridDropAreaDescription} based on the grid boundaries
|
|
191
|
+
*/
|
|
192
|
+
HexagonalGridLocator.prototype.getLocationDescription = function (location, context) {
|
|
193
|
+
if (this.locationDescription)
|
|
194
|
+
return this.locationDescription;
|
|
195
|
+
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;
|
|
196
|
+
var borderRadius = this.sizeX / 3;
|
|
197
|
+
switch (this.coordinatesSystem) {
|
|
198
|
+
case rules_api_1.HexGridSystem.Axial: {
|
|
199
|
+
throw new Error('Axial HexGridSystem is not yet implemented');
|
|
200
|
+
}
|
|
201
|
+
case rules_api_1.HexGridSystem.OddQ:
|
|
202
|
+
case rules_api_1.HexGridSystem.EvenQ:
|
|
203
|
+
return new components_1.HexGridDropAreaDescription({
|
|
204
|
+
width: (xMax - xMin + 1) * 3 / 2 * this.sizeX,
|
|
205
|
+
height: (yMax - yMin + 1) * Math.sqrt(3) * this.sizeY,
|
|
206
|
+
borderRadius: borderRadius
|
|
207
|
+
});
|
|
208
|
+
case rules_api_1.HexGridSystem.OddR: {
|
|
209
|
+
throw new Error('OddR HexGridSystem is not yet implemented');
|
|
210
|
+
}
|
|
211
|
+
case rules_api_1.HexGridSystem.EvenR: {
|
|
212
|
+
throw new Error('EvenR HexGridSystem is not yet implemented');
|
|
213
|
+
}
|
|
214
|
+
}
|
|
215
|
+
};
|
|
216
|
+
return HexagonalGridLocator;
|
|
217
|
+
}(Locator_1.Locator));
|
|
218
|
+
exports.HexagonalGridLocator = HexagonalGridLocator;
|
|
219
|
+
//# 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,9 +106,7 @@ 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 =
|
|
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
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;
|
|
114
112
|
if (this.getLocationIndex(location, context) !== undefined)
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ListLocator.js","sourceRoot":"","sources":["../../src/locators/ListLocator.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;AACA,4CAAwE;AACxE,
|
|
1
|
+
{"version":3,"file":"ListLocator.js","sourceRoot":"","sources":["../../src/locators/ListLocator.ts"],"names":[],"mappings":"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"}
|