@threlte/rapier 1.0.4 → 1.1.1

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.
@@ -77,5 +77,8 @@ onDestroy(cleanup);
77
77
  </script>
78
78
 
79
79
  <SceneGraphObject object={group}>
80
- <slot {colliders} {refresh} />
80
+ <slot
81
+ {colliders}
82
+ {refresh}
83
+ />
81
84
  </SceneGraphObject>
@@ -1,5 +1,5 @@
1
1
  import type { CoefficientCombineRule, Collider } from '@dimforge/rapier3d-compat'
2
- import { SvelteComponentTyped } from 'svelte'
2
+ import { SvelteComponent } from 'svelte'
3
3
  import type { Euler, Vector3 } from 'three'
4
4
  import type { AutoCollidersShapes, ColliderEventMap } from '../../types/types'
5
5
 
@@ -73,7 +73,7 @@ type AutoCollidersSlots = {
73
73
  }
74
74
  }
75
75
 
76
- export default class AutoColliders<TMassDef extends MassDef> extends SvelteComponentTyped<
76
+ export default class AutoColliders<TMassDef extends MassDef> extends SvelteComponent<
77
77
  AutoCollidersProps<TMassDef>,
78
78
  ColliderEventMap,
79
79
  AutoCollidersSlots
@@ -3,7 +3,7 @@ import type {
3
3
  Collider as RapierCollider,
4
4
  ColliderDesc
5
5
  } from '@dimforge/rapier3d-compat'
6
- import { SvelteComponentTyped } from 'svelte'
6
+ import { SvelteComponent } from 'svelte'
7
7
  import type { Euler, Vector3 } from 'three'
8
8
  import type { ColliderEventMap } from '../../types/types'
9
9
 
@@ -45,7 +45,7 @@ export type Shape =
45
45
  | 'roundConvexHull'
46
46
  | 'roundConvexMesh'
47
47
 
48
- type Args<TShape extends Shape> = Parameters<typeof ColliderDesc[TShape]>
48
+ type Args<TShape extends Shape> = Parameters<(typeof ColliderDesc)[TShape]>
49
49
 
50
50
  type ShapeProps<TShape extends Shape> = {
51
51
  shape: TShape
@@ -109,4 +109,4 @@ export type ColliderSlots = {
109
109
  export default class Collider<
110
110
  TShape extends Shape,
111
111
  TMassDef extends MassDef
112
- > extends SvelteComponentTyped<ColliderProps<TShape, TMassDef>, ColliderEventMap, ColliderSlots> {}
112
+ > extends SvelteComponent<ColliderProps<TShape, TMassDef>, ColliderEventMap, ColliderSlots> {}
@@ -1,4 +1,4 @@
1
- import { SvelteComponentTyped } from 'svelte'
1
+ import { SvelteComponent } from 'svelte'
2
2
 
3
3
  type N = 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15
4
4
 
@@ -26,6 +26,6 @@ export type CollisionGroupsProps<TGroupsDef extends GroupsDef> = TGroupsDef exte
26
26
  ? GroupsProps
27
27
  : MembershipsAndFilterProps
28
28
 
29
- export default class CollisionGroups<TGroupsDef extends GroupsDef> extends SvelteComponentTyped<
29
+ export default class CollisionGroups<TGroupsDef extends GroupsDef> extends SvelteComponent<
30
30
  CollisionGroupsProps<TGroupsDef>
31
31
  > {}
@@ -1,6 +1,6 @@
1
- import { SvelteComponentTyped } from 'svelte'
1
+ import { SvelteComponent } from 'svelte'
2
2
  import type { LineBasicMaterialParameters } from 'three'
3
3
 
4
4
  export type DebugProps = LineBasicMaterialParameters
5
5
 
6
- export default class Debug extends SvelteComponentTyped<DebugProps> {}
6
+ export default class Debug extends SvelteComponent<DebugProps> {}
@@ -20,6 +20,7 @@ export let enabledRotations = [true, true, true];
20
20
  export let enabledTranslations = [true, true, true];
21
21
  export let dominance = 0;
22
22
  export let enabled = true;
23
+ export let userData = {};
23
24
  const dispatcher = createRawEventDispatcher();
24
25
  const object = new Object3D();
25
26
  /**
@@ -83,8 +84,9 @@ $: rigidBodyTemp.setEnabled(enabled);
83
84
  * Add userData to the rigidBody
84
85
  */
85
86
  const { hasEventListeners } = useHasEventListeners();
86
- rigidBodyTemp.userData = {
87
- hasEventListeners
87
+ $: rigidBodyTemp.userData = {
88
+ hasEventListeners,
89
+ ...userData
88
90
  };
89
91
  /**
90
92
  * Setting the RigidBody context so that colliders can
@@ -105,5 +107,5 @@ onDestroy(() => {
105
107
  </script>
106
108
 
107
109
  <SceneGraphObject {object}>
108
- <slot />
110
+ <slot {rigidBody} />
109
111
  </SceneGraphObject>
@@ -1,7 +1,8 @@
1
1
  import { RigidBody as RapierRigidBody } from '@dimforge/rapier3d-compat'
2
- import { SvelteComponentTyped } from 'svelte'
2
+ import { SvelteComponent } from 'svelte'
3
3
  import type { Euler, Vector3 } from 'three'
4
4
  import type { RigidBodyTypeString } from '../../lib/parseRigidBodyType'
5
+ import type { RigidBodyEventMap } from '../../types/types'
5
6
 
6
7
  export type Boolean3Array = [x: boolean, y: boolean, z: boolean]
7
8
 
@@ -90,6 +91,22 @@ export type RigidBodyProps = {
90
91
  * Set the rigidBody as enabled or disabled.
91
92
  */
92
93
  enabled?: boolean
94
+ /**
95
+ * An arbitrary user-defined object associated with this rigid-body.
96
+ */
97
+ userData?: Record<string, any>
98
+ }
99
+
100
+ type RigidBodyEvents = RigidBodyEventMap
101
+
102
+ type RigidBodySlots = {
103
+ default: {
104
+ rigidBody: RapierRigidBody
105
+ }
93
106
  }
94
107
 
95
- export default class RigidBody extends SvelteComponentTyped<RigidBodyProps> {}
108
+ export default class RigidBody extends SvelteComponent<
109
+ RigidBodyProps,
110
+ RigidBodyEvents,
111
+ RigidBodySlots
112
+ > {}
@@ -33,11 +33,11 @@ export type ColliderEventMap = {
33
33
  totalForceMagnitude: number;
34
34
  };
35
35
  };
36
- export type CollisionEnterEvent = CustomEvent<ColliderEventMap['collisionenter']>;
37
- export type CollisionExitEvent = CustomEvent<ColliderEventMap['collisionexit']>;
38
- export type SensorEnterEvent = CustomEvent<ColliderEventMap['sensorenter']>;
39
- export type SensorExitEvent = CustomEvent<ColliderEventMap['sensorexit']>;
40
- export type ContactEvent = CustomEvent<ColliderEventMap['contact']>;
36
+ export type CollisionEnterEvent = ColliderEventMap['collisionenter'];
37
+ export type CollisionExitEvent = ColliderEventMap['collisionexit'];
38
+ export type SensorEnterEvent = ColliderEventMap['sensorenter'];
39
+ export type SensorExitEvent = ColliderEventMap['sensorexit'];
40
+ export type ContactEvent = ColliderEventMap['contact'];
41
41
  export type RigidBodyEventMap = ColliderEventMap & {
42
42
  sleep: void;
43
43
  wake: void;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@threlte/rapier",
3
- "version": "1.0.4",
3
+ "version": "1.1.1",
4
4
  "author": "Grischa Erbe <hello@legrisch.com> (https://legrisch.com)",
5
5
  "license": "MIT",
6
6
  "devDependencies": {
@@ -27,7 +27,7 @@
27
27
  "type-fest": "^2.13.0",
28
28
  "typescript": "^5.0.0",
29
29
  "vite": "^4.3.6",
30
- "@threlte/core": "6.0.3"
30
+ "@threlte/core": "6.0.6"
31
31
  },
32
32
  "peerDependencies": {
33
33
  "svelte": ">=4",