@gamepark/react-game 6.34.1 → 6.35.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 (68) hide show
  1. package/dist/components/LoadingScreen/LoadingScreen.d.ts +2 -1
  2. package/dist/components/LoadingScreen/LoadingScreen.js +4 -2
  3. package/dist/components/LoadingScreen/LoadingScreen.js.map +1 -1
  4. package/dist/components/material/ComponentDescription.d.ts +6 -0
  5. package/dist/components/material/ComponentDescription.js.map +1 -1
  6. package/dist/components/material/DraggableMaterial.js +4 -1
  7. package/dist/components/material/DraggableMaterial.js.map +1 -1
  8. package/dist/components/material/GameTable/GameTable.js +7 -1
  9. package/dist/components/material/GameTable/GameTable.js.map +1 -1
  10. package/dist/components/material/GameTable/focus/FocusProvider.js +3 -2
  11. package/dist/components/material/GameTable/focus/FocusProvider.js.map +1 -1
  12. package/dist/components/material/MaterialDescription.js +5 -2
  13. package/dist/components/material/MaterialDescription.js.map +1 -1
  14. package/dist/components/material/MobileMaterialDescription.d.ts +2 -2
  15. package/dist/components/material/MobileMaterialDescription.js +3 -0
  16. package/dist/components/material/MobileMaterialDescription.js.map +1 -1
  17. package/dist/components/material/animations/DeleteItemAnimations.js +1 -2
  18. package/dist/components/material/animations/DeleteItemAnimations.js.map +1 -1
  19. package/dist/components/material/animations/ItemAnimations.d.ts +1 -1
  20. package/dist/components/material/animations/ItemAnimations.js.map +1 -1
  21. package/dist/components/material/animations/MaterialGameAnimations.d.ts +4 -0
  22. package/dist/components/material/animations/MaterialGameAnimations.js +15 -0
  23. package/dist/components/material/animations/MaterialGameAnimations.js.map +1 -1
  24. package/dist/components/material/animations/MoveItemAnimations.js +7 -4
  25. package/dist/components/material/animations/MoveItemAnimations.js.map +1 -1
  26. package/dist/components/material/animations/MoveItemAtOnceAnimations.d.ts +4 -2
  27. package/dist/components/material/animations/MoveItemAtOnceAnimations.js +10 -2
  28. package/dist/components/material/animations/MoveItemAtOnceAnimations.js.map +1 -1
  29. package/dist/components/material/index.d.ts +1 -0
  30. package/dist/components/material/index.js +1 -0
  31. package/dist/components/material/index.js.map +1 -1
  32. package/dist/components/material/locations/LocationDescription.d.ts +2 -1
  33. package/dist/components/material/locations/LocationDescription.js +18 -1
  34. package/dist/components/material/locations/LocationDescription.js.map +1 -1
  35. package/dist/components/material/sound/AudioLoader.d.ts +20 -0
  36. package/dist/components/material/sound/AudioLoader.js +118 -0
  37. package/dist/components/material/sound/AudioLoader.js.map +1 -0
  38. package/dist/components/material/sound/MaterialGameSounds.d.ts +8 -0
  39. package/dist/components/material/sound/MaterialGameSounds.js +107 -0
  40. package/dist/components/material/sound/MaterialGameSounds.js.map +1 -0
  41. package/dist/components/material/sound/MaterialSoundConfig.d.ts +11 -0
  42. package/dist/components/material/sound/MaterialSoundConfig.js +11 -0
  43. package/dist/components/material/sound/MaterialSoundConfig.js.map +1 -0
  44. package/dist/components/material/sound/MaterialSoundLoader.d.ts +8 -0
  45. package/dist/components/material/sound/MaterialSoundLoader.js +34 -0
  46. package/dist/components/material/sound/MaterialSoundLoader.js.map +1 -0
  47. package/dist/components/material/sound/index.d.ts +2 -0
  48. package/dist/components/material/sound/index.js +19 -0
  49. package/dist/components/material/sound/index.js.map +1 -0
  50. package/dist/components/material/sound/sound.utils.d.ts +2 -0
  51. package/dist/components/material/sound/sound.utils.js +15 -0
  52. package/dist/components/material/sound/sound.utils.js.map +1 -0
  53. package/dist/components/material/utils/IsLocationSubset.d.ts +1 -1
  54. package/dist/components/material/utils/IsLocationSubset.js.map +1 -1
  55. package/dist/components/material/utils/isDroppedItem.d.ts +3 -1
  56. package/dist/components/material/utils/isDroppedItem.js +6 -5
  57. package/dist/components/material/utils/isDroppedItem.js.map +1 -1
  58. package/dist/components/menus/SoundButton/SoundButton.d.ts +1 -1
  59. package/dist/components/menus/SoundButton/SoundButton.js +1 -7
  60. package/dist/components/menus/SoundButton/SoundButton.js.map +1 -1
  61. package/dist/components/tutorial/TutorialRulesWrapper.js +5 -2
  62. package/dist/components/tutorial/TutorialRulesWrapper.js.map +1 -1
  63. package/dist/hooks/useItemLocations.js +2 -2
  64. package/dist/hooks/useItemLocations.js.map +1 -1
  65. package/dist/locators/Locator.d.ts +4 -4
  66. package/dist/locators/Locator.js +31 -12
  67. package/dist/locators/Locator.js.map +1 -1
  68. package/package.json +3 -3
@@ -1,5 +1,5 @@
1
1
  import { Interpolation, Theme } from '@emotion/react';
2
- import { Location, MaterialMove } from '@gamepark/rules-api';
2
+ import { Location, MaterialMove, MoveItem, MoveItemsAtOnce } from '@gamepark/rules-api';
3
3
  import { ComponentType, ElementType } from 'react';
4
4
  import { LocationContext, MaterialContext } from '../../../locators';
5
5
  import { ComponentDescription, ComponentSize } from '../ComponentDescription';
@@ -26,6 +26,7 @@ export declare class LocationDescription<P extends number = number, M extends nu
26
26
  placeOnShortClick: boolean;
27
27
  canShortClick(move: MaterialMove<P, M, L>, location: Location<P, L>, context: MaterialContext<P, M, L>): boolean;
28
28
  isMoveToLocation(move: MaterialMove<P, M, L>, location: Location<P, L>, context: MaterialContext<P, M, L>): boolean;
29
+ getMoveLocation(move: MoveItem<P, M, L> | MoveItemsAtOnce<P, M, L>, context: MaterialContext<P, M, L>): Location<P, L>;
29
30
  getShortClickMove(_location: Location<P, L>, _context: MaterialContext<P, M, L>): MaterialMove<P, M, L> | undefined;
30
31
  getShortClickLocalMove(_location: Location<P, L>, _context: MaterialContext<P, M, L>): MaterialMove<P, M, L> | undefined;
31
32
  displayInParentItemHelp?: boolean;
@@ -14,6 +14,17 @@ var __extends = (this && this.__extends) || (function () {
14
14
  d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
15
15
  };
16
16
  })();
17
+ var __assign = (this && this.__assign) || function () {
18
+ __assign = Object.assign || function(t) {
19
+ for (var s, i = 1, n = arguments.length; i < n; i++) {
20
+ s = arguments[i];
21
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
22
+ t[p] = s[p];
23
+ }
24
+ return t;
25
+ };
26
+ return __assign.apply(this, arguments);
27
+ };
17
28
  var __importDefault = (this && this.__importDefault) || function (mod) {
18
29
  return (mod && mod.__esModule) ? mod : { "default": mod };
19
30
  };
@@ -76,7 +87,13 @@ var LocationDescription = /** @class */ (function (_super) {
76
87
  };
77
88
  LocationDescription.prototype.isMoveToLocation = function (move, location, context) {
78
89
  var _a;
79
- return ((0, rules_api_1.isMoveItem)(move) && (0, utils_1.isLocationSubset)(move.location, location) && !(0, isRotationMove_1.isRotationMove)(move, context)) || ((0, rules_api_1.isDeleteItem)(move) && (0, isEqual_1.default)(location, (_a = context.material[move.itemType]) === null || _a === void 0 ? void 0 : _a.getStockLocation(context.rules.material(move.itemType).getItem(move.itemIndex), context)));
90
+ return ((0, rules_api_1.isMoveItem)(move) && (0, utils_1.isLocationSubset)(this.getMoveLocation(move, context), location) && !(0, isRotationMove_1.isRotationMove)(move, context)) || ((0, rules_api_1.isDeleteItem)(move) && (0, isEqual_1.default)(location, (_a = context.material[move.itemType]) === null || _a === void 0 ? void 0 : _a.getStockLocation(context.rules.material(move.itemType).getItem(move.itemIndex), context))) || ((0, rules_api_1.isMoveItemsAtOnce)(move) && (0, utils_1.isLocationSubset)(this.getMoveLocation(move, context), location));
91
+ };
92
+ LocationDescription.prototype.getMoveLocation = function (move, context) {
93
+ var _a;
94
+ var itemIndex = (0, rules_api_1.isMoveItem)(move) ? move.itemIndex : move.indexes[0];
95
+ var type = (_a = move.location.type) !== null && _a !== void 0 ? _a : context.rules.material(move.itemType).getItem(itemIndex).location.type;
96
+ return __assign({ type: type }, move.location);
80
97
  };
81
98
  LocationDescription.prototype.getShortClickMove = function (_location, _context) {
82
99
  return undefined;
@@ -1 +1 @@
1
- {"version":3,"file":"LocationDescription.js","sourceRoot":"","sources":["../../../../src/components/material/locations/LocationDescription.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"LocationDescription.js","sourceRoot":"","sources":["../../../../src/components/material/locations/LocationDescription.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,20 @@
1
+ import { MaterialSoundConfig } from './MaterialSoundConfig';
2
+ export declare class AudioLoader {
3
+ private readonly audioContext;
4
+ private sources;
5
+ private readonly buffers;
6
+ private readonly sounds;
7
+ private muted;
8
+ constructor();
9
+ load(sources: (string | MaterialSoundConfig)[]): Promise<any>;
10
+ play(soundConfig: string | MaterialSoundConfig): void;
11
+ status(): AudioContextState;
12
+ loop(sound: string | MaterialSoundConfig): void;
13
+ volume(id: string, volume: number): void;
14
+ resume(): Promise<void>;
15
+ /**
16
+ * Mute is a simple volume = 0 because suspending the audio context only create a "pause" on sound
17
+ */
18
+ mute(): void;
19
+ unmute(): void;
20
+ }
@@ -0,0 +1,118 @@
1
+ "use strict";
2
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
+ return new (P || (P = Promise))(function (resolve, reject) {
5
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
9
+ });
10
+ };
11
+ var __generator = (this && this.__generator) || function (thisArg, body) {
12
+ var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
13
+ return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
14
+ function verb(n) { return function (v) { return step([n, v]); }; }
15
+ function step(op) {
16
+ if (f) throw new TypeError("Generator is already executing.");
17
+ while (g && (g = 0, op[0] && (_ = 0)), _) try {
18
+ if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
19
+ if (y = 0, t) op = [op[0] & 2, t.value];
20
+ switch (op[0]) {
21
+ case 0: case 1: t = op; break;
22
+ case 4: _.label++; return { value: op[1], done: false };
23
+ case 5: _.label++; y = op[1]; op = [0]; continue;
24
+ case 7: op = _.ops.pop(); _.trys.pop(); continue;
25
+ default:
26
+ if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
27
+ if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
28
+ if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
29
+ if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
30
+ if (t[2]) _.ops.pop();
31
+ _.trys.pop(); continue;
32
+ }
33
+ op = body.call(thisArg, _);
34
+ } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
35
+ if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
36
+ }
37
+ };
38
+ Object.defineProperty(exports, "__esModule", { value: true });
39
+ exports.AudioLoader = void 0;
40
+ var MaterialSoundConfig_1 = require("./MaterialSoundConfig");
41
+ var AudioLoader = /** @class */ (function () {
42
+ function AudioLoader() {
43
+ this.sources = [];
44
+ this.muted = false;
45
+ this.audioContext = new (window.AudioContext || window.webkitAudioContext)();
46
+ this.buffers = {};
47
+ this.sounds = {};
48
+ }
49
+ AudioLoader.prototype.load = function (sources) {
50
+ return __awaiter(this, void 0, void 0, function () {
51
+ var _this = this;
52
+ return __generator(this, function (_a) {
53
+ this.sources = sources.map(function (s) { return typeof s === 'string' ? { id: s, url: s } : { id: s.sound, url: s.sound }; });
54
+ if (!sources.length)
55
+ return [2 /*return*/, Promise.resolve()];
56
+ return [2 /*return*/, Promise.all(this.sources.map(function (source) { return __awaiter(_this, void 0, void 0, function () {
57
+ var _this = this;
58
+ return __generator(this, function (_a) {
59
+ return [2 /*return*/, fetch(new Request(source.url))
60
+ .then(function (response) { return response.arrayBuffer(); })
61
+ .then(function (buffer) { return _this.audioContext.decodeAudioData(buffer, function (b) {
62
+ _this.buffers[source.id] = b;
63
+ }); })];
64
+ });
65
+ }); }))];
66
+ });
67
+ });
68
+ };
69
+ AudioLoader.prototype.play = function (soundConfig) {
70
+ var _a, _b, _c, _d, _e;
71
+ var config = typeof soundConfig === 'string' ? new MaterialSoundConfig_1.MaterialSoundConfig(soundConfig) : soundConfig;
72
+ var id = config.sound;
73
+ this.sounds[id] = this.sounds[id] || {};
74
+ var sound = this.sounds[id];
75
+ sound.volume = (_a = config.volume) !== null && _a !== void 0 ? _a : 1;
76
+ sound.sourceNode = this.audioContext.createBufferSource();
77
+ sound.sourceNode.buffer = this.buffers[id];
78
+ sound.sourceNode.loop = (_b = config.loop) !== null && _b !== void 0 ? _b : false;
79
+ sound.sourceNode.playbackRate.value = (_c = config.speed) !== null && _c !== void 0 ? _c : 1;
80
+ if (!sound.gainNode) {
81
+ sound.gainNode = this.audioContext.createGain();
82
+ sound.gainNode.connect(this.audioContext.destination);
83
+ }
84
+ sound.sourceNode.connect(sound.gainNode);
85
+ sound.gainNode.gain.value = this.muted ? 0 : ((_d = config.volume) !== null && _d !== void 0 ? _d : 1);
86
+ sound.sourceNode.start(0, (_e = config.startsAt) !== null && _e !== void 0 ? _e : 0, config.duration);
87
+ };
88
+ AudioLoader.prototype.status = function () {
89
+ return this.audioContext.state;
90
+ };
91
+ AudioLoader.prototype.loop = function (sound) {
92
+ return this.play(sound);
93
+ };
94
+ AudioLoader.prototype.volume = function (id, volume) {
95
+ this.sounds[id].gainNode.gain.value = volume;
96
+ };
97
+ AudioLoader.prototype.resume = function () {
98
+ return this.audioContext.resume();
99
+ };
100
+ /**
101
+ * Mute is a simple volume = 0 because suspending the audio context only create a "pause" on sound
102
+ */
103
+ AudioLoader.prototype.mute = function () {
104
+ this.muted = true;
105
+ Object.values(this.sounds).forEach(function (sound) {
106
+ sound.gainNode.gain.value = 0;
107
+ });
108
+ };
109
+ AudioLoader.prototype.unmute = function () {
110
+ this.muted = false;
111
+ Object.values(this.sounds).forEach(function (sound) {
112
+ sound.gainNode.gain.value = (sound.volume || 1);
113
+ });
114
+ };
115
+ return AudioLoader;
116
+ }());
117
+ exports.AudioLoader = AudioLoader;
118
+ //# sourceMappingURL=AudioLoader.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AudioLoader.js","sourceRoot":"","sources":["../../../../src/components/material/sound/AudioLoader.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,6DAA2D;AAE3D;IAOE;QALQ,YAAO,GAAkC,EAAE,CAAA;QAG3C,UAAK,GAAY,KAAK,CAAA;QAG5B,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,MAAM,CAAC,YAAY,IAAK,MAAc,CAAC,kBAAkB,CAAC,EAAE,CAAA;QACrF,IAAI,CAAC,OAAO,GAAG,EAAE,CAAA;QACjB,IAAI,CAAC,MAAM,GAAG,EAAE,CAAA;IAClB,CAAC;IAEY,0BAAI,GAAjB,UAAkB,OAAyC;;;;gBACzD,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC,GAAG,CAAC,UAAC,CAAC,IAAK,OAAA,OAAO,CAAC,KAAK,QAAQ,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,KAAK,EAAE,GAAG,EAAE,CAAC,CAAC,KAAK,EAAE,EAAzE,CAAyE,CAAC,CAAA;gBAC5G,IAAI,CAAC,OAAO,CAAC,MAAM;oBAAE,sBAAO,OAAO,CAAC,OAAO,EAAE,EAAA;gBAC7C,sBAAO,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,UAAM,MAAM;;;4BAC9C,sBAAA,KAAK,CAAC,IAAI,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;qCAC3B,IAAI,CAAC,UAAA,QAAQ,IAAI,OAAA,QAAQ,CAAC,WAAW,EAAE,EAAtB,CAAsB,CAAC;qCACxC,IAAI,CAAC,UAAC,MAAM,IAAK,OAAA,KAAI,CAAC,YAAY,CAAC,eAAe,CAAC,MAAM,EAAE,UAAC,CAAC;oCAC5D,KAAI,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC,GAAG,CAAC,CAAA;gCAC7B,CAAC,CAAC,EAFgB,CAEhB,CAAC,EAAA;;yBAAA,CACN,CAAC,EAAA;;;KACH;IAEM,0BAAI,GAAX,UAAY,WAAyC;;QACnD,IAAM,MAAM,GAAG,OAAO,WAAW,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,yCAAmB,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,WAAW,CAAA;QACnG,IAAM,EAAE,GAAG,MAAM,CAAC,KAAK,CAAA;QACvB,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,IAAI,EAAE,CAAA;QAEvC,IAAM,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,CAAA;QAC7B,KAAK,CAAC,MAAM,GAAG,MAAA,MAAM,CAAC,MAAM,mCAAI,CAAC,CAAA;QACjC,KAAK,CAAC,UAAU,GAAG,IAAI,CAAC,YAAY,CAAC,kBAAkB,EAAE,CAAA;QACzD,KAAK,CAAC,UAAU,CAAC,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,CAAA;QAC1C,KAAK,CAAC,UAAU,CAAC,IAAI,GAAG,MAAA,MAAM,CAAC,IAAI,mCAAI,KAAK,CAAA;QAC5C,KAAK,CAAC,UAAU,CAAC,YAAY,CAAC,KAAK,GAAG,MAAA,MAAM,CAAC,KAAK,mCAAI,CAAC,CAAA;QAEvD,IAAI,CAAC,KAAK,CAAC,QAAQ,EAAE;YACnB,KAAK,CAAC,QAAQ,GAAG,IAAI,CAAC,YAAY,CAAC,UAAU,EAAE,CAAA;YAC/C,KAAK,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,YAAY,CAAC,WAAW,CAAC,CAAA;SACtD;QAED,KAAK,CAAC,UAAU,CAAC,OAAO,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAA;QACxC,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAA,CAAC,CAAC,CAAC,CAAA,CAAC,CAAC,CAAC,MAAA,MAAM,CAAC,MAAM,mCAAI,CAAC,CAAC,CAAA;QAE/D,KAAK,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,EAAE,MAAA,MAAM,CAAC,QAAQ,mCAAI,CAAC,EAAE,MAAM,CAAC,QAAQ,CAAC,CAAA;IAClE,CAAC;IAEM,4BAAM,GAAb;QACE,OAAO,IAAI,CAAC,YAAY,CAAC,KAAK,CAAA;IAChC,CAAC;IAEM,0BAAI,GAAX,UAAY,KAAmC;QAC7C,OAAO,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;IACzB,CAAC;IAEM,4BAAM,GAAb,UAAc,EAAU,EAAE,MAAc;QACtC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,GAAG,MAAM,CAAA;IAC9C,CAAC;IAEM,4BAAM,GAAb;QACE,OAAO,IAAI,CAAC,YAAY,CAAC,MAAM,EAAE,CAAA;IACnC,CAAC;IAED;;OAEG;IACI,0BAAI,GAAX;QACE,IAAI,CAAC,KAAK,GAAG,IAAI,CAAA;QACjB,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,UAAA,KAAK;YACtC,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,GAAG,CAAC,CAAA;QAC/B,CAAC,CAAC,CAAA;IACJ,CAAC;IAEM,4BAAM,GAAb;QACE,IAAI,CAAC,KAAK,GAAG,KAAK,CAAA;QAClB,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,UAAA,KAAK;YACtC,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,GAAG,CAAC,KAAK,CAAC,MAAM,IAAI,CAAC,CAAC,CAAA;QACjD,CAAC,CAAC,CAAA;IACJ,CAAC;IACH,kBAAC;AAAD,CAAC,AAhFD,IAgFC;AAhFY,kCAAW"}
@@ -0,0 +1,8 @@
1
+ import { FC } from 'react';
2
+ import { MaterialSoundConfig } from './MaterialSoundConfig';
3
+ type MaterialGameSoundsProps = {
4
+ onSoundsLoad?: () => void;
5
+ ambiance?: string | MaterialSoundConfig;
6
+ };
7
+ export declare const MaterialGameSounds: FC<MaterialGameSoundsProps>;
8
+ export {};
@@ -0,0 +1,107 @@
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.MaterialGameSounds = void 0;
15
+ var jsx_runtime_1 = require("react/jsx-runtime");
16
+ var rules_api_1 = require("@gamepark/rules-api");
17
+ var react_1 = require("react");
18
+ var react_redux_1 = require("react-redux");
19
+ var hooks_1 = require("../../../hooks");
20
+ var GameProvider_1 = require("../../GameProvider");
21
+ var AudioLoader_1 = require("./AudioLoader");
22
+ var MaterialSoundLoader_1 = require("./MaterialSoundLoader");
23
+ var sound_utils_1 = require("./sound.utils");
24
+ var ambianceLoadPromise;
25
+ var getAmbianceLoadPromise = function (audioLoader, sound) {
26
+ if (!ambianceLoadPromise) {
27
+ ambianceLoadPromise = audioLoader.load([sound]);
28
+ }
29
+ return ambianceLoadPromise;
30
+ };
31
+ var MaterialGameSounds = function (_a) {
32
+ var onSoundsLoad = _a.onSoundsLoad, ambiance = _a.ambiance;
33
+ var context = (0, hooks_1.useMaterialContext)();
34
+ var audioLoader = (0, react_1.useMemo)(function () { return new AudioLoader_1.AudioLoader(); }, []);
35
+ var _b = (0, react_1.useState)(audioLoader.status()), audioLoaderStatus = _b[0], setAudioLoaderStatus = _b[1];
36
+ var _c = (0, react_1.useState)(false), audioLoaded = _c[0], setAudioLoaded = _c[1];
37
+ var animationsConfig = (0, react_1.useContext)(GameProvider_1.gameContext).animations;
38
+ var material = (0, react_1.useContext)(GameProvider_1.gameContext).material;
39
+ var animation = (0, hooks_1.useAnimation)();
40
+ var muted = (0, react_redux_1.useSelector)(function (state) { return state.soundsMuted; });
41
+ (0, react_1.useEffect)(function () {
42
+ var _a, _b;
43
+ if (!animation)
44
+ return;
45
+ var config = animationsConfig.getAnimationConfig(animation.move, __assign(__assign({}, context), { action: animation.action }));
46
+ var materialSoundConfig;
47
+ if ((config === null || config === void 0 ? void 0 : config.s) !== undefined) {
48
+ materialSoundConfig = (0, sound_utils_1.ensureMaterialSoundConfig)(config.s);
49
+ }
50
+ else if (animation.move.kind === rules_api_1.MoveKind.ItemMove) {
51
+ materialSoundConfig = (0, sound_utils_1.ensureMaterialSoundConfig)((_b = (_a = material[animation.move.itemType]) === null || _a === void 0 ? void 0 : _a.sounds) === null || _b === void 0 ? void 0 : _b[animation.move.type]);
52
+ }
53
+ if (!materialSoundConfig)
54
+ return;
55
+ playSound(audioLoader, prepareConfig(materialSoundConfig, animation));
56
+ }, [animation === null || animation === void 0 ? void 0 : animation.move]);
57
+ (0, react_1.useEffect)(function () {
58
+ if (!muted) {
59
+ audioLoader.unmute();
60
+ }
61
+ else {
62
+ audioLoader.mute();
63
+ }
64
+ // eslint-disable-next-line
65
+ }, [muted]);
66
+ (0, react_1.useEffect)(function () {
67
+ if (audioLoaderStatus === 'running' && audioLoaded) {
68
+ audioLoader.loop(ambiance);
69
+ }
70
+ }, [audioLoaderStatus, audioLoaded]);
71
+ var changeAudioLoaderStatus = (0, react_1.useCallback)(function () {
72
+ if (audioLoaded)
73
+ return;
74
+ audioLoader.resume().then(function () {
75
+ setAudioLoaderStatus(audioLoader.status());
76
+ document.removeEventListener('mousedown', changeAudioLoaderStatus);
77
+ });
78
+ }, [audioLoaded]);
79
+ (0, react_1.useEffect)(function () {
80
+ if (!ambiance || audioLoaded)
81
+ return;
82
+ getAmbianceLoadPromise(audioLoader, ambiance).then(function () { return setAudioLoaded(true); });
83
+ document.addEventListener('mousedown', changeAudioLoaderStatus);
84
+ return function () {
85
+ document.removeEventListener('mousedown', changeAudioLoaderStatus);
86
+ };
87
+ // eslint-disable-next-line
88
+ }, []);
89
+ return ((0, jsx_runtime_1.jsx)(MaterialSoundLoader_1.MaterialSoundLoader, { onSoundsLoad: onSoundsLoad, audioLoader: audioLoader }));
90
+ };
91
+ exports.MaterialGameSounds = MaterialGameSounds;
92
+ var playSound = function (audioLoader, config) {
93
+ if (config.delay) {
94
+ setTimeout(function () { return audioLoader.play(config); }, config.delay * 1000);
95
+ }
96
+ else {
97
+ audioLoader.play(config);
98
+ }
99
+ };
100
+ var prepareConfig = function (materialSoundConfig, animation) {
101
+ var _a, _b;
102
+ var newConfig = JSON.parse(JSON.stringify(materialSoundConfig));
103
+ newConfig.delay = Math.min(animation.duration - 0.2, (_a = materialSoundConfig.delay) !== null && _a !== void 0 ? _a : 0);
104
+ newConfig.duration = (_b = materialSoundConfig.duration) !== null && _b !== void 0 ? _b : animation.duration;
105
+ return newConfig;
106
+ };
107
+ //# sourceMappingURL=MaterialGameSounds.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"MaterialGameSounds.js","sourceRoot":"","sources":["../../../../src/components/material/sound/MaterialGameSounds.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,11 @@
1
+ export declare class MaterialSoundConfig {
2
+ sound: string;
3
+ volume?: number;
4
+ loop?: boolean;
5
+ startsAt?: number;
6
+ endsAt?: number;
7
+ duration?: number;
8
+ speed?: number;
9
+ delay?: number;
10
+ constructor(sound: string);
11
+ }
@@ -0,0 +1,11 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.MaterialSoundConfig = void 0;
4
+ var MaterialSoundConfig = /** @class */ (function () {
5
+ function MaterialSoundConfig(sound) {
6
+ this.sound = sound;
7
+ }
8
+ return MaterialSoundConfig;
9
+ }());
10
+ exports.MaterialSoundConfig = MaterialSoundConfig;
11
+ //# sourceMappingURL=MaterialSoundConfig.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"MaterialSoundConfig.js","sourceRoot":"","sources":["../../../../src/components/material/sound/MaterialSoundConfig.ts"],"names":[],"mappings":";;;AAAA;IAUE,6BAAY,KAAa;QACvB,IAAI,CAAC,KAAK,GAAG,KAAK,CAAA;IAEpB,CAAC;IACH,0BAAC;AAAD,CAAC,AAdD,IAcC;AAdY,kDAAmB"}
@@ -0,0 +1,8 @@
1
+ import React from 'react';
2
+ import { AudioLoader } from './AudioLoader';
3
+ type MaterialSoundLoaderProps = {
4
+ audioLoader: AudioLoader;
5
+ onSoundsLoad?: () => void;
6
+ };
7
+ export declare const MaterialSoundLoader: React.FunctionComponent<MaterialSoundLoaderProps>;
8
+ export {};
@@ -0,0 +1,34 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.MaterialSoundLoader = void 0;
7
+ var uniqBy_1 = __importDefault(require("lodash/uniqBy"));
8
+ var react_1 = require("react");
9
+ var GameProvider_1 = require("../../GameProvider");
10
+ var MaterialSoundLoader = function (_a) {
11
+ var audioLoader = _a.audioLoader, onSoundsLoad = _a.onSoundsLoad;
12
+ var context = (0, react_1.useContext)(GameProvider_1.gameContext);
13
+ var animationsConfig = context.animations;
14
+ var sounds = (0, react_1.useMemo)(function () {
15
+ var _a, _b;
16
+ var sounds = [];
17
+ for (var _i = 0, _c = Object.values((_a = context.material) !== null && _a !== void 0 ? _a : {}); _i < _c.length; _i++) {
18
+ var description = _c[_i];
19
+ if (description)
20
+ sounds.push.apply(sounds, Object.values((_b = description.sounds) !== null && _b !== void 0 ? _b : {}));
21
+ }
22
+ sounds.push.apply(sounds, animationsConfig.getSounds());
23
+ return (0, uniqBy_1.default)(sounds, function (s) { return typeof s === 'string' ? s : s.sound; });
24
+ }, [context.material, context.animations]);
25
+ (0, react_1.useEffect)(function () {
26
+ audioLoader.load(sounds).then(function () {
27
+ onSoundsLoad === null || onSoundsLoad === void 0 ? void 0 : onSoundsLoad();
28
+ });
29
+ // eslint-disable-next-line
30
+ }, [sounds]);
31
+ return null;
32
+ };
33
+ exports.MaterialSoundLoader = MaterialSoundLoader;
34
+ //# sourceMappingURL=MaterialSoundLoader.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"MaterialSoundLoader.js","sourceRoot":"","sources":["../../../../src/components/material/sound/MaterialSoundLoader.ts"],"names":[],"mappings":";;;;;;AAAA,yDAAkC;AAClC,+BAA6D;AAC7D,mDAAgD;AAUzC,IAAM,mBAAmB,GAAsD,UAAC,EAA6B;QAA3B,WAAW,iBAAA,EAAE,YAAY,kBAAA;IAChH,IAAM,OAAO,GAAG,IAAA,kBAAU,EAAC,0BAAW,CAAC,CAAA;IACvC,IAAM,gBAAgB,GAAG,OAAO,CAAC,UAAoC,CAAA;IAErE,IAAM,MAAM,GAAG,IAAA,eAAO,EAAC;;QACrB,IAAM,MAAM,GAAqC,EAAE,CAAA;QACnD,KAA0B,UAAqC,EAArC,KAAA,MAAM,CAAC,MAAM,CAAC,MAAA,OAAO,CAAC,QAAQ,mCAAI,EAAE,CAAC,EAArC,cAAqC,EAArC,IAAqC,EAAE;YAA5D,IAAM,WAAW,SAAA;YACpB,IAAI,WAAW;gBAAE,MAAM,CAAC,IAAI,OAAX,MAAM,EAAS,MAAM,CAAC,MAAM,CAAC,MAAA,WAAW,CAAC,MAAM,mCAAI,EAAE,CAAC,EAAC;SACzE;QAED,MAAM,CAAC,IAAI,OAAX,MAAM,EAAS,gBAAgB,CAAC,SAAS,EAAE,EAAC;QAC5C,OAAO,IAAA,gBAAM,EAAC,MAAM,EAAE,UAAC,CAAC,IAAK,OAAA,OAAO,CAAC,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,EAAnC,CAAmC,CAAC,CAAA;IACnE,CAAC,EAAE,CAAC,OAAO,CAAC,QAAQ,EAAE,OAAO,CAAC,UAAU,CAAC,CAAC,CAAA;IAE1C,IAAA,iBAAS,EAAC;QACR,WAAW,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC;YAC5B,YAAY,aAAZ,YAAY,uBAAZ,YAAY,EAAI,CAAA;QAClB,CAAC,CAAC,CAAA;QACF,2BAA2B;IAC7B,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC,CAAA;IAEZ,OAAO,IAAI,CAAA;AACb,CAAC,CAAA;AAtBY,QAAA,mBAAmB,uBAsB/B"}
@@ -0,0 +1,2 @@
1
+ export * from './MaterialGameSounds';
2
+ export * from './MaterialSoundConfig';
@@ -0,0 +1,19 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
+ };
16
+ Object.defineProperty(exports, "__esModule", { value: true });
17
+ __exportStar(require("./MaterialGameSounds"), exports);
18
+ __exportStar(require("./MaterialSoundConfig"), exports);
19
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/components/material/sound/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,uDAAoC;AACpC,wDAAqC"}
@@ -0,0 +1,2 @@
1
+ import { MaterialSoundConfig } from './MaterialSoundConfig';
2
+ export declare const ensureMaterialSoundConfig: (sound?: string | MaterialSoundConfig | false) => MaterialSoundConfig | undefined;
@@ -0,0 +1,15 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ensureMaterialSoundConfig = void 0;
4
+ var ensureMaterialSoundConfig = function (sound) {
5
+ if (!sound)
6
+ return;
7
+ if (typeof sound === 'string') {
8
+ return { sound: sound };
9
+ }
10
+ else {
11
+ return sound;
12
+ }
13
+ };
14
+ exports.ensureMaterialSoundConfig = ensureMaterialSoundConfig;
15
+ //# sourceMappingURL=sound.utils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sound.utils.js","sourceRoot":"","sources":["../../../../src/components/material/sound/sound.utils.ts"],"names":[],"mappings":";;;AAGO,IAAM,yBAAyB,GAAG,UAAC,KAA4C;IACpF,IAAI,CAAC,KAAK;QAAE,OAAM;IAClB,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE;QAC7B,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,CAAA;KACxB;SAAM;QACL,OAAO,KAAK,CAAA;KACb;AACH,CAAC,CAAA;AAPY,QAAA,yBAAyB,6BAOrC"}
@@ -1,2 +1,2 @@
1
1
  import { Location } from '@gamepark/rules-api';
2
- export declare const isLocationSubset: (testLocation: Partial<Location>, parentLocation: Location) => boolean;
2
+ export declare const isLocationSubset: (testLocation: Location, parentLocation: Location) => boolean;
@@ -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,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"}
1
+ {"version":3,"file":"IsLocationSubset.js","sourceRoot":"","sources":["../../../../src/components/material/utils/IsLocationSubset.ts"],"names":[],"mappings":";;;;;;AACA,2DAAoC;AAE7B,IAAM,gBAAgB,GAAG,UAAC,YAAsB,EAAE,cAAwB;IAC/E,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"}
@@ -1,2 +1,4 @@
1
1
  import { ItemContext } from '../../../locators';
2
- export declare const isDroppedItem: <P extends number = number, M extends number = number, L extends number = number>(context: ItemContext<P, M, L>) => boolean;
2
+ export declare const isDroppedItem: <P extends number = number, M extends number = number, L extends number = number>(context: Omit<ItemContext<P, M, L>, "displayIndex"> & {
3
+ displayIndex?: number | undefined;
4
+ }) => boolean;
@@ -16,12 +16,13 @@ var locators_1 = require("../../../locators");
16
16
  var isPlacedOnItem_1 = require("./isPlacedOnItem");
17
17
  var isDroppedItem = function (context) {
18
18
  var type = context.type, index = context.index, displayIndex = context.displayIndex, rules = context.rules;
19
- var droppedItem = rules.game.droppedItem;
20
- if (!droppedItem)
19
+ var droppedItems = rules.game.droppedItems;
20
+ if (!droppedItems)
21
21
  return false;
22
- if (droppedItem.type === type && droppedItem.index === index && droppedItem.displayIndex === displayIndex)
23
- return true;
24
- return (0, isPlacedOnItem_1.isPlacedOnItem)((0, locators_1.getItemFromContext)(context), __assign(__assign({}, context), droppedItem));
22
+ return droppedItems.some(function (droppedItem) {
23
+ return (droppedItem.type === type && droppedItem.index === index && (displayIndex === undefined || droppedItem.displayIndex === displayIndex))
24
+ || (0, isPlacedOnItem_1.isPlacedOnItem)((0, locators_1.getItemFromContext)(context), __assign(__assign({}, context), droppedItem));
25
+ });
25
26
  };
26
27
  exports.isDroppedItem = isDroppedItem;
27
28
  //# sourceMappingURL=isDroppedItem.js.map
@@ -1 +1 @@
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"}
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,OAA+E;IAEvE,IAAA,IAAI,GAAiC,OAAO,KAAxC,EAAE,KAAK,GAA0B,OAAO,MAAjC,EAAE,YAAY,GAAY,OAAO,aAAnB,EAAE,KAAK,GAAK,OAAO,MAAZ,CAAY;IACpD,IAAM,YAAY,GAAG,KAAK,CAAC,IAAI,CAAC,YAAY,CAAA;IAC5C,IAAI,CAAC,YAAY;QAAE,OAAO,KAAK,CAAA;IAC/B,OAAO,YAAY,CAAC,IAAI,CAAC,UAAC,WAAW;QACnC,OAAA,CAAC,WAAW,CAAC,IAAI,KAAK,IAAI,IAAI,WAAW,CAAC,KAAK,KAAK,KAAK,IAAI,CAAC,YAAY,KAAK,SAAS,IAAI,WAAW,CAAC,YAAY,KAAK,YAAY,CAAC,CAAC;eACpI,IAAA,+BAAc,EAAC,IAAA,6BAAkB,EAAC,OAAO,CAAC,wBAAO,OAAO,GAAK,WAAW,EAAG;IAD9E,CAC8E,CAC/E,CAAA;AACH,CAAC,CAAA;AAVY,QAAA,aAAa,iBAUzB"}
@@ -1 +1 @@
1
- export declare const SoundButton: () => import("@emotion/react/jsx-runtime").JSX.Element | null;
1
+ export declare const SoundButton: () => import("@emotion/react/jsx-runtime").JSX.Element;
@@ -18,17 +18,11 @@ var faVolumeMute_1 = require("@fortawesome/free-solid-svg-icons/faVolumeMute");
18
18
  var faVolumeUp_1 = require("@fortawesome/free-solid-svg-icons/faVolumeUp");
19
19
  var react_fontawesome_1 = require("@fortawesome/react-fontawesome");
20
20
  var react_client_1 = require("@gamepark/react-client");
21
- var react_1 = require("react");
22
21
  var react_i18next_1 = require("react-i18next");
23
22
  var menuCss_1 = require("../menuCss");
24
- var GameProvider_1 = require("../../GameProvider");
25
23
  var SoundButton = function () {
26
- var _a;
27
24
  var t = (0, react_i18next_1.useTranslation)().t;
28
- var _b = (0, react_client_1.useSoundControls)(), mute = _b.mute, unmute = _b.unmute, muted = _b.muted;
29
- var hasSounds = (_a = (0, react_1.useContext)(GameProvider_1.gameContext)) === null || _a === void 0 ? void 0 : _a.hasSounds;
30
- if (!hasSounds)
31
- return null;
25
+ var _a = (0, react_client_1.useSoundControls)(), mute = _a.mute, unmute = _a.unmute, muted = _a.muted;
32
26
  return ((0, jsx_runtime_1.jsxs)("button", __assign({ css: menuCss_1.menuButtonCss, onClick: function () { return muted ? unmute() : mute(); } }, { children: [(0, jsx_runtime_1.jsx)(react_fontawesome_1.FontAwesomeIcon, { icon: muted ? faVolumeMute_1.faVolumeMute : faVolumeUp_1.faVolumeUp }), muted ? t('Enable sound') : t('Mute sound')] })));
33
27
  };
34
28
  exports.SoundButton = SoundButton;
@@ -1 +1 @@
1
- {"version":3,"file":"SoundButton.js","sourceRoot":"","sources":["../../../../src/components/menus/SoundButton/SoundButton.tsx"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,sCAAsC;AACtC,+EAA6E;AAC7E,2EAAyE;AACzE,oEAAgE;AAChE,uDAAyD;AACzD,+BAAkC;AAClC,+CAA8C;AAC9C,sCAA0C;AAC1C,mDAAgD;AAEzC,IAAM,WAAW,GAAG;;IACjB,IAAA,CAAC,GAAK,IAAA,8BAAc,GAAE,EAArB,CAAqB;IACxB,IAAA,KAA0B,IAAA,+BAAgB,GAAE,EAA1C,IAAI,UAAA,EAAE,MAAM,YAAA,EAAE,KAAK,WAAuB,CAAA;IAClD,IAAM,SAAS,GAAG,MAAA,IAAA,kBAAU,EAAC,0BAAW,CAAC,0CAAE,SAAS,CAAA;IACpD,IAAI,CAAC,SAAS;QAAE,OAAO,IAAI,CAAA;IAC3B,OAAO,CACL,6CAAQ,GAAG,EAAE,uBAAa,EAAE,OAAO,EAAE,cAAM,OAAA,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,EAAzB,CAAyB,iBAClE,uBAAC,mCAAe,IAAC,IAAI,EAAE,KAAK,CAAC,CAAC,CAAC,2BAAY,CAAC,CAAC,CAAC,uBAAU,GAAG,EAC1D,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,KACrC,CACV,CAAA;AACH,CAAC,CAAA;AAXY,QAAA,WAAW,eAWvB"}
1
+ {"version":3,"file":"SoundButton.js","sourceRoot":"","sources":["../../../../src/components/menus/SoundButton/SoundButton.tsx"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,sCAAsC;AACtC,+EAA6E;AAC7E,2EAAyE;AACzE,oEAAgE;AAChE,uDAAyD;AACzD,+CAA8C;AAC9C,sCAA0C;AAEnC,IAAM,WAAW,GAAG;IACjB,IAAA,CAAC,GAAK,IAAA,8BAAc,GAAE,EAArB,CAAqB;IACxB,IAAA,KAA0B,IAAA,+BAAgB,GAAE,EAA1C,IAAI,UAAA,EAAE,MAAM,YAAA,EAAE,KAAK,WAAuB,CAAA;IAClD,OAAO,CACL,6CAAQ,GAAG,EAAE,uBAAa,EAAE,OAAO,EAAE,cAAM,OAAA,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,EAAzB,CAAyB,iBAClE,uBAAC,mCAAe,IAAC,IAAI,EAAE,KAAK,CAAC,CAAC,CAAC,2BAAY,CAAC,CAAC,CAAC,uBAAU,GAAG,EAC1D,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,KACrC,CACV,CAAA;AACH,CAAC,CAAA;AATY,QAAA,WAAW,eASvB"}
@@ -1,8 +1,11 @@
1
1
  "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
2
5
  Object.defineProperty(exports, "__esModule", { value: true });
3
6
  exports.wrapRulesWithTutorial = void 0;
4
7
  var rules_api_1 = require("@gamepark/rules-api");
5
- var lodash_1 = require("lodash");
8
+ var sample_1 = __importDefault(require("lodash/sample"));
6
9
  function wrapRulesWithTutorial(tutorial, Rules) {
7
10
  var isLegalMove = Rules.prototype.isLegalMove;
8
11
  var getLegalMoves = Rules.prototype.getLegalMoves;
@@ -115,7 +118,7 @@ function wrapRulesWithTutorial(tutorial, Rules) {
115
118
  }
116
119
  var tutorialStep = game.tutorial && tutorial.steps[game.tutorial.step];
117
120
  if ((_b = tutorialStep === null || tutorialStep === void 0 ? void 0 : tutorialStep.move) === null || _b === void 0 ? void 0 : _b.auto) {
118
- return [(0, lodash_1.sample)(this.getLegalMoves((_d = (_c = tutorialStep === null || tutorialStep === void 0 ? void 0 : tutorialStep.move) === null || _c === void 0 ? void 0 : _c.player) !== null && _d !== void 0 ? _d : this.game.players[0]))];
121
+ return [(0, sample_1.default)(this.getLegalMoves((_d = (_c = tutorialStep === null || tutorialStep === void 0 ? void 0 : tutorialStep.move) === null || _c === void 0 ? void 0 : _c.player) !== null && _d !== void 0 ? _d : this.game.players[0]))];
119
122
  }
120
123
  return [];
121
124
  };
@@ -1 +1 @@
1
- {"version":3,"file":"TutorialRulesWrapper.js","sourceRoot":"","sources":["../../../src/components/tutorial/TutorialRulesWrapper.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"TutorialRulesWrapper.js","sourceRoot":"","sources":["../../../src/components/tutorial/TutorialRulesWrapper.ts"],"names":[],"mappings":"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"}