@gamepark/react-game 7.5.7 → 7.5.9
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/material/GameTable/DevToolsHub.js +644 -43
- package/dist/components/material/GameTable/DevToolsHub.js.map +1 -1
- package/dist/components/material/Wheel/WheelContent.d.ts +13 -0
- package/dist/components/material/Wheel/WheelContent.js +37 -0
- package/dist/components/material/Wheel/WheelContent.js.map +1 -0
- package/dist/components/material/animations/CreateItemAnimations.js +36 -52
- package/dist/components/material/animations/CreateItemAnimations.js.map +1 -1
- package/dist/css/backgroundCss.js +3 -3
- package/dist/css/cursorCss.js +6 -6
- package/dist/css/fadeIn.js +6 -6
- package/dist/css/shineEffect.js +28 -28
- package/dist/css/transformCss.js +4 -4
- package/dist/hooks/useFailures.d.ts +1 -0
- package/dist/hooks/useFailures.js +11 -0
- package/dist/hooks/useFailures.js.map +1 -0
- package/dist/hooks/useWebP.d.ts +1 -0
- package/dist/hooks/useWebP.js +13 -0
- package/dist/hooks/useWebP.js.map +1 -0
- package/package.json +1 -1
- package/dist/components/material/Dices/OctahedralDiceDescription.d.ts +0 -48
- package/dist/components/material/Dices/OctahedralDiceDescription.js +0 -142
- package/dist/components/material/Dices/OctahedralDiceDescription.js.map +0 -1
|
@@ -1,142 +0,0 @@
|
|
|
1
|
-
import { jsx as _jsx, Fragment as _Fragment } from "@emotion/react/jsx-runtime";
|
|
2
|
-
/** @jsxImportSource @emotion/react */
|
|
3
|
-
import { css } from '@emotion/react';
|
|
4
|
-
import { range } from 'es-toolkit';
|
|
5
|
-
import { backgroundCss, shadowEffect, shineEffect, transformCss } from '../../../css';
|
|
6
|
-
import { MobileMaterialDescription } from '../MobileMaterialDescription';
|
|
7
|
-
const TILT = 35.26; // 90 - arctan(sqrt(2)) in degrees
|
|
8
|
-
const TZ_RATIO = 0.2562; // translateZ / width ratio for octahedron
|
|
9
|
-
/**
|
|
10
|
-
* 8-faced (octahedral) dice with CSS 3D transforms.
|
|
11
|
-
*
|
|
12
|
-
* The `images` array must contain exactly 8 images, one per face:
|
|
13
|
-
*
|
|
14
|
-
* - **images[0–3]**: top faces (triangles pointing up)
|
|
15
|
-
* - **images[4–7]**: bottom faces (triangles pointing down)
|
|
16
|
-
*
|
|
17
|
-
* Within each half, faces are arranged by cardinal direction:
|
|
18
|
-
*
|
|
19
|
-
* | Index | Half | Direction |
|
|
20
|
-
* |-------|--------|-----------|
|
|
21
|
-
* | 0 | top | front |
|
|
22
|
-
* | 1 | top | right |
|
|
23
|
-
* | 2 | top | back |
|
|
24
|
-
* | 3 | top | left |
|
|
25
|
-
* | 4 | bottom | front |
|
|
26
|
-
* | 5 | bottom | right |
|
|
27
|
-
* | 6 | bottom | back |
|
|
28
|
-
* | 7 | bottom | left |
|
|
29
|
-
*
|
|
30
|
-
* `location.rotation` (0–7) selects which face is shown on top.
|
|
31
|
-
* Top face images should have their symbol shifted toward the base of the triangle (centroid offset).
|
|
32
|
-
* Bottom face images should be rotated 180° with the symbol shifted the opposite way.
|
|
33
|
-
*/
|
|
34
|
-
export class OctahedralDiceDescription extends MobileMaterialDescription {
|
|
35
|
-
width = 2;
|
|
36
|
-
ratio = 1;
|
|
37
|
-
borderRadius = 0;
|
|
38
|
-
color = '#222222';
|
|
39
|
-
/** Set to true to display face index labels (0-7) for debugging */
|
|
40
|
-
debugFaceLabels = false;
|
|
41
|
-
get tz() { return this.width * TZ_RATIO; }
|
|
42
|
-
getImages() {
|
|
43
|
-
return Array.isArray(this.images) ? this.images : Object.values(this.images).flat();
|
|
44
|
-
}
|
|
45
|
-
getDiceImages(itemId) {
|
|
46
|
-
return Array.isArray(this.images) ? this.images : this.images[itemId];
|
|
47
|
-
}
|
|
48
|
-
getColor(_itemId) {
|
|
49
|
-
return this.color;
|
|
50
|
-
}
|
|
51
|
-
content = ({ itemId, highlight, preview, playDown = preview }) => {
|
|
52
|
-
const images = this.getDiceImages(itemId);
|
|
53
|
-
const w = this.width;
|
|
54
|
-
const tz = this.tz;
|
|
55
|
-
const sideCss = css `
|
|
56
|
-
position: absolute;
|
|
57
|
-
width: ${w}em;
|
|
58
|
-
height: ${w}em;
|
|
59
|
-
backface-visibility: hidden;
|
|
60
|
-
`;
|
|
61
|
-
const diamondTopCss = css `
|
|
62
|
-
display: block;
|
|
63
|
-
width: 100%;
|
|
64
|
-
height: 100%;
|
|
65
|
-
overflow: hidden;
|
|
66
|
-
backface-visibility: hidden;
|
|
67
|
-
transform: translateY(50%) rotate(30deg) skewY(30deg) scaleX(0.866);
|
|
68
|
-
filter: drop-shadow(0 0 0.03em rgba(0, 0, 0, 0.5));
|
|
69
|
-
`;
|
|
70
|
-
const diamondBottomCss = css `
|
|
71
|
-
display: block;
|
|
72
|
-
width: 100%;
|
|
73
|
-
height: 100%;
|
|
74
|
-
overflow: hidden;
|
|
75
|
-
backface-visibility: hidden;
|
|
76
|
-
transform: translateY(-50%) rotate(30deg) skewY(30deg) scaleX(0.866);
|
|
77
|
-
filter: drop-shadow(0 0 0.03em rgba(0, 0, 0, 0.5));
|
|
78
|
-
`;
|
|
79
|
-
const contentTopCss = css `
|
|
80
|
-
display: block;
|
|
81
|
-
width: 100%;
|
|
82
|
-
height: 100%;
|
|
83
|
-
backface-visibility: hidden;
|
|
84
|
-
background-color: ${this.getColor(itemId)};
|
|
85
|
-
transform: scaleX(1.155) skewY(-30deg) rotate(-30deg) translateY(-50%);
|
|
86
|
-
`;
|
|
87
|
-
const contentBottomCss = css `
|
|
88
|
-
display: block;
|
|
89
|
-
width: 100%;
|
|
90
|
-
height: 100%;
|
|
91
|
-
backface-visibility: hidden;
|
|
92
|
-
background-color: ${this.getColor(itemId)};
|
|
93
|
-
transform: scaleX(1.155) skewY(-30deg) rotate(-30deg) translateY(50%);
|
|
94
|
-
`;
|
|
95
|
-
const faceLabelCss = this.debugFaceLabels ? css `
|
|
96
|
-
position: absolute;
|
|
97
|
-
top: 50%;
|
|
98
|
-
left: 50%;
|
|
99
|
-
transform: translate(-50%, -50%);
|
|
100
|
-
font-size: ${w * 0.3}em;
|
|
101
|
-
font-weight: bold;
|
|
102
|
-
color: red;
|
|
103
|
-
pointer-events: none;
|
|
104
|
-
z-index: 1;
|
|
105
|
-
` : undefined;
|
|
106
|
-
return _jsx(_Fragment, { children: range(8).map((_, index) => {
|
|
107
|
-
const yRot = (index % 4) * 90;
|
|
108
|
-
// Bottom faces are offset by 180° so that rotateX(180deg) brings face N to the top
|
|
109
|
-
const bottomYRot = ((index % 4) * 90 + 180) % 360;
|
|
110
|
-
const sideTransform = index < 4
|
|
111
|
-
? transformCss(index > 0 ? `rotateY(${yRot}deg)` : undefined, `rotateX(${TILT}deg)`, `translateZ(${tz}em)`)
|
|
112
|
-
: transformCss(`translateY(52%)`, bottomYRot > 0 ? `rotateY(${bottomYRot}deg)` : undefined, `rotateX(${-TILT}deg)`, `translateZ(${tz}em)`);
|
|
113
|
-
return _jsx("div", { css: [sideCss, sideTransform], children: _jsx("div", { css: index < 4 ? diamondTopCss : diamondBottomCss, children: _jsx("div", { css: [
|
|
114
|
-
index < 4 ? contentTopCss : contentBottomCss,
|
|
115
|
-
backgroundCss(images[index]),
|
|
116
|
-
highlight ? shineEffect : playDown && shadowEffect
|
|
117
|
-
], children: faceLabelCss && _jsx("span", { css: faceLabelCss, children: index }) }) }) }, index);
|
|
118
|
-
}) });
|
|
119
|
-
};
|
|
120
|
-
getItemTransform(item, context) {
|
|
121
|
-
return super.getItemTransform(item, context).concat(`translateZ(${this.tz}em)`, ...this.getRotations(item, context));
|
|
122
|
-
}
|
|
123
|
-
getRotations(item, _context) {
|
|
124
|
-
switch (item.location.rotation) {
|
|
125
|
-
case 0: return [];
|
|
126
|
-
case 1: return ['rotateY(-90deg)'];
|
|
127
|
-
case 2: return ['rotateY(-180deg)'];
|
|
128
|
-
case 3: return ['rotateY(90deg)'];
|
|
129
|
-
case 4: return ['rotateX(180deg)'];
|
|
130
|
-
case 5: return ['rotateX(180deg)', 'rotateY(90deg)'];
|
|
131
|
-
case 6: return ['rotateX(180deg)', 'rotateY(180deg)'];
|
|
132
|
-
case 7: return ['rotateX(180deg)', 'rotateY(-90deg)'];
|
|
133
|
-
default: return [];
|
|
134
|
-
}
|
|
135
|
-
}
|
|
136
|
-
getHelpDisplayExtraCss(item, context) {
|
|
137
|
-
return item.location && [transformCss(...this.getRotations(item, context)), css `
|
|
138
|
-
margin: ${this.width / 4}em;
|
|
139
|
-
`];
|
|
140
|
-
}
|
|
141
|
-
}
|
|
142
|
-
//# sourceMappingURL=OctahedralDiceDescription.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"OctahedralDiceDescription.js","sourceRoot":"","sources":["../../../../src/components/material/Dices/OctahedralDiceDescription.tsx"],"names":[],"mappings":"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"}
|