Skip to content

Commit 2eaf600

Browse files
committed
build: small refactoring in cards shape
1 parent 2a3d015 commit 2eaf600

6 files changed

Lines changed: 161 additions & 155 deletions

File tree

shapes/cards/src/Utils.ts

Lines changed: 1 addition & 151 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,6 @@
11
/* eslint-disable @typescript-eslint/no-magic-numbers */
22
/* eslint-disable @typescript-eslint/no-non-null-assertion */
3-
4-
import type { ICardsPath, IPath } from "./ICardsPath.js";
3+
import type { IPath } from "./ICardsPath.js";
54
import type { IShapeDrawData } from "@tsparticles/engine";
65

76
/**
@@ -41,152 +40,3 @@ export function drawPath(data: IShapeDrawData, path: IPath): void {
4140
);
4241
}
4342
}
44-
45-
const n = 0.5;
46-
47-
export const paths: ICardsPath = {
48-
heart: {
49-
segments: [
50-
{
51-
values: [
52-
{ x: 0, y: n },
53-
{ x: 0, y: n },
54-
{ x: n, y: 0 },
55-
{ x: n, y: -n / 2 },
56-
],
57-
},
58-
{
59-
values: [
60-
{ x: n, y: -n / 2 },
61-
{ x: n, y: -n / 2 },
62-
{ x: n, y: -n },
63-
{ x: n / 2, y: -n },
64-
],
65-
},
66-
{
67-
values: [
68-
{ x: n / 2, y: -n },
69-
{ x: n / 2, y: -n },
70-
{ x: 0, y: -n },
71-
{ x: 0, y: -n / 2 },
72-
],
73-
},
74-
],
75-
},
76-
diamond: {
77-
segments: [
78-
{
79-
values: [
80-
{ x: 0, y: n },
81-
{ x: 0, y: n },
82-
{ x: (3 * n) / 4, y: 0 },
83-
{ x: (3 * n) / 4, y: 0 },
84-
],
85-
},
86-
{
87-
values: [
88-
{ x: (3 * n) / 4, y: 0 },
89-
{ x: (3 * n) / 4, y: 0 },
90-
{ x: 0, y: -n },
91-
{ x: 0, y: -n },
92-
],
93-
},
94-
],
95-
},
96-
club: {
97-
segments: [
98-
{
99-
values: [
100-
{ x: 0, y: -n },
101-
{ x: 0, y: -n },
102-
{ x: n / 2, y: -n },
103-
{ x: n / 2, y: -n / 2 },
104-
],
105-
},
106-
{
107-
values: [
108-
{ x: n / 2, y: -n / 2 },
109-
{ x: n / 2, y: -n / 2 },
110-
{ x: n, y: -n / 2 },
111-
{ x: n, y: 0 },
112-
],
113-
},
114-
{
115-
values: [
116-
{ x: n, y: 0 },
117-
{ x: n, y: 0 },
118-
{ x: n, y: n / 2 },
119-
{ x: n / 2, y: n / 2 },
120-
],
121-
},
122-
{
123-
values: [
124-
{ x: n / 2, y: n / 2 },
125-
{ x: n / 2, y: n / 2 },
126-
{ x: n / 8, y: n / 2 },
127-
{ x: n / 8, y: n / 8 },
128-
],
129-
},
130-
{
131-
values: [
132-
{ x: n / 8, y: n / 8 },
133-
{ x: n / 8, y: n / 2 },
134-
{ x: n / 2, y: n },
135-
{ x: n / 2, y: n },
136-
],
137-
},
138-
{
139-
values: [
140-
{ x: n / 2, y: n },
141-
{ x: n / 2, y: n },
142-
{ x: 0, y: n },
143-
{ x: 0, y: n },
144-
],
145-
},
146-
],
147-
},
148-
spade: {
149-
segments: [
150-
{
151-
values: [
152-
{ x: 0, y: -n },
153-
{ x: 0, y: -n },
154-
{ x: n, y: -n / 2 },
155-
{ x: n, y: 0 },
156-
],
157-
},
158-
{
159-
values: [
160-
{ x: n, y: 0 },
161-
{ x: n, y: 0 },
162-
{ x: n, y: n / 2 },
163-
{ x: n / 2, y: n / 2 },
164-
],
165-
},
166-
{
167-
values: [
168-
{ x: n / 2, y: n / 2 },
169-
{ x: n / 2, y: n / 2 },
170-
{ x: n / 8, y: n / 2 },
171-
{ x: n / 8, y: n / 8 },
172-
],
173-
},
174-
{
175-
values: [
176-
{ x: n / 8, y: n / 8 },
177-
{ x: n / 8, y: n / 2 },
178-
{ x: n / 2, y: n },
179-
{ x: n / 2, y: n },
180-
],
181-
},
182-
{
183-
values: [
184-
{ x: n / 2, y: n },
185-
{ x: n / 2, y: n },
186-
{ x: 0, y: n },
187-
{ x: 0, y: n },
188-
],
189-
},
190-
],
191-
},
192-
};

shapes/cards/src/clubs/ClubDrawer.ts

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
import type { IShapeDrawData, IShapeDrawer } from "@tsparticles/engine";
2-
import { drawPath, paths } from "../Utils.js";
2+
import { drawPath } from "../Utils.js";
3+
import { paths } from "../paths.js";
34

45
export class ClubDrawer implements IShapeDrawer {
56
readonly validTypes = ["club", "clubs"] as const;

shapes/cards/src/diamonds/DiamondDrawer.ts

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
import type { IShapeDrawData, IShapeDrawer } from "@tsparticles/engine";
2-
import { drawPath, paths } from "../Utils.js";
2+
import { drawPath } from "../Utils.js";
3+
import { paths } from "../paths.js";
34

45
export class DiamondDrawer implements IShapeDrawer {
56
readonly validTypes = ["diamond", "diamonds"] as const;

shapes/cards/src/hearts/HeartDrawer.ts

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
import type { IShapeDrawData, IShapeDrawer } from "@tsparticles/engine";
2-
import { drawPath, paths } from "../Utils.js";
2+
import { drawPath } from "../Utils.js";
3+
import { paths } from "../paths.js";
34

45
export class HeartDrawer implements IShapeDrawer {
56
readonly validTypes = ["heart", "hearts"] as const;

shapes/cards/src/paths.ts

Lines changed: 152 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,152 @@
1+
import { empty, half, quarter, threeQuarter } from "@tsparticles/engine";
2+
import type { ICardsPath } from "./ICardsPath.js";
3+
4+
const n = 0.5,
5+
eighth = quarter * half;
6+
7+
export const paths: ICardsPath = {
8+
heart: {
9+
segments: [
10+
{
11+
values: [
12+
{ x: empty, y: n },
13+
{ x: empty, y: n },
14+
{ x: n, y: empty },
15+
{ x: n, y: -n * half },
16+
],
17+
},
18+
{
19+
values: [
20+
{ x: n, y: -n * half },
21+
{ x: n, y: -n * half },
22+
{ x: n, y: -n },
23+
{ x: n * half, y: -n },
24+
],
25+
},
26+
{
27+
values: [
28+
{ x: n * half, y: -n },
29+
{ x: n * half, y: -n },
30+
{ x: empty, y: -n },
31+
{ x: empty, y: -n * half },
32+
],
33+
},
34+
],
35+
},
36+
diamond: {
37+
segments: [
38+
{
39+
values: [
40+
{ x: empty, y: n },
41+
{ x: empty, y: n },
42+
{ x: n * threeQuarter, y: empty },
43+
{ x: n * threeQuarter, y: empty },
44+
],
45+
},
46+
{
47+
values: [
48+
{ x: n * threeQuarter, y: empty },
49+
{ x: n * threeQuarter, y: empty },
50+
{ x: empty, y: -n },
51+
{ x: empty, y: -n },
52+
],
53+
},
54+
],
55+
},
56+
club: {
57+
segments: [
58+
{
59+
values: [
60+
{ x: empty, y: -n },
61+
{ x: empty, y: -n },
62+
{ x: n * half, y: -n },
63+
{ x: n * half, y: -n * half },
64+
],
65+
},
66+
{
67+
values: [
68+
{ x: n * half, y: -n * half },
69+
{ x: n * half, y: -n * half },
70+
{ x: n, y: -n * half },
71+
{ x: n, y: empty },
72+
],
73+
},
74+
{
75+
values: [
76+
{ x: n, y: empty },
77+
{ x: n, y: empty },
78+
{ x: n, y: n * half },
79+
{ x: n * half, y: n * half },
80+
],
81+
},
82+
{
83+
values: [
84+
{ x: n * half, y: n * half },
85+
{ x: n * half, y: n * half },
86+
{ x: n * eighth, y: n * half },
87+
{ x: n * eighth, y: n * eighth },
88+
],
89+
},
90+
{
91+
values: [
92+
{ x: n * eighth, y: n * eighth },
93+
{ x: n * eighth, y: n * half },
94+
{ x: n * half, y: n },
95+
{ x: n * half, y: n },
96+
],
97+
},
98+
{
99+
values: [
100+
{ x: n * half, y: n },
101+
{ x: n * half, y: n },
102+
{ x: empty, y: n },
103+
{ x: empty, y: n },
104+
],
105+
},
106+
],
107+
},
108+
spade: {
109+
segments: [
110+
{
111+
values: [
112+
{ x: empty, y: -n },
113+
{ x: empty, y: -n },
114+
{ x: n, y: -n * half },
115+
{ x: n, y: empty },
116+
],
117+
},
118+
{
119+
values: [
120+
{ x: n, y: empty },
121+
{ x: n, y: empty },
122+
{ x: n, y: n * half },
123+
{ x: n * half, y: n * half },
124+
],
125+
},
126+
{
127+
values: [
128+
{ x: n * half, y: n * half },
129+
{ x: n * half, y: n * half },
130+
{ x: n * eighth, y: n * half },
131+
{ x: n * eighth, y: n * eighth },
132+
],
133+
},
134+
{
135+
values: [
136+
{ x: n * eighth, y: n * eighth },
137+
{ x: n * eighth, y: n * half },
138+
{ x: n * half, y: n },
139+
{ x: n * half, y: n },
140+
],
141+
},
142+
{
143+
values: [
144+
{ x: n * half, y: n },
145+
{ x: n * half, y: n },
146+
{ x: empty, y: n },
147+
{ x: empty, y: n },
148+
],
149+
},
150+
],
151+
},
152+
};

shapes/cards/src/spades/SpadeDrawer.ts

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
import type { IShapeDrawData, IShapeDrawer } from "@tsparticles/engine";
2-
import { drawPath, paths } from "../Utils.js";
2+
import { drawPath } from "../Utils.js";
3+
import { paths } from "../paths.js";
34

45
export class SpadeDrawer implements IShapeDrawer {
56
readonly validTypes = ["spade", "spades"] as const;

0 commit comments

Comments
 (0)