diff --git a/docs/.vitepress/data/sidebar.ts b/docs/.vitepress/data/sidebar.ts
index c468167..a61fcc2 100644
--- a/docs/.vitepress/data/sidebar.ts
+++ b/docs/.vitepress/data/sidebar.ts
@@ -70,6 +70,14 @@ export default {
text: 'Event System',
link: '/development/event-system'
},
+ {
+ text: 'Interaction System',
+ link: '/development/interaction'
+ },
+ {
+ text: 'Force Feedback',
+ link: '/development/force-feedback'
+ },
{
text: 'Node Functions',
link: '/development/functions'
diff --git a/docs/.vitepress/theme/style.css b/docs/.vitepress/theme/style.css
index 5b7630c..ee068f4 100644
--- a/docs/.vitepress/theme/style.css
+++ b/docs/.vitepress/theme/style.css
@@ -141,4 +141,8 @@
iframe {
aspect-ratio: 16 / 9;
width: 100%;
+}
+
+img {
+ max-height: 400px;
}
\ No newline at end of file
diff --git a/docs/development/event-system.md b/docs/development/event-system.md
index 0a7ee6f..b7c1f71 100644
--- a/docs/development/event-system.md
+++ b/docs/development/event-system.md
@@ -2,6 +2,10 @@
While Godot ships with it's own event system, we have implemented our own event system to make it more similar to the event system in Browsers and to streamline event handling in the app.
+There are two types of base events, [Events](/reference/Event.html) which get directly emitted by the [EventSystem](/reference/lib--globals--event_system.html) and [BubbleEvents](/reference/EventBubble.html) which first walk through the scene tree starting at the [target](/reference/EventBubble.html#prop-target) node until the root node is reached and then get emitted by the [EventSystem](/reference/lib--globals--event_system.html). This can be seen in the diagram below.
+
+![Event System](/img/event-walking.svg)
+
Full reference can be found in the [Event System](/reference/lib--globals--event_system.html) documentation.
## Focus handling
diff --git a/docs/development/force-feedback.md b/docs/development/force-feedback.md
new file mode 100644
index 0000000..07ae8d0
--- /dev/null
+++ b/docs/development/force-feedback.md
@@ -0,0 +1,17 @@
+# Force Feedback
+
+In order to make interactions with hands feel more natural and immersive, multiple techniques can be applied to provide a sensor of haptic feedback while not directly simulating physical touch.
+
+The first technique is to overlay a virtual copy of the physical hand as hand tracking still has a bit of latency and jitter. The virtual hand reduces confusion when interacting with objects as the user can reference the virtual hand to compensate for these issues.
+
+The second technique is to allow the virtual hand to collide with virtual objects in the scene. This is done to trick the brain into thinking that the hand is touching something. The brain perceives the virtual hand as its own hand and thus the collision with virtual objects feels like touching a real object.
+
+## Implementation
+
+There are several techniques for making the virtual hand collide with virtual objects. The one we chose to implement is to use a free floating spherical collision shape. Each physics frame a strong force is applied to the collision shape into the direction of the tip of the finger.
+
+![Force Feedback](/img/force-feedback.svg)
+
+The virtual hand is moved so that the tip of the finger is at the position of the collision shape.
+
+In case that the distance between the collision shape and the physical hand becomes too large, the collision shape is teleported back to the tip of the finger. That way we make sure that your virtual hand never gets stuck in the scene.
diff --git a/docs/development/functions.md b/docs/development/functions.md
index c552901..f54edcd 100644
--- a/docs/development/functions.md
+++ b/docs/development/functions.md
@@ -12,9 +12,4 @@ Useful for connection to events that happen on other nodes.
### Movable
Adds the ability to move the node using the controller or hands.
-The parent needs to be a `StaticBody3D`.
-
-### Occludable
-
-Hides the node when it is occluded by another node like walls.
-
+The parent needs to be a `StaticBody3D`.
\ No newline at end of file
diff --git a/docs/development/interaction.md b/docs/development/interaction.md
new file mode 100644
index 0000000..1d250eb
--- /dev/null
+++ b/docs/development/interaction.md
@@ -0,0 +1,31 @@
+# Interaction System
+
+The app currently supports 3 different types of interaction techniques:
+
+- **Using controllers with raycast**
+- **Using hands with raycast**
+- **Using hands with direct touch**
+
+The interaction system, like the [Event System](/development/event-system.html), is heavily inspired by the interaction system in browsers. Interaction Events can be broken down into 2 categories, [Pointer Events](/reference/EventPointer.html) initiated by a raycast and [Touch Events](/reference/TouchEvent.html) initiated by a collision shape in the tip of the fingers. Pointer Events](/reference/EventPointer.html)
+
+## Pointer Events
+
+When pressing the trigger button on the back of a controller or doing a pinch gesture with thumb and index finer an `on_press_down` event is triggered containing a [EventPointer](/reference/EventPointer.html) which holds information about the ray and initiator of the event. If the trigger button or pinch gesture is released before 400ms pass, an `on_press_up` and `on_click` event is triggered. If the trigger button or pinch gesture is held for more than 400ms, an `on_press_move` event is triggered each physics process and when releasing, only the `on_press_up` event is triggered.
+
+![Event Order](/img/event-order.svg)
+
+The same logic can be applied to **grab** (`on_grab_down`, `on_grab_move` and `on_grab_up`) events, here the event family is triggered by the grip button on the controller or by doing a pinch gesture with thumb and middle finger.
+
+### Pinch Gesture
+
+The pinch gesture is implemented by checking the distance between the thumb and each finger and if the distance is smaller than 3cm, the pinch gesture is detected.
+
+## Touch Events
+
+Touch events are triggered when the collision shape present in the tip of the fingers enters another collision area. The `on_touch_enter` event is triggered when the collision shape enters the area, the `on_touch_move` event is triggered each physics process while the collision shape is inside the area and the `on_touch_leave` event is triggered when the collision shape leaves the area.
+
+![Touch Event Order](/img/touch-event.svg)
+
+## Hover (ray) Events
+
+Each frame the ray is casted from the controller or hand and in case that the ray collides with a collision node, the `on_ray_enter` event is triggered. If the ray was already colliding with another object the previous frame, the `on_ray_leave` event is triggered on the old node.
\ No newline at end of file
diff --git a/docs/img/event-order.svg b/docs/img/event-order.svg
new file mode 100644
index 0000000..1a54e4f
--- /dev/null
+++ b/docs/img/event-order.svg
@@ -0,0 +1,24 @@
+
+
+
+
+
+
+
+
+
+
+ on_press_down 400ms on_press_up on_press_down on_press_up on_press_move on_press_move on_press_move
\ No newline at end of file
diff --git a/docs/img/event-walking.svg b/docs/img/event-walking.svg
new file mode 100644
index 0000000..6747172
--- /dev/null
+++ b/docs/img/event-walking.svg
@@ -0,0 +1,24 @@
+
+
+
+
+
+
+
+
+
+
+ 1 2 3 4 5 on_click EventSystem
\ No newline at end of file
diff --git a/docs/img/force-feedback.svg b/docs/img/force-feedback.svg
new file mode 100644
index 0000000..1f94b83
--- /dev/null
+++ b/docs/img/force-feedback.svg
@@ -0,0 +1,24 @@
+
+
+
+
+
+
+
+
+
+
+ Collision Shape Applied Force Virtual Finger Virtual Wall
\ No newline at end of file
diff --git a/docs/img/touch-event.svg b/docs/img/touch-event.svg
new file mode 100644
index 0000000..960f138
--- /dev/null
+++ b/docs/img/touch-event.svg
@@ -0,0 +1,24 @@
+
+
+
+
+
+
+
+
+
+
+ Time on_touch_enter on_touch_leave on_touch_move on_touch_move on_touch_move
\ No newline at end of file
diff --git a/docs/reference/EntityFactory.md b/docs/reference/EntityFactory.md
index 60f1346..5a227d8 100644
--- a/docs/reference/EntityFactory.md
+++ b/docs/reference/EntityFactory.md
@@ -9,9 +9,10 @@ This class is used to create entities based on their type
## Methods
-| Returns | Name |
-| ------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------- |
-| [Variant](https://docs.godotengine.org/de/4.x/classes/class_variant.html) | [create_entity](#create-entity) ( id: [String](https://docs.godotengine.org/de/4.x/classes/class_string.html) ) |
+| Returns | Name |
+| ------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
+| [Variant](https://docs.godotengine.org/de/4.x/classes/class_variant.html) | [create_entity](#create-entity) ( id: [String](https://docs.godotengine.org/de/4.x/classes/class_string.html), type: [Variant](https://docs.godotengine.org/de/4.x/classes/class_variant.html) ) |
+| [String](https://docs.godotengine.org/de/4.x/classes/class_string.html) | [get_entity_icon](#get-entity-icon) ( type: [String](https://docs.godotengine.org/de/4.x/classes/class_string.html) ) |
@@ -47,10 +48,18 @@ No description provided yet.
No description provided yet.
+### LineGraphEntity = `` {#const-LineGraphEntity}
+
+No description provided yet.
+
## Method Descriptions
-### static create_entity (id: [String](https://docs.godotengine.org/de/4.x/classes/class_string.html) ) -> [Variant](https://docs.godotengine.org/de/4.x/classes/class_variant.html) {#create-entity}
+### static create_entity (id: [String](https://docs.godotengine.org/de/4.x/classes/class_string.html) , type: [Variant](https://docs.godotengine.org/de/4.x/classes/class_variant.html) ) -> [Variant](https://docs.godotengine.org/de/4.x/classes/class_variant.html) {#create-entity}
+
+No description provided yet.
+
+### static get_entity_icon (type: [String](https://docs.godotengine.org/de/4.x/classes/class_string.html) ) -> [String](https://docs.godotengine.org/de/4.x/classes/class_string.html) {#get-entity-icon}
No description provided yet.
diff --git a/docs/reference/EventFocus.md b/docs/reference/EventFocus.md
index 52a40f9..a2db9de 100644
--- a/docs/reference/EventFocus.md
+++ b/docs/reference/EventFocus.md
@@ -1,5 +1,5 @@
# EventFocus
-**Inherits:** [Event](/reference/Event.html)
+**Inherits:** [EventBubble](/reference/EventBubble.html)
## Description
@@ -10,7 +10,6 @@ Emitted when a Node with the `ui_focus` group is focused or unfocused.
| Name | Type | Default |
| ---------------------------------------- | ------------------------------------------------------------------- | ------- |
| [previous_target](#prop-previous-target) | [Node](https://docs.godotengine.org/de/4.x/classes/class_node.html) | |
-| [target](#prop-target) | [Node](https://docs.godotengine.org/de/4.x/classes/class_node.html) | |
@@ -25,7 +24,3 @@ Emitted when a Node with the `ui_focus` group is focused or unfocused.
### previous_target: [Node](https://docs.godotengine.org/de/4.x/classes/class_node.html) {#prop-previous-target}
The Node that was previously focused or unfocused.
-
-### target: [Node](https://docs.godotengine.org/de/4.x/classes/class_node.html) {#prop-target}
-
-The Node that is being focused or unfocused.
diff --git a/docs/reference/MachineState.md b/docs/reference/MachineState.md
new file mode 100644
index 0000000..d38fc28
--- /dev/null
+++ b/docs/reference/MachineState.md
@@ -0,0 +1,46 @@
+# MachineState
+**Inherits:** [Node](https://docs.godotengine.org/de/4.x/classes/class_node.html)
+
+## Description
+
+Base Class for all states
+
+## Properties
+
+| Name | Type | Default |
+| ------------------------------------ | -------------------------------------------- | ------- |
+| [state_machine](#prop-state-machine) | [StateMachine](/reference/StateMachine.html) | |
+
+## Methods
+
+| Returns | Name |
+| ------------------------------------------------------------------------- | ---------------------------- |
+| void | [_on_enter](#-on-enter) ( ) |
+| void | [_on_leave](#-on-leave) ( ) |
+| [Variant](https://docs.godotengine.org/de/4.x/classes/class_variant.html) | [is_active](#is-active) ( ) |
+
+
+
+
+
+
+
+## Property Descriptions
+
+### state_machine: [StateMachine](/reference/StateMachine.html) {#prop-state-machine}
+
+No description provided yet.
+
+## Method Descriptions
+
+### _on_enter ( ) -> void {#-on-enter}
+
+No description provided yet.
+
+### _on_leave ( ) -> void {#-on-leave}
+
+No description provided yet.
+
+### is_active ( ) -> [Variant](https://docs.godotengine.org/de/4.x/classes/class_variant.html) {#is-active}
+
+No description provided yet.
diff --git a/docs/reference/Update.md b/docs/reference/Update.md
new file mode 100644
index 0000000..9752158
--- /dev/null
+++ b/docs/reference/Update.md
@@ -0,0 +1,26 @@
+# Update
+**Inherits:** [RefCounted](https://docs.godotengine.org/de/4.x/classes/class_refcounted.html)
+
+
+
+
+
+## Methods
+
+| Returns | Name |
+| ------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
+| void | [props](#props) ( node: [Node](https://docs.godotengine.org/de/4.x/classes/class_node.html), prop_names: [Variant](https://docs.godotengine.org/de/4.x/classes/class_variant.html) ) |
+
+
+
+
+
+
+
+
+
+## Method Descriptions
+
+### static props (node: [Node](https://docs.godotengine.org/de/4.x/classes/class_node.html) , prop_names: [Variant](https://docs.godotengine.org/de/4.x/classes/class_variant.html) ) -> void {#props}
+
+No description provided yet.
diff --git a/docs/reference/lib--globals--console.md b/docs/reference/lib--globals--console.md
new file mode 100644
index 0000000..dc60a21
--- /dev/null
+++ b/docs/reference/lib--globals--console.md
@@ -0,0 +1,53 @@
+# Console
+**Inherits:** [Node](https://docs.godotengine.org/de/4.x/classes/class_node.html)
+
+
+
+## Properties
+
+| Name | Type | Default |
+| -------------------------- | ------------------------------------------------------------------------- | ------- |
+| [_console](#prop--console) | [Node3D](https://docs.godotengine.org/de/4.x/classes/class_node3d.html) | `null` |
+| [main](#prop-main) | [Variant](https://docs.godotengine.org/de/4.x/classes/class_variant.html) | |
+
+## Methods
+
+| Returns | Name |
+| ------- | -------------------------------------------------------------------------------------------------- |
+| void | [_ready](#-ready) ( ) |
+| void | [init_console](#init-console) ( ) |
+| void | [log](#log) ( message: [Variant](https://docs.godotengine.org/de/4.x/classes/class_variant.html) ) |
+
+
+
+
+
+## Constants
+
+### console_scene = `` {#const-console-scene}
+
+No description provided yet.
+
+## Property Descriptions
+
+### _console: [Node3D](https://docs.godotengine.org/de/4.x/classes/class_node3d.html) {#prop--console}
+
+No description provided yet.
+
+### main: [Variant](https://docs.godotengine.org/de/4.x/classes/class_variant.html) {#prop-main}
+
+No description provided yet.
+
+## Method Descriptions
+
+### _ready ( ) -> void {#-ready}
+
+No description provided yet.
+
+### init_console ( ) -> void {#init-console}
+
+No description provided yet.
+
+### log (message: [Variant](https://docs.godotengine.org/de/4.x/classes/class_variant.html) ) -> void {#log}
+
+No description provided yet.
diff --git a/docs/reference/lib--globals--home_api.md b/docs/reference/lib--globals--home_api.md
index 2af0683..d94c7c1 100644
--- a/docs/reference/lib--globals--home_api.md
+++ b/docs/reference/lib--globals--home_api.md
@@ -7,9 +7,10 @@ Manages the connection to the home automation system and provides a unified inte
## Properties
-| Name | Type | Default |
-| ---------------- | ------------------------------------------------------------------- | ------- |
-| [api](#prop-api) | [Node](https://docs.godotengine.org/de/4.x/classes/class_node.html) | |
+| Name | Type | Default |
+| ---------------------- | ------------------------------------------------------------------------- | ------- |
+| [api](#prop-api) | [Node](https://docs.godotengine.org/de/4.x/classes/class_node.html) | |
+| [groups](#prop-groups) | [Variant](https://docs.godotengine.org/de/4.x/classes/class_variant.html) | |
## Methods
@@ -20,6 +21,7 @@ Manages the connection to the home automation system and provides a unified inte
| void | [_ready](#-ready) ( ) |
| [Variant](https://docs.godotengine.org/de/4.x/classes/class_variant.html) | [get_device](#get-device) ( id: [String](https://docs.godotengine.org/de/4.x/classes/class_string.html) ) |
| [Variant](https://docs.godotengine.org/de/4.x/classes/class_variant.html) | [get_devices](#get-devices) ( ) |
+| [Variant](https://docs.godotengine.org/de/4.x/classes/class_variant.html) | [get_history](#get-history) ( entity_id: [Variant](https://docs.godotengine.org/de/4.x/classes/class_variant.html), start: [Variant](https://docs.godotengine.org/de/4.x/classes/class_variant.html), end: [Variant](https://docs.godotengine.org/de/4.x/classes/class_variant.html) ) |
| [Variant](https://docs.godotengine.org/de/4.x/classes/class_variant.html) | [get_state](#get-state) ( entity: [String](https://docs.godotengine.org/de/4.x/classes/class_string.html) ) |
| [VoiceHandler](/reference/lib--home_apis--voice_handler.html) | [get_voice_assistant](#get-voice-assistant) ( ) |
| [Variant](https://docs.godotengine.org/de/4.x/classes/class_variant.html) | [has_connected](#has-connected) ( ) |
@@ -47,6 +49,10 @@ Emitted when the connection to the home automation system is lost
No description provided yet.
+### EntityGroups = `` {#const-EntityGroups}
+
+No description provided yet.
+
### HassWebSocket = `` {#const-HassWebSocket}
No description provided yet.
@@ -75,6 +81,10 @@ No description provided yet.
The current home automation system adapter
+### groups: [Variant](https://docs.godotengine.org/de/4.x/classes/class_variant.html) {#prop-groups}
+
+No description provided yet.
+
## Method Descriptions
### _on_connect ( ) -> void {#-on-connect}
@@ -97,6 +107,10 @@ Get a single device by id
Get a list of all devices
+### get_history (entity_id: [Variant](https://docs.godotengine.org/de/4.x/classes/class_variant.html) , start: [Variant](https://docs.godotengine.org/de/4.x/classes/class_variant.html) , end: [Variant](https://docs.godotengine.org/de/4.x/classes/class_variant.html) ) -> [Variant](https://docs.godotengine.org/de/4.x/classes/class_variant.html) {#get-history}
+
+No description provided yet.
+
### get_state (entity: [String](https://docs.godotengine.org/de/4.x/classes/class_string.html) ) -> [Variant](https://docs.godotengine.org/de/4.x/classes/class_variant.html) {#get-state}
Returns the current state of an entity
diff --git a/docs/reference/lib--globals--house_body.md b/docs/reference/lib--globals--house_body.md
index cfbf1be..ade0e44 100644
--- a/docs/reference/lib--globals--house_body.md
+++ b/docs/reference/lib--globals--house_body.md
@@ -7,9 +7,9 @@ Shortcut to get the House node from the Main scene
## Properties
-| Name | Type | Default |
-| ------------------ | ------------------------------------------------------------------------- | ------- |
-| [body](#prop-body) | [Variant](https://docs.godotengine.org/de/4.x/classes/class_variant.html) | |
+| Name | Type | Default |
+| ------------------ | ------------------------------------------------------------------------------------------------------------------------- | ------- |
+| [body](#prop-body) | ["content/system/house/house.gd"](https://docs.godotengine.org/de/4.x/classes/class_"content/system/house/house.gd".html) | |
@@ -17,10 +17,14 @@ Shortcut to get the House node from the Main scene
+## Constants
+### HouseClass = `` {#const-HouseClass}
+
+No description provided yet.
## Property Descriptions
-### body: [Variant](https://docs.godotengine.org/de/4.x/classes/class_variant.html) {#prop-body}
+### body: ["content/system/house/house.gd"](https://docs.godotengine.org/de/4.x/classes/class_"content/system/house/house.gd".html) {#prop-body}
No description provided yet.
diff --git a/docs/reference/lib--home_apis--hass_ws--handlers--history.md b/docs/reference/lib--home_apis--hass_ws--handlers--history.md
new file mode 100644
index 0000000..7a6cf1c
--- /dev/null
+++ b/docs/reference/lib--home_apis--hass_ws--handlers--history.md
@@ -0,0 +1,48 @@
+# History
+**Inherits:** [RefCounted](https://docs.godotengine.org/de/4.x/classes/class_refcounted.html)
+
+
+
+## Properties
+
+| Name | Type | Default |
+| ---------------------------------------------- | ------------------------------------------------------------------- | ------- |
+| [api](#prop-api) | [Hass](/reference/lib--home_apis--hass_ws--hass.html) | |
+| [integration_exists](#prop-integration-exists) | [bool](https://docs.godotengine.org/de/4.x/classes/class_bool.html) | `false` |
+
+## Methods
+
+| Returns | Name |
+| ------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
+| void | [_init](#-init) ( hass: [Hass](/reference/lib--home_apis--hass_ws--hass.html) ) |
+| [Variant](https://docs.godotengine.org/de/4.x/classes/class_variant.html) | [get_history](#get-history) ( entity_id: [String](https://docs.godotengine.org/de/4.x/classes/class_string.html), start: [String](https://docs.godotengine.org/de/4.x/classes/class_string.html), end: [Variant](https://docs.godotengine.org/de/4.x/classes/class_variant.html) ) |
+
+
+
+
+
+## Constants
+
+### HASS_API = `` {#const-HASS-API}
+
+No description provided yet.
+
+## Property Descriptions
+
+### api: [Hass](/reference/lib--home_apis--hass_ws--hass.html) {#prop-api}
+
+No description provided yet.
+
+### integration_exists: [bool](https://docs.godotengine.org/de/4.x/classes/class_bool.html) {#prop-integration-exists}
+
+No description provided yet.
+
+## Method Descriptions
+
+### _init (hass: [Hass](/reference/lib--home_apis--hass_ws--hass.html) ) -> void {#-init}
+
+No description provided yet.
+
+### get_history (entity_id: [String](https://docs.godotengine.org/de/4.x/classes/class_string.html) , start: [String](https://docs.godotengine.org/de/4.x/classes/class_string.html) , end: [Variant](https://docs.godotengine.org/de/4.x/classes/class_variant.html) ) -> [Variant](https://docs.godotengine.org/de/4.x/classes/class_variant.html) {#get-history}
+
+No description provided yet.
diff --git a/docs/reference/lib--home_apis--hass_ws--hass.md b/docs/reference/lib--home_apis--hass_ws--hass.md
index d060a05..35a8d27 100644
--- a/docs/reference/lib--home_apis--hass_ws--hass.md
+++ b/docs/reference/lib--home_apis--hass_ws--hass.md
@@ -14,6 +14,7 @@
| [devices_template](#prop-devices-template) | [String](https://docs.godotengine.org/de/4.x/classes/class_string.html) | |
| [entities](#prop-entities) | [Dictionary](https://docs.godotengine.org/de/4.x/classes/class_dictionary.html) | |
| [entitiy_callbacks](#prop-entitiy-callbacks) | [CallbackMap](/reference/CallbackMap.html) | |
+| [history_handler](#prop-history-handler) | [History](/reference/lib--home_apis--hass_ws--handlers--history.html) | |
| [id](#prop-id) | [int](https://docs.godotengine.org/de/4.x/classes/class_int.html) | `1` |
| [integration_handler](#prop-integration-handler) | [Integration](/reference/lib--home_apis--hass_ws--handlers--integration.html) | |
| [packet_callbacks](#prop-packet-callbacks) | [CallbackMap](/reference/CallbackMap.html) | |
@@ -33,6 +34,7 @@
| [Variant](https://docs.godotengine.org/de/4.x/classes/class_variant.html) | [encode_packet](#encode-packet) ( packet: [Dictionary](https://docs.godotengine.org/de/4.x/classes/class_dictionary.html) ) |
| void | [get_device](#get-device) ( id: [String](https://docs.godotengine.org/de/4.x/classes/class_string.html) ) |
| [Variant](https://docs.godotengine.org/de/4.x/classes/class_variant.html) | [get_devices](#get-devices) ( ) |
+| [Variant](https://docs.godotengine.org/de/4.x/classes/class_variant.html) | [get_history](#get-history) ( entity_id: [Variant](https://docs.godotengine.org/de/4.x/classes/class_variant.html), start: [Variant](https://docs.godotengine.org/de/4.x/classes/class_variant.html), end: [Variant](https://docs.godotengine.org/de/4.x/classes/class_variant.html) ) |
| [Variant](https://docs.godotengine.org/de/4.x/classes/class_variant.html) | [get_state](#get-state) ( entity: [String](https://docs.godotengine.org/de/4.x/classes/class_string.html) ) |
| [Variant](https://docs.godotengine.org/de/4.x/classes/class_variant.html) | [get_voice_assistant](#get-voice-assistant) ( ) |
| void | [handle_connect](#handle-connect) ( ) |
@@ -75,6 +77,10 @@ No description provided yet.
No description provided yet.
+### HistoryHandler = `` {#const-HistoryHandler}
+
+No description provided yet.
+
## Property Descriptions
### LOG_MESSAGES: [bool](https://docs.godotengine.org/de/4.x/classes/class_bool.html) {#prop-LOG-MESSAGES}
@@ -105,6 +111,10 @@ No description provided yet.
No description provided yet.
+### history_handler: [History](/reference/lib--home_apis--hass_ws--handlers--history.html) {#prop-history-handler}
+
+No description provided yet.
+
### id: [int](https://docs.godotengine.org/de/4.x/classes/class_int.html) {#prop-id}
No description provided yet.
@@ -163,6 +173,10 @@ No description provided yet.
No description provided yet.
+### get_history (entity_id: [Variant](https://docs.godotengine.org/de/4.x/classes/class_variant.html) , start: [Variant](https://docs.godotengine.org/de/4.x/classes/class_variant.html) , end: [Variant](https://docs.godotengine.org/de/4.x/classes/class_variant.html) ) -> [Variant](https://docs.godotengine.org/de/4.x/classes/class_variant.html) {#get-history}
+
+No description provided yet.
+
### get_state (entity: [String](https://docs.godotengine.org/de/4.x/classes/class_string.html) ) -> [Variant](https://docs.godotengine.org/de/4.x/classes/class_variant.html) {#get-state}
No description provided yet.
diff --git a/docs/reference/lib--stores--devices.md b/docs/reference/lib--stores--devices.md
index df90f9e..a462daa 100644
--- a/docs/reference/lib--stores--devices.md
+++ b/docs/reference/lib--stores--devices.md
@@ -9,6 +9,7 @@
| Returns | Name |
| ------- | -------------------- |
+| void | [_init](#-init) ( ) |
| void | [clear](#clear) ( ) |
@@ -25,6 +26,10 @@ No description provided yet.
## Method Descriptions
+### _init ( ) -> void {#-init}
+
+No description provided yet.
+
### clear ( ) -> void {#clear}
No description provided yet.
diff --git a/docs/reference/lib--stores--house.md b/docs/reference/lib--stores--house.md
index 00ce83d..33df339 100644
--- a/docs/reference/lib--stores--house.md
+++ b/docs/reference/lib--stores--house.md
@@ -3,16 +3,9 @@
## Description
-Stores information about the house, its rooms and entities
+Type Entity id: String position: Vec3 rotation: Vec3 room: String interface: String
-## Properties
-| Name | Type | Default |
-| ---------------------------------------- | ------------------------------------------------------------------------- | ------- |
-| [align_position1](#prop-align-position1) | [Vector3](https://docs.godotengine.org/de/4.x/classes/class_vector3.html) | |
-| [align_position2](#prop-align-position2) | [Vector3](https://docs.godotengine.org/de/4.x/classes/class_vector3.html) | |
-| [entities](#prop-entities) | [Variant](https://docs.godotengine.org/de/4.x/classes/class_variant.html) | |
-| [rooms](#prop-rooms) | [Variant](https://docs.godotengine.org/de/4.x/classes/class_variant.html) | |
## Methods
@@ -32,23 +25,7 @@ Stores information about the house, its rooms and entities
No description provided yet.
-## Property Descriptions
-### align_position1: [Vector3](https://docs.godotengine.org/de/4.x/classes/class_vector3.html) {#prop-align-position1}
-
-No description provided yet.
-
-### align_position2: [Vector3](https://docs.godotengine.org/de/4.x/classes/class_vector3.html) {#prop-align-position2}
-
-No description provided yet.
-
-### entities: [Variant](https://docs.godotengine.org/de/4.x/classes/class_variant.html) {#prop-entities}
-
-Type Entity id: String position: Vec3 rotation: Vec3 room: String
-
-### rooms: [Variant](https://docs.godotengine.org/de/4.x/classes/class_variant.html) {#prop-rooms}
-
-Type Room name: String corners: Vec2[] height: float
## Method Descriptions
diff --git a/docs/reference/lib--stores--settings.md b/docs/reference/lib--stores--settings.md
index 0507172..e11f0fa 100644
--- a/docs/reference/lib--stores--settings.md
+++ b/docs/reference/lib--stores--settings.md
@@ -3,17 +3,9 @@
## Description
-Stores general settings for the app
+If the onboarding process has been completed
-## Properties
-| Name | Type | Default |
-| ------------------------------------------------ | ----------------------------------------------------------------------- | ----------- |
-| [onboarding_complete](#prop-onboarding-complete) | [bool](https://docs.godotengine.org/de/4.x/classes/class_bool.html) | `false` |
-| [token](#prop-token) | [String](https://docs.godotengine.org/de/4.x/classes/class_string.html) | `""` |
-| [type](#prop-type) | [String](https://docs.godotengine.org/de/4.x/classes/class_string.html) | `"HASS_WS"` |
-| [url](#prop-url) | [String](https://docs.godotengine.org/de/4.x/classes/class_string.html) | `""` |
-| [voice_assistant](#prop-voice-assistant) | [bool](https://docs.godotengine.org/de/4.x/classes/class_bool.html) | `false` |
## Methods
@@ -32,27 +24,7 @@ Stores general settings for the app
No description provided yet.
-## Property Descriptions
-### onboarding_complete: [bool](https://docs.godotengine.org/de/4.x/classes/class_bool.html) {#prop-onboarding-complete}
-
-If the onboarding process has been completed
-
-### token: [String](https://docs.godotengine.org/de/4.x/classes/class_string.html) {#prop-token}
-
-No description provided yet.
-
-### type: [String](https://docs.godotengine.org/de/4.x/classes/class_string.html) {#prop-type}
-
-The adapter to use for connecting with a backend
-
-### url: [String](https://docs.godotengine.org/de/4.x/classes/class_string.html) {#prop-url}
-
-No description provided yet.
-
-### voice_assistant: [bool](https://docs.godotengine.org/de/4.x/classes/class_bool.html) {#prop-voice-assistant}
-
-If the voice assistant should be enabled
## Method Descriptions
diff --git a/docs/reference/lib--stores--store.md b/docs/reference/lib--stores--store.md
index f2f11b1..c5df433 100644
--- a/docs/reference/lib--stores--store.md
+++ b/docs/reference/lib--stores--store.md
@@ -7,21 +7,22 @@ Abstract class for saving and loading data to and from a file.
## Properties
-| Name | Type | Default |
-| ------------------------------ | ------------------------------------------------------------------------- | ------- |
-| [_loaded](#prop--loaded) | [Variant](https://docs.godotengine.org/de/4.x/classes/class_variant.html) | `false` |
-| [_save_path](#prop--save-path) | [Variant](https://docs.godotengine.org/de/4.x/classes/class_variant.html) | `null` |
+| Name | Type | Default |
+| ------------------------------ | ----------------------------------------------------------------------------- | ------- |
+| [_loaded](#prop--loaded) | [Variant](https://docs.godotengine.org/de/4.x/classes/class_variant.html) | `false` |
+| [_save_path](#prop--save-path) | [Variant](https://docs.godotengine.org/de/4.x/classes/class_variant.html) | `null` |
+| [state](#prop-state) | [RdotStore](https://docs.godotengine.org/de/4.x/classes/class_rdotstore.html) | |
## Methods
-| Returns | Name |
-| ------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------- |
-| void | [clear](#clear) ( ) |
-| [Variant](https://docs.godotengine.org/de/4.x/classes/class_variant.html) | [create_dict](#create-dict) ( ) |
-| [Variant](https://docs.godotengine.org/de/4.x/classes/class_variant.html) | [is_loaded](#is-loaded) ( ) |
-| [Variant](https://docs.godotengine.org/de/4.x/classes/class_variant.html) | [load_local](#load-local) ( path: [Variant](https://docs.godotengine.org/de/4.x/classes/class_variant.html) ) |
-| [Variant](https://docs.godotengine.org/de/4.x/classes/class_variant.html) | [save_local](#save-local) ( path: [Variant](https://docs.godotengine.org/de/4.x/classes/class_variant.html) ) |
-| void | [use_dict](#use-dict) ( dict: [Dictionary](https://docs.godotengine.org/de/4.x/classes/class_dictionary.html) ) |
+| Returns | Name |
+| ------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
+| void | [clear](#clear) ( ) |
+| [Variant](https://docs.godotengine.org/de/4.x/classes/class_variant.html) | [is_loaded](#is-loaded) ( ) |
+| [Variant](https://docs.godotengine.org/de/4.x/classes/class_variant.html) | [load_local](#load-local) ( path: [Variant](https://docs.godotengine.org/de/4.x/classes/class_variant.html) ) |
+| [Variant](https://docs.godotengine.org/de/4.x/classes/class_variant.html) | [sanitizeState](#sanitizeState) ( dict: [Variant](https://docs.godotengine.org/de/4.x/classes/class_variant.html) ) |
+| [Variant](https://docs.godotengine.org/de/4.x/classes/class_variant.html) | [save_local](#save-local) ( path: [Variant](https://docs.godotengine.org/de/4.x/classes/class_variant.html) ) |
+| void | [use_dict](#use-dict) ( dict: [Dictionary](https://docs.godotengine.org/de/4.x/classes/class_dictionary.html), target: [Variant](https://docs.godotengine.org/de/4.x/classes/class_variant.html) ) |
## Signals
@@ -51,16 +52,16 @@ No description provided yet.
No description provided yet.
+### state: [RdotStore](https://docs.godotengine.org/de/4.x/classes/class_rdotstore.html) {#prop-state}
+
+No description provided yet.
+
## Method Descriptions
### clear ( ) -> void {#clear}
Resets the data to its default state.
-### create_dict ( ) -> [Variant](https://docs.godotengine.org/de/4.x/classes/class_variant.html) {#create-dict}
-
-No description provided yet.
-
### is_loaded ( ) -> [Variant](https://docs.godotengine.org/de/4.x/classes/class_variant.html) {#is-loaded}
Returns true if the data has been loaded.
@@ -69,10 +70,14 @@ Returns true if the data has been loaded.
No description provided yet.
+### sanitizeState (dict: [Variant](https://docs.godotengine.org/de/4.x/classes/class_variant.html) ) -> [Variant](https://docs.godotengine.org/de/4.x/classes/class_variant.html) {#sanitizeState}
+
+No description provided yet.
+
### save_local (path: [Variant](https://docs.godotengine.org/de/4.x/classes/class_variant.html) ) -> [Variant](https://docs.godotengine.org/de/4.x/classes/class_variant.html) {#save-local}
No description provided yet.
-### use_dict (dict: [Dictionary](https://docs.godotengine.org/de/4.x/classes/class_dictionary.html) ) -> void {#use-dict}
+### use_dict (dict: [Dictionary](https://docs.godotengine.org/de/4.x/classes/class_dictionary.html) , target: [Variant](https://docs.godotengine.org/de/4.x/classes/class_variant.html) ) -> void {#use-dict}
No description provided yet.
diff --git a/docs/reference/lib--utils--entity_group.md b/docs/reference/lib--utils--entity_group.md
new file mode 100644
index 0000000..44815f8
--- /dev/null
+++ b/docs/reference/lib--utils--entity_group.md
@@ -0,0 +1,69 @@
+# EntityGroup
+**Inherits:** [RefCounted](https://docs.godotengine.org/de/4.x/classes/class_refcounted.html)
+
+
+
+## Properties
+
+| Name | Type | Default |
+| ------------------------ | ------------------------------------------------------------------------- | ------- |
+| [counter](#prop-counter) | [Variant](https://docs.godotengine.org/de/4.x/classes/class_variant.html) | `0` |
+| [groups](#prop-groups) | [Variant](https://docs.godotengine.org/de/4.x/classes/class_variant.html) | |
+
+## Methods
+
+| Returns | Name |
+| ------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
+| [Variant](https://docs.godotengine.org/de/4.x/classes/class_variant.html) | [add_entity](#add-entity) ( id: [String](https://docs.godotengine.org/de/4.x/classes/class_string.html), entity: [Variant](https://docs.godotengine.org/de/4.x/classes/class_variant.html) ) |
+| [Variant](https://docs.godotengine.org/de/4.x/classes/class_variant.html) | [create](#create) ( entities: [Variant](https://docs.godotengine.org/de/4.x/classes/class_variant.html) ) |
+| [Variant](https://docs.godotengine.org/de/4.x/classes/class_variant.html) | [get_group](#get-group) ( id: [String](https://docs.godotengine.org/de/4.x/classes/class_string.html) ) |
+| [Variant](https://docs.godotengine.org/de/4.x/classes/class_variant.html) | [is_group](#is-group) ( id: [String](https://docs.godotengine.org/de/4.x/classes/class_string.html) ) |
+| [Variant](https://docs.godotengine.org/de/4.x/classes/class_variant.html) | [remove](#remove) ( id: [String](https://docs.godotengine.org/de/4.x/classes/class_string.html) ) |
+| [Variant](https://docs.godotengine.org/de/4.x/classes/class_variant.html) | [remove_entity](#remove-entity) ( id: [String](https://docs.godotengine.org/de/4.x/classes/class_string.html), entity: [Variant](https://docs.godotengine.org/de/4.x/classes/class_variant.html) ) |
+| [Variant](https://docs.godotengine.org/de/4.x/classes/class_variant.html) | [update_entities](#update-entities) ( id: [String](https://docs.godotengine.org/de/4.x/classes/class_string.html), entities: [Variant](https://docs.godotengine.org/de/4.x/classes/class_variant.html) ) |
+
+
+
+
+
+
+
+## Property Descriptions
+
+### counter: [Variant](https://docs.godotengine.org/de/4.x/classes/class_variant.html) {#prop-counter}
+
+No description provided yet.
+
+### groups: [Variant](https://docs.godotengine.org/de/4.x/classes/class_variant.html) {#prop-groups}
+
+No description provided yet.
+
+## Method Descriptions
+
+### add_entity (id: [String](https://docs.godotengine.org/de/4.x/classes/class_string.html) , entity: [Variant](https://docs.godotengine.org/de/4.x/classes/class_variant.html) ) -> [Variant](https://docs.godotengine.org/de/4.x/classes/class_variant.html) {#add-entity}
+
+No description provided yet.
+
+### create (entities: [Variant](https://docs.godotengine.org/de/4.x/classes/class_variant.html) ) -> [Variant](https://docs.godotengine.org/de/4.x/classes/class_variant.html) {#create}
+
+No description provided yet.
+
+### get_group (id: [String](https://docs.godotengine.org/de/4.x/classes/class_string.html) ) -> [Variant](https://docs.godotengine.org/de/4.x/classes/class_variant.html) {#get-group}
+
+No description provided yet.
+
+### is_group (id: [String](https://docs.godotengine.org/de/4.x/classes/class_string.html) ) -> [Variant](https://docs.godotengine.org/de/4.x/classes/class_variant.html) {#is-group}
+
+No description provided yet.
+
+### remove (id: [String](https://docs.godotengine.org/de/4.x/classes/class_string.html) ) -> [Variant](https://docs.godotengine.org/de/4.x/classes/class_variant.html) {#remove}
+
+No description provided yet.
+
+### remove_entity (id: [String](https://docs.godotengine.org/de/4.x/classes/class_string.html) , entity: [Variant](https://docs.godotengine.org/de/4.x/classes/class_variant.html) ) -> [Variant](https://docs.godotengine.org/de/4.x/classes/class_variant.html) {#remove-entity}
+
+No description provided yet.
+
+### update_entities (id: [String](https://docs.godotengine.org/de/4.x/classes/class_string.html) , entities: [Variant](https://docs.godotengine.org/de/4.x/classes/class_variant.html) ) -> [Variant](https://docs.godotengine.org/de/4.x/classes/class_variant.html) {#update-entities}
+
+No description provided yet.
diff --git a/docs/reference/lib--utils--font_tools.md b/docs/reference/lib--utils--font_tools.md
index 3ac21c8..4d7389b 100644
--- a/docs/reference/lib--utils--font_tools.md
+++ b/docs/reference/lib--utils--font_tools.md
@@ -9,7 +9,7 @@
| Returns | Name |
| ------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
-| [Variant](https://docs.godotengine.org/de/4.x/classes/class_variant.html) | [get_font_size](#get-font-size) ( label: [Label3D](https://docs.godotengine.org/de/4.x/classes/class_label3d.html), chars: [Variant](https://docs.godotengine.org/de/4.x/classes/class_variant.html) ) |
+| [Vector2](https://docs.godotengine.org/de/4.x/classes/class_vector2.html) | [get_font_size](#get-font-size) ( label: [Label3D](https://docs.godotengine.org/de/4.x/classes/class_label3d.html), chars: [Variant](https://docs.godotengine.org/de/4.x/classes/class_variant.html) ) |
@@ -21,6 +21,6 @@
## Method Descriptions
-### static get_font_size (label: [Label3D](https://docs.godotengine.org/de/4.x/classes/class_label3d.html) , chars: [Variant](https://docs.godotengine.org/de/4.x/classes/class_variant.html) ) -> [Variant](https://docs.godotengine.org/de/4.x/classes/class_variant.html) {#get-font-size}
+### static get_font_size (label: [Label3D](https://docs.godotengine.org/de/4.x/classes/class_label3d.html) , chars: [Variant](https://docs.godotengine.org/de/4.x/classes/class_variant.html) ) -> [Vector2](https://docs.godotengine.org/de/4.x/classes/class_vector2.html) {#get-font-size}
Returns the size of a Label3D in standard units
diff --git a/docs/reference/lib--utils--mesh--construct_room_mesh.md b/docs/reference/lib--utils--mesh--construct_room_mesh.md
new file mode 100644
index 0000000..3743f5a
--- /dev/null
+++ b/docs/reference/lib--utils--mesh--construct_room_mesh.md
@@ -0,0 +1,48 @@
+# ConstructRoomMesh
+**Inherits:** [RefCounted](https://docs.godotengine.org/de/4.x/classes/class_refcounted.html)
+
+## Description
+
+Fill points insde the polygon
+
+
+
+## Methods
+
+| Returns | Name |
+| ------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
+| [Variant](https://docs.godotengine.org/de/4.x/classes/class_variant.html) | [_create_mesh](#-create-mesh) ( points: [PackedVector2Array](https://docs.godotengine.org/de/4.x/classes/class_packedvector2array.html), triangles: [PackedInt32Array](https://docs.godotengine.org/de/4.x/classes/class_packedint32array.html) ) |
+| [Variant](https://docs.godotengine.org/de/4.x/classes/class_variant.html) | [generate_ceiling_mesh](#generate-ceiling-mesh) ( corners: [Variant](https://docs.godotengine.org/de/4.x/classes/class_variant.html) ) |
+| [Variant](https://docs.godotengine.org/de/4.x/classes/class_variant.html) | [generate_ceiling_mesh_grid](#generate-ceiling-mesh-grid) ( corners: [Variant](https://docs.godotengine.org/de/4.x/classes/class_variant.html), grid: [Vector2](https://docs.godotengine.org/de/4.x/classes/class_vector2.html) ) |
+| [Variant](https://docs.godotengine.org/de/4.x/classes/class_variant.html) | [generate_wall_mesh](#generate-wall-mesh) ( corners: [Variant](https://docs.godotengine.org/de/4.x/classes/class_variant.html), height: [Variant](https://docs.godotengine.org/de/4.x/classes/class_variant.html) ) |
+| [Variant](https://docs.godotengine.org/de/4.x/classes/class_variant.html) | [generate_wall_mesh_grid](#generate-wall-mesh-grid) ( corners: [Variant](https://docs.godotengine.org/de/4.x/classes/class_variant.html), height: [Variant](https://docs.godotengine.org/de/4.x/classes/class_variant.html), grid: [Vector2](https://docs.godotengine.org/de/4.x/classes/class_vector2.html) ) |
+
+
+
+
+
+
+
+
+
+## Method Descriptions
+
+### static _create_mesh (points: [PackedVector2Array](https://docs.godotengine.org/de/4.x/classes/class_packedvector2array.html) , triangles: [PackedInt32Array](https://docs.godotengine.org/de/4.x/classes/class_packedint32array.html) ) -> [Variant](https://docs.godotengine.org/de/4.x/classes/class_variant.html) {#-create-mesh}
+
+No description provided yet.
+
+### static generate_ceiling_mesh (corners: [Variant](https://docs.godotengine.org/de/4.x/classes/class_variant.html) ) -> [Variant](https://docs.godotengine.org/de/4.x/classes/class_variant.html) {#generate-ceiling-mesh}
+
+No description provided yet.
+
+### static generate_ceiling_mesh_grid (corners: [Variant](https://docs.godotengine.org/de/4.x/classes/class_variant.html) , grid: [Vector2](https://docs.godotengine.org/de/4.x/classes/class_vector2.html) ) -> [Variant](https://docs.godotengine.org/de/4.x/classes/class_variant.html) {#generate-ceiling-mesh-grid}
+
+No description provided yet.
+
+### static generate_wall_mesh (corners: [Variant](https://docs.godotengine.org/de/4.x/classes/class_variant.html) , height: [Variant](https://docs.godotengine.org/de/4.x/classes/class_variant.html) ) -> [Variant](https://docs.godotengine.org/de/4.x/classes/class_variant.html) {#generate-wall-mesh}
+
+No description provided yet.
+
+### static generate_wall_mesh_grid (corners: [Variant](https://docs.godotengine.org/de/4.x/classes/class_variant.html) , height: [Variant](https://docs.godotengine.org/de/4.x/classes/class_variant.html) , grid: [Vector2](https://docs.godotengine.org/de/4.x/classes/class_vector2.html) ) -> [Variant](https://docs.godotengine.org/de/4.x/classes/class_variant.html) {#generate-wall-mesh-grid}
+
+No description provided yet.
diff --git a/docs/reference/lib--utils--touch--collide.md b/docs/reference/lib--utils--touch--collide.md
index 8dda078..c9ade3b 100644
--- a/docs/reference/lib--utils--touch--collide.md
+++ b/docs/reference/lib--utils--touch--collide.md
@@ -7,22 +7,25 @@ Calculates collision for fingers and FingerAreas
## Properties
-| Name | Type | Default |
-| -------------------------------------- | ------------------------------------------------------------------------------- | ------- |
-| [bodies_entered](#prop-bodies-entered) | [Variant](https://docs.godotengine.org/de/4.x/classes/class_variant.html) | |
-| [finger_areas](#prop-finger-areas) | [Dictionary](https://docs.godotengine.org/de/4.x/classes/class_dictionary.html) | |
-| [hand_left](#prop-hand-left) | [Node3D](https://docs.godotengine.org/de/4.x/classes/class_node3d.html) | |
-| [hand_right](#prop-hand-right) | [Node3D](https://docs.godotengine.org/de/4.x/classes/class_node3d.html) | |
+| Name | Type | Default |
+| ---------------------------------------- | --------------------------------------------------------------------------------------- | ------- |
+| [hand_left](#prop-hand-left) | [Node3D](https://docs.godotengine.org/de/4.x/classes/class_node3d.html) | |
+| [hand_left_mesh](#prop-hand-left-mesh) | [MeshInstance3D](https://docs.godotengine.org/de/4.x/classes/class_meshinstance3d.html) | |
+| [hand_right](#prop-hand-right) | [Node3D](https://docs.godotengine.org/de/4.x/classes/class_node3d.html) | |
+| [hand_right_mesh](#prop-hand-right-mesh) | [MeshInstance3D](https://docs.godotengine.org/de/4.x/classes/class_meshinstance3d.html) | |
+| [tip_left](#prop-tip-left) | [Node3D](https://docs.godotengine.org/de/4.x/classes/class_node3d.html) | |
+| [tip_left_body](#prop-tip-left-body) | [RigidBody3D](https://docs.godotengine.org/de/4.x/classes/class_rigidbody3d.html) | |
+| [tip_right](#prop-tip-right) | [Node3D](https://docs.godotengine.org/de/4.x/classes/class_node3d.html) | |
+| [tip_right_body](#prop-tip-right-body) | [RigidBody3D](https://docs.godotengine.org/de/4.x/classes/class_rigidbody3d.html) | |
## Methods
-| Returns | Name |
-| ------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
-| void | [_init](#-init) ( hand_left: [OpenXRHand](https://docs.godotengine.org/de/4.x/classes/class_openxrhand.html), hand_right: [OpenXRHand](https://docs.godotengine.org/de/4.x/classes/class_openxrhand.html), finger_areas: [Dictionary](https://docs.godotengine.org/de/4.x/classes/class_dictionary.html) ) |
-| void | [_on_body_entered](#-on-body-entered) ( finger_type: [Variant](https://docs.godotengine.org/de/4.x/classes/class_variant.html), body: [Variant](https://docs.godotengine.org/de/4.x/classes/class_variant.html) ) |
-| void | [_on_body_exited](#-on-body-exited) ( finger_type: [Variant](https://docs.godotengine.org/de/4.x/classes/class_variant.html), body: [Variant](https://docs.godotengine.org/de/4.x/classes/class_variant.html) ) |
-| void | [_physics_process](#-physics-process) ( _delta: [Variant](https://docs.godotengine.org/de/4.x/classes/class_variant.html) ) |
-| void | [_ready](#-ready) ( ) |
+| Returns | Name |
+| ------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
+| void | [_init](#-init) ( hand_left: [OpenXRHand](https://docs.godotengine.org/de/4.x/classes/class_openxrhand.html), hand_right: [OpenXRHand](https://docs.godotengine.org/de/4.x/classes/class_openxrhand.html), tip_left: [Node3D](https://docs.godotengine.org/de/4.x/classes/class_node3d.html), tip_right: [Node3D](https://docs.godotengine.org/de/4.x/classes/class_node3d.html) ) |
+| void | [_move_tip_rigidbody_to_bone](#-move-tip-rigidbody-to-bone) ( tip_rigidbody: [RigidBody3D](https://docs.godotengine.org/de/4.x/classes/class_rigidbody3d.html), tip_bone: [Node3D](https://docs.godotengine.org/de/4.x/classes/class_node3d.html) ) |
+| void | [_physics_process](#-physics-process) ( _delta: [Variant](https://docs.godotengine.org/de/4.x/classes/class_variant.html) ) |
+| void | [_ready](#-ready) ( ) |
@@ -34,35 +37,51 @@ Calculates collision for fingers and FingerAreas
No description provided yet.
+### TipCollider = `` {#const-TipCollider}
+
+No description provided yet.
+
## Property Descriptions
-### bodies_entered: [Variant](https://docs.godotengine.org/de/4.x/classes/class_variant.html) {#prop-bodies-entered}
-
-Record>
-
-### finger_areas: [Dictionary](https://docs.godotengine.org/de/4.x/classes/class_dictionary.html) {#prop-finger-areas}
-
-Record
-
### hand_left: [Node3D](https://docs.godotengine.org/de/4.x/classes/class_node3d.html) {#prop-hand-left}
No description provided yet.
+### hand_left_mesh: [MeshInstance3D](https://docs.godotengine.org/de/4.x/classes/class_meshinstance3d.html) {#prop-hand-left-mesh}
+
+No description provided yet.
+
### hand_right: [Node3D](https://docs.godotengine.org/de/4.x/classes/class_node3d.html) {#prop-hand-right}
No description provided yet.
+### hand_right_mesh: [MeshInstance3D](https://docs.godotengine.org/de/4.x/classes/class_meshinstance3d.html) {#prop-hand-right-mesh}
+
+No description provided yet.
+
+### tip_left: [Node3D](https://docs.godotengine.org/de/4.x/classes/class_node3d.html) {#prop-tip-left}
+
+No description provided yet.
+
+### tip_left_body: [RigidBody3D](https://docs.godotengine.org/de/4.x/classes/class_rigidbody3d.html) {#prop-tip-left-body}
+
+No description provided yet.
+
+### tip_right: [Node3D](https://docs.godotengine.org/de/4.x/classes/class_node3d.html) {#prop-tip-right}
+
+No description provided yet.
+
+### tip_right_body: [RigidBody3D](https://docs.godotengine.org/de/4.x/classes/class_rigidbody3d.html) {#prop-tip-right-body}
+
+No description provided yet.
+
## Method Descriptions
-### _init (hand_left: [OpenXRHand](https://docs.godotengine.org/de/4.x/classes/class_openxrhand.html) , hand_right: [OpenXRHand](https://docs.godotengine.org/de/4.x/classes/class_openxrhand.html) , finger_areas: [Dictionary](https://docs.godotengine.org/de/4.x/classes/class_dictionary.html) ) -> void {#-init}
+### _init (hand_left: [OpenXRHand](https://docs.godotengine.org/de/4.x/classes/class_openxrhand.html) , hand_right: [OpenXRHand](https://docs.godotengine.org/de/4.x/classes/class_openxrhand.html) , tip_left: [Node3D](https://docs.godotengine.org/de/4.x/classes/class_node3d.html) , tip_right: [Node3D](https://docs.godotengine.org/de/4.x/classes/class_node3d.html) ) -> void {#-init}
No description provided yet.
-### _on_body_entered (finger_type: [Variant](https://docs.godotengine.org/de/4.x/classes/class_variant.html) , body: [Variant](https://docs.godotengine.org/de/4.x/classes/class_variant.html) ) -> void {#-on-body-entered}
-
-No description provided yet.
-
-### _on_body_exited (finger_type: [Variant](https://docs.godotengine.org/de/4.x/classes/class_variant.html) , body: [Variant](https://docs.godotengine.org/de/4.x/classes/class_variant.html) ) -> void {#-on-body-exited}
+### _move_tip_rigidbody_to_bone (tip_rigidbody: [RigidBody3D](https://docs.godotengine.org/de/4.x/classes/class_rigidbody3d.html) , tip_bone: [Node3D](https://docs.godotengine.org/de/4.x/classes/class_node3d.html) ) -> void {#-move-tip-rigidbody-to-bone}
No description provided yet.