microboard-temp 0.13.5 → 0.13.6
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/cjs/browser.js +17 -17
- package/dist/cjs/index.js +17 -17
- package/dist/cjs/node.js +17 -17
- package/dist/esm/browser.js +17 -17
- package/dist/esm/index.js +17 -17
- package/dist/esm/node.js +17 -17
- package/dist/types/Gravity/GravityEngine.d.ts +0 -6
- package/dist/types/Settings.d.ts +6 -0
- package/package.json +1 -1
package/dist/cjs/browser.js
CHANGED
|
@@ -4674,7 +4674,13 @@ var conf = {
|
|
|
4674
4674
|
CARD_DIMENSIONS: { width: 250, height: 400 },
|
|
4675
4675
|
DEFAULT_GAME_ITEM_DIMENSIONS: { width: 200, height: 200 },
|
|
4676
4676
|
MAX_CARD_SIZE: 500,
|
|
4677
|
-
CONNECTOR_ITEM_OFFSET: 20
|
|
4677
|
+
CONNECTOR_ITEM_OFFSET: 20,
|
|
4678
|
+
GRAVITY_G: 80,
|
|
4679
|
+
GRAVITY_G_CENTER: 120,
|
|
4680
|
+
GRAVITY_DAMPING: 0.96,
|
|
4681
|
+
GRAVITY_RESTITUTION: 0.5,
|
|
4682
|
+
GRAVITY_REPULSION: 200,
|
|
4683
|
+
GRAVITY_MAX_DISTANCE: 3000
|
|
4678
4684
|
};
|
|
4679
4685
|
initDefaultI18N();
|
|
4680
4686
|
|
|
@@ -54348,14 +54354,8 @@ class GravityEngine {
|
|
|
54348
54354
|
tickTimer = null;
|
|
54349
54355
|
syncTimer = null;
|
|
54350
54356
|
lastSyncedPositions = new Map;
|
|
54351
|
-
G = 80;
|
|
54352
|
-
G_CENTER = 120;
|
|
54353
|
-
DAMPING = 0.96;
|
|
54354
|
-
RESTITUTION = 0.5;
|
|
54355
|
-
REPULSION = 200;
|
|
54356
54357
|
TICK_MS = 33;
|
|
54357
54358
|
SYNC_MS = 300;
|
|
54358
|
-
MAX_DISTANCE = 3000;
|
|
54359
54359
|
SOFTENING_SQ = 50 * 50;
|
|
54360
54360
|
MIN_MOVE_PX = 0.1;
|
|
54361
54361
|
constructor(board) {
|
|
@@ -54424,8 +54424,8 @@ class GravityEngine {
|
|
|
54424
54424
|
const dcx = centerX - s1.cx;
|
|
54425
54425
|
const dcy = centerY - s1.cy;
|
|
54426
54426
|
const distCenter = Math.sqrt(dcx * dcx + dcy * dcy) + 1;
|
|
54427
|
-
ax +=
|
|
54428
|
-
ay +=
|
|
54427
|
+
ax += conf.GRAVITY_G_CENTER * dcx / distCenter;
|
|
54428
|
+
ay += conf.GRAVITY_G_CENTER * dcy / distCenter;
|
|
54429
54429
|
for (let j = 0;j < snap.length; j++) {
|
|
54430
54430
|
if (i === j)
|
|
54431
54431
|
continue;
|
|
@@ -54433,7 +54433,7 @@ class GravityEngine {
|
|
|
54433
54433
|
const dx = s2.cx - s1.cx;
|
|
54434
54434
|
const dy = s2.cy - s1.cy;
|
|
54435
54435
|
const dist = Math.sqrt(dx * dx + dy * dy) + 0.001;
|
|
54436
|
-
if (dist >
|
|
54436
|
+
if (dist > conf.GRAVITY_MAX_DISTANCE)
|
|
54437
54437
|
continue;
|
|
54438
54438
|
const overlapping = s1.right > s2.left && s2.right > s1.left && s1.bottom > s2.top && s2.bottom > s1.top;
|
|
54439
54439
|
if (overlapping) {
|
|
@@ -54442,26 +54442,26 @@ class GravityEngine {
|
|
|
54442
54442
|
if (overlapX < overlapY) {
|
|
54443
54443
|
const sign = s1.cx < s2.cx ? -1 : 1;
|
|
54444
54444
|
if (sign * vel.vx < 0)
|
|
54445
|
-
vel.vx = -vel.vx *
|
|
54446
|
-
ax += sign *
|
|
54445
|
+
vel.vx = -vel.vx * conf.GRAVITY_RESTITUTION;
|
|
54446
|
+
ax += sign * conf.GRAVITY_REPULSION * overlapX;
|
|
54447
54447
|
} else {
|
|
54448
54448
|
const sign = s1.cy < s2.cy ? -1 : 1;
|
|
54449
54449
|
if (sign * vel.vy < 0)
|
|
54450
|
-
vel.vy = -vel.vy *
|
|
54451
|
-
ay += sign *
|
|
54450
|
+
vel.vy = -vel.vy * conf.GRAVITY_RESTITUTION;
|
|
54451
|
+
ay += sign * conf.GRAVITY_REPULSION * overlapY;
|
|
54452
54452
|
}
|
|
54453
54453
|
} else {
|
|
54454
54454
|
const touchDist = (s1.w + s2.w + s1.h + s2.h) * 0.25;
|
|
54455
54455
|
if (dist < touchDist + 5)
|
|
54456
54456
|
continue;
|
|
54457
54457
|
const distSq = dx * dx + dy * dy;
|
|
54458
|
-
const gravAcc =
|
|
54458
|
+
const gravAcc = conf.GRAVITY_G * s2.mass / (distSq + this.SOFTENING_SQ);
|
|
54459
54459
|
ax += gravAcc * dx / dist;
|
|
54460
54460
|
ay += gravAcc * dy / dist;
|
|
54461
54461
|
}
|
|
54462
54462
|
}
|
|
54463
|
-
vel.vx = (vel.vx + ax * dt) *
|
|
54464
|
-
vel.vy = (vel.vy + ay * dt) *
|
|
54463
|
+
vel.vx = (vel.vx + ax * dt) * conf.GRAVITY_DAMPING;
|
|
54464
|
+
vel.vy = (vel.vy + ay * dt) * conf.GRAVITY_DAMPING;
|
|
54465
54465
|
const moveX = vel.vx * dt;
|
|
54466
54466
|
const moveY = vel.vy * dt;
|
|
54467
54467
|
if (Math.abs(moveX) >= this.MIN_MOVE_PX || Math.abs(moveY) >= this.MIN_MOVE_PX) {
|
package/dist/cjs/index.js
CHANGED
|
@@ -4674,7 +4674,13 @@ var conf = {
|
|
|
4674
4674
|
CARD_DIMENSIONS: { width: 250, height: 400 },
|
|
4675
4675
|
DEFAULT_GAME_ITEM_DIMENSIONS: { width: 200, height: 200 },
|
|
4676
4676
|
MAX_CARD_SIZE: 500,
|
|
4677
|
-
CONNECTOR_ITEM_OFFSET: 20
|
|
4677
|
+
CONNECTOR_ITEM_OFFSET: 20,
|
|
4678
|
+
GRAVITY_G: 80,
|
|
4679
|
+
GRAVITY_G_CENTER: 120,
|
|
4680
|
+
GRAVITY_DAMPING: 0.96,
|
|
4681
|
+
GRAVITY_RESTITUTION: 0.5,
|
|
4682
|
+
GRAVITY_REPULSION: 200,
|
|
4683
|
+
GRAVITY_MAX_DISTANCE: 3000
|
|
4678
4684
|
};
|
|
4679
4685
|
initDefaultI18N();
|
|
4680
4686
|
|
|
@@ -54348,14 +54354,8 @@ class GravityEngine {
|
|
|
54348
54354
|
tickTimer = null;
|
|
54349
54355
|
syncTimer = null;
|
|
54350
54356
|
lastSyncedPositions = new Map;
|
|
54351
|
-
G = 80;
|
|
54352
|
-
G_CENTER = 120;
|
|
54353
|
-
DAMPING = 0.96;
|
|
54354
|
-
RESTITUTION = 0.5;
|
|
54355
|
-
REPULSION = 200;
|
|
54356
54357
|
TICK_MS = 33;
|
|
54357
54358
|
SYNC_MS = 300;
|
|
54358
|
-
MAX_DISTANCE = 3000;
|
|
54359
54359
|
SOFTENING_SQ = 50 * 50;
|
|
54360
54360
|
MIN_MOVE_PX = 0.1;
|
|
54361
54361
|
constructor(board) {
|
|
@@ -54424,8 +54424,8 @@ class GravityEngine {
|
|
|
54424
54424
|
const dcx = centerX - s1.cx;
|
|
54425
54425
|
const dcy = centerY - s1.cy;
|
|
54426
54426
|
const distCenter = Math.sqrt(dcx * dcx + dcy * dcy) + 1;
|
|
54427
|
-
ax +=
|
|
54428
|
-
ay +=
|
|
54427
|
+
ax += conf.GRAVITY_G_CENTER * dcx / distCenter;
|
|
54428
|
+
ay += conf.GRAVITY_G_CENTER * dcy / distCenter;
|
|
54429
54429
|
for (let j = 0;j < snap.length; j++) {
|
|
54430
54430
|
if (i === j)
|
|
54431
54431
|
continue;
|
|
@@ -54433,7 +54433,7 @@ class GravityEngine {
|
|
|
54433
54433
|
const dx = s2.cx - s1.cx;
|
|
54434
54434
|
const dy = s2.cy - s1.cy;
|
|
54435
54435
|
const dist = Math.sqrt(dx * dx + dy * dy) + 0.001;
|
|
54436
|
-
if (dist >
|
|
54436
|
+
if (dist > conf.GRAVITY_MAX_DISTANCE)
|
|
54437
54437
|
continue;
|
|
54438
54438
|
const overlapping = s1.right > s2.left && s2.right > s1.left && s1.bottom > s2.top && s2.bottom > s1.top;
|
|
54439
54439
|
if (overlapping) {
|
|
@@ -54442,26 +54442,26 @@ class GravityEngine {
|
|
|
54442
54442
|
if (overlapX < overlapY) {
|
|
54443
54443
|
const sign = s1.cx < s2.cx ? -1 : 1;
|
|
54444
54444
|
if (sign * vel.vx < 0)
|
|
54445
|
-
vel.vx = -vel.vx *
|
|
54446
|
-
ax += sign *
|
|
54445
|
+
vel.vx = -vel.vx * conf.GRAVITY_RESTITUTION;
|
|
54446
|
+
ax += sign * conf.GRAVITY_REPULSION * overlapX;
|
|
54447
54447
|
} else {
|
|
54448
54448
|
const sign = s1.cy < s2.cy ? -1 : 1;
|
|
54449
54449
|
if (sign * vel.vy < 0)
|
|
54450
|
-
vel.vy = -vel.vy *
|
|
54451
|
-
ay += sign *
|
|
54450
|
+
vel.vy = -vel.vy * conf.GRAVITY_RESTITUTION;
|
|
54451
|
+
ay += sign * conf.GRAVITY_REPULSION * overlapY;
|
|
54452
54452
|
}
|
|
54453
54453
|
} else {
|
|
54454
54454
|
const touchDist = (s1.w + s2.w + s1.h + s2.h) * 0.25;
|
|
54455
54455
|
if (dist < touchDist + 5)
|
|
54456
54456
|
continue;
|
|
54457
54457
|
const distSq = dx * dx + dy * dy;
|
|
54458
|
-
const gravAcc =
|
|
54458
|
+
const gravAcc = conf.GRAVITY_G * s2.mass / (distSq + this.SOFTENING_SQ);
|
|
54459
54459
|
ax += gravAcc * dx / dist;
|
|
54460
54460
|
ay += gravAcc * dy / dist;
|
|
54461
54461
|
}
|
|
54462
54462
|
}
|
|
54463
|
-
vel.vx = (vel.vx + ax * dt) *
|
|
54464
|
-
vel.vy = (vel.vy + ay * dt) *
|
|
54463
|
+
vel.vx = (vel.vx + ax * dt) * conf.GRAVITY_DAMPING;
|
|
54464
|
+
vel.vy = (vel.vy + ay * dt) * conf.GRAVITY_DAMPING;
|
|
54465
54465
|
const moveX = vel.vx * dt;
|
|
54466
54466
|
const moveY = vel.vy * dt;
|
|
54467
54467
|
if (Math.abs(moveX) >= this.MIN_MOVE_PX || Math.abs(moveY) >= this.MIN_MOVE_PX) {
|
package/dist/cjs/node.js
CHANGED
|
@@ -5711,7 +5711,13 @@ var conf = {
|
|
|
5711
5711
|
CARD_DIMENSIONS: { width: 250, height: 400 },
|
|
5712
5712
|
DEFAULT_GAME_ITEM_DIMENSIONS: { width: 200, height: 200 },
|
|
5713
5713
|
MAX_CARD_SIZE: 500,
|
|
5714
|
-
CONNECTOR_ITEM_OFFSET: 20
|
|
5714
|
+
CONNECTOR_ITEM_OFFSET: 20,
|
|
5715
|
+
GRAVITY_G: 80,
|
|
5716
|
+
GRAVITY_G_CENTER: 120,
|
|
5717
|
+
GRAVITY_DAMPING: 0.96,
|
|
5718
|
+
GRAVITY_RESTITUTION: 0.5,
|
|
5719
|
+
GRAVITY_REPULSION: 200,
|
|
5720
|
+
GRAVITY_MAX_DISTANCE: 3000
|
|
5715
5721
|
};
|
|
5716
5722
|
initDefaultI18N();
|
|
5717
5723
|
|
|
@@ -56821,14 +56827,8 @@ class GravityEngine {
|
|
|
56821
56827
|
tickTimer = null;
|
|
56822
56828
|
syncTimer = null;
|
|
56823
56829
|
lastSyncedPositions = new Map;
|
|
56824
|
-
G = 80;
|
|
56825
|
-
G_CENTER = 120;
|
|
56826
|
-
DAMPING = 0.96;
|
|
56827
|
-
RESTITUTION = 0.5;
|
|
56828
|
-
REPULSION = 200;
|
|
56829
56830
|
TICK_MS = 33;
|
|
56830
56831
|
SYNC_MS = 300;
|
|
56831
|
-
MAX_DISTANCE = 3000;
|
|
56832
56832
|
SOFTENING_SQ = 50 * 50;
|
|
56833
56833
|
MIN_MOVE_PX = 0.1;
|
|
56834
56834
|
constructor(board) {
|
|
@@ -56897,8 +56897,8 @@ class GravityEngine {
|
|
|
56897
56897
|
const dcx = centerX - s1.cx;
|
|
56898
56898
|
const dcy = centerY - s1.cy;
|
|
56899
56899
|
const distCenter = Math.sqrt(dcx * dcx + dcy * dcy) + 1;
|
|
56900
|
-
ax +=
|
|
56901
|
-
ay +=
|
|
56900
|
+
ax += conf.GRAVITY_G_CENTER * dcx / distCenter;
|
|
56901
|
+
ay += conf.GRAVITY_G_CENTER * dcy / distCenter;
|
|
56902
56902
|
for (let j = 0;j < snap.length; j++) {
|
|
56903
56903
|
if (i === j)
|
|
56904
56904
|
continue;
|
|
@@ -56906,7 +56906,7 @@ class GravityEngine {
|
|
|
56906
56906
|
const dx = s2.cx - s1.cx;
|
|
56907
56907
|
const dy = s2.cy - s1.cy;
|
|
56908
56908
|
const dist = Math.sqrt(dx * dx + dy * dy) + 0.001;
|
|
56909
|
-
if (dist >
|
|
56909
|
+
if (dist > conf.GRAVITY_MAX_DISTANCE)
|
|
56910
56910
|
continue;
|
|
56911
56911
|
const overlapping = s1.right > s2.left && s2.right > s1.left && s1.bottom > s2.top && s2.bottom > s1.top;
|
|
56912
56912
|
if (overlapping) {
|
|
@@ -56915,26 +56915,26 @@ class GravityEngine {
|
|
|
56915
56915
|
if (overlapX < overlapY) {
|
|
56916
56916
|
const sign = s1.cx < s2.cx ? -1 : 1;
|
|
56917
56917
|
if (sign * vel.vx < 0)
|
|
56918
|
-
vel.vx = -vel.vx *
|
|
56919
|
-
ax += sign *
|
|
56918
|
+
vel.vx = -vel.vx * conf.GRAVITY_RESTITUTION;
|
|
56919
|
+
ax += sign * conf.GRAVITY_REPULSION * overlapX;
|
|
56920
56920
|
} else {
|
|
56921
56921
|
const sign = s1.cy < s2.cy ? -1 : 1;
|
|
56922
56922
|
if (sign * vel.vy < 0)
|
|
56923
|
-
vel.vy = -vel.vy *
|
|
56924
|
-
ay += sign *
|
|
56923
|
+
vel.vy = -vel.vy * conf.GRAVITY_RESTITUTION;
|
|
56924
|
+
ay += sign * conf.GRAVITY_REPULSION * overlapY;
|
|
56925
56925
|
}
|
|
56926
56926
|
} else {
|
|
56927
56927
|
const touchDist = (s1.w + s2.w + s1.h + s2.h) * 0.25;
|
|
56928
56928
|
if (dist < touchDist + 5)
|
|
56929
56929
|
continue;
|
|
56930
56930
|
const distSq = dx * dx + dy * dy;
|
|
56931
|
-
const gravAcc =
|
|
56931
|
+
const gravAcc = conf.GRAVITY_G * s2.mass / (distSq + this.SOFTENING_SQ);
|
|
56932
56932
|
ax += gravAcc * dx / dist;
|
|
56933
56933
|
ay += gravAcc * dy / dist;
|
|
56934
56934
|
}
|
|
56935
56935
|
}
|
|
56936
|
-
vel.vx = (vel.vx + ax * dt) *
|
|
56937
|
-
vel.vy = (vel.vy + ay * dt) *
|
|
56936
|
+
vel.vx = (vel.vx + ax * dt) * conf.GRAVITY_DAMPING;
|
|
56937
|
+
vel.vy = (vel.vy + ay * dt) * conf.GRAVITY_DAMPING;
|
|
56938
56938
|
const moveX = vel.vx * dt;
|
|
56939
56939
|
const moveY = vel.vy * dt;
|
|
56940
56940
|
if (Math.abs(moveX) >= this.MIN_MOVE_PX || Math.abs(moveY) >= this.MIN_MOVE_PX) {
|
package/dist/esm/browser.js
CHANGED
|
@@ -4494,7 +4494,13 @@ var conf = {
|
|
|
4494
4494
|
CARD_DIMENSIONS: { width: 250, height: 400 },
|
|
4495
4495
|
DEFAULT_GAME_ITEM_DIMENSIONS: { width: 200, height: 200 },
|
|
4496
4496
|
MAX_CARD_SIZE: 500,
|
|
4497
|
-
CONNECTOR_ITEM_OFFSET: 20
|
|
4497
|
+
CONNECTOR_ITEM_OFFSET: 20,
|
|
4498
|
+
GRAVITY_G: 80,
|
|
4499
|
+
GRAVITY_G_CENTER: 120,
|
|
4500
|
+
GRAVITY_DAMPING: 0.96,
|
|
4501
|
+
GRAVITY_RESTITUTION: 0.5,
|
|
4502
|
+
GRAVITY_REPULSION: 200,
|
|
4503
|
+
GRAVITY_MAX_DISTANCE: 3000
|
|
4498
4504
|
};
|
|
4499
4505
|
initDefaultI18N();
|
|
4500
4506
|
|
|
@@ -54177,14 +54183,8 @@ class GravityEngine {
|
|
|
54177
54183
|
tickTimer = null;
|
|
54178
54184
|
syncTimer = null;
|
|
54179
54185
|
lastSyncedPositions = new Map;
|
|
54180
|
-
G = 80;
|
|
54181
|
-
G_CENTER = 120;
|
|
54182
|
-
DAMPING = 0.96;
|
|
54183
|
-
RESTITUTION = 0.5;
|
|
54184
|
-
REPULSION = 200;
|
|
54185
54186
|
TICK_MS = 33;
|
|
54186
54187
|
SYNC_MS = 300;
|
|
54187
|
-
MAX_DISTANCE = 3000;
|
|
54188
54188
|
SOFTENING_SQ = 50 * 50;
|
|
54189
54189
|
MIN_MOVE_PX = 0.1;
|
|
54190
54190
|
constructor(board) {
|
|
@@ -54253,8 +54253,8 @@ class GravityEngine {
|
|
|
54253
54253
|
const dcx = centerX - s1.cx;
|
|
54254
54254
|
const dcy = centerY - s1.cy;
|
|
54255
54255
|
const distCenter = Math.sqrt(dcx * dcx + dcy * dcy) + 1;
|
|
54256
|
-
ax +=
|
|
54257
|
-
ay +=
|
|
54256
|
+
ax += conf.GRAVITY_G_CENTER * dcx / distCenter;
|
|
54257
|
+
ay += conf.GRAVITY_G_CENTER * dcy / distCenter;
|
|
54258
54258
|
for (let j = 0;j < snap.length; j++) {
|
|
54259
54259
|
if (i === j)
|
|
54260
54260
|
continue;
|
|
@@ -54262,7 +54262,7 @@ class GravityEngine {
|
|
|
54262
54262
|
const dx = s2.cx - s1.cx;
|
|
54263
54263
|
const dy = s2.cy - s1.cy;
|
|
54264
54264
|
const dist = Math.sqrt(dx * dx + dy * dy) + 0.001;
|
|
54265
|
-
if (dist >
|
|
54265
|
+
if (dist > conf.GRAVITY_MAX_DISTANCE)
|
|
54266
54266
|
continue;
|
|
54267
54267
|
const overlapping = s1.right > s2.left && s2.right > s1.left && s1.bottom > s2.top && s2.bottom > s1.top;
|
|
54268
54268
|
if (overlapping) {
|
|
@@ -54271,26 +54271,26 @@ class GravityEngine {
|
|
|
54271
54271
|
if (overlapX < overlapY) {
|
|
54272
54272
|
const sign = s1.cx < s2.cx ? -1 : 1;
|
|
54273
54273
|
if (sign * vel.vx < 0)
|
|
54274
|
-
vel.vx = -vel.vx *
|
|
54275
|
-
ax += sign *
|
|
54274
|
+
vel.vx = -vel.vx * conf.GRAVITY_RESTITUTION;
|
|
54275
|
+
ax += sign * conf.GRAVITY_REPULSION * overlapX;
|
|
54276
54276
|
} else {
|
|
54277
54277
|
const sign = s1.cy < s2.cy ? -1 : 1;
|
|
54278
54278
|
if (sign * vel.vy < 0)
|
|
54279
|
-
vel.vy = -vel.vy *
|
|
54280
|
-
ay += sign *
|
|
54279
|
+
vel.vy = -vel.vy * conf.GRAVITY_RESTITUTION;
|
|
54280
|
+
ay += sign * conf.GRAVITY_REPULSION * overlapY;
|
|
54281
54281
|
}
|
|
54282
54282
|
} else {
|
|
54283
54283
|
const touchDist = (s1.w + s2.w + s1.h + s2.h) * 0.25;
|
|
54284
54284
|
if (dist < touchDist + 5)
|
|
54285
54285
|
continue;
|
|
54286
54286
|
const distSq = dx * dx + dy * dy;
|
|
54287
|
-
const gravAcc =
|
|
54287
|
+
const gravAcc = conf.GRAVITY_G * s2.mass / (distSq + this.SOFTENING_SQ);
|
|
54288
54288
|
ax += gravAcc * dx / dist;
|
|
54289
54289
|
ay += gravAcc * dy / dist;
|
|
54290
54290
|
}
|
|
54291
54291
|
}
|
|
54292
|
-
vel.vx = (vel.vx + ax * dt) *
|
|
54293
|
-
vel.vy = (vel.vy + ay * dt) *
|
|
54292
|
+
vel.vx = (vel.vx + ax * dt) * conf.GRAVITY_DAMPING;
|
|
54293
|
+
vel.vy = (vel.vy + ay * dt) * conf.GRAVITY_DAMPING;
|
|
54294
54294
|
const moveX = vel.vx * dt;
|
|
54295
54295
|
const moveY = vel.vy * dt;
|
|
54296
54296
|
if (Math.abs(moveX) >= this.MIN_MOVE_PX || Math.abs(moveY) >= this.MIN_MOVE_PX) {
|
package/dist/esm/index.js
CHANGED
|
@@ -4487,7 +4487,13 @@ var conf = {
|
|
|
4487
4487
|
CARD_DIMENSIONS: { width: 250, height: 400 },
|
|
4488
4488
|
DEFAULT_GAME_ITEM_DIMENSIONS: { width: 200, height: 200 },
|
|
4489
4489
|
MAX_CARD_SIZE: 500,
|
|
4490
|
-
CONNECTOR_ITEM_OFFSET: 20
|
|
4490
|
+
CONNECTOR_ITEM_OFFSET: 20,
|
|
4491
|
+
GRAVITY_G: 80,
|
|
4492
|
+
GRAVITY_G_CENTER: 120,
|
|
4493
|
+
GRAVITY_DAMPING: 0.96,
|
|
4494
|
+
GRAVITY_RESTITUTION: 0.5,
|
|
4495
|
+
GRAVITY_REPULSION: 200,
|
|
4496
|
+
GRAVITY_MAX_DISTANCE: 3000
|
|
4491
4497
|
};
|
|
4492
4498
|
initDefaultI18N();
|
|
4493
4499
|
|
|
@@ -54170,14 +54176,8 @@ class GravityEngine {
|
|
|
54170
54176
|
tickTimer = null;
|
|
54171
54177
|
syncTimer = null;
|
|
54172
54178
|
lastSyncedPositions = new Map;
|
|
54173
|
-
G = 80;
|
|
54174
|
-
G_CENTER = 120;
|
|
54175
|
-
DAMPING = 0.96;
|
|
54176
|
-
RESTITUTION = 0.5;
|
|
54177
|
-
REPULSION = 200;
|
|
54178
54179
|
TICK_MS = 33;
|
|
54179
54180
|
SYNC_MS = 300;
|
|
54180
|
-
MAX_DISTANCE = 3000;
|
|
54181
54181
|
SOFTENING_SQ = 50 * 50;
|
|
54182
54182
|
MIN_MOVE_PX = 0.1;
|
|
54183
54183
|
constructor(board) {
|
|
@@ -54246,8 +54246,8 @@ class GravityEngine {
|
|
|
54246
54246
|
const dcx = centerX - s1.cx;
|
|
54247
54247
|
const dcy = centerY - s1.cy;
|
|
54248
54248
|
const distCenter = Math.sqrt(dcx * dcx + dcy * dcy) + 1;
|
|
54249
|
-
ax +=
|
|
54250
|
-
ay +=
|
|
54249
|
+
ax += conf.GRAVITY_G_CENTER * dcx / distCenter;
|
|
54250
|
+
ay += conf.GRAVITY_G_CENTER * dcy / distCenter;
|
|
54251
54251
|
for (let j = 0;j < snap.length; j++) {
|
|
54252
54252
|
if (i === j)
|
|
54253
54253
|
continue;
|
|
@@ -54255,7 +54255,7 @@ class GravityEngine {
|
|
|
54255
54255
|
const dx = s2.cx - s1.cx;
|
|
54256
54256
|
const dy = s2.cy - s1.cy;
|
|
54257
54257
|
const dist = Math.sqrt(dx * dx + dy * dy) + 0.001;
|
|
54258
|
-
if (dist >
|
|
54258
|
+
if (dist > conf.GRAVITY_MAX_DISTANCE)
|
|
54259
54259
|
continue;
|
|
54260
54260
|
const overlapping = s1.right > s2.left && s2.right > s1.left && s1.bottom > s2.top && s2.bottom > s1.top;
|
|
54261
54261
|
if (overlapping) {
|
|
@@ -54264,26 +54264,26 @@ class GravityEngine {
|
|
|
54264
54264
|
if (overlapX < overlapY) {
|
|
54265
54265
|
const sign = s1.cx < s2.cx ? -1 : 1;
|
|
54266
54266
|
if (sign * vel.vx < 0)
|
|
54267
|
-
vel.vx = -vel.vx *
|
|
54268
|
-
ax += sign *
|
|
54267
|
+
vel.vx = -vel.vx * conf.GRAVITY_RESTITUTION;
|
|
54268
|
+
ax += sign * conf.GRAVITY_REPULSION * overlapX;
|
|
54269
54269
|
} else {
|
|
54270
54270
|
const sign = s1.cy < s2.cy ? -1 : 1;
|
|
54271
54271
|
if (sign * vel.vy < 0)
|
|
54272
|
-
vel.vy = -vel.vy *
|
|
54273
|
-
ay += sign *
|
|
54272
|
+
vel.vy = -vel.vy * conf.GRAVITY_RESTITUTION;
|
|
54273
|
+
ay += sign * conf.GRAVITY_REPULSION * overlapY;
|
|
54274
54274
|
}
|
|
54275
54275
|
} else {
|
|
54276
54276
|
const touchDist = (s1.w + s2.w + s1.h + s2.h) * 0.25;
|
|
54277
54277
|
if (dist < touchDist + 5)
|
|
54278
54278
|
continue;
|
|
54279
54279
|
const distSq = dx * dx + dy * dy;
|
|
54280
|
-
const gravAcc =
|
|
54280
|
+
const gravAcc = conf.GRAVITY_G * s2.mass / (distSq + this.SOFTENING_SQ);
|
|
54281
54281
|
ax += gravAcc * dx / dist;
|
|
54282
54282
|
ay += gravAcc * dy / dist;
|
|
54283
54283
|
}
|
|
54284
54284
|
}
|
|
54285
|
-
vel.vx = (vel.vx + ax * dt) *
|
|
54286
|
-
vel.vy = (vel.vy + ay * dt) *
|
|
54285
|
+
vel.vx = (vel.vx + ax * dt) * conf.GRAVITY_DAMPING;
|
|
54286
|
+
vel.vy = (vel.vy + ay * dt) * conf.GRAVITY_DAMPING;
|
|
54287
54287
|
const moveX = vel.vx * dt;
|
|
54288
54288
|
const moveY = vel.vy * dt;
|
|
54289
54289
|
if (Math.abs(moveX) >= this.MIN_MOVE_PX || Math.abs(moveY) >= this.MIN_MOVE_PX) {
|
package/dist/esm/node.js
CHANGED
|
@@ -5271,7 +5271,13 @@ var conf = {
|
|
|
5271
5271
|
CARD_DIMENSIONS: { width: 250, height: 400 },
|
|
5272
5272
|
DEFAULT_GAME_ITEM_DIMENSIONS: { width: 200, height: 200 },
|
|
5273
5273
|
MAX_CARD_SIZE: 500,
|
|
5274
|
-
CONNECTOR_ITEM_OFFSET: 20
|
|
5274
|
+
CONNECTOR_ITEM_OFFSET: 20,
|
|
5275
|
+
GRAVITY_G: 80,
|
|
5276
|
+
GRAVITY_G_CENTER: 120,
|
|
5277
|
+
GRAVITY_DAMPING: 0.96,
|
|
5278
|
+
GRAVITY_RESTITUTION: 0.5,
|
|
5279
|
+
GRAVITY_REPULSION: 200,
|
|
5280
|
+
GRAVITY_MAX_DISTANCE: 3000
|
|
5275
5281
|
};
|
|
5276
5282
|
initDefaultI18N();
|
|
5277
5283
|
|
|
@@ -56638,14 +56644,8 @@ class GravityEngine {
|
|
|
56638
56644
|
tickTimer = null;
|
|
56639
56645
|
syncTimer = null;
|
|
56640
56646
|
lastSyncedPositions = new Map;
|
|
56641
|
-
G = 80;
|
|
56642
|
-
G_CENTER = 120;
|
|
56643
|
-
DAMPING = 0.96;
|
|
56644
|
-
RESTITUTION = 0.5;
|
|
56645
|
-
REPULSION = 200;
|
|
56646
56647
|
TICK_MS = 33;
|
|
56647
56648
|
SYNC_MS = 300;
|
|
56648
|
-
MAX_DISTANCE = 3000;
|
|
56649
56649
|
SOFTENING_SQ = 50 * 50;
|
|
56650
56650
|
MIN_MOVE_PX = 0.1;
|
|
56651
56651
|
constructor(board) {
|
|
@@ -56714,8 +56714,8 @@ class GravityEngine {
|
|
|
56714
56714
|
const dcx = centerX - s1.cx;
|
|
56715
56715
|
const dcy = centerY - s1.cy;
|
|
56716
56716
|
const distCenter = Math.sqrt(dcx * dcx + dcy * dcy) + 1;
|
|
56717
|
-
ax +=
|
|
56718
|
-
ay +=
|
|
56717
|
+
ax += conf.GRAVITY_G_CENTER * dcx / distCenter;
|
|
56718
|
+
ay += conf.GRAVITY_G_CENTER * dcy / distCenter;
|
|
56719
56719
|
for (let j = 0;j < snap.length; j++) {
|
|
56720
56720
|
if (i === j)
|
|
56721
56721
|
continue;
|
|
@@ -56723,7 +56723,7 @@ class GravityEngine {
|
|
|
56723
56723
|
const dx = s2.cx - s1.cx;
|
|
56724
56724
|
const dy = s2.cy - s1.cy;
|
|
56725
56725
|
const dist = Math.sqrt(dx * dx + dy * dy) + 0.001;
|
|
56726
|
-
if (dist >
|
|
56726
|
+
if (dist > conf.GRAVITY_MAX_DISTANCE)
|
|
56727
56727
|
continue;
|
|
56728
56728
|
const overlapping = s1.right > s2.left && s2.right > s1.left && s1.bottom > s2.top && s2.bottom > s1.top;
|
|
56729
56729
|
if (overlapping) {
|
|
@@ -56732,26 +56732,26 @@ class GravityEngine {
|
|
|
56732
56732
|
if (overlapX < overlapY) {
|
|
56733
56733
|
const sign = s1.cx < s2.cx ? -1 : 1;
|
|
56734
56734
|
if (sign * vel.vx < 0)
|
|
56735
|
-
vel.vx = -vel.vx *
|
|
56736
|
-
ax += sign *
|
|
56735
|
+
vel.vx = -vel.vx * conf.GRAVITY_RESTITUTION;
|
|
56736
|
+
ax += sign * conf.GRAVITY_REPULSION * overlapX;
|
|
56737
56737
|
} else {
|
|
56738
56738
|
const sign = s1.cy < s2.cy ? -1 : 1;
|
|
56739
56739
|
if (sign * vel.vy < 0)
|
|
56740
|
-
vel.vy = -vel.vy *
|
|
56741
|
-
ay += sign *
|
|
56740
|
+
vel.vy = -vel.vy * conf.GRAVITY_RESTITUTION;
|
|
56741
|
+
ay += sign * conf.GRAVITY_REPULSION * overlapY;
|
|
56742
56742
|
}
|
|
56743
56743
|
} else {
|
|
56744
56744
|
const touchDist = (s1.w + s2.w + s1.h + s2.h) * 0.25;
|
|
56745
56745
|
if (dist < touchDist + 5)
|
|
56746
56746
|
continue;
|
|
56747
56747
|
const distSq = dx * dx + dy * dy;
|
|
56748
|
-
const gravAcc =
|
|
56748
|
+
const gravAcc = conf.GRAVITY_G * s2.mass / (distSq + this.SOFTENING_SQ);
|
|
56749
56749
|
ax += gravAcc * dx / dist;
|
|
56750
56750
|
ay += gravAcc * dy / dist;
|
|
56751
56751
|
}
|
|
56752
56752
|
}
|
|
56753
|
-
vel.vx = (vel.vx + ax * dt) *
|
|
56754
|
-
vel.vy = (vel.vy + ay * dt) *
|
|
56753
|
+
vel.vx = (vel.vx + ax * dt) * conf.GRAVITY_DAMPING;
|
|
56754
|
+
vel.vy = (vel.vy + ay * dt) * conf.GRAVITY_DAMPING;
|
|
56755
56755
|
const moveX = vel.vx * dt;
|
|
56756
56756
|
const moveY = vel.vy * dt;
|
|
56757
56757
|
if (Math.abs(moveX) >= this.MIN_MOVE_PX || Math.abs(moveY) >= this.MIN_MOVE_PX) {
|
|
@@ -5,14 +5,8 @@ export declare class GravityEngine {
|
|
|
5
5
|
private tickTimer;
|
|
6
6
|
private syncTimer;
|
|
7
7
|
private lastSyncedPositions;
|
|
8
|
-
readonly G = 80;
|
|
9
|
-
readonly G_CENTER = 120;
|
|
10
|
-
readonly DAMPING = 0.96;
|
|
11
|
-
readonly RESTITUTION = 0.5;
|
|
12
|
-
readonly REPULSION = 200;
|
|
13
8
|
readonly TICK_MS = 33;
|
|
14
9
|
readonly SYNC_MS = 300;
|
|
15
|
-
readonly MAX_DISTANCE = 3000;
|
|
16
10
|
readonly SOFTENING_SQ: number;
|
|
17
11
|
readonly MIN_MOVE_PX = 0.1;
|
|
18
12
|
constructor(board: Board);
|
package/dist/types/Settings.d.ts
CHANGED
|
@@ -247,6 +247,12 @@ export declare const conf: {
|
|
|
247
247
|
};
|
|
248
248
|
MAX_CARD_SIZE: number;
|
|
249
249
|
CONNECTOR_ITEM_OFFSET: number;
|
|
250
|
+
GRAVITY_G: number;
|
|
251
|
+
GRAVITY_G_CENTER: number;
|
|
252
|
+
GRAVITY_DAMPING: number;
|
|
253
|
+
GRAVITY_RESTITUTION: number;
|
|
254
|
+
GRAVITY_REPULSION: number;
|
|
255
|
+
GRAVITY_MAX_DISTANCE: number;
|
|
250
256
|
};
|
|
251
257
|
export type Settings = typeof conf;
|
|
252
258
|
export {};
|