Full Code of dallatIkes/projetGL for AI

main 669eb54c0675 cached
165 files
8.1 MB
2.1M tokens
34 symbols
1 requests
Download .txt
Showing preview only (8,554K chars total). Download the full file or copy to clipboard to get everything.
Repository: dallatIkes/projetGL
Branch: main
Commit: 669eb54c0675
Files: 165
Total size: 8.1 MB

Directory structure:
gitextract_b21ugibo/

├── .gitignore
├── Config/
│   └── openxr_action_map.tres
├── Entities/
│   ├── Boss/
│   │   └── ForestBoss/
│   │       ├── Assets/
│   │       │   └── tentacle_plant/
│   │       │       ├── license.txt
│   │       │       └── scene.gltf
│   │       ├── Scenes/
│   │       │   └── ForestBoss.tscn
│   │       └── Scripts/
│   │           └── ForestBossScript.gd
│   ├── Creature/
│   │   ├── Assets/
│   │   │   ├── low_poly_kiwi_run.glb
│   │   │   ├── minecraft_-_wolf.glb
│   │   │   └── plantboy_animated_endboss.glb
│   │   ├── Scenes/
│   │   │   ├── Kiwi.tscn
│   │   │   ├── Tuto.tscn
│   │   │   └── plant_boy.tscn
│   │   └── Scripts/
│   │       ├── HPBarTest.gd
│   │       ├── creature.gd
│   │       └── tuto.gd
│   ├── Effects/
│   │   ├── damage_effect.tres
│   │   └── mesh_son_of_mobs.tres
│   ├── NPC/
│   │   ├── Assets/
│   │   │   └── full_moon_fears_torch_villager.glb
│   │   ├── Scenes/
│   │   │   ├── 3D_dialogBox.tscn
│   │   │   ├── NPC.tscn
│   │   │   ├── Villager.tscn
│   │   │   └── dialogBox.tscn
│   │   └── Scripts/
│   │       ├── dialog_box.gd
│   │       └── npc.gd
│   ├── Player/
│   │   ├── Assets/
│   │   │   └── .gitkeep
│   │   ├── Scenes/
│   │   │   ├── .gitkeep
│   │   │   ├── belt_snap_zone.tscn
│   │   │   ├── player.tscn
│   │   │   └── player_kbm.tscn
│   │   ├── Scripts/
│   │   │   ├── hpbar.gd
│   │   │   ├── manabar.gd
│   │   │   ├── player.gd
│   │   │   └── playerClass.gd
│   │   ├── pla78B7.tmp
│   │   └── pla9F64.tmp
│   ├── Scripts/
│   │   ├── aggressive_movement.gd
│   │   ├── entity.gd
│   │   ├── movement.gd
│   │   └── passive_movement.gd
│   ├── TrainingDummy/
│   │   ├── Scenes/
│   │   │   └── training_dummy.tscn
│   │   └── Scripts/
│   │       └── training_dummy.gd
│   └── stats.gd
├── Environment/
│   ├── Scenes/
│   │   ├── climb_wall.tscn
│   │   ├── fountain.tscn
│   │   ├── house1.tscn
│   │   ├── house2.tscn
│   │   ├── house3.tscn
│   │   ├── spellTowerUnlock.tscn
│   │   └── water.tscn
│   └── Scripts/
│       └── spellTowerUnlock.gd
├── Items/
│   ├── Equipment/
│   │   ├── Armor/
│   │   │   └── armor.gd
│   │   ├── Weapon/
│   │   │   ├── Bow/
│   │   │   │   └── Scripts/
│   │   │   │       └── bow.gd
│   │   │   ├── Scripts/
│   │   │   │   ├── melee.gd
│   │   │   │   ├── range.gd
│   │   │   │   └── weapon.gd
│   │   │   └── Sword/
│   │   │       ├── Assets/
│   │   │       │   ├── .gitkeep
│   │   │       │   ├── highlight_material.tres
│   │   │       │   ├── minecraft_diamond-sword/
│   │   │       │   │   ├── license.txt
│   │   │       │   │   └── scene.gltf
│   │   │       │   └── sword_snap_zone.tscn
│   │   │       ├── Scenes/
│   │   │       │   ├── .gitkeep
│   │   │       │   ├── diamond_sword.tscn
│   │   │       │   └── nice_sword.tscn
│   │   │       └── Scripts/
│   │   │           └── .gitkeep
│   │   └── equipment.gd
│   └── Projectile/
│       ├── Scene/
│       │   └── projectile.tscn
│       └── Script/
│           └── projectile.gd
├── LICENSE
├── Levels/
│   ├── Celeste/
│   │   ├── Assets/
│   │   │   └── .gitkeep
│   │   ├── Scenes/
│   │   │   └── .gitkeep
│   │   └── Scripts/
│   │       └── .gitkeep
│   ├── Desert/
│   │   ├── Assets/
│   │   │   └── .gitkeep
│   │   ├── Scenes/
│   │   │   └── .gitkeep
│   │   └── Scripts/
│   │       └── .gitkeep
│   ├── Forest/
│   │   ├── Assets/
│   │   │   ├── .gitkeep
│   │   │   ├── Forest GridMap.tres
│   │   │   └── Forest Mesh Library.glb
│   │   ├── Scenes/
│   │   │   ├── .gitkeep
│   │   │   ├── dungeon.gd
│   │   │   ├── dungeon.tscn
│   │   │   ├── fake_dungeon.tscn
│   │   │   ├── forest_zone.gd
│   │   │   ├── forest_zone.tscn
│   │   │   └── torch.tscn
│   │   └── Scripts/
│   │       └── .gitkeep
│   ├── Mine/
│   │   ├── Assets/
│   │   │   └── .gitkeep
│   │   ├── Scenes/
│   │   │   └── .gitkeep
│   │   └── Scripts/
│   │       └── .gitkeep
│   ├── Mountain/
│   │   ├── Assets/
│   │   │   └── .gitkeep
│   │   ├── Scenes/
│   │   │   └── .gitkeep
│   │   └── Scripts/
│   │       └── .gitkeep
│   ├── Starting_menu/
│   │   ├── Scenes/
│   │   │   ├── hedge_2.tscn
│   │   │   └── start_menu.tscn
│   │   └── Scripts/
│   │       ├── starting_menu.gd
│   │       └── world_start_menu.gd
│   ├── Test/
│   │   ├── Assets/
│   │   │   ├── LeverBase.glb
│   │   │   ├── LeverStick.glb
│   │   │   ├── Test Mesh Library.glb
│   │   │   ├── archery_target_low_poly.glb
│   │   │   └── world_blocks_test.tres
│   │   ├── Scenes/
│   │   │   ├── climb_stone_object.tscn
│   │   │   ├── door.tscn
│   │   │   ├── grid_map_test.tscn
│   │   │   ├── lever.gd
│   │   │   ├── lever.tscn
│   │   │   ├── tool_board.tscn
│   │   │   └── torch.tscn
│   │   ├── Scripts/
│   │   │   ├── debug_pos.gd
│   │   │   ├── lever.gd
│   │   │   ├── lever_main_menu.gd
│   │   │   ├── lever_main_menu_for_demo.gd
│   │   │   ├── lever_start_menu.gd
│   │   │   ├── main_menu.gd
│   │   │   ├── mesh_instance_3d.gd
│   │   │   ├── test_scene.gd
│   │   │   └── torch.gd
│   │   ├── demo.tscn
│   │   ├── main_menu.tscn
│   │   ├── tes2B.tmp
│   │   ├── tes36FE.tmp
│   │   ├── tes6881.tmp
│   │   ├── tesFB3D.tmp
│   │   ├── test_scene.tscn
│   │   └── test_scene_ethan.tscn
│   └── Underwater/
│       ├── Assets/
│       │   └── .gitkeep
│       ├── Scenes/
│       │   └── .gitkeep
│       └── Scripts/
│           └── .gitkeep
├── README.md
├── Scripts/
│   └── GameState.gd
├── Sounds/
│   └── .gitignore
├── Spells/
│   ├── Assets/
│   │   └── .gitkeep
│   ├── PoisonBall/
│   │   ├── Asset/
│   │   │   └── PoisonMaterial.tres
│   │   ├── Scene/
│   │   │   └── PoisonBall.tscn
│   │   └── Scripts/
│   │       └── poisonball.gd
│   ├── Scenes/
│   │   ├── .gitkeep
│   │   ├── electric_arc.tscn
│   │   ├── fire_ball.tscn
│   │   └── heal_orb.tscn
│   └── Scripts/
│       ├── .gitkeep
│       ├── electric_arc.gd
│       ├── fire_ball.gd
│       ├── heal_orb.gd
│       └── spell.gd
├── UI/
│   ├── Assets/
│   │   └── .gitkeep
│   ├── Scenes/
│   │   ├── .gitkeep
│   │   ├── HPBar.tscn
│   │   ├── SpellMenu.tscn
│   │   ├── in_game_ui.tscn
│   │   ├── in_game_ui_debug.tscn
│   │   ├── main_menu.tscn
│   │   ├── resume_button.gd
│   │   └── spell_menu_selector.tscn
│   ├── Scripts/
│   │   ├── .gitkeep
│   │   ├── global.gd
│   │   ├── in_game_ui_debug.gd
│   │   ├── keyMappingMenu.gd
│   │   ├── menuButtons.gd
│   │   ├── parametersMenu.gd
│   │   └── spell_menu.gd
│   └── Textures/
│       └── HPBar.tres
├── install/
│   ├── .gitignore
│   └── src/
│       ├── gui.py
│       ├── install.py
│       └── unzip.py
└── project.godot

================================================
FILE CONTENTS
================================================

================================================
FILE: .gitignore
================================================
# Godot 4+ specific ignores
.godot/

# Godot-specific ignores
.import/
export.cfg
export_presets.cfg
.DS_Store

# Imported translations (automatically generated from CSV files)
*.translation

# Mono-specific ignores
.mono/
data_*/
mono_crash.*.json

android/
3D_Models/

*.import

================================================
FILE: Config/openxr_action_map.tres
================================================
[gd_resource type="OpenXRActionMap" load_steps=221 format=3 uid="uid://dynfr7srtp7x7"]

[sub_resource type="OpenXRAction" id="OpenXRAction_eblwx"]
resource_name = "trigger"
localized_name = "Trigger"
toplevel_paths = PackedStringArray("/user/hand/left", "/user/hand/right")

[sub_resource type="OpenXRAction" id="OpenXRAction_w1viq"]
resource_name = "trigger_click"
localized_name = "Trigger click"
action_type = 0
toplevel_paths = PackedStringArray("/user/hand/left", "/user/hand/right")

[sub_resource type="OpenXRAction" id="OpenXRAction_usg6s"]
resource_name = "trigger_touch"
localized_name = "Trigger touching"
action_type = 0
toplevel_paths = PackedStringArray("/user/hand/left", "/user/hand/right")

[sub_resource type="OpenXRAction" id="OpenXRAction_qlepa"]
resource_name = "grip"
localized_name = "Grip"
toplevel_paths = PackedStringArray("/user/hand/left", "/user/hand/right")

[sub_resource type="OpenXRAction" id="OpenXRAction_c3h4k"]
resource_name = "grip_click"
localized_name = "Grip click"
action_type = 0
toplevel_paths = PackedStringArray("/user/hand/left", "/user/hand/right")

[sub_resource type="OpenXRAction" id="OpenXRAction_nng6x"]
resource_name = "grip_force"
localized_name = "Grip force"
toplevel_paths = PackedStringArray("/user/hand/left", "/user/hand/right")

[sub_resource type="OpenXRAction" id="OpenXRAction_cy76p"]
resource_name = "primary"
localized_name = "Primary joystick/thumbstick/trackpad"
action_type = 2
toplevel_paths = PackedStringArray("/user/hand/left", "/user/hand/right")

[sub_resource type="OpenXRAction" id="OpenXRAction_ov7at"]
resource_name = "primary_click"
localized_name = "Primary joystick/thumbstick/trackpad click"
action_type = 0
toplevel_paths = PackedStringArray("/user/hand/left", "/user/hand/right")

[sub_resource type="OpenXRAction" id="OpenXRAction_b1lp0"]
resource_name = "primary_touch"
localized_name = "Primary joystick/thumbstick/trackpad touching"
action_type = 0
toplevel_paths = PackedStringArray("/user/hand/left", "/user/hand/right")

[sub_resource type="OpenXRAction" id="OpenXRAction_nr3q3"]
resource_name = "secondary"
localized_name = "Secondary joystick/thumbstick/trackpad"
action_type = 2
toplevel_paths = PackedStringArray("/user/hand/left", "/user/hand/right")

[sub_resource type="OpenXRAction" id="OpenXRAction_dw8ko"]
resource_name = "secondary_click"
localized_name = "Secondary joystick/thumbstick/trackpad click"
action_type = 0
toplevel_paths = PackedStringArray("/user/hand/left", "/user/hand/right")

[sub_resource type="OpenXRAction" id="OpenXRAction_2qoiw"]
resource_name = "secondary_touch"
localized_name = "Secondary joystick/thumbstick/trackpad touching"
action_type = 0
toplevel_paths = PackedStringArray("/user/hand/left", "/user/hand/right")

[sub_resource type="OpenXRAction" id="OpenXRAction_ui0f0"]
resource_name = "menu_button"
localized_name = "Menu button"
action_type = 0
toplevel_paths = PackedStringArray("/user/hand/left", "/user/hand/right")

[sub_resource type="OpenXRAction" id="OpenXRAction_45jbj"]
resource_name = "select_button"
localized_name = "Select button"
action_type = 0
toplevel_paths = PackedStringArray("/user/hand/left", "/user/hand/right")

[sub_resource type="OpenXRAction" id="OpenXRAction_vblhs"]
resource_name = "ax_button"
localized_name = "A/X button"
action_type = 0
toplevel_paths = PackedStringArray("/user/hand/left", "/user/hand/right")

[sub_resource type="OpenXRAction" id="OpenXRAction_scu05"]
resource_name = "ax_touch"
localized_name = "A/X touching"
action_type = 0
toplevel_paths = PackedStringArray("/user/hand/left", "/user/hand/right")

[sub_resource type="OpenXRAction" id="OpenXRAction_bjjdl"]
resource_name = "by_button"
localized_name = "B/Y button"
action_type = 0
toplevel_paths = PackedStringArray("/user/hand/left", "/user/hand/right")

[sub_resource type="OpenXRAction" id="OpenXRAction_qy0xt"]
resource_name = "by_touch"
localized_name = "B/Y touching"
action_type = 0
toplevel_paths = PackedStringArray("/user/hand/left", "/user/hand/right")

[sub_resource type="OpenXRAction" id="OpenXRAction_fwkv2"]
resource_name = "default_pose"
localized_name = "Default pose"
action_type = 3
toplevel_paths = PackedStringArray("/user/hand/left", "/user/hand/right", "/user/vive_tracker_htcx/role/left_foot", "/user/vive_tracker_htcx/role/right_foot", "/user/vive_tracker_htcx/role/left_shoulder", "/user/vive_tracker_htcx/role/right_shoulder", "/user/vive_tracker_htcx/role/left_elbow", "/user/vive_tracker_htcx/role/right_elbow", "/user/vive_tracker_htcx/role/left_knee", "/user/vive_tracker_htcx/role/right_knee", "/user/vive_tracker_htcx/role/waist", "/user/vive_tracker_htcx/role/chest", "/user/vive_tracker_htcx/role/camera", "/user/vive_tracker_htcx/role/keyboard", "/user/eyes_ext")

[sub_resource type="OpenXRAction" id="OpenXRAction_tccby"]
resource_name = "aim_pose"
localized_name = "Aim pose"
action_type = 3
toplevel_paths = PackedStringArray("/user/hand/left", "/user/hand/right")

[sub_resource type="OpenXRAction" id="OpenXRAction_807p4"]
resource_name = "grip_pose"
localized_name = "Grip pose"
action_type = 3
toplevel_paths = PackedStringArray("/user/hand/left", "/user/hand/right")

[sub_resource type="OpenXRAction" id="OpenXRAction_80wsj"]
resource_name = "palm_pose"
localized_name = "Palm pose"
action_type = 3
toplevel_paths = PackedStringArray("/user/hand/left", "/user/hand/right")

[sub_resource type="OpenXRAction" id="OpenXRAction_bpr3v"]
resource_name = "haptic"
localized_name = "Haptic"
action_type = 4
toplevel_paths = PackedStringArray("/user/hand/left", "/user/hand/right", "/user/vive_tracker_htcx/role/left_foot", "/user/vive_tracker_htcx/role/right_foot", "/user/vive_tracker_htcx/role/left_shoulder", "/user/vive_tracker_htcx/role/right_shoulder", "/user/vive_tracker_htcx/role/left_elbow", "/user/vive_tracker_htcx/role/right_elbow", "/user/vive_tracker_htcx/role/left_knee", "/user/vive_tracker_htcx/role/right_knee", "/user/vive_tracker_htcx/role/waist", "/user/vive_tracker_htcx/role/chest", "/user/vive_tracker_htcx/role/camera", "/user/vive_tracker_htcx/role/keyboard")

[sub_resource type="OpenXRActionSet" id="OpenXRActionSet_neh4x"]
resource_name = "godot"
localized_name = "Godot action set"
actions = [SubResource("OpenXRAction_eblwx"), SubResource("OpenXRAction_w1viq"), SubResource("OpenXRAction_usg6s"), SubResource("OpenXRAction_qlepa"), SubResource("OpenXRAction_c3h4k"), SubResource("OpenXRAction_nng6x"), SubResource("OpenXRAction_cy76p"), SubResource("OpenXRAction_ov7at"), SubResource("OpenXRAction_b1lp0"), SubResource("OpenXRAction_nr3q3"), SubResource("OpenXRAction_dw8ko"), SubResource("OpenXRAction_2qoiw"), SubResource("OpenXRAction_ui0f0"), SubResource("OpenXRAction_45jbj"), SubResource("OpenXRAction_vblhs"), SubResource("OpenXRAction_scu05"), SubResource("OpenXRAction_bjjdl"), SubResource("OpenXRAction_qy0xt"), SubResource("OpenXRAction_fwkv2"), SubResource("OpenXRAction_tccby"), SubResource("OpenXRAction_807p4"), SubResource("OpenXRAction_80wsj"), SubResource("OpenXRAction_bpr3v")]

[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_8f5fo"]
action = SubResource("OpenXRAction_fwkv2")
paths = PackedStringArray("/user/hand/left/input/aim/pose", "/user/hand/right/input/aim/pose")

[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_g3smi"]
action = SubResource("OpenXRAction_tccby")
paths = PackedStringArray("/user/hand/left/input/aim/pose", "/user/hand/right/input/aim/pose")

[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_1kanp"]
action = SubResource("OpenXRAction_807p4")
paths = PackedStringArray("/user/hand/left/input/grip/pose", "/user/hand/right/input/grip/pose")

[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_c73a5"]
action = SubResource("OpenXRAction_80wsj")
paths = PackedStringArray("/user/hand/left/input/palm_ext/pose", "/user/hand/right/input/palm_ext/pose")

[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_1bj8d"]
action = SubResource("OpenXRAction_ui0f0")
paths = PackedStringArray("/user/hand/left/input/menu/click", "/user/hand/right/input/menu/click")

[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_fb687"]
action = SubResource("OpenXRAction_45jbj")
paths = PackedStringArray("/user/hand/left/input/select/click", "/user/hand/right/input/select/click")

[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_up6ar"]
action = SubResource("OpenXRAction_bpr3v")
paths = PackedStringArray("/user/hand/left/output/haptic", "/user/hand/right/output/haptic")

[sub_resource type="OpenXRInteractionProfile" id="OpenXRInteractionProfile_a2pir"]
interaction_profile_path = "/interaction_profiles/khr/simple_controller"
bindings = [SubResource("OpenXRIPBinding_8f5fo"), SubResource("OpenXRIPBinding_g3smi"), SubResource("OpenXRIPBinding_1kanp"), SubResource("OpenXRIPBinding_c73a5"), SubResource("OpenXRIPBinding_1bj8d"), SubResource("OpenXRIPBinding_fb687"), SubResource("OpenXRIPBinding_up6ar")]

[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_b72l2"]
action = SubResource("OpenXRAction_fwkv2")
paths = PackedStringArray("/user/hand/left/input/aim/pose", "/user/hand/right/input/aim/pose")

[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_1acop"]
action = SubResource("OpenXRAction_tccby")
paths = PackedStringArray("/user/hand/left/input/aim/pose", "/user/hand/right/input/aim/pose")

[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_vhuwp"]
action = SubResource("OpenXRAction_807p4")
paths = PackedStringArray("/user/hand/left/input/grip/pose", "/user/hand/right/input/grip/pose")

[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_dvh5u"]
action = SubResource("OpenXRAction_80wsj")
paths = PackedStringArray("/user/hand/left/input/palm_ext/pose", "/user/hand/right/input/palm_ext/pose")

[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_fa8dd"]
action = SubResource("OpenXRAction_ui0f0")
paths = PackedStringArray("/user/hand/left/input/menu/click", "/user/hand/right/input/menu/click")

[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_ifki6"]
action = SubResource("OpenXRAction_45jbj")
paths = PackedStringArray("/user/hand/left/input/system/click", "/user/hand/right/input/system/click")

[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_nrh7g"]
action = SubResource("OpenXRAction_eblwx")
paths = PackedStringArray("/user/hand/left/input/trigger/value", "/user/hand/right/input/trigger/value")

[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_u0l64"]
action = SubResource("OpenXRAction_w1viq")
paths = PackedStringArray("/user/hand/left/input/trigger/click", "/user/hand/right/input/trigger/click")

[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_v7e3w"]
action = SubResource("OpenXRAction_qlepa")
paths = PackedStringArray("/user/hand/left/input/squeeze/click", "/user/hand/right/input/squeeze/click")

[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_pscus"]
action = SubResource("OpenXRAction_c3h4k")
paths = PackedStringArray("/user/hand/left/input/squeeze/click", "/user/hand/right/input/squeeze/click")

[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_vyill"]
action = SubResource("OpenXRAction_cy76p")
paths = PackedStringArray("/user/hand/left/input/trackpad", "/user/hand/right/input/trackpad")

[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_o3glx"]
action = SubResource("OpenXRAction_ov7at")
paths = PackedStringArray("/user/hand/left/input/trackpad/click", "/user/hand/right/input/trackpad/click")

[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_frkun"]
action = SubResource("OpenXRAction_b1lp0")
paths = PackedStringArray("/user/hand/left/input/trackpad/touch", "/user/hand/right/input/trackpad/touch")

[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_sfuqm"]
action = SubResource("OpenXRAction_bpr3v")
paths = PackedStringArray("/user/hand/left/output/haptic", "/user/hand/right/output/haptic")

[sub_resource type="OpenXRInteractionProfile" id="OpenXRInteractionProfile_c40fg"]
interaction_profile_path = "/interaction_profiles/htc/vive_controller"
bindings = [SubResource("OpenXRIPBinding_b72l2"), SubResource("OpenXRIPBinding_1acop"), SubResource("OpenXRIPBinding_vhuwp"), SubResource("OpenXRIPBinding_dvh5u"), SubResource("OpenXRIPBinding_fa8dd"), SubResource("OpenXRIPBinding_ifki6"), SubResource("OpenXRIPBinding_nrh7g"), SubResource("OpenXRIPBinding_u0l64"), SubResource("OpenXRIPBinding_v7e3w"), SubResource("OpenXRIPBinding_pscus"), SubResource("OpenXRIPBinding_vyill"), SubResource("OpenXRIPBinding_o3glx"), SubResource("OpenXRIPBinding_frkun"), SubResource("OpenXRIPBinding_sfuqm")]

[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_i7js4"]
action = SubResource("OpenXRAction_fwkv2")
paths = PackedStringArray("/user/hand/left/input/aim/pose", "/user/hand/right/input/aim/pose")

[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_40h1v"]
action = SubResource("OpenXRAction_tccby")
paths = PackedStringArray("/user/hand/left/input/aim/pose", "/user/hand/right/input/aim/pose")

[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_oio2y"]
action = SubResource("OpenXRAction_807p4")
paths = PackedStringArray("/user/hand/left/input/grip/pose", "/user/hand/right/input/grip/pose")

[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_4w0kh"]
action = SubResource("OpenXRAction_80wsj")
paths = PackedStringArray("/user/hand/left/input/palm_ext/pose", "/user/hand/right/input/palm_ext/pose")

[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_dplae"]
action = SubResource("OpenXRAction_ui0f0")
paths = PackedStringArray("/user/hand/left/input/menu/click", "/user/hand/right/input/menu/click")

[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_b4xes"]
action = SubResource("OpenXRAction_eblwx")
paths = PackedStringArray("/user/hand/left/input/trigger/value", "/user/hand/right/input/trigger/value")

[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_ayut8"]
action = SubResource("OpenXRAction_w1viq")
paths = PackedStringArray("/user/hand/left/input/trigger/value", "/user/hand/right/input/trigger/value")

[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_x1744"]
action = SubResource("OpenXRAction_qlepa")
paths = PackedStringArray("/user/hand/left/input/squeeze/click", "/user/hand/right/input/squeeze/click")

[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_og3d5"]
action = SubResource("OpenXRAction_c3h4k")
paths = PackedStringArray("/user/hand/left/input/squeeze/click", "/user/hand/right/input/squeeze/click")

[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_plw8j"]
action = SubResource("OpenXRAction_cy76p")
paths = PackedStringArray("/user/hand/left/input/thumbstick", "/user/hand/right/input/thumbstick")

[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_yf1bj"]
action = SubResource("OpenXRAction_ov7at")
paths = PackedStringArray("/user/hand/left/input/thumbstick/click", "/user/hand/right/input/thumbstick/click")

[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_63btr"]
action = SubResource("OpenXRAction_nr3q3")
paths = PackedStringArray("/user/hand/left/input/trackpad", "/user/hand/right/input/trackpad")

[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_w6fmb"]
action = SubResource("OpenXRAction_dw8ko")
paths = PackedStringArray("/user/hand/left/input/trackpad/click", "/user/hand/right/input/trackpad/click")

[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_ibdte"]
action = SubResource("OpenXRAction_2qoiw")
paths = PackedStringArray("/user/hand/left/input/trackpad/touch", "/user/hand/right/input/trackpad/touch")

[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_cln73"]
action = SubResource("OpenXRAction_bpr3v")
paths = PackedStringArray("/user/hand/left/output/haptic", "/user/hand/right/output/haptic")

[sub_resource type="OpenXRInteractionProfile" id="OpenXRInteractionProfile_63l0o"]
interaction_profile_path = "/interaction_profiles/microsoft/motion_controller"
bindings = [SubResource("OpenXRIPBinding_i7js4"), SubResource("OpenXRIPBinding_40h1v"), SubResource("OpenXRIPBinding_oio2y"), SubResource("OpenXRIPBinding_4w0kh"), SubResource("OpenXRIPBinding_dplae"), SubResource("OpenXRIPBinding_b4xes"), SubResource("OpenXRIPBinding_ayut8"), SubResource("OpenXRIPBinding_x1744"), SubResource("OpenXRIPBinding_og3d5"), SubResource("OpenXRIPBinding_plw8j"), SubResource("OpenXRIPBinding_yf1bj"), SubResource("OpenXRIPBinding_63btr"), SubResource("OpenXRIPBinding_w6fmb"), SubResource("OpenXRIPBinding_ibdte"), SubResource("OpenXRIPBinding_cln73")]

[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_fb2ku"]
action = SubResource("OpenXRAction_fwkv2")
paths = PackedStringArray("/user/hand/left/input/aim/pose", "/user/hand/right/input/aim/pose")

[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_vosp0"]
action = SubResource("OpenXRAction_tccby")
paths = PackedStringArray("/user/hand/left/input/aim/pose", "/user/hand/right/input/aim/pose")

[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_3fpge"]
action = SubResource("OpenXRAction_807p4")
paths = PackedStringArray("/user/hand/left/input/grip/pose", "/user/hand/right/input/grip/pose")

[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_qyhme"]
action = SubResource("OpenXRAction_80wsj")
paths = PackedStringArray("/user/hand/left/input/palm_ext/pose", "/user/hand/right/input/palm_ext/pose")

[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_b52pv"]
action = SubResource("OpenXRAction_ui0f0")
paths = PackedStringArray("/user/hand/left/input/menu/click", "/user/hand/right/input/system/click")

[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_1k8nj"]
action = SubResource("OpenXRAction_vblhs")
paths = PackedStringArray("/user/hand/left/input/x/click", "/user/hand/right/input/a/click")

[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_o246v"]
action = SubResource("OpenXRAction_scu05")
paths = PackedStringArray("/user/hand/left/input/x/touch", "/user/hand/right/input/a/touch")

[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_83c4q"]
action = SubResource("OpenXRAction_bjjdl")
paths = PackedStringArray("/user/hand/left/input/y/click", "/user/hand/right/input/b/click")

[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_fpawy"]
action = SubResource("OpenXRAction_qy0xt")
paths = PackedStringArray("/user/hand/left/input/y/touch", "/user/hand/right/input/b/touch")

[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_4xsbs"]
action = SubResource("OpenXRAction_eblwx")
paths = PackedStringArray("/user/hand/left/input/trigger/value", "/user/hand/right/input/trigger/value")

[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_o7yky"]
action = SubResource("OpenXRAction_w1viq")
paths = PackedStringArray("/user/hand/left/input/trigger/value", "/user/hand/right/input/trigger/value")

[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_4mju2"]
action = SubResource("OpenXRAction_usg6s")
paths = PackedStringArray("/user/hand/left/input/trigger/touch", "/user/hand/right/input/trigger/touch")

[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_hmrq6"]
action = SubResource("OpenXRAction_qlepa")
paths = PackedStringArray("/user/hand/left/input/squeeze/value", "/user/hand/right/input/squeeze/value")

[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_py7wm"]
action = SubResource("OpenXRAction_c3h4k")
paths = PackedStringArray("/user/hand/left/input/squeeze/value", "/user/hand/right/input/squeeze/value")

[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_2c0re"]
action = SubResource("OpenXRAction_cy76p")
paths = PackedStringArray("/user/hand/left/input/thumbstick", "/user/hand/right/input/thumbstick")

[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_lvx2q"]
action = SubResource("OpenXRAction_ov7at")
paths = PackedStringArray("/user/hand/left/input/thumbstick/click", "/user/hand/right/input/thumbstick/click")

[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_yrjpq"]
action = SubResource("OpenXRAction_b1lp0")
paths = PackedStringArray("/user/hand/left/input/thumbstick/touch", "/user/hand/right/input/thumbstick/touch")

[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_243rd"]
action = SubResource("OpenXRAction_bpr3v")
paths = PackedStringArray("/user/hand/left/output/haptic", "/user/hand/right/output/haptic")

[sub_resource type="OpenXRInteractionProfile" id="OpenXRInteractionProfile_d1gvs"]
interaction_profile_path = "/interaction_profiles/oculus/touch_controller"
bindings = [SubResource("OpenXRIPBinding_fb2ku"), SubResource("OpenXRIPBinding_vosp0"), SubResource("OpenXRIPBinding_3fpge"), SubResource("OpenXRIPBinding_qyhme"), SubResource("OpenXRIPBinding_b52pv"), SubResource("OpenXRIPBinding_1k8nj"), SubResource("OpenXRIPBinding_o246v"), SubResource("OpenXRIPBinding_83c4q"), SubResource("OpenXRIPBinding_fpawy"), SubResource("OpenXRIPBinding_4xsbs"), SubResource("OpenXRIPBinding_o7yky"), SubResource("OpenXRIPBinding_4mju2"), SubResource("OpenXRIPBinding_hmrq6"), SubResource("OpenXRIPBinding_py7wm"), SubResource("OpenXRIPBinding_2c0re"), SubResource("OpenXRIPBinding_lvx2q"), SubResource("OpenXRIPBinding_yrjpq"), SubResource("OpenXRIPBinding_243rd")]

[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_3yq5y"]
action = SubResource("OpenXRAction_fwkv2")
paths = PackedStringArray("/user/hand/left/input/aim/pose", "/user/hand/right/input/aim/pose")

[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_yjsvy"]
action = SubResource("OpenXRAction_tccby")
paths = PackedStringArray("/user/hand/left/input/aim/pose", "/user/hand/right/input/aim/pose")

[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_oumby"]
action = SubResource("OpenXRAction_807p4")
paths = PackedStringArray("/user/hand/left/input/grip/pose", "/user/hand/right/input/grip/pose")

[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_7inw5"]
action = SubResource("OpenXRAction_80wsj")
paths = PackedStringArray("/user/hand/left/input/palm_ext/pose", "/user/hand/right/input/palm_ext/pose")

[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_fiypa"]
action = SubResource("OpenXRAction_45jbj")
paths = PackedStringArray("/user/hand/left/input/system/click", "/user/hand/right/input/system/click")

[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_m0efy"]
action = SubResource("OpenXRAction_ui0f0")
paths = PackedStringArray("/user/hand/left/input/menu/click")

[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_8ux8s"]
action = SubResource("OpenXRAction_vblhs")
paths = PackedStringArray("/user/hand/left/input/x/click", "/user/hand/right/input/a/click")

[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_tcqf4"]
action = SubResource("OpenXRAction_scu05")
paths = PackedStringArray("/user/hand/left/input/x/touch", "/user/hand/right/input/a/touch")

[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_ws6wd"]
action = SubResource("OpenXRAction_bjjdl")
paths = PackedStringArray("/user/hand/left/input/y/click", "/user/hand/right/input/b/click")

[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_55qx6"]
action = SubResource("OpenXRAction_qy0xt")
paths = PackedStringArray("/user/hand/left/input/y/touch", "/user/hand/right/input/b/touch")

[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_kima0"]
action = SubResource("OpenXRAction_eblwx")
paths = PackedStringArray("/user/hand/left/input/trigger/value", "/user/hand/right/input/trigger/value")

[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_up8s4"]
action = SubResource("OpenXRAction_w1viq")
paths = PackedStringArray("/user/hand/left/input/trigger/value", "/user/hand/right/input/trigger/value")

[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_0p4qp"]
action = SubResource("OpenXRAction_usg6s")
paths = PackedStringArray("/user/hand/left/input/trigger/touch", "/user/hand/right/input/trigger/touch")

[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_c3wlw"]
action = SubResource("OpenXRAction_qlepa")
paths = PackedStringArray("/user/hand/left/input/squeeze/value", "/user/hand/right/input/squeeze/value")

[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_l62m2"]
action = SubResource("OpenXRAction_c3h4k")
paths = PackedStringArray("/user/hand/left/input/squeeze/value", "/user/hand/right/input/squeeze/value")

[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_doi02"]
action = SubResource("OpenXRAction_cy76p")
paths = PackedStringArray("/user/hand/left/input/thumbstick", "/user/hand/right/input/thumbstick")

[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_vp1bx"]
action = SubResource("OpenXRAction_ov7at")
paths = PackedStringArray("/user/hand/left/input/thumbstick/click", "/user/hand/right/input/thumbstick/click")

[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_n346f"]
action = SubResource("OpenXRAction_b1lp0")
paths = PackedStringArray("/user/hand/left/input/thumbstick/touch", "/user/hand/right/input/thumbstick/touch")

[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_pd7tl"]
action = SubResource("OpenXRAction_bpr3v")
paths = PackedStringArray("/user/hand/left/output/haptic", "/user/hand/right/output/haptic")

[sub_resource type="OpenXRInteractionProfile" id="OpenXRInteractionProfile_7nhr1"]
interaction_profile_path = "/interaction_profiles/bytedance/pico4_controller"
bindings = [SubResource("OpenXRIPBinding_3yq5y"), SubResource("OpenXRIPBinding_yjsvy"), SubResource("OpenXRIPBinding_oumby"), SubResource("OpenXRIPBinding_7inw5"), SubResource("OpenXRIPBinding_fiypa"), SubResource("OpenXRIPBinding_m0efy"), SubResource("OpenXRIPBinding_8ux8s"), SubResource("OpenXRIPBinding_tcqf4"), SubResource("OpenXRIPBinding_ws6wd"), SubResource("OpenXRIPBinding_55qx6"), SubResource("OpenXRIPBinding_kima0"), SubResource("OpenXRIPBinding_up8s4"), SubResource("OpenXRIPBinding_0p4qp"), SubResource("OpenXRIPBinding_c3wlw"), SubResource("OpenXRIPBinding_l62m2"), SubResource("OpenXRIPBinding_doi02"), SubResource("OpenXRIPBinding_vp1bx"), SubResource("OpenXRIPBinding_n346f"), SubResource("OpenXRIPBinding_pd7tl")]

[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_lcisf"]
action = SubResource("OpenXRAction_fwkv2")
paths = PackedStringArray("/user/hand/left/input/aim/pose", "/user/hand/right/input/aim/pose")

[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_8n5yb"]
action = SubResource("OpenXRAction_tccby")
paths = PackedStringArray("/user/hand/left/input/aim/pose", "/user/hand/right/input/aim/pose")

[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_qjt76"]
action = SubResource("OpenXRAction_807p4")
paths = PackedStringArray("/user/hand/left/input/grip/pose", "/user/hand/right/input/grip/pose")

[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_1kv65"]
action = SubResource("OpenXRAction_80wsj")
paths = PackedStringArray("/user/hand/left/input/palm_ext/pose", "/user/hand/right/input/palm_ext/pose")

[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_hmpy1"]
action = SubResource("OpenXRAction_ui0f0")
paths = PackedStringArray("/user/hand/left/input/system/click", "/user/hand/right/input/system/click")

[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_mqmv2"]
action = SubResource("OpenXRAction_vblhs")
paths = PackedStringArray("/user/hand/left/input/a/click", "/user/hand/right/input/a/click")

[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_gyty1"]
action = SubResource("OpenXRAction_scu05")
paths = PackedStringArray("/user/hand/left/input/a/touch", "/user/hand/right/input/a/touch")

[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_5l5q6"]
action = SubResource("OpenXRAction_bjjdl")
paths = PackedStringArray("/user/hand/left/input/b/click", "/user/hand/right/input/b/click")

[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_sd5e1"]
action = SubResource("OpenXRAction_qy0xt")
paths = PackedStringArray("/user/hand/left/input/b/touch", "/user/hand/right/input/b/touch")

[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_3iap0"]
action = SubResource("OpenXRAction_eblwx")
paths = PackedStringArray("/user/hand/left/input/trigger/value", "/user/hand/right/input/trigger/value")

[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_1n6uv"]
action = SubResource("OpenXRAction_w1viq")
paths = PackedStringArray("/user/hand/left/input/trigger/click", "/user/hand/right/input/trigger/click")

[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_fqi75"]
action = SubResource("OpenXRAction_usg6s")
paths = PackedStringArray("/user/hand/left/input/trigger/touch", "/user/hand/right/input/trigger/touch")

[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_pwfvm"]
action = SubResource("OpenXRAction_qlepa")
paths = PackedStringArray("/user/hand/left/input/squeeze/value", "/user/hand/right/input/squeeze/value")

[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_xav52"]
action = SubResource("OpenXRAction_c3h4k")
paths = PackedStringArray("/user/hand/left/input/squeeze/value", "/user/hand/right/input/squeeze/value")

[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_0lm0s"]
action = SubResource("OpenXRAction_nng6x")
paths = PackedStringArray("/user/hand/left/input/squeeze/force", "/user/hand/right/input/squeeze/force")

[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_eaaac"]
action = SubResource("OpenXRAction_cy76p")
paths = PackedStringArray("/user/hand/left/input/thumbstick", "/user/hand/right/input/thumbstick")

[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_63it8"]
action = SubResource("OpenXRAction_ov7at")
paths = PackedStringArray("/user/hand/left/input/thumbstick/click", "/user/hand/right/input/thumbstick/click")

[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_f0alk"]
action = SubResource("OpenXRAction_b1lp0")
paths = PackedStringArray("/user/hand/left/input/thumbstick/touch", "/user/hand/right/input/thumbstick/touch")

[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_ursme"]
action = SubResource("OpenXRAction_nr3q3")
paths = PackedStringArray("/user/hand/left/input/trackpad", "/user/hand/right/input/trackpad")

[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_xrvm1"]
action = SubResource("OpenXRAction_dw8ko")
paths = PackedStringArray("/user/hand/left/input/trackpad/force", "/user/hand/right/input/trackpad/force")

[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_xjf4a"]
action = SubResource("OpenXRAction_2qoiw")
paths = PackedStringArray("/user/hand/left/input/trackpad/touch", "/user/hand/right/input/trackpad/touch")

[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_mxl4m"]
action = SubResource("OpenXRAction_bpr3v")
paths = PackedStringArray("/user/hand/left/output/haptic", "/user/hand/right/output/haptic")

[sub_resource type="OpenXRInteractionProfile" id="OpenXRInteractionProfile_7eqot"]
interaction_profile_path = "/interaction_profiles/valve/index_controller"
bindings = [SubResource("OpenXRIPBinding_lcisf"), SubResource("OpenXRIPBinding_8n5yb"), SubResource("OpenXRIPBinding_qjt76"), SubResource("OpenXRIPBinding_1kv65"), SubResource("OpenXRIPBinding_hmpy1"), SubResource("OpenXRIPBinding_mqmv2"), SubResource("OpenXRIPBinding_gyty1"), SubResource("OpenXRIPBinding_5l5q6"), SubResource("OpenXRIPBinding_sd5e1"), SubResource("OpenXRIPBinding_3iap0"), SubResource("OpenXRIPBinding_1n6uv"), SubResource("OpenXRIPBinding_fqi75"), SubResource("OpenXRIPBinding_pwfvm"), SubResource("OpenXRIPBinding_xav52"), SubResource("OpenXRIPBinding_0lm0s"), SubResource("OpenXRIPBinding_eaaac"), SubResource("OpenXRIPBinding_63it8"), SubResource("OpenXRIPBinding_f0alk"), SubResource("OpenXRIPBinding_ursme"), SubResource("OpenXRIPBinding_xrvm1"), SubResource("OpenXRIPBinding_xjf4a"), SubResource("OpenXRIPBinding_mxl4m")]

[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_5yqmi"]
action = SubResource("OpenXRAction_fwkv2")
paths = PackedStringArray("/user/hand/left/input/aim/pose", "/user/hand/right/input/aim/pose")

[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_prsqn"]
action = SubResource("OpenXRAction_tccby")
paths = PackedStringArray("/user/hand/left/input/aim/pose", "/user/hand/right/input/aim/pose")

[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_0igvu"]
action = SubResource("OpenXRAction_807p4")
paths = PackedStringArray("/user/hand/left/input/grip/pose", "/user/hand/right/input/grip/pose")

[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_voh7v"]
action = SubResource("OpenXRAction_80wsj")
paths = PackedStringArray("/user/hand/left/input/palm_ext/pose", "/user/hand/right/input/palm_ext/pose")

[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_bhwkr"]
action = SubResource("OpenXRAction_ui0f0")
paths = PackedStringArray("/user/hand/left/input/menu/click", "/user/hand/right/input/menu/click")

[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_67ls1"]
action = SubResource("OpenXRAction_vblhs")
paths = PackedStringArray("/user/hand/left/input/x/click", "/user/hand/right/input/a/click")

[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_5i4u5"]
action = SubResource("OpenXRAction_bjjdl")
paths = PackedStringArray("/user/hand/left/input/y/click", "/user/hand/right/input/b/click")

[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_62pe6"]
action = SubResource("OpenXRAction_eblwx")
paths = PackedStringArray("/user/hand/left/input/trigger/value", "/user/hand/right/input/trigger/value")

[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_gf614"]
action = SubResource("OpenXRAction_w1viq")
paths = PackedStringArray("/user/hand/left/input/trigger/value", "/user/hand/right/input/trigger/value")

[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_uv0xg"]
action = SubResource("OpenXRAction_qlepa")
paths = PackedStringArray("/user/hand/left/input/squeeze/value", "/user/hand/right/input/squeeze/value")

[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_e8sfq"]
action = SubResource("OpenXRAction_c3h4k")
paths = PackedStringArray("/user/hand/left/input/squeeze/value", "/user/hand/right/input/squeeze/value")

[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_7fl17"]
action = SubResource("OpenXRAction_cy76p")
paths = PackedStringArray("/user/hand/left/input/thumbstick", "/user/hand/right/input/thumbstick")

[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_4gxxg"]
action = SubResource("OpenXRAction_ov7at")
paths = PackedStringArray("/user/hand/left/input/thumbstick/click", "/user/hand/right/input/thumbstick/click")

[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_tx0fc"]
action = SubResource("OpenXRAction_bpr3v")
paths = PackedStringArray("/user/hand/left/output/haptic", "/user/hand/right/output/haptic")

[sub_resource type="OpenXRInteractionProfile" id="OpenXRInteractionProfile_hkyus"]
interaction_profile_path = "/interaction_profiles/hp/mixed_reality_controller"
bindings = [SubResource("OpenXRIPBinding_5yqmi"), SubResource("OpenXRIPBinding_prsqn"), SubResource("OpenXRIPBinding_0igvu"), SubResource("OpenXRIPBinding_voh7v"), SubResource("OpenXRIPBinding_bhwkr"), SubResource("OpenXRIPBinding_67ls1"), SubResource("OpenXRIPBinding_5i4u5"), SubResource("OpenXRIPBinding_62pe6"), SubResource("OpenXRIPBinding_gf614"), SubResource("OpenXRIPBinding_uv0xg"), SubResource("OpenXRIPBinding_e8sfq"), SubResource("OpenXRIPBinding_7fl17"), SubResource("OpenXRIPBinding_4gxxg"), SubResource("OpenXRIPBinding_tx0fc")]

[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_nthgu"]
action = SubResource("OpenXRAction_fwkv2")
paths = PackedStringArray("/user/hand/left/input/aim/pose", "/user/hand/right/input/aim/pose")

[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_hlmxk"]
action = SubResource("OpenXRAction_tccby")
paths = PackedStringArray("/user/hand/left/input/aim/pose", "/user/hand/right/input/aim/pose")

[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_bjfx5"]
action = SubResource("OpenXRAction_807p4")
paths = PackedStringArray("/user/hand/left/input/grip/pose", "/user/hand/right/input/grip/pose")

[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_q51h0"]
action = SubResource("OpenXRAction_80wsj")
paths = PackedStringArray("/user/hand/left/input/palm_ext/pose", "/user/hand/right/input/palm_ext/pose")

[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_nh86x"]
action = SubResource("OpenXRAction_ui0f0")
paths = PackedStringArray("/user/hand/left/input/menu/click", "/user/hand/right/input/menu/click")

[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_yf1gi"]
action = SubResource("OpenXRAction_eblwx")
paths = PackedStringArray("/user/hand/left/input/trigger/value", "/user/hand/right/input/trigger/value")

[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_j2bso"]
action = SubResource("OpenXRAction_w1viq")
paths = PackedStringArray("/user/hand/left/input/trigger/value", "/user/hand/right/input/trigger/value")

[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_4piin"]
action = SubResource("OpenXRAction_qlepa")
paths = PackedStringArray("/user/hand/left/input/squeeze/click", "/user/hand/right/input/squeeze/click")

[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_qftdu"]
action = SubResource("OpenXRAction_c3h4k")
paths = PackedStringArray("/user/hand/left/input/squeeze/click", "/user/hand/right/input/squeeze/click")

[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_apxuf"]
action = SubResource("OpenXRAction_cy76p")
paths = PackedStringArray("/user/hand/left/input/thumbstick", "/user/hand/right/input/thumbstick")

[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_sduy1"]
action = SubResource("OpenXRAction_ov7at")
paths = PackedStringArray("/user/hand/left/input/thumbstick/click", "/user/hand/right/input/thumbstick/click")

[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_2b7oh"]
action = SubResource("OpenXRAction_nr3q3")
paths = PackedStringArray("/user/hand/left/input/trackpad", "/user/hand/right/input/trackpad")

[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_n5sgj"]
action = SubResource("OpenXRAction_dw8ko")
paths = PackedStringArray("/user/hand/left/input/trackpad/click", "/user/hand/right/input/trackpad/click")

[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_pkco8"]
action = SubResource("OpenXRAction_2qoiw")
paths = PackedStringArray("/user/hand/left/input/trackpad/touch", "/user/hand/right/input/trackpad/touch")

[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_0dhtv"]
action = SubResource("OpenXRAction_bpr3v")
paths = PackedStringArray("/user/hand/left/output/haptic", "/user/hand/right/output/haptic")

[sub_resource type="OpenXRInteractionProfile" id="OpenXRInteractionProfile_s7fpl"]
interaction_profile_path = "/interaction_profiles/samsung/odyssey_controller"
bindings = [SubResource("OpenXRIPBinding_nthgu"), SubResource("OpenXRIPBinding_hlmxk"), SubResource("OpenXRIPBinding_bjfx5"), SubResource("OpenXRIPBinding_q51h0"), SubResource("OpenXRIPBinding_nh86x"), SubResource("OpenXRIPBinding_yf1gi"), SubResource("OpenXRIPBinding_j2bso"), SubResource("OpenXRIPBinding_4piin"), SubResource("OpenXRIPBinding_qftdu"), SubResource("OpenXRIPBinding_apxuf"), SubResource("OpenXRIPBinding_sduy1"), SubResource("OpenXRIPBinding_2b7oh"), SubResource("OpenXRIPBinding_n5sgj"), SubResource("OpenXRIPBinding_pkco8"), SubResource("OpenXRIPBinding_0dhtv")]

[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_g8av7"]
action = SubResource("OpenXRAction_fwkv2")
paths = PackedStringArray("/user/hand/left/input/aim/pose", "/user/hand/right/input/aim/pose")

[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_7y7pf"]
action = SubResource("OpenXRAction_tccby")
paths = PackedStringArray("/user/hand/left/input/aim/pose", "/user/hand/right/input/aim/pose")

[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_cp8iw"]
action = SubResource("OpenXRAction_807p4")
paths = PackedStringArray("/user/hand/left/input/grip/pose", "/user/hand/right/input/grip/pose")

[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_0g74l"]
action = SubResource("OpenXRAction_80wsj")
paths = PackedStringArray("/user/hand/left/input/palm_ext/pose", "/user/hand/right/input/palm_ext/pose")

[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_7ya4l"]
action = SubResource("OpenXRAction_ui0f0")
paths = PackedStringArray("/user/hand/left/input/menu/click")

[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_8jedd"]
action = SubResource("OpenXRAction_45jbj")
paths = PackedStringArray("/user/hand/right/input/system/click")

[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_bmt7i"]
action = SubResource("OpenXRAction_vblhs")
paths = PackedStringArray("/user/hand/left/input/x/click", "/user/hand/right/input/a/click")

[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_g2g12"]
action = SubResource("OpenXRAction_bjjdl")
paths = PackedStringArray("/user/hand/left/input/y/click", "/user/hand/right/input/b/click")

[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_6sdeq"]
action = SubResource("OpenXRAction_eblwx")
paths = PackedStringArray("/user/hand/left/input/trigger/value", "/user/hand/right/input/trigger/value")

[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_a5ynp"]
action = SubResource("OpenXRAction_w1viq")
paths = PackedStringArray("/user/hand/left/input/trigger/click", "/user/hand/right/input/trigger/click")

[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_vxcpl"]
action = SubResource("OpenXRAction_qlepa")
paths = PackedStringArray("/user/hand/left/input/squeeze/click", "/user/hand/right/input/squeeze/click")

[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_4h533"]
action = SubResource("OpenXRAction_c3h4k")
paths = PackedStringArray("/user/hand/left/input/squeeze/click", "/user/hand/right/input/squeeze/click")

[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_8u6wf"]
action = SubResource("OpenXRAction_cy76p")
paths = PackedStringArray("/user/hand/left/input/thumbstick", "/user/hand/right/input/thumbstick")

[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_fsgjj"]
action = SubResource("OpenXRAction_ov7at")
paths = PackedStringArray("/user/hand/left/input/thumbstick/click", "/user/hand/right/input/thumbstick/click")

[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_ywec5"]
action = SubResource("OpenXRAction_b1lp0")
paths = PackedStringArray("/user/hand/left/input/thumbstick/touch", "/user/hand/right/input/thumbstick/touch")

[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_wavha"]
action = SubResource("OpenXRAction_bpr3v")
paths = PackedStringArray("/user/hand/left/output/haptic", "/user/hand/right/output/haptic")

[sub_resource type="OpenXRInteractionProfile" id="OpenXRInteractionProfile_oqstg"]
interaction_profile_path = "/interaction_profiles/htc/vive_cosmos_controller"
bindings = [SubResource("OpenXRIPBinding_g8av7"), SubResource("OpenXRIPBinding_7y7pf"), SubResource("OpenXRIPBinding_cp8iw"), SubResource("OpenXRIPBinding_0g74l"), SubResource("OpenXRIPBinding_7ya4l"), SubResource("OpenXRIPBinding_8jedd"), SubResource("OpenXRIPBinding_bmt7i"), SubResource("OpenXRIPBinding_g2g12"), SubResource("OpenXRIPBinding_6sdeq"), SubResource("OpenXRIPBinding_a5ynp"), SubResource("OpenXRIPBinding_vxcpl"), SubResource("OpenXRIPBinding_4h533"), SubResource("OpenXRIPBinding_8u6wf"), SubResource("OpenXRIPBinding_fsgjj"), SubResource("OpenXRIPBinding_ywec5"), SubResource("OpenXRIPBinding_wavha")]

[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_v6glx"]
action = SubResource("OpenXRAction_fwkv2")
paths = PackedStringArray("/user/hand/left/input/aim/pose", "/user/hand/right/input/aim/pose")

[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_7bdjh"]
action = SubResource("OpenXRAction_tccby")
paths = PackedStringArray("/user/hand/left/input/aim/pose", "/user/hand/right/input/aim/pose")

[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_twr2v"]
action = SubResource("OpenXRAction_807p4")
paths = PackedStringArray("/user/hand/left/input/grip/pose", "/user/hand/right/input/grip/pose")

[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_jh46w"]
action = SubResource("OpenXRAction_80wsj")
paths = PackedStringArray("/user/hand/left/input/palm_ext/pose", "/user/hand/right/input/palm_ext/pose")

[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_5f5xy"]
action = SubResource("OpenXRAction_ui0f0")
paths = PackedStringArray("/user/hand/left/input/menu/click")

[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_fiuc6"]
action = SubResource("OpenXRAction_45jbj")
paths = PackedStringArray("/user/hand/right/input/system/click")

[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_xxiks"]
action = SubResource("OpenXRAction_vblhs")
paths = PackedStringArray("/user/hand/left/input/x/click", "/user/hand/right/input/a/click")

[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_ieebs"]
action = SubResource("OpenXRAction_bjjdl")
paths = PackedStringArray("/user/hand/left/input/y/click", "/user/hand/right/input/b/click")

[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_lge7y"]
action = SubResource("OpenXRAction_eblwx")
paths = PackedStringArray("/user/hand/left/input/trigger/value", "/user/hand/right/input/trigger/value")

[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_1pdxl"]
action = SubResource("OpenXRAction_w1viq")
paths = PackedStringArray("/user/hand/left/input/trigger/click", "/user/hand/right/input/trigger/click")

[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_4pfas"]
action = SubResource("OpenXRAction_usg6s")
paths = PackedStringArray("/user/hand/left/input/trigger/touch", "/user/hand/right/input/trigger/touch")

[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_b47in"]
action = SubResource("OpenXRAction_qlepa")
paths = PackedStringArray("/user/hand/left/input/squeeze/click", "/user/hand/right/input/squeeze/click")

[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_sw44i"]
action = SubResource("OpenXRAction_c3h4k")
paths = PackedStringArray("/user/hand/left/input/squeeze/click", "/user/hand/right/input/squeeze/click")

[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_250lx"]
action = SubResource("OpenXRAction_cy76p")
paths = PackedStringArray("/user/hand/left/input/thumbstick", "/user/hand/right/input/thumbstick")

[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_3gsth"]
action = SubResource("OpenXRAction_ov7at")
paths = PackedStringArray("/user/hand/left/input/thumbstick/click", "/user/hand/right/input/thumbstick/click")

[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_iqxaj"]
action = SubResource("OpenXRAction_b1lp0")
paths = PackedStringArray("/user/hand/left/input/thumbstick/touch", "/user/hand/right/input/thumbstick/touch")

[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_bxrq7"]
action = SubResource("OpenXRAction_2qoiw")
paths = PackedStringArray("/user/hand/left/input/thumbrest/touch", "/user/hand/right/input/thumbrest/touch")

[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_06uty"]
action = SubResource("OpenXRAction_bpr3v")
paths = PackedStringArray("/user/hand/left/output/haptic", "/user/hand/right/output/haptic")

[sub_resource type="OpenXRInteractionProfile" id="OpenXRInteractionProfile_im3lh"]
interaction_profile_path = "/interaction_profiles/htc/vive_focus3_controller"
bindings = [SubResource("OpenXRIPBinding_v6glx"), SubResource("OpenXRIPBinding_7bdjh"), SubResource("OpenXRIPBinding_twr2v"), SubResource("OpenXRIPBinding_jh46w"), SubResource("OpenXRIPBinding_5f5xy"), SubResource("OpenXRIPBinding_fiuc6"), SubResource("OpenXRIPBinding_xxiks"), SubResource("OpenXRIPBinding_ieebs"), SubResource("OpenXRIPBinding_lge7y"), SubResource("OpenXRIPBinding_1pdxl"), SubResource("OpenXRIPBinding_4pfas"), SubResource("OpenXRIPBinding_b47in"), SubResource("OpenXRIPBinding_sw44i"), SubResource("OpenXRIPBinding_250lx"), SubResource("OpenXRIPBinding_3gsth"), SubResource("OpenXRIPBinding_iqxaj"), SubResource("OpenXRIPBinding_bxrq7"), SubResource("OpenXRIPBinding_06uty")]

[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_3scro"]
action = SubResource("OpenXRAction_fwkv2")
paths = PackedStringArray("/user/hand/left/input/aim/pose", "/user/hand/right/input/aim/pose")

[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_4dxf0"]
action = SubResource("OpenXRAction_tccby")
paths = PackedStringArray("/user/hand/left/input/aim/pose", "/user/hand/right/input/aim/pose")

[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_s518h"]
action = SubResource("OpenXRAction_807p4")
paths = PackedStringArray("/user/hand/left/input/grip/pose", "/user/hand/right/input/grip/pose")

[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_60d7f"]
action = SubResource("OpenXRAction_80wsj")
paths = PackedStringArray("/user/hand/left/input/palm_ext/pose", "/user/hand/right/input/palm_ext/pose")

[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_bfwja"]
action = SubResource("OpenXRAction_ui0f0")
paths = PackedStringArray("/user/hand/left/input/home/click", "/user/hand/right/input/home/click")

[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_cswey"]
action = SubResource("OpenXRAction_eblwx")
paths = PackedStringArray("/user/hand/left/input/trigger/value", "/user/hand/right/input/trigger/value")

[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_rneac"]
action = SubResource("OpenXRAction_w1viq")
paths = PackedStringArray("/user/hand/left/input/trigger/click", "/user/hand/right/input/trigger/click")

[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_l1v3b"]
action = SubResource("OpenXRAction_cy76p")
paths = PackedStringArray("/user/hand/left/input/trackpad", "/user/hand/right/input/trackpad")

[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_xf8vn"]
action = SubResource("OpenXRAction_ov7at")
paths = PackedStringArray("/user/hand/left/input/trackpad/click", "/user/hand/right/input/trackpad/click")

[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_lxr1y"]
action = SubResource("OpenXRAction_b1lp0")
paths = PackedStringArray("/user/hand/left/input/trackpad/touch", "/user/hand/right/input/trackpad/touch")

[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_12ipx"]
action = SubResource("OpenXRAction_bpr3v")
paths = PackedStringArray("/user/hand/left/output/haptic", "/user/hand/right/output/haptic")

[sub_resource type="OpenXRInteractionProfile" id="OpenXRInteractionProfile_0imjq"]
interaction_profile_path = "/interaction_profiles/huawei/controller"
bindings = [SubResource("OpenXRIPBinding_3scro"), SubResource("OpenXRIPBinding_4dxf0"), SubResource("OpenXRIPBinding_s518h"), SubResource("OpenXRIPBinding_60d7f"), SubResource("OpenXRIPBinding_bfwja"), SubResource("OpenXRIPBinding_cswey"), SubResource("OpenXRIPBinding_rneac"), SubResource("OpenXRIPBinding_l1v3b"), SubResource("OpenXRIPBinding_xf8vn"), SubResource("OpenXRIPBinding_lxr1y"), SubResource("OpenXRIPBinding_12ipx")]

[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_cpjyf"]
action = SubResource("OpenXRAction_fwkv2")
paths = PackedStringArray("/user/vive_tracker_htcx/role/left_foot/input/grip/pose", "/user/vive_tracker_htcx/role/right_foot/input/grip/pose", "/user/vive_tracker_htcx/role/left_shoulder/input/grip/pose", "/user/vive_tracker_htcx/role/right_shoulder/input/grip/pose", "/user/vive_tracker_htcx/role/left_elbow/input/grip/pose", "/user/vive_tracker_htcx/role/right_elbow/input/grip/pose", "/user/vive_tracker_htcx/role/left_knee/input/grip/pose", "/user/vive_tracker_htcx/role/right_knee/input/grip/pose", "/user/vive_tracker_htcx/role/waist/input/grip/pose", "/user/vive_tracker_htcx/role/chest/input/grip/pose", "/user/vive_tracker_htcx/role/camera/input/grip/pose", "/user/vive_tracker_htcx/role/keyboard/input/grip/pose")

[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_k4d3m"]
action = SubResource("OpenXRAction_bpr3v")
paths = PackedStringArray("/user/vive_tracker_htcx/role/left_foot/output/haptic", "/user/vive_tracker_htcx/role/right_foot/output/haptic", "/user/vive_tracker_htcx/role/left_shoulder/output/haptic", "/user/vive_tracker_htcx/role/right_shoulder/output/haptic", "/user/vive_tracker_htcx/role/left_elbow/output/haptic", "/user/vive_tracker_htcx/role/right_elbow/output/haptic", "/user/vive_tracker_htcx/role/left_knee/output/haptic", "/user/vive_tracker_htcx/role/right_knee/output/haptic", "/user/vive_tracker_htcx/role/waist/output/haptic", "/user/vive_tracker_htcx/role/chest/output/haptic", "/user/vive_tracker_htcx/role/camera/output/haptic", "/user/vive_tracker_htcx/role/keyboard/output/haptic")

[sub_resource type="OpenXRInteractionProfile" id="OpenXRInteractionProfile_ca6ww"]
interaction_profile_path = "/interaction_profiles/htc/vive_tracker_htcx"
bindings = [SubResource("OpenXRIPBinding_cpjyf"), SubResource("OpenXRIPBinding_k4d3m")]

[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_6yl1s"]
action = SubResource("OpenXRAction_fwkv2")
paths = PackedStringArray("/user/eyes_ext/input/gaze_ext/pose")

[sub_resource type="OpenXRInteractionProfile" id="OpenXRInteractionProfile_n1qy1"]
interaction_profile_path = "/interaction_profiles/ext/eye_gaze_interaction"
bindings = [SubResource("OpenXRIPBinding_6yl1s")]

[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_pqiwt"]
action = SubResource("OpenXRAction_fwkv2")
paths = PackedStringArray("/user/hand/left/input/aim/pose", "/user/hand/right/input/aim/pose")

[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_ean2o"]
action = SubResource("OpenXRAction_tccby")
paths = PackedStringArray("/user/hand/left/input/aim/pose", "/user/hand/right/input/aim/pose")

[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_g5glu"]
action = SubResource("OpenXRAction_807p4")
paths = PackedStringArray("/user/hand/left/input/grip/pose", "/user/hand/right/input/grip/pose")

[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_5etj8"]
action = SubResource("OpenXRAction_80wsj")
paths = PackedStringArray("/user/hand/left/input/palm_ext/pose", "/user/hand/right/input/palm_ext/pose")

[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_s03rj"]
action = SubResource("OpenXRAction_cy76p")
paths = PackedStringArray("/user/hand/left/input/pinch_ext/value", "/user/hand/right/input/pinch_ext/value")

[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_1rwuq"]
action = SubResource("OpenXRAction_ov7at")
paths = PackedStringArray("/user/hand/left/input/pinch_ext/ready_ext", "/user/hand/right/input/pinch_ext/ready_ext")

[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_8wklx"]
action = SubResource("OpenXRAction_nr3q3")
paths = PackedStringArray("/user/hand/left/input/aim_activate_ext/value", "/user/hand/right/input/aim_activate_ext/value")

[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_pr66l"]
action = SubResource("OpenXRAction_dw8ko")
paths = PackedStringArray("/user/hand/left/input/aim_activate_ext/ready_ext", "/user/hand/right/input/aim_activate_ext/ready_ext")

[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_xwu2c"]
action = SubResource("OpenXRAction_qlepa")
paths = PackedStringArray("/user/hand/left/input/grasp_ext/value", "/user/hand/right/input/grasp_ext/value")

[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_axobk"]
action = SubResource("OpenXRAction_c3h4k")
paths = PackedStringArray("/user/hand/left/input/grasp_ext/ready_ext", "/user/hand/right/input/grasp_ext/ready_ext")

[sub_resource type="OpenXRInteractionProfile" id="OpenXRInteractionProfile_n3qqv"]
interaction_profile_path = "/interaction_profiles/ext/hand_interaction_ext"
bindings = [SubResource("OpenXRIPBinding_pqiwt"), SubResource("OpenXRIPBinding_ean2o"), SubResource("OpenXRIPBinding_g5glu"), SubResource("OpenXRIPBinding_5etj8"), SubResource("OpenXRIPBinding_s03rj"), SubResource("OpenXRIPBinding_1rwuq"), SubResource("OpenXRIPBinding_8wklx"), SubResource("OpenXRIPBinding_pr66l"), SubResource("OpenXRIPBinding_xwu2c"), SubResource("OpenXRIPBinding_axobk")]

[resource]
action_sets = [SubResource("OpenXRActionSet_neh4x")]
interaction_profiles = [SubResource("OpenXRInteractionProfile_a2pir"), SubResource("OpenXRInteractionProfile_c40fg"), SubResource("OpenXRInteractionProfile_63l0o"), SubResource("OpenXRInteractionProfile_d1gvs"), SubResource("OpenXRInteractionProfile_7nhr1"), SubResource("OpenXRInteractionProfile_7eqot"), SubResource("OpenXRInteractionProfile_hkyus"), SubResource("OpenXRInteractionProfile_s7fpl"), SubResource("OpenXRInteractionProfile_oqstg"), SubResource("OpenXRInteractionProfile_im3lh"), SubResource("OpenXRInteractionProfile_0imjq"), SubResource("OpenXRInteractionProfile_ca6ww"), SubResource("OpenXRInteractionProfile_n1qy1"), SubResource("OpenXRInteractionProfile_n3qqv")]


================================================
FILE: Entities/Boss/ForestBoss/Assets/tentacle_plant/license.txt
================================================
Model Information:
* title:	Tentacle Plant
* source:	https://sketchfab.com/3d-models/tentacle-plant-8372c5e8dfca49a1ae1046e02f47e2d0
* author:	meowskie (https://sketchfab.com/meowskie)

Model License:
* license type:	CC-BY-4.0 (http://creativecommons.org/licenses/by/4.0/)
* requirements:	Author must be credited. Commercial use is allowed.

If you use this 3D model in your project be sure to copy paste this credit wherever you share it:
This work is based on "Tentacle Plant" (https://sketchfab.com/3d-models/tentacle-plant-8372c5e8dfca49a1ae1046e02f47e2d0) by meowskie (https://sketchfab.com/meowskie) licensed under CC-BY-4.0 (http://creativecommons.org/licenses/by/4.0/)

================================================
FILE: Entities/Boss/ForestBoss/Assets/tentacle_plant/scene.gltf
================================================
{
  "accessors": [
    {
      "bufferView": 3,
      "componentType": 5126,
      "count": 1275,
      "max": [
        7.8682169914245605,
        5.5432939529418945,
        6.467147350311279
      ],
      "min": [
        -6.794010639190674,
        -0.5413760542869568,
        -9.19354248046875
      ],
      "type": "VEC3"
    },
    {
      "bufferView": 3,
      "byteOffset": 15300,
      "componentType": 5126,
      "count": 1275,
      "max": [
        0.9991268515586853,
        0.9992910027503967,
        0.9990705251693726
      ],
      "min": [
        -0.99994957447052,
        -0.9994423985481262,
        -0.9985138177871704
      ],
      "type": "VEC3"
    },
    {
      "bufferView": 4,
      "componentType": 5126,
      "count": 1275,
      "max": [
        0.9954478740692139,
        0.9999555349349976,
        0.998845100402832,
        1.0
      ],
      "min": [
        -0.9950587749481201,
        -0.9646920561790466,
        -0.9997947216033936,
        -1.0
      ],
      "type": "VEC4"
    },
    {
      "bufferView": 2,
      "componentType": 5126,
      "count": 1275,
      "max": [
        0.991901159286499,
        0.47071176767349243
      ],
      "min": [
        0.02660093456506729,
        0.03723999857902527
      ],
      "type": "VEC2"
    },
    {
      "bufferView": 1,
      "componentType": 5125,
      "count": 6156,
      "type": "SCALAR"
    },
    {
      "bufferView": 3,
      "byteOffset": 30600,
      "componentType": 5126,
      "count": 640,
      "max": [
        7.1873955726623535,
        1.9416049718856812,
        7.70430850982666
      ],
      "min": [
        -7.1873955726623535,
        -1.9416049718856812,
        -7.70430850982666
      ],
      "type": "VEC3"
    },
    {
      "bufferView": 3,
      "byteOffset": 38280,
      "componentType": 5126,
      "count": 640,
      "max": [
        0.9266251921653748,
        0.9968500733375549,
        0.9433906078338623
      ],
      "min": [
        -0.9045873284339905,
        -0.9998641610145569,
        -0.9669215679168701
      ],
      "type": "VEC3"
    },
    {
      "bufferView": 4,
      "byteOffset": 20400,
      "componentType": 5126,
      "count": 640,
      "max": [
        0.9982564449310303,
        0.9697437286376953,
        0.9978392720222473,
        1.0
      ],
      "min": [
        -0.9994694590568542,
        -0.9090744256973267,
        -0.9909385442733765,
        -1.0
      ],
      "type": "VEC4"
    },
    {
      "bufferView": 2,
      "byteOffset": 10200,
      "componentType": 5126,
      "count": 640,
      "max": [
        0.9822874665260315,
        0.947375476360321
      ],
      "min": [
        -7.450580596923828e-09,
        0.007025793194770813
      ],
      "type": "VEC2"
    },
    {
      "bufferView": 1,
      "byteOffset": 24624,
      "componentType": 5125,
      "count": 3120,
      "type": "SCALAR"
    },
    {
      "bufferView": 3,
      "byteOffset": 45960,
      "componentType": 5126,
      "count": 153,
      "max": [
        2.415872812271118,
        1.5372421741485596,
        2.092207431793213
      ],
      "min": [
        -2.415872812271118,
        -1.5372421741485596,
        -2.092207431793213
      ],
      "type": "VEC3"
    },
    {
      "bufferView": 3,
      "byteOffset": 47796,
      "componentType": 5126,
      "count": 153,
      "max": [
        1.0,
        1.0,
        0.9924546480178833
      ],
      "min": [
        -1.0,
        -1.0,
        -0.9924545884132385
      ],
      "type": "VEC3"
    },
    {
      "bufferView": 4,
      "byteOffset": 30640,
      "componentType": 5126,
      "count": 153,
      "max": [
        0.9989399909973145,
        0.9525972008705139,
        0.9998883008956909,
        1.0
      ],
      "min": [
        -0.8939074873924255,
        -0.9667151570320129,
        -0.9179355502128601,
        1.0
      ],
      "type": "VEC4"
    },
    {
      "bufferView": 2,
      "byteOffset": 15320,
      "componentType": 5126,
      "count": 153,
      "max": [
        0.9974984526634216,
        0.9954039454460144
      ],
      "min": [
        0.0,
        0.05620633810758591
      ],
      "type": "VEC2"
    },
    {
      "bufferView": 1,
      "byteOffset": 37104,
      "componentType": 5125,
      "count": 648,
      "type": "SCALAR"
    },
    {
      "bufferView": 5,
      "componentType": 5126,
      "count": 43,
      "max": [
        1.0,
        0.8551408648490906,
        1.0,
        0.0,
        0.999156653881073,
        1.0,
        0.9276458621025085,
        0.0,
        0.9558731317520142,
        0.9883369207382202,
        1.0,
        0.0,
        2.135951042175293,
        6.126713275909424,
        2.082347869873047,
        1.0
      ],
      "min": [
        -0.8391138911247253,
        -0.8584731817245483,
        -1.0,
        0.0,
        -0.5685398578643799,
        0.04106123000383377,
        -0.44171446561813354,
        0.0,
        -0.9666204452514648,
        -0.999156653881073,
        -0.8707877397537231,
        0.0,
        -10.188478469848633,
        -8.916228294372559,
        -3.2669618129730225,
        1.0
      ],
      "type": "MAT4"
    },
    {
      "bufferView": 0,
      "componentType": 5123,
      "count": 1275,
      "type": "VEC4"
    },
    {
      "bufferView": 4,
      "byteOffset": 33088,
      "componentType": 5126,
      "count": 1275,
      "max": [
        1.0,
        0.49950891733169556,
        0.18773400783538818,
        0.04423079639673233
      ],
      "min": [
        0.46269920468330383,
        0.0,
        0.0,
        0.0
      ],
      "type": "VEC4"
    },
    {
      "bufferView": 6,
      "componentType": 5126,
      "count": 60,
      "max": [
        2.0
      ],
      "min": [
        0.03333333507180214
      ],
      "type": "SCALAR"
    },
    {
      "bufferView": 7,
      "componentType": 5126,
      "count": 60,
      "max": [
        1.7864117622375488,
        5.482979774475098,
        -2.7464935779571533
      ],
      "min": [
        1.1236560344696045,
        5.024723529815674,
        -2.7464938163757324
      ],
      "type": "VEC3"
    },
    {
      "bufferView": 6,
      "byteOffset": 240,
      "componentType": 5126,
      "count": 60,
      "max": [
        2.0
      ],
      "min": [
        0.03333333507180214
      ],
      "type": "SCALAR"
    },
    {
      "bufferView": 7,
      "byteOffset": 720,
      "componentType": 5126,
      "count": 60,
      "max": [
        0.11649152636528015,
        6.5463175773620605,
        2.7355051040649414
      ],
      "min": [
        -0.05627038702368736,
        5.017951965332031,
        0.7840795516967773
      ],
      "type": "VEC3"
    },
    {
      "bufferView": 6,
      "byteOffset": 480,
      "componentType": 5126,
      "count": 60,
      "max": [
        2.0
      ],
      "min": [
        0.03333333507180214
      ],
      "type": "SCALAR"
    },
    {
      "bufferView": 7,
      "byteOffset": 1440,
      "componentType": 5126,
      "count": 60,
      "max": [
        4.761991500854492,
        4.45926570892334,
        1.0450295209884644
      ],
      "min": [
        2.546340227127075,
        4.290609359741211,
        1.014301061630249
      ],
      "type": "VEC3"
    },
    {
      "bufferView": 6,
      "byteOffset": 720,
      "componentType": 5126,
      "count": 60,
      "max": [
        2.0
      ],
      "min": [
        0.03333333507180214
      ],
      "type": "SCALAR"
    },
    {
      "bufferView": 7,
      "byteOffset": 2160,
      "componentType": 5126,
      "count": 60,
      "max": [
        -3.455958604812622,
        5.555484771728516,
        4.861143589019775
      ],
      "min": [
        -6.451231479644775,
        5.479084014892578,
        3.5612411499023438
      ],
      "type": "VEC3"
    },
    {
      "bufferView": 6,
      "byteOffset": 960,
      "componentType": 5126,
      "count": 60,
      "max": [
        2.0
      ],
      "min": [
        0.03333333507180214
      ],
      "type": "SCALAR"
    },
    {
      "bufferView": 7,
      "byteOffset": 2880,
      "componentType": 5126,
      "count": 60,
      "max": [
        7.657593727111816,
        5.215770244598389,
        6.628218650817871
      ],
      "min": [
        7.358046054840088,
        4.814883232116699,
        6.308687210083008
      ],
      "type": "VEC3"
    },
    {
      "bufferView": 6,
      "byteOffset": 1200,
      "componentType": 5126,
      "count": 60,
      "max": [
        2.0
      ],
      "min": [
        0.03333333507180214
      ],
      "type": "SCALAR"
    },
    {
      "bufferView": 7,
      "byteOffset": 3600,
      "componentType": 5126,
      "count": 60,
      "max": [
        1.1184431314468384,
        8.072482109069824,
        -9.013506889343262
      ],
      "min": [
        1.1184431314468384,
        5.37436056137085,
        -9.013506889343262
      ],
      "type": "VEC3"
    },
    {
      "bufferView": 6,
      "byteOffset": 1440,
      "componentType": 5126,
      "count": 60,
      "max": [
        2.0
      ],
      "min": [
        0.03333333507180214
      ],
      "type": "SCALAR"
    },
    {
      "bufferView": 8,
      "componentType": 5126,
      "count": 60,
      "max": [
        -0.3987661302089691,
        -0.5243038535118103,
        -0.39685630798339844,
        0.6392152309417725
      ],
      "min": [
        -0.3987661302089691,
        -0.5243038535118103,
        -0.39685630798339844,
        0.6392152309417725
      ],
      "type": "VEC4"
    },
    {
      "bufferView": 6,
      "byteOffset": 1680,
      "componentType": 5126,
      "count": 60,
      "max": [
        2.0
      ],
      "min": [
        0.03333333507180214
      ],
      "type": "SCALAR"
    },
    {
      "bufferView": 8,
      "byteOffset": 960,
      "componentType": 5126,
      "count": 60,
      "max": [
        0.08835351467132568,
        0.041780900210142136,
        0.7501252293586731,
        0.7189617156982422
      ],
      "min": [
        0.0003202244115527719,
        -0.00040835310937836766,
        0.6881439089775085,
        0.6612957119941711
      ],
      "type": "VEC4"
    },
    {
      "bufferView": 6,
      "byteOffset": 1920,
      "componentType": 5126,
      "count": 60,
      "max": [
        2.0
      ],
      "min": [
        0.03333333507180214
      ],
      "type": "SCALAR"
    },
    {
      "bufferView": 8,
      "byteOffset": 1920,
      "componentType": 5126,
      "count": 60,
      "max": [
        0.012303277850151062,
        0.1360618770122528,
        -0.6113044619560242,
        0.7630447149276733
      ],
      "min": [
        -0.1598648577928543,
        -0.00010196190123679116,
        -0.7301614284515381,
        0.6831639409065247
      ],
      "type": "VEC4"
    },
    {
      "bufferView": 6,
      "byteOffset": 2160,
      "componentType": 5126,
      "count": 60,
      "max": [
        2.0
      ],
      "min": [
        0.03333333507180214
      ],
      "type": "SCALAR"
    },
    {
      "bufferView": 8,
      "byteOffset": 2880,
      "componentType": 5126,
      "count": 60,
      "max": [
        0.954689085483551,
        0.3793194591999054,
        -0.0002457518130540848,
        0.06370381265878677
      ],
      "min": [
        0.9252341389656067,
        0.28883370757102966,
        -0.03295023366808891,
        -0.004175794776529074
      ],
      "type": "VEC4"
    },
    {
      "bufferView": 6,
      "byteOffset": 2400,
      "componentType": 5126,
      "count": 60,
      "max": [
        2.0
      ],
      "min": [
        0.03333333507180214
      ],
      "type": "SCALAR"
    },
    {
      "bufferView": 8,
      "byteOffset": 3840,
      "componentType": 5126,
      "count": 60,
      "max": [
        0.9761318564414978,
        0.2586877942085266,
        0.026003457605838776,
        0.005704446230083704
      ],
      "min": [
        0.9659609794616699,
        0.21554094552993774,
        0.00014101012493483722,
        -0.00043257485958747566
      ],
      "type": "VEC4"
    },
    {
      "bufferView": 6,
      "byteOffset": 2640,
      "componentType": 5126,
      "count": 60,
      "max": [
        2.0
      ],
      "min": [
        0.03333333507180214
      ],
      "type": "SCALAR"
    },
    {
      "bufferView": 8,
      "byteOffset": 4800,
      "componentType": 5126,
      "count": 60,
      "max": [
        0.5283739566802979,
        0.5431269407272339,
        0.5999122262001038,
        0.580933153629303
      ],
      "min": [
        0.3767819404602051,
        0.42787227034568787,
        0.44750744104385376,
        0.4507259130477905
      ],
      "type": "VEC4"
    },
    {
      "bufferView": 6,
      "byteOffset": 2880,
      "componentType": 5126,
      "count": 49,
      "max": [
        2.0
      ],
      "min": [
        0.03333333507180214
      ],
      "type": "SCALAR"
    },
    {
      "bufferView": 8,
      "byteOffset": 5760,
      "componentType": 5126,
      "count": 49,
      "max": [
        -0.3741132318973541,
        -0.6000327467918396,
        -0.37411320209503174,
        0.6000327467918396
      ],
      "min": [
        -0.3741132318973541,
        -0.6000327467918396,
        -0.37411320209503174,
        0.6000327467918396
      ],
      "type": "VEC4"
    },
    {
      "bufferView": 6,
      "byteOffset": 3076,
      "componentType": 5126,
      "count": 60,
      "max": [
        2.0
      ],
      "min": [
        0.03333333507180214
      ],
      "type": "SCALAR"
    },
    {
      "bufferView": 8,
      "byteOffset": 6544,
      "componentType": 5126,
      "count": 60,
      "max": [
        0.2599656879901886,
        0.07987257093191147,
        0.7073749899864197,
        0.8330647349357605
      ],
      "min": [
        0.04222148656845093,
        0.027134284377098083,
        0.48174145817756653,
        0.7050544023513794
      ],
      "type": "VEC4"
    },
    {
      "bufferView": 6,
      "byteOffset": 3316,
      "componentType": 5126,
      "count": 60,
      "max": [
        2.0
      ],
      "min": [
        0.03333333507180214
      ],
      "type": "SCALAR"
    },
    {
      "bufferView": 8,
      "byteOffset": 7504,
      "componentType": 5126,
      "count": 60,
      "max": [
        -0.04739849269390106,
        0.19999715685844421,
        -0.4385916590690613,
        0.8177220821380615
      ],
      "min": [
        -0.3145936131477356,
        0.050798188894987106,
        -0.6820472478866577,
        0.7280003428459167
      ],
      "type": "VEC4"
    },
    {
      "bufferView": 6,
      "byteOffset": 3556,
      "componentType": 5126,
      "count": 60,
      "max": [
        2.0
      ],
      "min": [
        0.03333333507180214
      ],
      "type": "SCALAR"
    },
    {
      "bufferView": 8,
      "byteOffset": 8464,
      "componentType": 5126,
      "count": 60,
      "max": [
        0.9627847075462341,
        0.339152067899704,
        0.19275353848934174,
        0.061263762414455414
      ],
      "min": [
        0.9399945139884949,
        0.17937245965003967,
        0.03671872243285179,
        0.006162161938846111
      ],
      "type": "VEC4"
    },
    {
      "bufferView": 6,
      "byteOffset": 3796,
      "componentType": 5126,
      "count": 60,
      "max": [
        2.0
      ],
      "min": [
        0.03333333507180214
      ],
      "type": "SCALAR"
    },
    {
      "bufferView": 8,
      "byteOffset": 9424,
      "componentType": 5126,
      "count": 60,
      "max": [
        0.9638774991035461,
        0.26596930623054504,
        0.2158541977405548,
        0.0597422793507576
      ],
      "min": [
        0.9397603869438171,
        0.25824061036109924,
        0.03955008089542389,
        0.012147815898060799
      ],
      "type": "VEC4"
    },
    {
      "bufferView": 6,
      "byteOffset": 4036,
      "componentType": 5126,
      "count": 60,
      "max": [
        2.0
      ],
      "min": [
        0.03333333507180214
      ],
      "type": "SCALAR"
    },
    {
      "bufferView": 8,
      "byteOffset": 10384,
      "componentType": 5126,
      "count": 60,
      "max": [
        0.40681192278862,
        0.6522217988967896,
        0.7189127206802368,
        0.4172466993331909
      ],
      "min": [
        0.3392300307750702,
        0.4687201678752899,
        0.5342611074447632,
        0.31300151348114014
      ],
      "type": "VEC4"
    },
    {
      "bufferView": 6,
      "byteOffset": 4276,
      "componentType": 5126,
      "count": 23,
      "max": [
        2.0
      ],
      "min": [
        0.03333333507180214
      ],
      "type": "SCALAR"
    },
    {
      "bufferView": 8,
      "byteOffset": 11344,
      "componentType": 5126,
      "count": 23,
      "max": [
        -0.3741132318973541,
        -0.6000327467918396,
        -0.37411320209503174,
        0.6000327467918396
      ],
      "min": [
        -0.3741132318973541,
        -0.6000327467918396,
        -0.37411320209503174,
        0.6000327467918396
      ],
      "type": "VEC4"
    },
    {
      "bufferView": 6,
      "byteOffset": 4368,
      "componentType": 5126,
      "count": 60,
      "max": [
        2.0
      ],
      "min": [
        0.03333333507180214
      ],
      "type": "SCALAR"
    },
    {
      "bufferView": 8,
      "byteOffset": 11712,
      "componentType": 5126,
      "count": 60,
      "max": [
        0.032104384154081345,
        0.051215674728155136,
        0.7414365410804749,
        0.7349062561988831
      ],
      "min": [
        0.0034614172764122486,
        0.00683760829269886,
        0.6754695177078247,
        0.6709792613983154
      ],
      "type": "VEC4"
    },
    {
      "bufferView": 6,
      "byteOffset": 4608,
      "componentType": 5126,
      "count": 60,
      "max": [
        2.0
      ],
      "min": [
        0.03333333507180214
      ],
      "type": "SCALAR"
    },
    {
      "bufferView": 8,
      "byteOffset": 12672,
      "componentType": 5126,
      "count": 60,
      "max": [
        -0.0024961752351373434,
        0.04073980450630188,
        -0.6419324278831482,
        0.7653104662895203
      ],
      "min": [
        -0.02372533641755581,
        0.0054296404123306274,
        -0.713779628276825,
        0.7003448605537415
      ],
      "type": "VEC4"
    },
    {
      "bufferView": 6,
      "byteOffset": 4848,
      "componentType": 5126,
      "count": 60,
      "max": [
        2.0
      ],
      "min": [
        0.03333333507180214
      ],
      "type": "SCALAR"
    },
    {
      "bufferView": 8,
      "byteOffset": 13632,
      "componentType": 5126,
      "count": 60,
      "max": [
        0.9501467943191528,
        0.36246252059936523,
        0.03383377194404602,
        -0.0015104146441444755
      ],
      "min": [
        0.9319875836372375,
        0.30979883670806885,
        0.004209818318486214,
        -0.010052072815597057
      ],
      "type": "VEC4"
    },
    {
      "bufferView": 6,
      "byteOffset": 5088,
      "componentType": 5126,
      "count": 60,
      "max": [
        2.0
      ],
      "min": [
        0.03333333507180214
      ],
      "type": "SCALAR"
    },
    {
      "bufferView": 8,
      "byteOffset": 14592,
      "componentType": 5126,
      "count": 60,
      "max": [
        0.9699883460998535,
        0.2561172842979431,
        0.056050579994916916,
        0.008923468180000782
      ],
      "min": [
        0.9666189551353455,
        0.236434668302536,
        0.007126589305698872,
        0.0009996225126087666
      ],
      "type": "VEC4"
    },
    {
      "bufferView": 6,
      "byteOffset": 5328,
      "componentType": 5126,
      "count": 60,
      "max": [
        2.0
      ],
      "min": [
        0.03333333507180214
      ],
      "type": "SCALAR"
    },
    {
      "bufferView": 8,
      "byteOffset": 15552,
      "componentType": 5126,
      "count": 60,
      "max": [
        0.43828195333480835,
        0.5994493365287781,
        0.47193974256515503,
        0.5479006767272949
      ],
      "min": [
        0.41730034351348877,
        0.5569241046905518,
        0.4444652199745178,
        0.4937548339366913
      ],
      "type": "VEC4"
    },
    {
      "bufferView": 6,
      "byteOffset": 5568,
      "componentType": 5126,
      "count": 58,
      "max": [
        2.0
      ],
      "min": [
        0.03333333507180214
      ],
      "type": "SCALAR"
    },
    {
      "bufferView": 7,
      "byteOffset": 4320,
      "componentType": 5126,
      "count": 58,
      "max": [
        0.799805760383606,
        2.220446049250313e-15,
        0.8785197138786316
      ],
      "min": [
        0.799805760383606,
        -4.440892098500626e-16,
        0.8785197138786316
      ],
      "type": "VEC3"
    },
    {
      "bufferView": 6,
      "byteOffset": 5800,
      "componentType": 5126,
      "count": 43,
      "max": [
        2.0
      ],
      "min": [
        0.03333333507180214
      ],
      "type": "SCALAR"
    },
    {
      "bufferView": 8,
      "byteOffset": 16512,
      "componentType": 5126,
      "count": 43,
      "max": [
        -0.23704694211483002,
        -0.6661897301673889,
        -0.23704694211483002,
        0.6661897301673889
      ],
      "min": [
        -0.23704694211483002,
        -0.6661897301673889,
        -0.23704694211483002,
        0.6661897301673889
      ],
      "type": "VEC4"
    },
    {
      "bufferView": 6,
      "byteOffset": 5972,
      "componentType": 5126,
      "count": 60,
      "max": [
        2.0
      ],
      "min": [
        0.03333333507180214
      ],
      "type": "SCALAR"
    },
    {
      "bufferView": 8,
      "byteOffset": 17200,
      "componentType": 5126,
      "count": 60,
      "max": [
        0.8743245601654053,
        0.48558294773101807,
        7.826070918905462e-17,
        0.002101493999361992
      ],
      "min": [
        0.8741905689239502,
        0.48532700538635254,
        -0.003129523014649749,
        2.6573466691480408e-17
      ],
      "type": "VEC4"
    },
    {
      "bufferView": 6,
      "byteOffset": 6212,
      "componentType": 5126,
      "count": 60,
      "max": [
        2.0
      ],
      "min": [
        0.03333333507180214
      ],
      "type": "SCALAR"
    },
    {
      "bufferView": 7,
      "byteOffset": 5016,
      "componentType": 5126,
      "count": 60,
      "max": [
        1.6778124570846558,
        0.0,
        2.6645352591003757e-15
      ],
      "min": [
        1.6778124570846558,
        -3.552713678800501e-15,
        -8.881784197001252e-16
      ],
      "type": "VEC3"
    },
    {
      "bufferView": 6,
      "byteOffset": 6452,
      "componentType": 5126,
      "count": 60,
      "max": [
        2.0
      ],
      "min": [
        0.03333333507180214
      ],
      "type": "SCALAR"
    },
    {
      "bufferView": 8,
      "byteOffset": 18160,
      "componentType": 5126,
      "count": 60,
      "max": [
        -2.296303673028448e-17,
        0.0005250000976957381,
        -0.04293680191040039,
        0.9990777969360352
      ],
      "min": [
        -0.0013815781567245722,
        1.121116530071337e-16,
        -0.048307567834854126,
        0.9988313913345337
      ],
      "type": "VEC4"
    },
    {
      "bufferView": 6,
      "byteOffset": 6692,
      "componentType": 5126,
      "count": 60,
      "max": [
        2.0
      ],
      "min": [
        0.03333333507180214
      ],
      "type": "SCALAR"
    },
    {
      "bufferView": 7,
      "byteOffset": 5736,
      "componentType": 5126,
      "count": 60,
      "max": [
        1.2911193370819092,
        1.7763568394002505e-15,
        4.440892098500626e-16
      ],
      "min": [
        1.2911193370819092,
        -1.7763568394002505e-15,
        -1.7763568394002505e-15
      ],
      "type": "VEC3"
    },
    {
      "bufferView": 6,
      "byteOffset": 6932,
      "componentType": 5126,
      "count": 60,
      "max": [
        2.0
      ],
      "min": [
        0.03333333507180214
      ],
      "type": "SCALAR"
    },
    {
      "bufferView": 8,
      "byteOffset": 19120,
      "componentType": 5126,
      "count": 60,
      "max": [
        0.9371177554130554,
        0.3599757254123688,
        0.0007200915715657175,
        0.0011808271519839764
      ],
      "min": [
        0.9329606294631958,
        0.3490132987499237,
        3.064958610265389e-17,
        -7.675604118504106e-17
      ],
      "type": "VEC4"
    },
    {
      "bufferView": 6,
      "byteOffset": 7172,
      "componentType": 5126,
      "count": 60,
      "max": [
        2.0
      ],
      "min": [
        0.03333333507180214
      ],
      "type": "SCALAR"
    },
    {
      "bufferView": 7,
      "byteOffset": 6456,
      "componentType": 5126,
      "count": 60,
      "max": [
        3.3018388748168945,
        4.440892098500626e-16,
        8.881784197001252e-16
      ],
      "min": [
        3.3018388748168945,
        -1.3322676295501878e-15,
        -8.881784197001252e-16
      ],
      "type": "VEC3"
    },
    {
      "bufferView": 6,
      "byteOffset": 7412,
      "componentType": 5126,
      "count": 60,
      "max": [
        2.0
      ],
      "min": [
        0.03333333507180214
      ],
      "type": "SCALAR"
    },
    {
      "bufferView": 8,
      "byteOffset": 20080,
      "componentType": 5126,
      "count": 60,
      "max": [
        3.373725942341223e-17,
        -4.408270808293944e-17,
        0.6183494329452515,
        0.7941234707832336
      ],
      "min": [
        -0.00017317503807134926,
        -0.0011835334589704871,
        0.6077564358711243,
        0.7859023809432983
      ],
      "type": "VEC4"
    },
    {
      "bufferView": 6,
      "byteOffset": 7652,
      "componentType": 5126,
      "count": 60,
      "max": [
        2.0
      ],
      "min": [
        0.03333333507180214
      ],
      "type": "SCALAR"
    },
    {
      "bufferView": 7,
      "byteOffset": 7176,
      "componentType": 5126,
      "count": 60,
      "max": [
        1.9718607664108276,
        3.3306690738754696e-16,
        4.440892098500626e-16
      ],
      "min": [
        1.9718607664108276,
        -9.992007221626409e-16,
        -1.3322676295501878e-15
      ],
      "type": "VEC3"
    },
    {
      "bufferView": 6,
      "byteOffset": 7892,
      "componentType": 5126,
      "count": 60,
      "max": [
        2.0
      ],
      "min": [
        0.03333333507180214
      ],
      "type": "SCALAR"
    },
    {
      "bufferView": 8,
      "byteOffset": 21040,
      "componentType": 5126,
      "count": 60,
      "max": [
        0.00040482700569555163,
        -1.7145166116649942e-17,
        -0.326363742351532,
        0.9452440142631531
      ],
      "min": [
        -3.5309875351663343e-17,
        -0.0005670076934620738,
        -0.32722628116607666,
        0.9449459910392761
      ],
      "type": "VEC4"
    },
    {
      "bufferView": 6,
      "byteOffset": 8132,
      "componentType": 5126,
      "count": 60,
      "max": [
        2.0
      ],
      "min": [
        0.03333333507180214
      ],
      "type": "SCALAR"
    },
    {
      "bufferView": 7,
      "byteOffset": 7896,
      "componentType": 5126,
      "count": 60,
      "max": [
        1.7436277866363525,
        4.440892098500626e-16,
        -3.3306690738754696e-16
      ],
      "min": [
        1.7436277866363525,
        -8.881784197001252e-16,
        -1.2212453270876722e-15
      ],
      "type": "VEC3"
    },
    {
      "bufferView": 6,
      "byteOffset": 8372,
      "componentType": 5126,
      "count": 60,
      "max": [
        2.0
      ],
      "min": [
        0.03333333507180214
      ],
      "type": "SCALAR"
    },
    {
      "bufferView": 8,
      "byteOffset": 22000,
      "componentType": 5126,
      "count": 60,
      "max": [
        0.00010227787424810231,
        3.0642492201720634e-17,
        -0.3003937005996704,
        0.9538152813911438
      ],
      "min": [
        -4.8992464251346924e-18,
        -0.0003270986780989915,
        -0.30235281586647034,
        0.9531960487365723
      ],
      "type": "VEC4"
    },
    {
      "bufferView": 6,
      "byteOffset": 8612,
      "componentType": 5126,
      "count": 60,
      "max": [
        2.0
      ],
      "min": [
        0.03333333507180214
      ],
      "type": "SCALAR"
    },
    {
      "bufferView": 8,
      "byteOffset": 22960,
      "componentType": 5126,
      "count": 60,
      "max": [
        0.08641423285007477,
        -0.2975017726421356,
        0.47695431113243103,
        0.8286672830581665
      ],
      "min": [
        0.05222521349787712,
        -0.3357471227645874,
        0.444811075925827,
        0.8225204348564148
      ],
      "type": "VEC4"
    },
    {
      "bufferView": 6,
      "byteOffset": 8852,
      "componentType": 5126,
      "count": 37,
      "max": [
        2.0
      ],
      "min": [
        0.03333333507180214
      ],
      "type": "SCALAR"
    },
    {
      "bufferView": 8,
      "byteOffset": 23920,
      "componentType": 5126,
      "count": 37,
      "max": [
        -0.23704694211483002,
        -0.6661897301673889,
        -0.23704694211483002,
        0.6661897301673889
      ],
      "min": [
        -0.23704694211483002,
        -0.6661897301673889,
        -0.23704694211483002,
        0.6661897301673889
      ],
      "type": "VEC4"
    },
    {
      "bufferView": 6,
      "byteOffset": 9000,
      "componentType": 5126,
      "count": 60,
      "max": [
        2.0
      ],
      "min": [
        0.03333333507180214
      ],
      "type": "SCALAR"
    },
    {
      "bufferView": 8,
      "byteOffset": 24512,
      "componentType": 5126,
      "count": 60,
      "max": [
        0.8835631012916565,
        0.48558294773101807,
        0.008878843858838081,
        2.6573466691480408e-17
      ],
      "min": [
        0.8741905689239502,
        0.4681165814399719,
        7.826070918905462e-17,
        -0.010213066823780537
      ],
      "type": "VEC4"
    },
    {
      "bufferView": 6,
      "byteOffset": 9240,
      "componentType": 5126,
      "count": 60,
      "max": [
        2.0
      ],
      "min": [
        0.03333333507180214
      ],
      "type": "SCALAR"
    },
    {
      "bufferView": 8,
      "byteOffset": 25472,
      "componentType": 5126,
      "count": 60,
      "max": [
        0.05279664322733879,
        2.000685336318655e-16,
        -0.04293680191040039,
        0.9990777969360352
      ],
      "min": [
        -1.3030774712894858e-16,
        -0.014773635193705559,
        -0.15932664275169373,
        0.9857024550437927
      ],
      "type": "VEC4"
    },
    {
      "bufferView": 6,
      "byteOffset": 9480,
      "componentType": 5126,
      "count": 60,
      "max": [
        2.0
      ],
      "min": [
        0.03333333507180214
      ],
      "type": "SCALAR"
    },
    {
      "bufferView": 8,
      "byteOffset": 26432,
      "componentType": 5126,
      "count": 60,
      "max": [
        0.9371177554130554,
        0.5157763957977295,
        3.437602152731548e-17,
        5.2538383223750453e-17
      ],
      "min": [
        0.8555190563201904,
        0.3490132987499237,
        -0.02216978929936886,
        -0.03962774574756622
      ],
      "type": "VEC4"
    },
    {
      "bufferView": 6,
      "byteOffset": 9720,
      "componentType": 5126,
      "count": 60,
      "max": [
        2.0
      ],
      "min": [
        0.03333333507180214
      ],
      "type": "SCALAR"
    },
    {
      "bufferView": 8,
      "byteOffset": 27392,
      "componentType": 5126,
      "count": 60,
      "max": [
        0.0013217563973739743,
        0.02248959057033062,
        0.6632710099220276,
        0.7941234707832336
      ],
      "min": [
        3.2386804355358155e-17,
        9.468859556369656e-17,
        0.6077564358711243,
        0.7480401396751404
      ],
      "type": "VEC4"
    },
    {
      "bufferView": 6,
      "byteOffset": 9960,
      "componentType": 5126,
      "count": 60,
      "max": [
        2.0
      ],
      "min": [
        0.03333333507180214
      ],
      "type": "SCALAR"
    },
    {
      "bufferView": 8,
      "byteOffset": 28352,
      "componentType": 5126,
      "count": 60,
      "max": [
        0.0,
        0.021421467885375023,
        -0.32722628116607666,
        0.9449459910392761
      ],
      "min": [
        -0.015669306740164757,
        -0.0,
        -0.34993478655815125,
        0.9363980293273926
      ],
      "type": "VEC4"
    },
    {
      "bufferView": 6,
      "byteOffset": 10200,
      "componentType": 5126,
      "count": 60,
      "max": [
        2.0
      ],
      "min": [
        0.03333333507180214
      ],
      "type": "SCALAR"
    },
    {
      "bufferView": 8,
      "byteOffset": 29312,
      "componentType": 5126,
      "count": 60,
      "max": [
        -5.4666563429894233e-17,
        0.013928617350757122,
        -0.3003937005996704,
        0.9538152813911438
      ],
      "min": [
        -0.004327298607677221,
        -1.1882892868132571e-17,
        -0.3535919189453125,
        0.9352860450744629
      ],
      "type": "VEC4"
    },
    {
      "bufferView": 6,
      "byteOffset": 10440,
      "componentType": 5126,
      "count": 60,
      "max": [
        2.0
      ],
      "min": [
        0.03333333507180214
      ],
      "type": "SCALAR"
    },
    {
      "bufferView": 8,
      "byteOffset": 30272,
      "componentType": 5126,
      "count": 60,
      "max": [
        0.5362337827682495,
        0.8473497033119202,
        -0.03738642483949661,
        -0.18635767698287964
      ],
      "min": [
        0.4826722741127014,
        0.8199670314788818,
        -0.07333619147539139,
        -0.22432811558246613
      ],
      "type": "VEC4"
    },
    {
      "bufferView": 6,
      "byteOffset": 10680,
      "componentType": 5126,
      "count": 55,
      "max": [
        2.0
      ],
      "min": [
        0.03333333507180214
      ],
      "type": "SCALAR"
    },
    {
      "bufferView": 7,
      "byteOffset": 8616,
      "componentType": 5126,
      "count": 55,
      "max": [
        0.799805760383606,
        2.6645352591003757e-15,
        0.8785197138786316
      ],
      "min": [
        0.799805760383606,
        0.0,
        0.8785197138786316
      ],
      "type": "VEC3"
    },
    {
      "bufferView": 6,
      "byteOffset": 10900,
      "componentType": 5126,
      "count": 23,
      "max": [
        2.0
      ],
      "min": [
        0.03333333507180214
      ],
      "type": "SCALAR"
    },
    {
      "bufferView": 8,
      "byteOffset": 31232,
      "componentType": 5126,
      "count": 23,
      "max": [
        -0.23704694211483002,
        -0.6661897301673889,
        -0.23704694211483002,
        0.6661897301673889
      ],
      "min": [
        -0.23704694211483002,
        -0.6661897301673889,
        -0.23704694211483002,
        0.6661897301673889
      ],
      "type": "VEC4"
    },
    {
      "bufferView": 6,
      "byteOffset": 10992,
      "componentType": 5126,
      "count": 60,
      "max": [
        2.0
      ],
      "min": [
        0.03333333507180214
      ],
      "type": "SCALAR"
    },
    {
      "bufferView": 8,
      "byteOffset": 31600,
      "componentType": 5126,
      "count": 60,
      "max": [
        0.8927797675132751,
        0.48558294773101807,
        0.19221290946006775,
        0.030937738716602325
      ],
      "min": [
        0.8741905689239502,
        0.40625274181365967,
        1.6422530214739531e-16,
        -2.117692548593343e-17
      ],
      "type": "VEC4"
    },
    {
      "bufferView": 6,
      "byteOffset": 11232,
      "componentType": 5126,
      "count": 60,
      "max": [
        2.0
      ],
      "min": [
        0.03333333507180214
      ],
      "type": "SCALAR"
    },
    {
      "bufferView": 7,
      "byteOffset": 9276,
      "componentType": 5126,
      "count": 60,
      "max": [
        1.6778124570846558,
        0.0,
        8.881784197001252e-16
      ],
      "min": [
        1.6778124570846558,
        -3.552713678800501e-15,
        5.551115123125783e-16
      ],
      "type": "VEC3"
    },
    {
      "bufferView": 6,
      "byteOffset": 11472,
      "componentType": 5126,
      "count": 60,
      "max": [
        2.0
      ],
      "min": [
        0.03333333507180214
      ],
      "type": "SCALAR"
    },
    {
      "bufferView": 8,
      "byteOffset": 32560,
      "componentType": 5126,
      "count": 60,
      "max": [
        -1.3339736763541027e-31,
        0.05331457033753395,
        -0.04003767669200897,
        0.9990785121917725
      ],
      "min": [
        -0.021374255418777466,
        -2.169170248043784e-16,
        -0.04293680191040039,
        0.9975458383560181
      ],
      "type": "VEC4"
    },
    {
      "bufferView": 6,
      "byteOffset": 11712,
      "componentType": 5126,
      "count": 57,
      "max": [
        2.0
      ],
      "min": [
        0.03333333507180214
      ],
      "type": "SCALAR"
    },
    {
      "bufferView": 7,
      "byteOffset": 9996,
      "componentType": 5126,
      "count": 57,
      "max": [
        1.2911193370819092,
        1.7763568394002505e-15,
        -4.440892098500626e-16
      ],
      "min": [
        1.2911193370819092,
        -1.7763568394002505e-15,
        -7.771561172376096e-16
      ],
      "type": "VEC3"
    },
    {
      "bufferView": 6,
      "byteOffset": 11940,
      "componentType": 5126,
      "count": 60,
      "max": [
        2.0
      ],
      "min": [
        0.03333333507180214
      ],
      "type": "SCALAR"
    },
    {
      "bufferView": 8,
      "byteOffset": 33520,
      "componentType": 5126,
      "count": 60,
      "max": [
        0.9684458374977112,
        0.3490132987499237,
        0.004578755237162113,
        0.017925849184393883
      ],
      "min": [
        0.9371177554130554,
        0.24853649735450745,
        -2.2743602257386413e-16,
        1.93634693048926e-17
      ],
      "type": "VEC4"
    },
    {
      "bufferView": 6,
      "byteOffset": 12180,
      "componentType": 5126,
      "count": 57,
      "max": [
        2.0
      ],
      "min": [
        0.03333333507180214
      ],
      "type": "SCALAR"
    },
    {
      "bufferView": 7,
      "byteOffset": 10680,
      "componentType": 5126,
      "count": 57,
      "max": [
        3.3018388748168945,
        4.440892098500626e-16,
        2.220446049250313e-16
      ],
      "min": [
        3.3018388748168945,
        -8.881784197001252e-16,
        -1.1102230246251565e-16
      ],
      "type": "VEC3"
    },
    {
      "bufferView": 6,
      "byteOffset": 12408,
      "componentType": 5126,
      "count": 60,
      "max": [
        2.0
      ],
      "min": [
        0.03333333507180214
      ],
      "type": "SCALAR"
    },
    {
      "bufferView": 8,
      "byteOffset": 34480,
      "componentType": 5126,
      "count": 60,
      "max": [
        3.104291032057591e-32,
        2.825827114097862e-16,
        0.6077564358711243,
        0.8959066867828369
      ],
      "min": [
        -0.004276113118976355,
        -0.002132207155227661,
        0.4442165791988373,
        0.7941234707832336
      ],
      "type": "VEC4"
    },
    {
      "bufferView": 6,
      "byteOffset": 12648,
      "componentType": 5126,
      "count": 60,
      "max": [
        2.0
      ],
      "min": [
        0.03333333507180214
      ],
      "type": "SCALAR"
    },
    {
      "bufferView": 7,
      "byteOffset": 11364,
      "componentType": 5126,
      "count": 60,
      "max": [
        1.9718607664108276,
        2.220446049250313e-16,
        -3.3306690738754696e-16
      ],
      "min": [
        1.9718607664108276,
        -1.1102230246251565e-15,
        -6.661338147750939e-16
      ],
      "type": "VEC3"
    },
    {
      "bufferView": 6,
      "byteOffset": 12888,
      "componentType": 5126,
      "count": 60,
      "max": [
        2.0
      ],
      "min": [
        0.03333333507180214
      ],
      "type": "SCALAR"
    },
    {
      "bufferView": 8,
      "byteOffset": 35440,
      "componentType": 5126,
      "count": 60,
      "max": [
        0.013565799221396446,
        -1.6280547309572764e-17,
        -0.23272308707237244,
        0.9724430441856384
      ],
      "min": [
        1.589747229322899e-32,
        -0.0032424251548945904,
        -0.32722628116607666,
        0.9449459910392761
      ],
      "type": "VEC4"
    },
    {
      "bufferView": 6,
      "byteOffset": 13128,
      "componentType": 5126,
      "count": 60,
      "max": [
        2.0
      ],
      "min": [
        0.03333333507180214
      ],
      "type": "SCALAR"
    },
    {
      "bufferView": 7,
      "byteOffset": 12084,
      "componentType": 5126,
      "count": 60,
      "max": [
        1.7436277866363525,
        4.440892098500626e-16,
        -5.551115123125783e-16
      ],
      "min": [
        1.7436277866363525,
        -6.661338147750939e-16,
        -8.881784197001252e-16
      ],
      "type": "VEC3"
    },
    {
      "bufferView": 6,
      "byteOffset": 13368,
      "componentType": 5126,
      "count": 60,
      "max": [
        2.0
      ],
      "min": [
        0.03333333507180214
      ],
      "type": "SCALAR"
    },
    {
      "bufferView": 8,
      "byteOffset": 36400,
      "componentType": 5126,
      "count": 60,
      "max": [
        0.01170449610799551,
        1.4075724849209006e-16,
        -0.21332986652851105,
        0.9769067764282227
      ],
      "min": [
        -3.230696715047312e-33,
        -0.002564242808148265,
        -0.3003937005996704,
        0.9538152813911438
      ],
      "type": "VEC4"
    },
    {
      "bufferView": 6,
      "byteOffset": 13608,
      "componentType": 5126,
      "count": 60,
      "max": [
        2.0
      ],
      "min": [
        0.03333333507180214
      ],
      "type": "SCALAR"
    },
    {
      "bufferView": 8,
      "byteOffset": 37360,
      "componentType": 5126,
      "count": 60,
      "max": [
        0.3364693820476532,
        0.6413562893867493,
        0.34029823541641235,
        0.6413562893867493
      ],
      "min": [
        0.29776179790496826,
        0.624203085899353,
        0.29776179790496826,
        0.6175402402877808
      ],
      "type": "VEC4"
    }
  ],
  "animations": [
    {
      "channels": [
        {
          "sampler": 0,
          "target": {
            "node": 51,
            "path": "translation"
          }
        },
        {
          "sampler": 1,
          "target": {
            "node": 52,
            "path": "translation"
          }
        },
        {
          "sampler": 2,
          "target": {
            "node": 53,
            "path": "translation"
          }
        },
        {
          "sampler": 3,
          "target": {
            "node": 54,
            "path": "translation"
          }
        },
        {
          "sampler": 4,
          "target": {
            "node": 55,
            "path": "translation"
          }
        },
        {
          "sampler": 5,
          "target": {
            "node": 56,
            "path": "translation"
          }
        },
        {
          "sampler": 6,
          "target": {
            "node": 14,
            "path": "rotation"
          }
        },
        {
          "sampler": 7,
          "target": {
            "node": 13,
            "path": "rotation"
          }
        },
        {
          "sampler": 8,
          "target": {
            "node": 12,
            "path": "rotation"
          }
        },
        {
          "sampler": 9,
          "target": {
            "node": 11,
            "path": "rotation"
          }
        },
        {
          "sampler": 10,
          "target": {
            "node": 10,
            "path": "rotation"
          }
        },
        {
          "sampler": 11,
          "target": {
            "node": 9,
            "path": "rotation"
          }
        },
        {
          "sampler": 12,
          "target": {
            "node": 20,
            "path": "rotation"
          }
        },
        {
          "sampler": 13,
          "target": {
            "node": 19,
            "path": "rotation"
          }
        },
        {
          "sampler": 14,
          "target": {
            "node": 18,
            "path": "rotation"
          }
        },
        {
          "sampler": 15,
          "target": {
            "node": 17,
            "path": "rotation"
          }
        },
        {
          "sampler": 16,
          "target": {
            "node": 16,
            "path": "rotation"
          }
        },
        {
          "sampler": 17,
          "target": {
            "node": 15,
            "path": "rotation"
          }
        },
        {
          "sampler": 18,
          "target": {
            "node": 26,
            "path": "rotation"
          }
        },
        {
          "sampler": 19,
          "target": {
            "node": 25,
            "path": "rotation"
          }
        },
        {
          "sampler": 20,
          "target": {
            "node": 24,
            "path": "rotation"
          }
        },
        {
          "sampler": 21,
          "target": {
            "node": 23,
            "path": "rotation"
          }
        },
        {
          "sampler": 22,
          "target": {
            "node": 22,
            "path": "rotation"
          }
        },
        {
          "sampler": 23,
          "target": {
            "node": 21,
            "path": "rotation"
          }
        },
        {
          "sampler": 24,
          "target": {
            "node": 34,
            "path": "translation"
          }
        },
        {
          "sampler": 25,
          "target": {
            "node": 34,
            "path": "rotation"
          }
        },
        {
          "sampler": 26,
          "target": {
            "node": 33,
            "path": "rotation"
          }
        },
        {
          "sampler": 27,
          "target": {
            "node": 32,
            "path": "translation"
          }
        },
        {
          "sampler": 28,
          "target": {
            "node": 32,
            "path": "rotation"
          }
        },
        {
          "sampler": 29,
          "target": {
            "node": 31,
            "path": "translation"
          }
        },
        {
          "sampler": 30,
          "target": {
            "node": 31,
            "path": "rotation"
          }
        },
        {
          "sampler": 31,
          "target": {
            "node": 30,
            "path": "translation"
          }
        },
        {
          "sampler": 32,
          "target": {
            "node": 30,
            "path": "rotation"
          }
        },
        {
          "sampler": 33,
          "target": {
            "node": 29,
            "path": "translation"
          }
        },
        {
          "sampler": 34,
          "target": {
            "node": 29,
            "path": "rotation"
          }
        },
        {
          "sampler": 35,
          "target": {
            "node": 28,
            "path": "translation"
          }
        },
        {
          "sampler": 36,
          "target": {
            "node": 28,
            "path": "rotation"
          }
        },
        {
          "sampler": 37,
          "target": {
            "node": 27,
            "path": "rotation"
          }
        },
        {
          "sampler": 38,
          "target": {
            "node": 42,
            "path": "rotation"
          }
        },
        {
          "sampler": 39,
          "target": {
            "node": 41,
            "path": "rotation"
          }
        },
        {
          "sampler": 40,
          "target": {
            "node": 40,
            "path": "rotation"
          }
        },
        {
          "sampler": 41,
          "target": {
            "node": 39,
            "path": "rotation"
          }
        },
        {
          "sampler": 42,
          "target": {
            "node": 38,
            "path": "rotation"
          }
        },
        {
          "sampler": 43,
          "target": {
            "node": 37,
            "path": "rotation"
          }
        },
        {
          "sampler": 44,
          "target": {
            "node": 36,
            "path": "rotation"
          }
        },
        {
          "sampler": 45,
          "target": {
            "node": 35,
            "path": "rotation"
          }
        },
        {
          "sampler": 46,
          "target": {
            "node": 50,
            "path": "translation"
          }
        },
        {
          "sampler": 47,
          "target": {
            "node": 50,
            "path": "rotation"
          }
        },
        {
          "sampler": 48,
          "target": {
            "node": 49,
            "path": "rotation"
          }
        },
        {
          "sampler": 49,
          "target": {
            "node": 48,
            "path": "translation"
          }
        },
        {
          "sampler": 50,
          "target": {
            "node": 48,
            "path": "rotation"
          }
        },
        {
          "sampler": 51,
          "target": {
            "node": 47,
            "path": "translation"
          }
        },
        {
          "sampler": 52,
          "target": {
            "node": 47,
            "path": "rotation"
          }
        },
        {
          "sampler": 53,
          "target": {
            "node": 46,
            "path": "translation"
          }
        },
        {
          "sampler": 54,
          "target": {
            "node": 46,
            "path": "rotation"
          }
        },
        {
          "sampler": 55,
          "target": {
            "node": 45,
            "path": "translation"
          }
        },
        {
          "sampler": 56,
          "target": {
            "node": 45,
            "path": "rotation"
          }
        },
        {
          "sampler": 57,
          "target": {
            "node": 44,
            "path": "translation"
          }
        },
        {
          "sampler": 58,
          "target": {
            "node": 44,
            "path": "rotation"
          }
        },
        {
          "sampler": 59,
          "target": {
            "node": 43,
            "path": "rotation"
          }
        }
      ],
      "name": "Take 001",
      "samplers": [
        {
          "input": 18,
          "interpolation": "LINEAR",
          "output": 19
        },
        {
          "input": 20,
          "interpolation": "LINEAR",
          "output": 21
        },
        {
          "input": 22,
          "interpolation": "LINEAR",
          "output": 23
        },
        {
          "input": 24,
          "interpolation": "LINEAR",
          "output": 25
        },
        {
          "input": 26,
          "interpolation": "LINEAR",
          "output": 27
        },
        {
          "input": 28,
          "interpolation": "LINEAR",
          "output": 29
        },
        {
          "input": 30,
          "interpolation": "LINEAR",
          "output": 31
        },
        {
          "input": 32,
          "interpolation": "LINEAR",
          "output": 33
        },
        {
          "input": 34,
          "interpolation": "LINEAR",
          "output": 35
        },
        {
          "input": 36,
          "interpolation": "LINEAR",
          "output": 37
        },
        {
          "input": 38,
          "interpolation": "LINEAR",
          "output": 39
        },
        {
          "input": 40,
          "interpolation": "LINEAR",
          "output": 41
        },
        {
          "input": 42,
          "interpolation": "LINEAR",
          "output": 43
        },
        {
          "input": 44,
          "interpolation": "LINEAR",
          "output": 45
        },
        {
          "input": 46,
          "interpolation": "LINEAR",
          "output": 47
        },
        {
          "input": 48,
          "interpolation": "LINEAR",
          "output": 49
        },
        {
          "input": 50,
          "interpolation": "LINEAR",
          "output": 51
        },
        {
          "input": 52,
          "interpolation": "LINEAR",
          "output": 53
        },
        {
          "input": 54,
          "interpolation": "LINEAR",
          "output": 55
        },
        {
          "input": 56,
          "interpolation": "LINEAR",
          "output": 57
        },
        {
          "input": 58,
          "interpolation": "LINEAR",
          "output": 59
        },
        {
          "input": 60,
          "interpolation": "LINEAR",
          "output": 61
        },
        {
          "input": 62,
          "interpolation": "LINEAR",
          "output": 63
        },
        {
          "input": 64,
          "interpolation": "LINEAR",
          "output": 65
        },
        {
          "input": 66,
          "interpolation": "LINEAR",
          "output": 67
        },
        {
          "input": 68,
          "interpolation": "LINEAR",
          "output": 69
        },
        {
          "input": 70,
          "interpolation": "LINEAR",
          "output": 71
        },
        {
          "input": 72,
          "interpolation": "LINEAR",
          "output": 73
        },
        {
          "input": 74,
          "interpolation": "LINEAR",
          "output": 75
        },
        {
          "input": 76,
          "interpolation": "LINEAR",
          "output": 77
        },
        {
          "input": 78,
          "interpolation": "LINEAR",
          "output": 79
        },
        {
          "input": 80,
          "interpolation": "LINEAR",
          "output": 81
        },
        {
          "input": 82,
          "interpolation": "LINEAR",
          "output": 83
        },
        {
          "input": 84,
          "interpolation": "LINEAR",
          "output": 85
        },
        {
          "input": 86,
          "interpolation": "LINEAR",
          "output": 87
        },
        {
          "input": 88,
          "interpolation": "LINEAR",
          "output": 89
        },
        {
          "input": 90,
          "interpolation": "LINEAR",
          "output": 91
        },
        {
          "input": 92,
          "interpolation": "LINEAR",
          "output": 93
        },
        {
          "input": 94,
          "interpolation": "LINEAR",
          "output": 95
        },
        {
          "input": 96,
          "interpolation": "LINEAR",
          "output": 97
        },
        {
          "input": 98,
          "interpolation": "LINEAR",
          "output": 99
        },
        {
          "input": 100,
          "interpolation": "LINEAR",
          "output": 101
        },
        {
          "input": 102,
          "interpolation": "LINEAR",
          "output": 103
        },
        {
          "input": 104,
          "interpolation": "LINEAR",
          "output": 105
        },
        {
          "input": 106,
          "interpolation": "LINEAR",
          "output": 107
        },
        {
          "input": 108,
          "interpolation": "LINEAR",
          "output": 109
        },
        {
          "input": 110,
          "interpolation": "LINEAR",
          "output": 111
        },
        {
          "input": 112,
          "interpolation": "LINEAR",
          "output": 113
        },
        {
          "input": 114,
          "interpolation": "LINEAR",
          "output": 115
        },
        {
          "input": 116,
          "interpolation": "LINEAR",
          "output": 117
        },
        {
          "input": 118,
          "interpolation": "LINEAR",
          "output": 119
        },
        {
          "input": 120,
          "interpolation": "LINEAR",
          "output": 121
        },
        {
          "input": 122,
          "interpolation": "LINEAR",
          "output": 123
        },
        {
          "input": 124,
          "interpolation": "LINEAR",
          "output": 125
        },
        {
          "input": 126,
          "interpolation": "LINEAR",
          "output": 127
        },
        {
          "input": 128,
          "interpolation": "LINEAR",
          "output": 129
        },
        {
          "input": 130,
          "interpolation": "LINEAR",
          "output": 131
        },
        {
          "input": 132,
          "interpolation": "LINEAR",
          "output": 133
        },
        {
          "input": 134,
          "interpolation": "LINEAR",
          "output": 135
        },
        {
          "input": 136,
          "interpolation": "LINEAR",
          "output": 137
        }
      ]
    }
  ],
  "asset": {
    "extras": {
      "author": "meowskie (https://sketchfab.com/meowskie)",
      "license": "CC-BY-4.0 (http://creativecommons.org/licenses/by/4.0/)",
      "source": "https://sketchfab.com/3d-models/tentacle-plant-8372c5e8dfca49a1ae1046e02f47e2d0",
      "title": "Tentacle Plant"
    },
    "generator": "Sketchfab-12.66.0",
    "version": "2.0"
  },
  "bufferViews": [
    {
      "buffer": 0,
      "byteLength": 10200,
      "byteStride": 8,
      "name": "shortBufferViews",
      "target": 34962
    },
    {
      "buffer": 0,
      "byteLength": 39696,
      "byteOffset": 10200,
      "name": "floatBufferViews",
      "target": 34963
    },
    {
      "buffer": 0,
      "byteLength": 16544,
      "byteOffset": 49896,
      "byteStride": 8,
      "name": "floatBufferViews",
      "target": 34962
    },
    {
      "buffer": 0,
      "byteLength": 49632,
      "byteOffset": 66440,
      "byteStride": 12,
      "name": "floatBufferViews",
      "target": 34962
    },
    {
      "buffer": 0,
      "byteLength": 53488,
      "byteOffset": 116072,
      "byteStride": 16,
      "name": "floatBufferViews",
      "target": 34962
    },
    {
      "buffer": 0,
      "byteLength": 2752,
      "byteOffset": 169560,
      "name": "floatBufferViews"
    },
    {
      "buffer": 0,
      "byteLength": 13848,
      "byteOffset": 172312,
      "name": "floatBufferViews"
    },
    {
      "buffer": 0,
      "byteLength": 12804,
      "byteOffset": 186160,
      "byteStride": 12,
      "name": "floatBufferViews"
    },
    {
      "buffer": 0,
      "byteLength": 38320,
      "byteOffset": 198964,
      "byteStride": 16,
      "name": "floatBufferViews"
    }
  ],
  "buffers": [
    {
      "byteLength": 237284,
      "uri": "scene.bin"
    }
  ],
  "images": [
    {
      "uri": "textures/phong1_baseColor.png"
    },
    {
      "uri": "textures/phong1_metallicRoughness.png"
    },
    {
      "uri": "textures/phong1_emissive.jpeg"
    },
    {
      "uri": "textures/phong1_normal.png"
    }
  ],
  "materials": [
    {
      "alphaMode": "BLEND",
      "doubleSided": true,
      "emissiveFactor": [
        1.0,
        1.0,
        1.0
      ],
      "emissiveTexture": {
        "index": 2
      },
      "name": "phong1",
      "normalTexture": {
        "index": 3
      },
      "occlusionTexture": {
        "index": 1
      },
      "pbrMetallicRoughness": {
        "baseColorTexture": {
          "index": 0
        },
        "metallicRoughnessTexture": {
          "index": 1
        }
      }
    }
  ],
  "meshes": [
    {
      "name": "Lonkerot_phong1_0",
      "primitives": [
        {
          "attributes": {
            "JOINTS_0": 16,
            "NORMAL": 1,
            "POSITION": 0,
            "TANGENT": 2,
            "TEXCOORD_0": 3,
            "WEIGHTS_0": 17
          },
          "indices": 4,
          "material": 0,
          "mode": 4
        }
      ]
    },
    {
      "name": "Petals2_phong1_0",
      "primitives": [
        {
          "attributes": {
            "NORMAL": 6,
            "POSITION": 5,
            "TANGENT": 7,
            "TEXCOORD_0": 8
          },
          "indices": 9,
          "material": 0,
          "mode": 4
        }
      ]
    },
    {
      "name": "fLOWERMID_phong1_0",
      "primitives": [
        {
          "attributes": {
            "NORMAL": 11,
            "POSITION": 10,
            "TANGENT": 12,
            "TEXCOORD_0": 13
          },
          "indices": 14,
          "material": 0,
          "mode": 4
        }
      ]
    }
  ],
  "nodes": [
    {
      "children": [
        1
      ],
      "matrix": [
        1.0,
        0.0,
        0.0,
        0.0,
        0.0,
        2.220446049250313e-16,
        -1.0,
        0.0,
        0.0,
        1.0,
        2.220446049250313e-16,
        0.0,
        0.0,
        0.0,
        0.0,
        1.0
      ],
      "name": "Sketchfab_model"
    },
    {
      "children": [
        2
      ],
      "matrix": [
        1.0,
        0.0,
        0.0,
        0.0,
        0.0,
        0.0,
        1.0,
        0.0,
        0.0,
        -1.0,
        0.0,
        0.0,
        0.0,
        0.0,
        0.0,
        1.0
      ],
      "name": "Kasvi_animated.fbx"
    },
    {
      "children": [
        3
      ],
      "name": "Object_2"
    },
    {
      "children": [
        4
      ],
      "name": "RootNode"
    },
    {
      "children": [
        5
      ],
      "name": "Kasvi_RIgged"
    },
    {
      "children": [
        6,
        8,
        7,
        51,
        52,
        53,
        54,
        55,
        56,
        57,
        58,
        60
      ],
      "name": "Object_5"
    },
    {
      "children": [
        9,
        15,
        21,
        27,
        35,
        43
      ],
      "name": "_rootJoint"
    },
    {
      "matrix": [
        1.0,
        4.930380657631324e-32,
        -2.465190328815662e-32,
        0.0,
        -4.930380657631324e-32,
        1.0,
        -5.55111512312579e-17,
        0.0,
        2.4651903288156616e-32,
        5.55111512312579e-17,
        1.0,
        0.0,
        0.0,
        1.1102230246251565e-16,
        2.220446049250313e-16,
        1.0
      ],
      "name": "Object_7"
    },
    {
      "mesh": 0,
      "name": "Object_8",
      "skin": 0
    },
    {
      "children": [
        10
      ],
      "name": "joint16_01",
      "rotation": [
        0.5283739566802979,
        0.42787227034568787,
        0.44750744104385376,
        0.5809332132339478
      ],
      "translation": [
        2.4983274936676025,
        0.49905896186828613,
        0.1374109983444214
      ]
    },
    {
      "children": [
        11
      ],
      "name": "joint10_02",
      "rotation": [
        0.9761318564414978,
        0.21554094552993774,
        0.026003457605838776,
        0.005704445764422417
      ],
      "translation": [
        1.4929975271224976,
        0.5165921449661255,
        0.34524765610694885
      ]
    },
    {
      "children": [
        12
      ],
      "name": "joint11_03",
      "rotation": [
        0.954689085483551,
        0.28883370757102966,
        -0.03295023739337921,
        0.06370381265878677
      ],
      "translation": [
        1.5169992446899414,
        -0.5070661306381226,
        0.0187835656106472
      ]
    },
    {
      "children": [
        13
      ],
      "name": "joint12_04",
      "rotation": [
        -0.1598648577928543,
        0.136061891913414,
        -0.6113044619560242,
        0.7630447149276733
      ],
      "translation": [
        0.5721414685249329,
        0.2510710656642914,
        -0.29799604415893555
      ]
    },
    {
      "children": [
        14
      ],
      "name": "joint13_05",
      "rotation": [
        0.08835351467132568,
        0.041780900210142136,
        0.6881439089775085,
        0.7189617156982422
      ],
      "translation": [
        0.843282163143158,
        -0.10157760232686996,
        0.5649447441101074
      ]
    },
    {
      "name": "joint14_06",
      "rotation": [
        -0.3987661302089691,
        -0.5243038535118103,
        -0.39685630798339844,
        0.6392152309417725
      ],
      "translation": [
        0.8116937279701233,
        0.0014484493294730783,
        0.7296555042266846
      ]
    },
    {
      "children": [
        16
      ],
      "name": "joint15_00",
      "rotation": [
        0.40681192278862,
        0.4687201678752899,
        0.7189127206802368,
        0.31300151348114014
      ],
      "translation": [
        0.9740299582481384,
        0.49905896186828613,
        1.1609289646148682
      ]
    },
    {
      "children": [
        17
      ],
      "name": "joint10_07",
      "rotation": [
        0.9638776183128357,
        0.2631128132343292,
        0.03955008462071419,
        0.012147817760705948
      ],
      "translation": [
        1.4387072324752808,
        0.46801623702049255,
        0.48476114869117737
      ]
    },
    {
      "children": [
        18
      ],
      "name": "joint11_08",
      "rotation": [
        0.9399945139884949,
        0.339152067899704,
        0.03671872243285179,
        0.006162161007523537
      ],
      "translation": [
        1.6083019971847534,
        0.26274150609970093,
        0.6882506012916565
      ]
    },
    {
      "children": [
        19
      ],
      "name": "joint12_09",
      "rotation": [
        -0.047398488968610764,
        0.05079818516969681,
        -0.6820472478866577,
        0.7280003428459167
      ],
      "translation": [
        0.9575992822647095,
        -0.05752300098538399,
        0.18145939707756042
      ]
    },
    {
      "children": [
        20
      ],
      "name": "joint13_010",
      "rotation": [
        0.04222148656845093,
        0.027134284377098083,
        0.7073749899864197,
        0.7050544023513794
      ],
      "translation": [
        0.843282163143158,
        -0.10157760232686996,
        0.5649447441101074
      ]
    },
    {
      "name": "joint14_011",
      "rotation": [
        -0.3741132318973541,
        -0.6000327467918396,
        -0.37411320209503174,
        0.6000327467918396
      ],
      "translation": [
        0.8116937279701233,
        0.0014484493294730783,
        0.7296555042266846
      ]
    },
    {
      "children": [
        22
      ],
      "name": "joint9_012",
      "rotation": [
        0.43828195333480835,
        0.5569241046905518,
        0.4444652199745178,
        0.5479006767272949
      ],
      "translation": [
        1.8094524145126343,
        0.903837263584137,
        -1.221989631652832
      ]
    },
    {
      "children": [
        23
      ],
      "name": "joint10_013",
      "rotation": [
        0.9666189551353455,
        0.2561172842979431,
        0.007126589305698872,
        0.0009996226290240884
      ],
      "translation": [
        1.4831781387329102,
        0.16660326719284058,
        0.2728953957557678
      ]
    },
    {
      "children": [
        24
      ],
      "name": "joint11_014",
      "rotation": [
        0.9319877028465271,
        0.3624625504016876,
        0.004209818784147501,
        -0.0015104148769751191
      ],
      "translation": [
        1.6281111240386963,
        0.026779189705848694,
        0.8646231293678284
      ]
    },
    {
      "children": [
        25
      ],
      "name": "joint12_015",
      "rotation": [
        -0.002496175467967987,
        0.0054296404123306274,
        -0.713779628276825,
        0.7003448605537415
      ],
      "translation": [
        0.957366943359375,
        -0.04381252080202103,
        -0.04782485216856003
      ]
    },
    {
      "children": [
        26
      ],
      "name": "joint13_016",
      "rotation": [
        0.0034614172764122486,
        0.00683760829269886,
        0.7414365410804749,
        0.6709792613983154
      ],
      "translation": [
        1.2113401889801025,
        0.11640887707471848,
        0.28351452946662903
      ]
    },
    {
      "name": "joint14_017",
      "rotation": [
        -0.3741132318973541,
        -0.6000327467918396,
        -0.37411320209503174,
        0.6000327467918396
      ],
      "translation": [
        0.6840200424194336,
        0.04109011963009834,
        0.392078697681427
      ]
    },
    {
      "children": [
        28
      ],
      "name": "Joint3_018",
      "rotation": [
        0.08641422539949417,
        -0.29750174283981323,
        0.4769543409347534,
        0.8225204348564148
      ],
      "translation": [
        2.7316296100616455,
        0.36742958426475525,
        0.7911850810050964
      ]
    },
    {
      "children": [
        29
      ],
      "name": "joint2_019",
      "rotation": [
        5.2947390949433423e-17,
        -1.6675201797266714e-17,
        -0.3003937304019928,
        0.9538154006004333
      ],
      "translation": [
        1.7436277866363525,
        0.0,
        -8.881784197001252e-16
      ]
    },
    {
      "children": [
        30
      ],
      "name": "joint3_020",
      "rotation": [
        -3.0768696802139074e-17,
        -4.031406163161927e-18,
        -0.32722628116607666,
        0.9449459910392761
      ],
      "translation": [
        1.9718607664108276,
        -6.661338147750939e-16,
        -4.440892098500626e-16
      ]
    },
    {
      "children": [
        31
      ],
      "name": "joint4_021",
      "rotation": [
        1.6868629711706114e-17,
        -2.204135404146972e-17,
        0.6077564358711243,
        0.7941234707832336
      ],
      "translation": [
        3.3018388748168945,
        -4.440892098500626e-16,
        4.440892098500626e-16
      ]
    },
    {
      "children": [
        32
      ],
      "name": "joint5_022",
      "rotation": [
        0.937117874622345,
        0.3490133285522461,
        4.738115033249874e-17,
        4.769485692544825e-17
      ],
      "translation": [
        1.2911193370819092,
        0.0,
        -4.440892098500626e-16
      ]
    },
    {
      "children": [
        33
      ],
      "name": "joint6_023",
      "rotation": [
        -2.383471304234796e-18,
        -5.5459958677508145e-17,
        -0.04293680191040039,
        0.9990777969360352
      ],
      "translation": [
        1.6778124570846558,
        -1.7763568394002505e-15,
        1.3322676295501878e-15
      ]
    },
    {
      "children": [
        34
      ],
      "name": "joint7_024",
      "rotation": [
        0.8741906881332397,
        0.48558300733566284,
        7.826071580649952e-17,
        2.6573470000202858e-17
      ],
      "translation": [
        1.2937960624694824,
        0.026261156424880028,
        0.4899483621120453
      ]
    },
    {
      "name": "joint8_025",
      "rotation": [
        -0.23704694211483002,
        -0.6661897301673889,
        -0.23704694211483002,
        0.6661897301673889
      ],
      "translation": [
        0.799805760383606,
        1.7763568394002505e-15,
        0.8785197138786316
      ]
    },
    {
      "children": [
        36
      ],
      "name": "Joint2_026",
      "rotation": [
        0.4826723337173462,
        0.8457581400871277,
        -0.03738639876246452,
        -0.22432813048362732
      ],
      "translation": [
        -0.2519083321094513,
        0.36742958426475525,
        -0.061087317764759064
      ]
    },
    {
      "children": [
        37
      ],
      "name": "joint2_027",
      "rotation": [
        -1.6546059051312485e-17,
        5.211000871838578e-18,
        -0.3003937304019928,
        0.9538154006004333
      ],
      "translation": [
        1.956163763999939,
        0.1424764096736908,
        0.010203784331679344
      ]
    },
    {
      "children": [
        38
      ],
      "name": "joint3_028",
      "rotation": [
        -5.750598661393561e-17,
        -3.8831510782824153e-17,
        -0.32722628116607666,
        0.9449459910392761
      ],
      "translation": [
        1.9439841508865356,
        -0.0718664899468422,
        -0.0030739677604287863
      ]
    },
    {
      "children": [
        39
      ],
      "name": "joint4_029",
      "rotation": [
        1.5518172989290816e-17,
        1.1672995456824995e-16,
        0.6077564358711243,
        0.7941234707832336
      ],
      "translation": [
        1.9785467386245728,
        0.04417261481285095,
        -0.2252616286277771
      ]
    },
    {
      "children": [
        40
      ],
      "name": "joint5_030",
      "rotation": [
        0.937117874622345,
        0.3490133285522461,
        -4.412987061274476e-17,
        -4.890574015438503e-17
      ],
      "translation": [
        0.19292090833187103,
        -2.015127420425415,
        0.19111904501914978
      ]
    },
    {
      "children": [
        41
      ],
      "name": "joint6_031",
      "rotation": [
        -1.311270662169599e-16,
        1.8100417779955575e-16,
        -0.04293680191040039,
        0.9990777969360352
      ],
      "translation": [
        1.5514498949050903,
        0.8133030533790588,
        -0.044142946600914
      ]
    },
    {
      "children": [
        42
      ],
      "name": "joint7_032",
      "rotation": [
        0.8741906881332397,
        0.48558300733566284,
        -5.469718565617095e-18,
        -6.700637432478885e-17
      ],
      "translation": [
        1.7144944667816162,
        0.26805973052978516,
        0.7129579186439514
      ]
    },
    {
      "name": "joint8_033",
      "rotation": [
        -0.23704694211483002,
        -0.6661897301673889,
        -0.23704694211483002,
        0.6661897301673889
      ],
      "translation": [
        1.287738561630249,
        0.04788203909993172,
        -0.34573668241500854
      ]
    },
    {
      "children": [
        44
      ],
      "name": "Joint1_034",
      "rotation": [
        0.29776182770729065,
        0.641356348991394,
        0.29776182770729065,
        0.641356348991394
      ],
      "translation": [
        0.7298717498779297,
        0.36742958426475525,
        -1.7338083982467651
      ]
    },
    {
      "children": [
        45
      ],
      "name": "joint2_035",
      "rotation": [
        -3.2306970823892966e-33,
        1.4075726172697986e-16,
        -0.3003937304019928,
        0.9538154006004333
      ],
      "translation": [
        1.7436277866363525,
        -4.440892098500626e-16,
        -7.771561172376096e-16
      ]
    },
    {
      "children": [
        46
      ],
      "name": "joint3_036",
      "rotation": [
        1.589747229322899e-32,
        -1.6280547309572764e-17,
        -0.32722628116607666,
        0.9449459910392761
      ],
      "translation": [
        1.9718607664108276,
        -2.220446049250313e-16,
        -6.661338147750939e-16
      ]
    },
    {
      "children": [
        47
      ],
      "name": "joint4_037",
      "rotation": [
        3.104291032057591e-32,
        2.825827114097862e-16,
        0.6077564358711243,
        0.7941234707832336
      ],
      "translation": [
        3.3018388748168945,
        -4.440892098500626e-16,
        1.1102230246251565e-16
      ]
    },
    {
      "children": [
        48
      ],
      "name": "joint5_038",
      "rotation": [
        0.937117874622345,
        0.3490133285522461,
        -2.2743604904364373e-16,
        1.9363470959253825e-17
      ],
      "translation": [
        1.2911193370819092,
        1.7763568394002505e-15,
        -5.551115123125783e-16
      ]
    },
    {
      "children": [
        49
      ],
      "name": "joint6_039",
      "rotation": [
        -1.3339736763541027e-31,
        -2.169170248043784e-16,
        -0.04293680191040039,
        0.9990777969360352
      ],
      "translation": [
        1.6778124570846558,
        -1.7763568394002505e-15,
        7.771561172376096e-16
      ]
    },
    {
      "children": [
        50
      ],
      "name": "joint7_040",
      "rotation": [
        0.8741906881332397,
        0.48558300733566284,
        1.6422531538228511e-16,
        -2.117692879465588e-17
      ],
      "translation": [
        1.2937960624694824,
        0.026261156424880028,
        0.4899483621120453
      ]
    },
    {
      "name": "joint8_041",
      "rotation": [
        -0.23704694211483002,
        -0.6661897301673889,
        -0.23704694211483002,
        0.6661897301673889
      ],
      "translation": [
        0.799805760383606,
        2.220446049250313e-15,
        0.8785197138786316
      ]
    },
    {
      "name": "ikHandle5",
      "translation": [
        1.7864117622375488,
        5.024723529815674,
        -2.7464938163757324
      ]
    },
    {
      "name": "ikHandle4",
      "translation": [
        -0.05627038702368736,
        5.017951965332031,
        2.7355051040649414
      ]
    },
    {
      "name": "ikHandle3",
      "translation": [
        4.761991500854492,
        4.45926570892334,
        1.0450295209884644
      ]
    },
    {
      "name": "ikHandle2",
      "translation": [
        -6.451231479644775,
        5.555484771728516,
        4.861143589019775
      ]
    },
    {
      "name": "ikHandle1",
      "translation": [
        7.657593727111816,
        5.215770244598389,
        6.308687210083008
      ]
    },
    {
      "name": "lonkero1",
      "translation": [
        1.1184431314468384,
        5.37436056137085,
        -9.013506889343262
      ]
    },
    {
      "name": "Lonkerot"
    },
    {
      "children": [
        59
      ],
      "name": "Petals2",
      "translation": [
        0.7757816314697266,
        0.876531720161438,
        -0.10296845436096191
      ]
    },
    {
      "mesh": 1,
      "name": "Petals2_phong1_0"
    },
    {
      "children": [
        61
      ],
      "name": "fLOWERMID",
      "translation": [
        1.2050583362579346,
        0.04016578197479248,
        0.0
      ]
    },
    {
      "mesh": 2,
      "name": "fLOWERMID_phong1_0"
    }
  ],
  "samplers": [
    {
      "magFilter": 9729,
      "minFilter": 9987,
      "wrapS": 10497,
      "wrapT": 10497
    }
  ],
  "scene": 0,
  "scenes": [
    {
      "name": "Sketchfab_Scene",
      "nodes": [
        0
      ]
    }
  ],
  "skins": [
    {
      "inverseBindMatrices": 15,
      "joints": [
        6,
        9,
        10,
        11,
        12,
        13,
        14,
        15,
        16,
        17,
        18,
        19,
        20,
        21,
        22,
        23,
        24,
        25,
        26,
        27,
        28,
        29,
        30,
        31,
        32,
        33,
        34,
        35,
        36,
        37,
        38,
        39,
        40,
        41,
        42,
        43,
        44,
        45,
        46,
        47,
        48,
        49,
        50
      ],
      "skeleton": 6
    }
  ],
  "textures": [
    {
      "sampler": 0,
      "source": 0
    },
    {
      "sampler": 0,
      "source": 1
    },
    {
      "sampler": 0,
      "source": 2
    },
    {
      "sampler": 0,
      "source": 3
    }
  ]
}


================================================
FILE: Entities/Boss/ForestBoss/Scenes/ForestBoss.tscn
================================================
[gd_scene load_steps=10 format=3 uid="uid://baslo52ff8tpu"]

[ext_resource type="Script" path="res://Entities/Boss/ForestBoss/Scripts/ForestBossScript.gd" id="1_r8ssg"]
[ext_resource type="Script" path="res://Entities/Creature/Scripts/HPBarTest.gd" id="2_jgnpv"]
[ext_resource type="PackedScene" uid="uid://68qp5f1wbr8b" path="res://Entities/Boss/ForestBoss/Assets/tentacle_plant/scene.gltf" id="3_k1yol"]
[ext_resource type="AudioStream" uid="uid://b3a5qr4tb5dqd" path="res://Entities/Boss/ForestBoss/SFX/ForestBossMusic.mp3" id="3_k6uif"]
[ext_resource type="SphereMesh" uid="uid://boarfhocxjd7i" path="res://Entities/Effects/mesh_son_of_mobs.tres" id="5_e0x1e"]

[sub_resource type="CapsuleShape3D" id="CapsuleShape3D_oitgh"]
radius = 3.64217
height = 7.28434

[sub_resource type="Gradient" id="Gradient_0d0hi"]
interpolation_mode = 1
colors = PackedColorArray(1, 0, 0, 1, 1, 1, 1, 1)

[sub_resource type="GradientTexture2D" id="GradientTexture2D_njjtf"]
gradient = SubResource("Gradient_0d0hi")
width = 100
height = 20

[sub_resource type="SphereShape3D" id="SphereShape3D_u3l58"]
radius = 1.73627

[node name="ForestBoss" type="CharacterBody3D"]
collision_layer = 8388608
script = ExtResource("1_r8ssg")
time_between_spells = 2.0
race = 4
description = "Forest Boss"
hpMax = 200
radius = 20.0
stop_fleeing_distance = 20.0

[node name="CollisionShape3D" type="CollisionShape3D" parent="."]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0.140476)
shape = SubResource("CapsuleShape3D_oitgh")

[node name="Sketchfab_Scene" parent="CollisionShape3D" instance=ExtResource("3_k1yol")]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -1.57973, -3.4173, -0.140476)

[node name="NavigationAgent3D" type="NavigationAgent3D" parent="."]

[node name="AudioStreamPlayer" type="AudioStreamPlayer" parent="."]
stream = ExtResource("3_k6uif")
parameters/looping = true

[node name="HPBar" type="Sprite3D" parent="."]
transform = Transform3D(5, 0, 0, 0, 5, 0, 0, 0, 5, 0, 0.920184, 0)
texture = SubResource("GradientTexture2D_njjtf")
script = ExtResource("2_jgnpv")

[node name="MeshInstance3D" type="MeshInstance3D" parent="."]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -0.553929, -3.13946, 0.0718672)
mesh = ExtResource("5_e0x1e")
skeleton = NodePath("../CollisionShape3D")

[node name="Area3D" type="Area3D" parent="."]
collision_layer = 8388608
collision_mask = 0

[node name="Hitbox" type="CollisionShape3D" parent="Area3D"]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, -2.8644, 0)
shape = SubResource("SphereShape3D_u3l58")


================================================
FILE: Entities/Boss/ForestBoss/Scripts/ForestBossScript.gd
================================================
class_name ForestBoss

extends Entity

# Spell scene
var spell_scene = preload("res://Spells/PoisonBall/Scene/PoisonBall.tscn") 
# Mob scene
var mob_scene = preload("res://Entities/Creature/Scenes/Tuto.tscn") 

# Audio node
@onready var audiosteamplayer = $AudioStreamPlayer

# Player
@onready var player = get_tree().current_scene.get_node("Player");

@export var time_between_1st_attack_and_2nd = 3.0 # 3 seconds
@export var time_between_2nd_attack_and_1st = 15.0
@export var number_of_launched_spells = 10
@export var time_between_spells = 1.0 # 1 second
@export var number_of_spawned_mobs = 5
@export var minimum_distance_for_spawning_mobs = 5.0 # 5 meters
@export var maximum_distance_for_spawning_mobs = 15.0 # 5 meters
@export var time_between_spawning_mobs = 2.0

var TAU = 2 * PI # for the second attack pattern

var not_launched_battle_phase = true # if true : the boss fight hasn't started. 


# Called when the node enters the scene tree for the first time.
func _ready() -> void:
	add_to_group("Boss") # DO NOT REMOVE
	super._ready()
	#stop_fleeing_distance = 20

# Called every frame. 'delta' is the elapsed time since the previous frame.
func _process(delta: float) -> void:
	super._process(delta)
	if isTrackingPlayer and not_launched_battle_phase:
		not_launched_battle_phase = false
		audiosteamplayer.play()
		boss_fight()
	
	if !isTrackingPlayer and !not_launched_battle_phase: # if the player leave
		audiosteamplayer.stop()
		hp = hpMax
		not_launched_battle_phase = true

func boss_fight():
	while(isTrackingPlayer):
		if isTrackingPlayer: # we need to check if the player is still in the boss' place
			await throw_on_player()
		if isTrackingPlayer:
			await get_tree().create_timer(time_between_1st_attack_and_2nd).timeout # wait time_between_1st_attack_and_2nd seconds
		if isTrackingPlayer:
			await spawn_mob_around_player()
		if isTrackingPlayer:
			await get_tree().create_timer(time_between_2nd_attack_and_1st).timeout
	audiosteamplayer.stop()

# first attack pattern
func throw_on_player():
	for i in range(number_of_launched_spells):
		
		var player_pos = player.global_position
		# Spell instantiation
		var spell_instance = spell_scene.instantiate()
		# Spell positioning
		spell_instance.global_position = player_pos
		# Adding the spell to the scene
		get_tree().current_scene.add_child(spell_instance)
		if !isTrackingPlayer:
			audiosteamplayer.stop()
			break
		await get_tree().create_timer(time_between_spells).timeout  # Waiting time_between_spells seconds

# second attack pattern
func spawn_mob_around_player():
	for i in range(number_of_spawned_mobs):
		var player_pos = player.global_position

		# Random angle (radians)
		var angle = randf() * TAU  # TAU = 2 * PI (toutes les directions possibles)

		# Random distance between 10 and 20 meters
		var distance = randf_range(minimum_distance_for_spawning_mobs, maximum_distance_for_spawning_mobs)

		# Position around the player
		var spawn_pos = player_pos + Vector3(cos(angle) * distance, 0, sin(angle) * distance)
		
		var mob_instance = mob_scene.instantiate()
		
		mob_instance.global_position = spawn_pos
		# Adding the mob to the scene
		get_tree().current_scene.add_child(mob_instance)
		if !isTrackingPlayer:
			audiosteamplayer.stop()
			break
		await get_tree().create_timer(time_between_spawning_mobs).timeout  # Waiting time_between_spawning_mobs seconds


================================================
FILE: Entities/Creature/Scenes/Kiwi.tscn
================================================
[gd_scene load_steps=6 format=3 uid="uid://bqwpctc6titk7"]

[ext_resource type="PackedScene" uid="uid://qc0ub5ax7fgv" path="res://Entities/Creature/Assets/low_poly_kiwi_run.glb" id="1_d77ik"]
[ext_resource type="Script" path="res://Entities/Creature/Scripts/tuto.gd" id="2_2q1hp"]
[ext_resource type="SphereMesh" uid="uid://boarfhocxjd7i" path="res://Entities/Effects/mesh_son_of_mobs.tres" id="2_5tdut"]

[sub_resource type="SphereShape3D" id="SphereShape3D_lqdhr"]
radius = 0.369457

[sub_resource type="BoxShape3D" id="BoxShape3D_nq0fq"]
size = Vector3(0.391724, 0.572388, 1)

[node name="Kiwi" instance=ExtResource("1_d77ik")]
script = ExtResource("2_2q1hp")
knockback_force = 10.0
race = 2
description = "The best animal"
hpMax = 50
speed = 4
walkingAnimation = "Take 001"
pMode = 1
radius = 10.0

[node name="Sketchfab_model" parent="." index="0"]
transform = Transform3D(6.135, 0, 0, 0, -2.68169e-07, 6.135, 0, -6.135, -2.68169e-07, 0, 0, 0)

[node name="Skeleton3D" parent="Sketchfab_model/f3de5553c9a147edabd0542e15e762bb_fbx/Object_2/RootNode/Object_4" index="0"]
bones/1/rotation = Quaternion(0.706986, -0.0130823, 0.706986, -0.0130822)
bones/1/scale = Vector3(1, 1, 1)
bones/2/rotation = Quaternion(0.748299, 0.613718, 0.250168, -0.0285388)
bones/2/scale = Vector3(1, 1, 1)
bones/3/scale = Vector3(0.999998, 1, 1)
bones/4/rotation = Quaternion(0.0424175, -0.016168, 0.182205, 0.982212)
bones/4/scale = Vector3(1, 1, 0.999998)
bones/5/rotation = Quaternion(0.00690364, -0.161543, 0.211847, 0.963834)
bones/6/scale = Vector3(1, 1, 0.999999)
bones/7/rotation = Quaternion(1.84762e-08, -7.53677e-09, 0.333768, 0.942655)
bones/8/rotation = Quaternion(-0.139074, 0.154609, 0.478374, 0.853178)
bones/8/scale = Vector3(1, 1, 1)
bones/9/rotation = Quaternion(2.82514e-08, 1.45846e-07, 0.327853, 0.944729)
bones/10/rotation = Quaternion(-0.47617, 0.258937, 0.415997, 0.730178)
bones/10/scale = Vector3(1, 1, 0.999998)
bones/11/rotation = Quaternion(-1.1323e-08, 5.53594e-08, 0.296291, 0.955098)
bones/12/rotation = Quaternion(0.895279, 0.409152, -0.170682, -0.0440127)
bones/12/scale = Vector3(1, 1, 1)
bones/13/rotation = Quaternion(-0.0146121, 0.0354144, -0.743521, 0.667615)
bones/13/scale = Vector3(0.999999, 1, 1)
bones/14/rotation = Quaternion(-0.0466026, 0.0504421, 0.867494, 0.492685)
bones/16/rotation = Quaternion(-0.149104, 0.227233, -0.134886, 0.952858)
bones/17/rotation = Quaternion(3.98208e-08, 2.62729e-08, -0.307759, 0.951464)
bones/17/scale = Vector3(1, 1, 1)
bones/19/rotation = Quaternion(-6.81074e-08, -2.05086e-07, -0.298761, 0.954328)
bones/20/rotation = Quaternion(0.0397014, -0.107876, -0.195799, 0.973884)
bones/21/rotation = Quaternion(1.26695e-07, -1.11351e-08, -0.210878, 0.977512)
bones/21/scale = Vector3(0.999999, 1, 1)
bones/22/rotation = Quaternion(-4.75805e-09, 6.38236e-08, 0.0504197, 0.998728)
bones/23/rotation = Quaternion(1.26341e-08, 7.12205e-08, 0.121712, 0.992565)
bones/25/rotation = Quaternion(-2.35711e-09, 1.24529e-07, 0.0245226, 0.999699)
bones/26/rotation = Quaternion(5.88181e-08, -1.49749e-07, -0.240201, 0.970723)
bones/27/rotation = Quaternion(2.81104e-08, -1.92206e-07, -0.24814, 0.968724)
bones/28/rotation = Quaternion(2.49673e-08, 1.03337e-08, -0.086986, 0.99621)
bones/29/rotation = Quaternion(-2.8556e-08, -3.8138e-08, -0.0946499, 0.995511)
bones/29/scale = Vector3(1, 1, 1)
bones/30/rotation = Quaternion(-2.99735e-08, -3.78294e-08, -0.11805, 0.993008)
bones/30/scale = Vector3(1, 1, 1)
bones/31/rotation = Quaternion(1.11216e-08, -2.1868e-08, 0.00760655, 0.999971)
bones/32/rotation = Quaternion(4.82956e-08, -5.51945e-08, 0.0889545, 0.996036)
bones/33/rotation = Quaternion(3.57597e-08, 9.47235e-08, 0.467264, 0.884118)
bones/34/rotation = Quaternion(1.68505e-08, 4.93901e-09, 0.121618, 0.992577)
bones/35/rotation = Quaternion(3.21387e-08, 1.30417e-08, 0.122952, 0.992413)
bones/35/scale = Vector3(0.999999, 1, 1)
bones/37/rotation = Quaternion(0.126632, -0.340895, 0.185449, 0.912887)
bones/39/scale = Vector3(1, 1, 1)
bones/40/rotation = Quaternion(-1.4796e-08, 1.76762e-09, -0.118623, 0.992939)
bones/41/rotation = Quaternion(-1.7417e-08, -5.79933e-09, -0.830558, 0.556932)
bones/42/rotation = Quaternion(1.88163e-08, 3.78912e-09, 0.143974, 0.989582)
bones/43/rotation = Quaternion(6.50513e-09, 6.20415e-09, 0.907097, -0.420922)
bones/44/rotation = Quaternion(4.1046e-08, -6.95976e-08, -0.120497, 0.992714)
bones/45/rotation = Quaternion(0.666149, 0.505305, 0.437044, 0.331518)
bones/46/rotation = Quaternion(0.307928, 0.453974, 0.469348, 0.691954)

[node name="MeshInstance3D" type="MeshInstance3D" parent="." index="2"]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.0511174, 0.374664, -0.0808222)
mesh = ExtResource("2_5tdut")
skeleton = NodePath("../CollisionShape3D")

[node name="NavigationAgent3D" type="NavigationAgent3D" parent="." index="3"]

[node name="Area3D" type="Area3D" parent="." index="4"]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0.729979, 0)
collision_layer = 8388608
collision_mask = 720896

[node name="Hitbox" type="CollisionShape3D" parent="Area3D" index="0"]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, -0.37815, -0.1039)
shape = SubResource("SphereShape3D_lqdhr")

[node name="CollisionShape3D" type="CollisionShape3D" parent="." index="5"]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -0.00970459, 0.305481, 0)
shape = SubResource("BoxShape3D_nq0fq")


================================================
FILE: Entities/Creature/Scenes/Tuto.tscn
================================================
[gd_scene load_steps=6 format=3 uid="uid://bxpd3kisrv8px"]

[ext_resource type="Script" path="res://Entities/Creature/Scripts/tuto.gd" id="1_2j4bn"]
[ext_resource type="PackedScene" uid="uid://xu2jkr53okyt" path="res://Entities/Creature/Assets/plantboy_animated_endboss.glb" id="1_ks522"]
[ext_resource type="SphereMesh" uid="uid://boarfhocxjd7i" path="res://Entities/Effects/mesh_son_of_mobs.tres" id="3_70pp8"]

[sub_resource type="BoxShape3D" id="BoxShape3D_c633s"]
size = Vector3(1.26526, 1.25342, 1.23828)

[sub_resource type="SphereShape3D" id="SphereShape3D_cm8jp"]
radius = 0.7734

[node name="Plant_Boy" instance=ExtResource("1_ks522")]
script = ExtResource("1_2j4bn")
damage = 20
attackSpeed = 5.0
race = 3
description = "Horrible plant"
hpMax = 100
isTrackingPlayer = true
speed = 5
walkingAnimation = "Walk"
pMode = 1
aMode = 3
radius = 10.0
melee_distance = 2.0
stop_fleeing_distance = 10.0

[node name="Skeleton3D" parent="Sketchfab_model/root/GLTF_SceneRootNode/Armature_94/GLTF_created_0" index="0"]
bones/1/rotation = Quaternion(0.662915, 0.0071225, 0.748618, -0.00804341)
bones/1/scale = Vector3(1, 1, 1)
bones/3/rotation = Quaternion(-0.0127412, -2.66326e-08, -0.104537, 0.994439)
bones/5/rotation = Quaternion(-0.0351547, 1.21665e-08, -0.288434, 0.956854)
bones/6/rotation = Quaternion(0.0163142, -0.000271547, -0.027221, 0.999496)
bones/6/scale = Vector3(1, 1, 1)
bones/8/rotation = Quaternion(-0.0168863, 0.000482539, 0.00575077, 0.999841)
bones/8/scale = Vector3(1, 1, 1)
bones/9/rotation = Quaternion(-0.0335547, 0.027638, 0.946005, -0.321224)
bones/9/scale = Vector3(1, 1, 1)
bones/10/scale = Vector3(1, 1, 1)
bones/11/rotation = Quaternion(-0.0313874, -0.00684058, -0.277055, 0.960317)
bones/11/scale = Vector3(1, 1, 1)
bones/12/rotation = Quaternion(-0.00609417, -0.0303228, 0.964411, 0.262594)
bones/12/scale = Vector3(1, 1, 1)
bones/13/scale = Vector3(1, 1, 1)
bones/14/rotation = Quaternion(0.0399252, 0.00245367, 0.323191, 0.945488)
bones/15/rotation = Quaternion(-0.0353869, -0.253955, 0.956568, 0.138684)
bones/15/scale = Vector3(1, 1, 1)
bones/16/rotation = Quaternion(0.390756, -0.0581834, 0.167279, 0.903295)
bones/17/rotation = Quaternion(0.197394, -0.0165097, 0.0904201, 0.976006)
bones/18/rotation = Quaternion(0.0654852, -0.166459, 0.98022, -0.0846896)
bones/18/scale = Vector3(1, 1, 1)
bones/20/rotation = Quaternion(0.236709, -0.00598109, -0.201416, 0.950455)
bones/21/rotation = Quaternion(-0.556922, -0.394767, 0.447325, 0.577839)
bones/21/scale = Vector3(1, 1, 1)
bones/22/rotation = Quaternion(0.0388272, -0.0312368, 0.123433, 0.991101)
bones/22/scale = Vector3(1, 1, 1)
bones/23/rotation = Quaternion(-0.00317222, -0.109578, 0.26354, 0.958399)
bones/24/rotation = Quaternion(0.0125548, -0.0885101, 0.207485, 0.974145)
bones/25/rotation = Quaternion(-0.0112899, -0.000261387, 0.000445196, 0.999936)
bones/25/scale = Vector3(1, 1, 1)
bones/26/rotation = Quaternion(-0.0163737, 0.280456, -0.65582, 0.700697)
bones/28/rotation = Quaternion(0.00544072, -0.0507001, -0.119923, 0.991473)
bones/29/rotation = Quaternion(0.012575, -0.0581575, -0.135074, 0.989047)
bones/29/scale = Vector3(1, 1, 1)
bones/30/rotation = Quaternion(-0.00268326, -0.0629001, -0.156529, 0.985665)
bones/31/rotation = Quaternion(-0.00217756, 0.000284665, -0.00015507, 0.999998)
bones/31/scale = Vector3(1, 1, 1)
bones/32/rotation = Quaternion(-0.0512294, 0.490634, -0.517036, 0.699519)
bones/33/scale = Vector3(1, 1, 1)
bones/34/rotation = Quaternion(0.0123636, -0.000627996, 0.000605919, 0.999923)
bones/36/rotation = Quaternion(0.447096, -0.000101589, 0.0218493, 0.894219)
bones/37/rotation = Quaternion(0.0547778, -0.0310316, -0.708451, 0.702946)
bones/38/rotation = Quaternion(0.00140956, -0.0256912, -0.207808, 0.977831)
bones/38/scale = Vector3(1, 1, 1)
bones/39/rotation = Quaternion(-0.016857, -0.0331652, -0.309695, 0.950108)
bones/40/rotation = Quaternion(-0.0155337, -0.0112784, -0.153757, 0.987922)
bones/40/scale = Vector3(1, 1, 1)
bones/41/rotation = Quaternion(0.217115, -0.362006, 0.757925, -0.497355)
bones/41/scale = Vector3(1, 1, 1)
bones/42/rotation = Quaternion(0.113908, 0.189331, -0.203003, 0.953923)
bones/42/scale = Vector3(1, 1, 1)
bones/43/rotation = Quaternion(0.205534, 0.0657978, -0.155029, 0.96405)
bones/43/scale = Vector3(1, 1, 1)
bones/44/rotation = Quaternion(0.0840268, 0.0126435, -0.118049, 0.989365)
bones/45/rotation = Quaternion(-0.450759, -0.379236, 0.494907, 0.638799)
bones/46/rotation = Quaternion(-0.0273496, -0.633536, 0.0647077, 0.770518)
bones/47/rotation = Quaternion(0.273963, -0.0906045, 0.113475, 0.950715)
bones/48/rotation = Quaternion(0.132908, -0.0109979, 0.023094, 0.990798)
bones/49/rotation = Quaternion(-0.0227282, -0.0565032, 0.791054, 0.608707)
bones/49/scale = Vector3(1, 1, 1)
bones/50/rotation = Quaternion(0.0178099, -0.0192734, 0.21263, 0.97678)
bones/51/rotation = Quaternion(0.0359898, -0.0107187, 0.312707, 0.949107)
bones/52/rotation = Quaternion(0.0167945, 0.00279633, 0.135788, 0.990592)
bones/52/scale = Vector3(1, 1, 1)
bones/53/scale = Vector3(1, 1, 1)
bones/54/rotation = Quaternion(0.0629097, -0.121891, 0.146674, 0.979628)
bones/54/scale = Vector3(1, 1, 1)
bones/55/rotation = Quaternion(-0.00358036, -0.126955, 0.162958, 0.978424)
bones/55/scale = Vector3(1, 1, 1)
bones/56/rotation = Quaternion(0.0618142, 0.139652, 0.97664, 0.151165)
bones/57/rotation = Quaternion(-0.26397, 0.0759397, 0.216057, 0.936949)
bones/57/scale = Vector3(1, 1, 1)
bones/58/rotation = Quaternion(-0.215802, 0.0320401, 0.158303, 0.962986)
bones/58/scale = Vector3(1, 1, 1)
bones/59/rotation = Quaternion(-0.023569, 0.145115, 0.987635, -0.0544391)
bones/59/scale = Vector3(1, 1, 1)
bones/60/rotation = Quaternion(-0.268092, -0.0506115, -0.125178, 0.953885)
bones/60/scale = Vector3(1, 1, 1)
bones/61/rotation = Quaternion(-0.210954, -0.00456309, -0.0715086, 0.974866)
bones/62/rotation = Quaternion(0.133216, 0.134369, 0.682521, 0.705949)
bones/63/rotation = Quaternion(-0.0302486, 0.0215131, 0.0496204, 0.998078)
bones/63/scale = Vector3(1, 1, 1)
bones/64/rotation = Quaternion(0.022808, 0.139184, 0.309553, 0.940364)
bones/65/rotation = Quaternion(0.00141127, 0.0706095, 0.165548, 0.98367)
bones/65/scale = Vector3(1, 1, 1)
bones/66/rotation = Quaternion(0.0112915, -0.000118791, -0.000400463, 0.999936)
bones/66/scale = Vector3(1, 1, 1)
bones/67/rotation = Quaternion(-0.0331119, -0.240896, -0.556726, 0.794311)
bones/68/rotation = Quaternion(0.286001, -0.126512, -0.600788, 0.735698)
bones/68/scale = Vector3(1, 1, 1)
bones/69/rotation = Quaternion(0.0286126, -0.0206573, -0.199496, 0.979263)
bones/70/rotation = Quaternion(0.0271929, -0.026871, -0.235709, 0.971071)
bones/70/scale = Vector3(1, 1, 1)
bones/71/rotation = Quaternion(0.0259527, -0.00485685, -0.0908049, 0.995519)
bones/72/rotation = Quaternion(-0.0120717, -0.00648871, -0.184858, 0.98267)
bones/72/scale = Vector3(1, 1, 1)
bones/73/rotation = Quaternion(0.178071, -0.504803, -0.510802, 0.672716)
bones/75/rotation = Quaternion(-0.0899117, -0.00144199, -0.00610949, 0.99593)
bones/75/scale = Vector3(1, 1, 1)
bones/76/rotation = Quaternion(-0.345871, 0.000647253, -0.0232386, 0.937994)
bones/76/scale = Vector3(1, 1, 1)
bones/77/rotation = Quaternion(-0.00225188, -0.000261215, -0.000152282, 0.999997)
bones/78/rotation = Quaternion(-0.276495, 0.438021, 0.738336, -0.431912)
bones/78/scale = Vector3(1, 1, 1)
bones/79/rotation = Quaternion(-0.153632, -0.254382, -0.188393, 0.936053)
bones/80/rotation = Quaternion(-0.235663, -0.0634975, -0.103639, 0.964204)
bones/81/rotation = Quaternion(-0.122762, -0.017739, -0.0937234, 0.987841)
bones/81/scale = Vector3(1, 1, 1)
bones/83/rotation = Quaternion(-0.0629249, 0.388307, 0.275037, 0.877276)
bones/84/rotation = Quaternion(-0.225849, 0.146593, 0.200547, 0.941957)
bones/85/rotation = Quaternion(-0.149426, 0.0192782, 0.0769686, 0.985584)
bones/86/rotation = Quaternion(0.425727, -0.132135, -0.287088, 0.847866)
bones/87/rotation = Quaternion(-0.18813, 0.075736, 0.141242, 0.96898)
bones/88/rotation = Quaternion(-0.046418, 0.117629, 0.156248, 0.979589)
bones/88/scale = Vector3(1, 1, 1)
bones/89/rotation = Quaternion(0.58246, -0.393893, 0.595219, -0.388977)
bones/90/rotation = Quaternion(0.0156245, 0.0273068, -0.257708, 0.965711)
bones/91/rotation = Quaternion(0.0232878, 0.0142625, -0.217482, 0.975682)

[node name="CollisionShape3D" type="CollisionShape3D" parent="." index="2"]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.0215407, 0.58098, 0.0227444)
shape = SubResource("BoxShape3D_c633s")

[node name="Area3D" type="Area3D" parent="." index="3"]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0.729979, 0)
collision_layer = 8388608
collision_mask = 720896

[node name="Hitbox" type="CollisionShape3D" parent="Area3D" index="0"]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, -0.134608, 0)
shape = SubResource("SphereShape3D_cm8jp")

[node name="NavigationAgent3D" type="NavigationAgent3D" parent="." index="4"]

[node name="MeshInstance3D" type="MeshInstance3D" parent="." index="5"]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.0511174, 0.798571, 0.0718672)
mesh = ExtResource("3_70pp8")
skeleton = NodePath("../CollisionShape3D")


================================================
FILE: Entities/Creature/Scenes/plant_boy.tscn
================================================
[gd_scene load_steps=6 format=3 uid="uid://b7harfardein1"]

[ext_resource type="PackedScene" uid="uid://xu2jkr53okyt" path="res://Entities/Creature/Assets/plantboy_animated_endboss.glb" id="1_l0pbi"]
[ext_resource type="Script" path="res://Entities/Creature/Scripts/tuto.gd" id="2_awaap"]
[ext_resource type="SphereMesh" uid="uid://boarfhocxjd7i" path="res://Entities/Effects/mesh_son_of_mobs.tres" id="3_0t4ic"]

[sub_resource type="BoxShape3D" id="BoxShape3D_c633s"]
size = Vector3(1.26526, 1.25342, 1.23828)

[sub_resource type="SphereShape3D" id="SphereShape3D_cm8jp"]
radius = 0.7734

[node name="Plant_Boy" instance=ExtResource("1_l0pbi")]
script = ExtResource("2_awaap")
damage = 20
attackSpeed = 5.0
race = 3
description = "Horrible plant"
hpMax = 100
isTrackingPlayer = true
speed = 5
walkingAnimation = "Walk"
pMode = 1
aMode = 3
radius = 10.0
melee_distance = 2.0
stop_fleeing_distance = 10.0

[node name="Skeleton3D" parent="Sketchfab_model/root/GLTF_SceneRootNode/Armature_94/GLTF_created_0" index="0"]
bones/1/rotation = Quaternion(0.662915, 0.0071225, 0.748618, -0.00804341)
bones/1/scale = Vector3(1, 1, 1)
bones/3/rotation = Quaternion(-0.0127412, -2.66326e-08, -0.104537, 0.994439)
bones/5/rotation = Quaternion(-0.0351547, 1.21665e-08, -0.288434, 0.956854)
bones/6/rotation = Quaternion(0.0163142, -0.000271547, -0.027221, 0.999496)
bones/6/scale = Vector3(1, 1, 1)
bones/8/rotation = Quaternion(-0.0168863, 0.000482539, 0.00575077, 0.999841)
bones/8/scale = Vector3(1, 1, 1)
bones/9/rotation = Quaternion(-0.0335547, 0.027638, 0.946005, -0.321224)
bones/9/scale = Vector3(1, 1, 1)
bones/10/scale = Vector3(1, 1, 1)
bones/11/rotation = Quaternion(-0.0313874, -0.00684058, -0.277055, 0.960317)
bones/11/scale = Vector3(1, 1, 1)
bones/12/rotation = Quaternion(-0.00609417, -0.0303228, 0.964411, 0.262594)
bones/12/scale = Vector3(1, 1, 1)
bones/13/scale = Vector3(1, 1, 1)
bones/14/rotation = Quaternion(0.0399252, 0.00245367, 0.323191, 0.945488)
bones/15/rotation = Quaternion(-0.0353869, -0.253955, 0.956568, 0.138684)
bones/15/scale = Vector3(1, 1, 1)
bones/16/rotation = Quaternion(0.390756, -0.0581834, 0.167279, 0.903295)
bones/17/rotation = Quaternion(0.197394, -0.0165097, 0.0904201, 0.976006)
bones/18/rotation = Quaternion(0.0654852, -0.166459, 0.98022, -0.0846896)
bones/18/scale = Vector3(1, 1, 1)
bones/20/rotation = Quaternion(0.236709, -0.00598109, -0.201416, 0.950455)
bones/21/rotation = Quaternion(-0.556922, -0.394767, 0.447325, 0.577839)
bones/21/scale = Vector3(1, 1, 1)
bones/22/rotation = Quaternion(0.0388272, -0.0312368, 0.123433, 0.991101)
bones/22/scale = Vector3(1, 1, 1)
bones/23/rotation = Quaternion(-0.00317222, -0.109578, 0.26354, 0.958399)
bones/24/rotation = Quaternion(0.0125548, -0.0885101, 0.207485, 0.974145)
bones/25/rotation = Quaternion(-0.0112899, -0.000261387, 0.000445196, 0.999936)
bones/25/scale = Vector3(1, 1, 1)
bones/26/rotation = Quaternion(-0.0163737, 0.280456, -0.65582, 0.700697)
bones/28/rotation = Quaternion(0.00544072, -0.0507001, -0.119923, 0.991473)
bones/29/rotation = Quaternion(0.012575, -0.0581575, -0.135074, 0.989047)
bones/29/scale = Vector3(1, 1, 1)
bones/30/rotation = Quaternion(-0.00268326, -0.0629001, -0.156529, 0.985665)
bones/31/rotation = Quaternion(-0.00217756, 0.000284665, -0.00015507, 0.999998)
bones/31/scale = Vector3(1, 1, 1)
bones/32/rotation = Quaternion(-0.0512294, 0.490634, -0.517036, 0.699519)
bones/33/scale = Vector3(1, 1, 1)
bones/34/rotation = Quaternion(0.0123636, -0.000627996, 0.000605919, 0.999923)
bones/36/rotation = Quaternion(0.447096, -0.000101589, 0.0218493, 0.894219)
bones/37/rotation = Quaternion(0.0547778, -0.0310316, -0.708451, 0.702946)
bones/38/rotation = Quaternion(0.00140956, -0.0256912, -0.207808, 0.977831)
bones/38/scale = Vector3(1, 1, 1)
bones/39/rotation = Quaternion(-0.016857, -0.0331652, -0.309695, 0.950108)
bones/40/rotation = Quaternion(-0.0155337, -0.0112784, -0.153757, 0.987922)
bones/40/scale = Vector3(1, 1, 1)
bones/41/rotation = Quaternion(0.217115, -0.362006, 0.757925, -0.497355)
bones/41/scale = Vector3(1, 1, 1)
bones/42/rotation = Quaternion(0.113908, 0.189331, -0.203003, 0.953923)
bones/42/scale = Vector3(1, 1, 1)
bones/43/rotation = Quaternion(0.205534, 0.0657978, -0.155029, 0.96405)
bones/43/scale = Vector3(1, 1, 1)
bones/44/rotation = Quaternion(0.0840268, 0.0126435, -0.118049, 0.989365)
bones/45/rotation = Quaternion(-0.450759, -0.379236, 0.494907, 0.638799)
bones/46/rotation = Quaternion(-0.0273496, -0.633536, 0.0647077, 0.770518)
bones/47/rotation = Quaternion(0.273963, -0.0906045, 0.113475, 0.950715)
bones/48/rotation = Quaternion(0.132908, -0.0109979, 0.023094, 0.990798)
bones/49/rotation = Quaternion(-0.0227282, -0.0565032, 0.791054, 0.608707)
bones/49/scale = Vector3(1, 1, 1)
bones/50/rotation = Quaternion(0.0178099, -0.0192734, 0.21263, 0.97678)
bones/51/rotation = Quaternion(0.0359898, -0.0107187, 0.312707, 0.949107)
bones/52/rotation = Quaternion(0.0167945, 0.00279633, 0.135788, 0.990592)
bones/52/scale = Vector3(1, 1, 1)
bones/53/scale = Vector3(1, 1, 1)
bones/54/rotation = Quaternion(0.0629097, -0.121891, 0.146674, 0.979628)
bones/54/scale = Vector3(1, 1, 1)
bones/55/rotation = Quaternion(-0.00358036, -0.126955, 0.162958, 0.978424)
bones/55/scale = Vector3(1, 1, 1)
bones/56/rotation = Quaternion(0.0618142, 0.139652, 0.97664, 0.151165)
bones/57/rotation = Quaternion(-0.26397, 0.0759397, 0.216057, 0.936949)
bones/57/scale = Vector3(1, 1, 1)
bones/58/rotation = Quaternion(-0.215802, 0.0320401, 0.158303, 0.962986)
bones/58/scale = Vector3(1, 1, 1)
bones/59/rotation = Quaternion(-0.023569, 0.145115, 0.987635, -0.0544391)
bones/59/scale = Vector3(1, 1, 1)
bones/60/rotation = Quaternion(-0.268092, -0.0506115, -0.125178, 0.953885)
bones/60/scale = Vector3(1, 1, 1)
bones/61/rotation = Quaternion(-0.210954, -0.00456309, -0.0715086, 0.974866)
bones/62/rotation = Quaternion(0.133216, 0.134369, 0.682521, 0.705949)
bones/63/rotation = Quaternion(-0.0302486, 0.0215131, 0.0496204, 0.998078)
bones/63/scale = Vector3(1, 1, 1)
bones/64/rotation = Quaternion(0.022808, 0.139184, 0.309553, 0.940364)
bones/65/rotation = Quaternion(0.00141127, 0.0706095, 0.165548, 0.98367)
bones/65/scale = Vector3(1, 1, 1)
bones/66/rotation = Quaternion(0.0112915, -0.000118791, -0.000400463, 0.999936)
bones/66/scale = Vector3(1, 1, 1)
bones/67/rotation = Quaternion(-0.0331119, -0.240896, -0.556726, 0.794311)
bones/68/rotation = Quaternion(0.286001, -0.126512, -0.600788, 0.735698)
bones/68/scale = Vector3(1, 1, 1)
bones/69/rotation = Quaternion(0.0286126, -0.0206573, -0.199496, 0.979263)
bones/70/rotation = Quaternion(0.0271929, -0.026871, -0.235709, 0.971071)
bones/70/scale = Vector3(1, 1, 1)
bones/71/rotation = Quaternion(0.0259527, -0.00485685, -0.0908049, 0.995519)
bones/72/rotation = Quaternion(-0.0120717, -0.00648871, -0.184858, 0.98267)
bones/72/scale = Vector3(1, 1, 1)
bones/73/rotation = Quaternion(0.178071, -0.504803, -0.510802, 0.672716)
bones/75/rotation = Quaternion(-0.0899117, -0.00144199, -0.00610949, 0.99593)
bones/75/scale = Vector3(1, 1, 1)
bones/76/rotation = Quaternion(-0.345871, 0.000647253, -0.0232386, 0.937994)
bones/76/scale = Vector3(1, 1, 1)
bones/77/rotation = Quaternion(-0.00225188, -0.000261215, -0.000152282, 0.999997)
bones/78/rotation = Quaternion(-0.276495, 0.438021, 0.738336, -0.431912)
bones/78/scale = Vector3(1, 1, 1)
bones/79/rotation = Quaternion(-0.153632, -0.254382, -0.188393, 0.936053)
bones/80/rotation = Quaternion(-0.235663, -0.0634975, -0.103639, 0.964204)
bones/81/rotation = Quaternion(-0.122762, -0.017739, -0.0937234, 0.987841)
bones/81/scale = Vector3(1, 1, 1)
bones/83/rotation = Quaternion(-0.0629249, 0.388307, 0.275037, 0.877276)
bones/84/rotation = Quaternion(-0.225849, 0.146593, 0.200547, 0.941957)
bones/85/rotation = Quaternion(-0.149426, 0.0192782, 0.0769686, 0.985584)
bones/86/rotation = Quaternion(0.425727, -0.132135, -0.287088, 0.847866)
bones/87/rotation = Quaternion(-0.18813, 0.075736, 0.141242, 0.96898)
bones/88/rotation = Quaternion(-0.046418, 0.117629, 0.156248, 0.979589)
bones/88/scale = Vector3(1, 1, 1)
bones/89/rotation = Quaternion(0.58246, -0.393893, 0.595219, -0.388977)
bones/90/rotation = Quaternion(0.0156245, 0.0273068, -0.257708, 0.965711)
bones/91/rotation = Quaternion(0.0232878, 0.0142625, -0.217482, 0.975682)

[node name="CollisionShape3D" type="CollisionShape3D" parent="." index="2"]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.0215407, 0.58098, 0.0227444)
shape = SubResource("BoxShape3D_c633s")

[node name="Area3D" type="Area3D" parent="." index="3"]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0.729979, 0)
collision_layer = 8388608
collision_mask = 720896

[node name="Hitbox" type="CollisionShape3D" parent="Area3D" index="0"]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, -0.134608, 0)
shape = SubResource("SphereShape3D_cm8jp")

[node name="NavigationAgent3D" type="NavigationAgent3D" parent="." index="4"]

[node name="MeshInstance3D" type="MeshInstance3D" parent="." index="5"]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.0511174, 0.798571, 0.0718672)
mesh = ExtResource("3_0t4ic")
skeleton = NodePath("../CollisionShape3D")


================================================
FILE: Entities/Creature/Scripts/HPBarTest.gd
================================================
extends Sprite3D


@onready var entity_scene = get_parent()

var maxHP : float 

func _ready():
	maxHP = entity_scene.hpMax
	texture = load("res://UI/Textures/HPBar.tres").duplicate(true) # Deep copy : each NPC will have its own HPBar texture
	texture.gradient.set_offset(1,entity_scene.hp/maxHP)

func _process(delta):
	#print("Mon parent est : ",entity_scene.name)
	#value is between 0 (0 hp) and 1 (full hp)
	texture.gradient.set_offset(1,entity_scene.hp/maxHP)


================================================
FILE: Entities/Creature/Scripts/creature.gd
================================================
class_name Creature

extends Entity

@export var damage : int ## Amount of damage it deals when attacking
@export var attackSpeed : float ## Number of seconds between two attacks
var drop : Array[Object] ## Array containing the items dropped once dead

@onready var time_last_deal_damage : float

@export var knockback_jump_force : float = 4.0
@export var knockback_force : float = 15
var knockback_velocity: Vector3 = Vector3.ZERO # Used for the knockback

func _ready() -> void:
	time_last_deal_damage = Time.get_ticks_msec() 
	add_to_group("Creature") # DO NOT REMOVE
	super._ready()
	#self.dialog()

# Say if the player took mob's aggro
func isMobAggro() -> bool:
	pass
	return false
	
func distanceEuclidienne(posA : Vector3, posB : Vector3):
	return sqrt(pow(posA.x - posB.x, 2) + pow(posA.y - posB.y, 2) + pow(posA.z - posB.z, 2))
	
	
func attack() -> void:
	var disToPlayer = distanceEuclidienne(position, player_scene.position)
	
	if Time.get_ticks_msec() - time_last_deal_damage > attackSpeed*1000:
		if aMode == aggressiveMode.MELEE:
			if disToPlayer <= melee_distance+0.2:
				# If we have an animation
				var anim_player = $AnimationPlayer if has_node("AnimationPlayer") else null
				if anim_player and anim_player is AnimationPlayer:
					var attacks = ["Attack1", "Attack2", "Attack3"]
					# We play a random attack
					var random_attack = attacks[randi() % attacks.size()]
					anim_player.play(random_attack)
				player_scene.damage_player(damage)
				time_last_deal_damage = Time.get_ticks_msec()
		elif aMode == aggressiveMode.DISTANCE:
			if disToPlayer <= dist_distance+0.5:
				var node_entities = get_tree().current_scene.get_node("Entities")
				var projectile_scene : Projectile = load("res://Items/Projectile/Scene/projectile.tscn").instantiate()
				projectile_scene.initial_position = global_position
				projectile_scene.destination = player_scene.global_position
				projectile_scene.speed = 10
				projectile_scene.damage = damage
				node_entities.add_child(projectile_scene)
				time_last_deal_damage = Time.get_ticks_msec()
		else :
			pass
			
		
	
## Reduce the heal point of the entity
func take_damage(damages : int):
	super.take_damage(damages)
	knockback_effect((global_transform.origin - player_scene.global_position).normalized(), knockback_force ,knockback_jump_force)

func _process(delta: float) -> void:
	var horizontal_knockback = Vector3(knockback_velocity.x, 0, knockback_velocity.z)
	if (horizontal_knockback.length() < 0.1):
		knockback_velocity.x = 0.0
		knockback_velocity.z = 0.0
		super._process(delta)
		attack()

# Used for the knockback
func _physics_process(delta: float) -> void:
	# Applique un amortissement progressif au knockback horizontal
	var horizontal_knockback = Vector3(knockback_velocity.x, 0, knockback_velocity.z)
	if horizontal_knockback.length() > 0.1:
		knockback_velocity.x = lerp(knockback_velocity.x, 0.0, delta * 5)
		knockback_velocity.z = lerp(knockback_velocity.z, 0.0, delta * 5)
		
		# Applique la gravité
		knockback_velocity.y -= gravity * delta  # Ajuste selon ta physique
		
		velocity = knockback_velocity
		move_and_slide()


func knockback_effect(direction: Vector3 = Vector3.BACK, force: float = 10.0, jump_strength: float = 4.0) -> void:
	var dir = direction.normalized()
	dir.y = 0  # On neutralise la hauteur dans la direction de base (on va la gérer à part)
	knockback_velocity = dir * force
	knockback_velocity.y = jump_strength
	


================================================
FILE: Entities/Creature/Scripts/tuto.gd
================================================
class_name Tuto

extends Creature

# Called when the node enters the scene tree for the first time.
func _ready() -> void:
	super._ready()
	var hp_bar_instance = preload("res://UI/Scenes/HPBar.tscn").instantiate()
	hp_bar_instance.entity_scene = self  # Lier la bonne entité
	add_child(hp_bar_instance)  # Ajouter la barre au mob
	


# Called every frame. 'delta' is the elapsed time since the previous frame.
func _process(delta: float) -> void:
	super._process(delta)


================================================
FILE: Entities/Effects/damage_effect.tres
================================================
[gd_resource type="StandardMaterial3D" format=3 uid="uid://drdr1p7myhgky"]

[resource]
albedo_color = Color(0.815686, 0, 0, 0.333333)


================================================
FILE: Entities/Effects/mesh_son_of_mobs.tres
================================================
[gd_resource type="SphereMesh" load_steps=2 format=3 uid="uid://boarfhocxjd7i"]

[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_vu30b"]
transparency = 1
albedo_color = Color(1, 1, 1, 0)

[resource]
material = SubResource("StandardMaterial3D_vu30b")
radius = 0.27
height = 0.46


================================================
FILE: Entities/NPC/Scenes/3D_dialogBox.tscn
================================================
[gd_scene load_steps=3 format=3 uid="uid://di6y3dm1aa8ey"]

[ext_resource type="PackedScene" uid="uid://clujaf3u776a3" path="res://addons/godot-xr-tools/objects/viewport_2d_in_3d.tscn" id="1_lqaul"]
[ext_resource type="PackedScene" uid="uid://c40wiqb58aege" path="res://Entities/NPC/Scenes/dialogBox.tscn" id="2_ps8e5"]

[node name="3dDialogBox" type="Node3D"]

[node name="Viewport2Din3D" parent="." instance=ExtResource("1_lqaul")]
collision_layer = 5242880
scene = ExtResource("2_ps8e5")
scene_properties_keys = PackedStringArray("dialog_box.gd")


================================================
FILE: Entities/NPC/Scenes/NPC.tscn
================================================
[gd_scene load_steps=11 format=3 uid="uid://45s13vcev4a6"]

[ext_resource type="PackedScene" uid="uid://b3ro3ohuir7n1" path="res://Entities/NPC/Assets/full_moon_fears_torch_villager.glb" id="1_8e08a"]
[ext_resource type="Script" path="res://Entities/NPC/Scripts/npc.gd" id="1_d43lh"]
[ext_resource type="Script" path="res://Entities/Creature/Scripts/HPBarTest.gd" id="2_tuqtu"]
[ext_resource type="PackedScene" uid="uid://clujaf3u776a3" path="res://addons/godot-xr-tools/objects/viewport_2d_in_3d.tscn" id="3_qtwyn"]
[ext_resource type="PackedScene" uid="uid://c40wiqb58aege" path="res://Entities/NPC/Scenes/dialogBox.tscn" id="4_4brgg"]
[ext_resource type="AudioStream" uid="uid://yxonj8tav7qm" path="res://Sounds/Animal Crossing And Talking Meme Sound Effect Soundboard Link 🔽🔽.mp3" id="5_xqura"]

[sub_resource type="Gradient" id="Gradient_0d0hi"]
interpolation_mode = 1
colors = PackedColorArray(1, 0, 0, 1, 1, 1, 1, 1)

[sub_resource type="GradientTexture2D" id="GradientTexture2D_tspmk"]
gradient = SubResource("Gradient_0d0hi")
width = 100
height = 20

[sub_resource type="BoxShape3D" id="BoxShape3D_5ex7y"]
size = Vector3(1, 1.67432, 1)

[sub_resource type="CapsuleShape3D" id="CapsuleShape3D_fyy5l"]

[node name="Villager" instance=ExtResource("1_8e08a")]
script = ExtResource("1_d43lh")
description = "A basic human"
hpMax = 200
isInvincible = true

[node name="Skeleton3D" parent="Sketchfab_model/5504f715b8d64cb798c61f2f7db76023_fbx/Object_2/RootNode/Object_4/TorchRig_Reference/Object_47" index="0"]
bones/2/scale = Vector3(1, 1, 1)
bones/3/scale = Vector3(1, 1, 1)
bones/6/rotation = Quaternion(0.0507155, -0.063492, -0.115938, 0.989927)
bones/7/rotation = Quaternion(-0.115318, -0.0389252, 0.317385, 0.940454)
bones/7/scale = Vector3(1, 1, 1)
bones/8/rotation = Quaternion(-0.137576, 0.0317817, -0.809804, 0.569455)
bones/8/scale = Vector3(1, 1, 1)
bones/10/rotation = Quaternion(-0.000390392, -0.00894373, -0.0208622, 0.999742)
bones/11/rotation = Quaternion(0.00067248, -0.0178352, 0.0317644, 0.999336)
bones/12/rotation = Quaternion(0.00163144, -0.0177779, 0.0375877, 0.999134)
bones/13/rotation = Quaternion(-0.63749, -0.245657, -0.272417, 0.677531)
bones/13/scale = Vector3(1, 1, 1)
bones/14/rotation = Quaternion(-0.508608, 0.663932, 0.466294, -0.28824)
bones/14/scale = Vector3(1, 1, 1)
bones/15/rotation = Quaternion(-7.02675e-05, 0.000880259, 0.296302, 0.955094)
bones/17/rotation = Quaternion(-0.0888346, -0.253112, 0.06517, 0.961143)
bones/17/scale = Vector3(1, 1, 1)
bones/18/rotation = Quaternion(0.0510614, -0.0501608, 0.0558222, 0.995872)
bones/18/scale = Vector3(1, 1, 1)
bones/19/rotation = Quaternion(-0.333003, 0.742324, 0.23798, 0.5305)
bones/20/rotation = Quaternion(-0.338503, -0.148704, -0.0210631, 0.928902)
bones/20/scale = Vector3(1, 1, 1)
bones/21/rotation = Quaternion(0.510236, -0.455677, 0.0489473, 0.727751)
bones/21/scale = Vector3(1, 1, 1)
bones/22/rotation = Quaternion(-0.050808, -0.0119991, 0.226302, 0.972657)
bones/23/rotation = Quaternion(-0.269773, 0.927837, 0.0719109, 0.247325)
bones/25/rotation = Quaternion(0.325654, -0.191689, 0.0329793, 0.925266)
bones/25/scale = Vector3(1, 1, 1)
bones/26/scale = Vector3(1, 1, 1)
bones/29/rotation = Quaternion(0.115371, -0.107616, 0.0670074, 0.9852)
bones/29/scale = Vector3(1, 1, 1)
bones/31/rotation = Quaternion(-0.354801, 0.913133, 0.0727097, 0.187129)
bones/33/rotation = Quaternion(-0.17803, 0.0589055, 0.0367108, 0.981574)
bones/34/rotation = Quaternion(-0.549962, 0.797446, 0.140932, 0.204352)
bones/35/rotation = Quaternion(0.245657, -0.63749, 0.677531, 0.272417)
bones/35/scale = Vector3(1, 1, 1)
bones/36/rotation = Quaternion(0.270001, -0.537686, -0.399557, 0.691626)
bones/36/scale = Vector3(1, 1, 1)
bones/37/rotation = Quaternion(-0.000331359, 0.000681787, 0.642626, 0.766179)
bones/37/scale = Vector3(1, 1, 1)
bones/38/rotation = Quaternion(-0.303292, 0.0128376, 0.0212162, 0.952575)
bones/38/scale = Vector3(1, 1, 1)
bones/39/rotation = Quaternion(0.170001, -0.188674, -0.00609385, 0.967194)
bones/39/scale = Vector3(1, 1, 1)
bones/40/rotation = Quaternion(0.051222, -0.0391342, 0.0747905, 0.995114)
bones/40/scale = Vector3(1, 1, 1)
bones/41/rotation = Quaternion(-0.333003, 0.742324, 0.23798, 0.5305)
bones/42/scale = Vector3(1, 1, 1)
bones/43/rotation = Quaternion(-0.467488, 0.781471, 0.105098, -0.39964)
bones/44/rotation = Quaternion(-0.196661, -0.306207, 0.384847, 0.848206)
bones/44/scale = Vector3(1, 1, 1)
bones/45/rotation = Quaternion(-0.269773, 0.927837, 0.0719109, 0.247325)
bones/47/rotation = Quaternion(-0.102435, -0.354549, -0.0562393, 0.927706)
bones/48/rotation = Quaternion(0.22118, -0.668397, -0.11679, 0.700489)
bones/49/rotation = Quaternion(0.424126, -0.566695, 0.414999, 0.57162)
bones/52/rotation = Quaternion(-0.0396916, -0.631004, 0.250241, 0.733238)
bones/53/rotation = Quaternion(0.0320914, -0.183351, 0.326133, 0.926817)
bones/54/rotation = Quaternion(-0.354801, 0.913133, 0.0727097, 0.187129)
bones/55/rotation = Quaternion(0.293908, -0.647147, 0.340115, 0.615744)
bones/55/scale = Vector3(1, 1, 1)
bones/57/rotation = Quaternion(-0.549962, 0.797446, 0.140932, 0.204352)
bones/60/rotation = Quaternion(3.04704e-18, 1.71484e-18, 0.378573, 0.925572)
bones/62/rotation = Quaternion(0.672701, 0.187524, 0.675619, -0.236318)
bones/64/rotation = Quaternion(0.686342, 0.192004, 0.662176, -0.231499)
bones/64/scale = Vector3(1, 1, 1)

[node name="TorchRig_Ctrl_HipsEffector" parent="Sketchfab_model/5504f715b8d64cb798c61f2f7db76023_fbx/Object_2/RootNode/Object_4/TorchRig_Ctrl_Reference" index="0"]
transform = Transform3D(0.998475, -0.0552091, -4.65661e-10, 0.0551266, 0.996983, -0.0546419, 0.00301673, 0.0545585, 0.998506, 3.16435, 79.5734, -2.92448)

[node name="TorchRig_Ctrl_LeftAnkleEffector" parent="Sketchfab_model/5504f715b8d64cb798c61f2f7db76023_fbx/Object_2/RootNode/Object_4/TorchRig_Ctrl_Reference" index="1"]
transform = Transform3D(0.979851, -0.00448603, 0.19968, 0.00457757, 0.99999, 3.22924e-06, -0.199678, 0.000910886, 0.979861, 15.6466, 4.86214, -6.96504)

[node name="TorchRig_Ctrl_RightAnkleEffector" parent="Sketchfab_model/5504f715b8d64cb798c61f2f7db76023_fbx/Object_2/RootNode/Object_4/TorchRig_Ctrl_Reference" index="2"]
transform = Transform3D(0.943197, 0.021385, -0.331546, -0.0226747, 0.999743, -2.17671e-05, 0.33146, 0.00753822, 0.943439, -19.2348, 5.20747, -10.8724)

[node name="TorchRig_Ctrl_LeftWristEffector" parent="Sketchfab_model/5504f715b8d64cb798c61f2f7db76023_fbx/Object_2/RootNode/Object_4/TorchRig_Ctrl_Reference" index="3"]
transform = Transform3D(0.24387, 0.924669, -0.29243, -0.860192, 0.345493, 0.375106, 0.447881, 0.160069, 0.879648, 34.636, 71.7439, -2.13266)

[node name="TorchRig_Ctrl_RightWristEffector" parent="Sketchfab_model/5504f715b8d64cb798c61f2f7db76023_fbx/Object_2/RootNode/Object_4/TorchRig_Ctrl_Reference" index="4"]
transform = Transform3D(-0.0601337, -0.974146, 0.217767, -0.540846, 0.21516, 0.813137, -0.838969, -0.0688816, -0.539801, -35.3263, 113.024, 25.6655)

[node name="TorchRig_Ctrl_LeftKneeEffector" parent="Sketchfab_model/5504f715b8d64cb798c61f2f7db76023_fbx/Object_2/RootNode/Object_4/TorchRig_Ctrl_Reference" index="5"]
transform = Transform3D(0.988001, 0.0238354, 0.152596, 0.0241889, 0.951947, -0.305307, -0.152541, 0.305334, 0.939948, 16.4705, 37.7681, 3.58923)

[node name="TorchRig_Ctrl_RightKneeEffector" parent="Sketchfab_model/5504f715b8d64cb798c61f2f7db76023_fbx/Object_2/RootNode/Object_4/TorchRig_Ctrl_Reference" index="6"]
transform = Transform3D(0.966509, 0.150439, -0.207917, -0.222503, 0.894924, -0.386785, 0.127882, 0.420093, 0.898425, -13.9447, 36.6769, 3.89993)

[node name="TorchRig_Ctrl_LeftElbowEffector" parent="Sketchfab_model/5504f715b8d64cb798c61f2f7db76023_fbx/Object_2/RootNode/Object_4/TorchRig_Ctrl_Reference" index="7"]
transform = Transform3D(0.243832, 0.924694, -0.292383, -0.860143, 0.345462, 0.375248, 0.447996, 0.159994, 0.879603, 30.0651, 87.8683, -10.5308)

[node name="TorchRig_Ctrl_RightElbowEffector" parent="Sketchfab_model/5504f715b8d64cb798c61f2f7db76023_fbx/Object_2/RootNode/Object_4/TorchRig_Ctrl_Reference" index="8"]
transform = Transform3D(-0.0608547, -0.666617, 0.742912, -0.498492, 0.665123, 0.555983, -0.864755, -0.336502, -0.372779, -36.4672, 103.68, 9.45467)

[node name="TorchRig_Ctrl_ChestOriginEffector" parent="Sketchfab_model/5504f715b8d64cb798c61f2f7db76023_fbx/Object_2/RootNode/Object_4/TorchRig_Ctrl_Reference" index="9"]
transform = Transform3D(0.999301, -0.0373727, -3.52738e-08, 0.0372755, 0.996703, -0.0720601, 0.00269311, 0.0720098, 0.9974, 2.36386, 94.0264, -2.08917)

[node name="TorchRig_Ctrl_ChestEndEffector" parent="Sketchfab_model/5504f715b8d64cb798c61f2f7db76023_fbx/Object_2/RootNode/Object_4/TorchRig_Ctrl_Reference" index="10"]
transform = Transform3D(0.999421, 0.0340334, -3.0268e-09, -0.0336978, 0.989566, -0.140087, -0.00476765, 0.140006, 0.990139, 1.81664, 106.796, -4.86554)

[node name="TorchRig_Ctrl_LeftFootEffector" parent="Sketchfab_model/5504f715b8d64cb798c61f2f7db76023_fbx/Object_2/RootNode/Object_4/TorchRig_Ctrl_Reference" index="11"]
transform = Transform3D(0.979851, -0.00448603, 0.19968, 0.00457757, 0.99999, 3.22962e-06, -0.199678, 0.000910886, 0.979861, 18.7765, 4.64519, 8.38853)

[node name="TorchRig_Ctrl_RightFootEffector" parent="Sketchfab_model/5504f715b8d64cb798c61f2f7db76023_fbx/Object_2/RootNode/Object_4/TorchRig_Ctrl_Reference" index="12"]
transform = Transform3D(0.943197, 0.0213849, -0.331546, -0.0226747, 0.999743, -2.1772e-05, 0.33146, 0.00753821, 0.943439, -28.1705, 3.32262, 14.419)

[node name="TorchRig_Ctrl_LeftShoulderEffector" parent="Sketchfab_model/5504f715b8d64cb798c61f2f7db76023_fbx/Object_2/RootNode/Object_4/TorchRig_Ctrl_Reference" index="13"]
transform = Transform3D(0.36383, 0.925146, -0.108316, -0.924219, 0.344073, -0.165629, -0.115962, 0.160368, 0.980222, 18.9383, 116.129, -6.98522)

[node name="TorchRig_Ctrl_RightShoulderEffector" parent="Sketchfab_model/5504f715b8d64cb798c61f2f7db76023_fbx/Object_2/RootNode/Object_4/TorchRig_Ctrl_Reference" index="14"]
transform = Transform3D(0.715342, -0.666445, 0.210085, 0.444444, 0.665931, 0.599171, -0.539217, -0.335242, 0.772566, -14.5929, 117.27, -7.03395)

[node name="TorchRig_Ctrl_HeadEffector" parent="Sketchfab_model/5504f715b8d64cb798c61f2f7db76023_fbx/Object_2/RootNode/Object_4/TorchRig_Ctrl_Reference" index="15"]
transform = Transform3D(0.999421, 0.0340333, -1.0943e-08, -0.0340023, 0.998511, 0.0426526, 0.00145162, -0.0426279, 0.99909, 2.7721, 134.69, 1.7014)

[node name="TorchRig_Ctrl_LeftHipEffector" parent="Sketchfab_model/5504f715b8d64cb798c61f2f7db76023_fbx/Object_2/RootNode/Object_4/TorchRig_Ctrl_Reference" index="16"]
transform = Transform3D(0.996027, -0.0170093, 0.0874082, 0.00359229, 0.988463, 0.151417, -0.0889753, -0.150501, 0.984598, 15.7393, 80.2676, -2.88648)

[node name="TorchRig_Ctrl_RightHipEffector" parent="Sketchfab_model/5504f715b8d64cb798c61f2f7db76023_fbx/Object_2/RootNode/Object_4/TorchRig_Ctrl_Reference" index="17"]
transform = Transform3D(0.988045, 0.105461, 0.112453, -0.121574, 0.981535, 0.147676, -0.0948027, -0.159582, 0.982622, -9.41055, 78.8791, -2.96247)

[node name="TorchRig_Ctrl_Hips" parent="Sketchfab_model/5504f715b8d64cb798c61f2f7db76023_fbx/Object_2/RootNode/Object_4/TorchRig_Ctrl_Reference" index="18"]
transform = Transform3D(0.998475, -0.0552091, -2.91038e-08, 0.0551266, 0.996983, -0.0546419, 0.00301676, 0.0545585, 0.998506, 3.08211, 81.0572, -2.82067)

[node name="TorchRig_Ctrl_LeftUpLeg" parent="Sketchfab_model/5504f715b8d64cb798c61f2f7db76023_fbx/Object_2/RootNode/Object_4/TorchRig_Ctrl_Reference/TorchRig_Ctrl_Hips" index="0"]
transform = Transform3D(0.994438, 0.0370532, 0.0985922, -0.0562627, 0.978209, 0.199853, -0.0890386, -0.204288, 0.974853, 12.5941, -1.48959, -0.0225754)

[node name="TorchRig_Ctrl_LeftLeg" parent="Sketchfab_model/5504f715b8d64cb798c61f2f7db76023_fbx/Object_2/RootNode/Object_4/TorchRig_Ctrl_Reference/TorchRig_Ctrl_Hips/TorchRig_Ctrl_LeftUpLeg" index="0"]
transform = Transform3D(0.997735, -6.83218e-06, 0.0672612, 0.0300622, 0.894606, -0.445843, -0.0601693, 0.446856, 0.89258, -1.77636e-15, -42.9963, 0)

[node name="TorchRig_Ctrl_LeftFoot" parent="Sketchfab_model/5504f715b8d64cb798c61f2f7db76023_fbx/Object_2/RootNode/Object_4/TorchRig_Ctrl_Reference/TorchRig_Ctrl_Hips/TorchRig_Ctrl_LeftUpLeg/TorchRig_Ctrl_LeftLeg" index="0"]
transform = Transform3D(0.998663, 0.0196175, 0.0478157, -0.0332559, 0.952108, 0.303948, -0.0395631, -0.305132, 0.951488, 0, -34.5669, -1.77636e-15)

[node name="TorchRig_Ctrl_RightUpLeg" parent="Sketchfab_model/5504f715b8d64cb798c61f2f7db76023_fbx/Object_2/RootNode/Object_4/TorchRig_Ctrl_Reference/TorchRig_Ctrl_Hips" index="1"]
transform = Transform3D(0.97955, 0.158927, 0.123387, -0.180928, 0.964045, 0.194632, -0.0880181, -0.212976, 0.973085, -12.5941, -1.48959, -0.0225754)

[node name="TorchRig_Ctrl_RightLeg" parent="Sketchfab_model/5504f715b8d64cb798c61f2f7db76023_fbx/Object_2/RootNode/Object_4/TorchRig_Ctrl_Reference/TorchRig_Ctrl_Hips/TorchRig_Ctrl_RightUpLeg" index="0"]
transform = Transform3D(0.969881, 1.5378e-05, -0.243581, -0.136873, 0.827226, -0.544943, 0.201488, 0.561869, 0.802313, -2.86102e-06, -42.9963, 0.00042057)

[node name="TorchRig_Ctrl_RightFoot" parent="Sketchfab_model/5504f715b8d64cb798c61f2f7db76023_fbx/Object_2/RootNode/Object_4/TorchRig_Ctrl_Reference/TorchRig_Ctrl_Hips/TorchRig_Ctrl_RightUpLeg/TorchRig_Ctrl_RightLeg" index="0"]
transform = Transform3D(0.959041, -0.200813, -0.199788, 0.260846, 0.901078, 0.346436, 0.110456, -0.38436, 0.916552, 9.53674e-07, -35.1644, -8.88178e-16)

[node name="TorchRig_Ctrl_Spine" parent="Sketchfab_model/5504f715b8d64cb798c61f2f7db76023_fbx/Object_2/RootNode/Object_4/TorchRig_Ctrl_Reference/TorchRig_Ctrl_Hips" index="2"]
transform = Transform3D(0.99984, 0.0178477, -0.000888373, -0.0178597, 0.999711, -0.0160664, 0.000601368, 0.0160797, 0.999871, -8.88178e-16, 13.0097, 0.00203085)

[node name="TorchRig_Ctrl_Spine1" parent="Sketchfab_model/5504f715b8d64cb798c61f2f7db76023_fbx/Object_2/RootNode/Object_4/TorchRig_Ctrl_Reference/TorchRig_Ctrl_Hips/TorchRig_Ctrl_Spine" index="0"]
transform = Transform3D(0.999362, 0.0356835, -0.00120256, -0.0357038, 0.998845, -0.0321556, 5.37457e-05, 0.032178, 0.999482, 0, 8.95527, -0.648969)

[node name="TorchRig_Ctrl_Spine2" parent="Sketchfab_model/5504f715b8d64cb798c61f2f7db76023_fbx/Object_2/RootNode/Object_4/TorchRig_Ctrl_Reference/TorchRig_Ctrl_Hips/TorchRig_Ctrl_Spine/TorchRig_Ctrl_Spine1" index="0"]
transform = Transform3D(0.999362, 0.0357024, -5.37487e-05, -0.0356857, 0.998845, -0.0321782, -0.00109515, 0.0321596, 0.999482, 2.22045e-16, 9.20436, -0.648969)

[node name="TorchRig_Ctrl_LeftArm" parent="Sketchfab_model/5504f715b8d64cb798c61f2f7db76023_fbx/Object_2/RootNode/Object_4/TorchRig_Ctrl_Reference/TorchRig_Ctrl_Hips/TorchRig_Ctrl_Spine/TorchRig_Ctrl_Spine1/TorchRig_Ctrl_Spine2/TorchRig_Ctrl_LeftShoulder" index="0"]
transform = Transform3D(0.394876, 0.913144, -0.101198, -0.905514, 0.368207, -0.210873, -0.155296, 0.174905, 0.972261, 9.79451, 10.4615, -1.40144)

[node name="TorchRig_Ctrl_LeftForeArm" parent="Sketchfab_model/5504f715b8d64cb798c61f2f7db76023_fbx/Object_2/RootNode/Object_4/TorchRig_Ctrl_Reference/TorchRig_Ctrl_Hips/TorchRig_Ctrl_Spine/TorchRig_Ctrl_Spine1/TorchRig_Ctrl_Spine2/TorchRig_Ctrl_LeftShoulder/TorchRig_Ctrl_LeftArm" index="0"]
transform = Transform3D(0.831723, -0.00140444, -0.555189, 0.00147234, 0.999999, -0.000323962, 0.555189, -0.000547982, 0.831724, 30.5788, -4.26326e-14, 7.10543e-15)

[node name="TorchRig_Ctrl_LeftHand" parent="Sketchfab_model/5504f715b8d64cb798c61f2f7db76023_fbx/Object_2/RootNode/Object_4/TorchRig_Ctrl_Reference/TorchRig_Ctrl_Hips/TorchRig_Ctrl_Spine/TorchRig_Ctrl_Spine1/TorchRig_Ctrl_Spine2/TorchRig_Ctrl_LeftShoulder/TorchRig_Ctrl_LeftArm/TorchRig_Ctrl_LeftForeArm" index="0"]
transform = Transform3D(1, 1.88713e-07, 0.000130578, -1.77579e-07, 1, -8.52688e-05, -0.000130578, 8.52688e-05, 1, 18.7462, 1.42109e-14, -4.44089e-16)

[node name="TorchRig_Ctrl_RightArm" parent="Sketchfab_model/5504f715b8d64cb798c61f2f7db76023_fbx/Object_2/RootNode/Object_4/TorchRig_Ctrl_Reference/TorchRig_Ctrl_Hips/TorchRig_Ctrl_Spine/TorchRig_Ctrl_Spine1/TorchRig_Ctrl_Spine2/TorchRig_Ctrl_RightShoulder" index="0"]
transform = Transform3D(0.699033, -0.68919, 0.190712, 0.491124, 0.656555, 0.57248, -0.51976, -0.306519, 0.79743, -9.79451, 10.4615, -1.40144)

[node name="TorchRig_Ctrl_RightForeArm" parent="Sketchfab_model/5504f715b8d64cb798c61f2f7db76023_fbx/Object_2/RootNode/Object_4/TorchRig_Ctrl_Reference/TorchRig_Ctrl_Hips/TorchRig_Ctrl_Spine/TorchRig_Ctrl_Spine1/TorchRig_Ctrl_Spine2/TorchRig_Ctrl_RightShoulder/TorchRig_Ctrl_RightArm" index="0"]
transform = Transform3D(0.201207, 0.000198171, 0.979549, -0.00150303, 0.999999, 0.000106426, -0.979547, -0.0014937, 0.201207, -30.5788, -4.26326e-14, -7.10543e-15)

[node name="TorchRig_Ctrl_RightHand" parent="Sketchfab_model/5504f715b8d64cb798c61f2f7db76023_fbx/Object_2/RootNode/Object_4/TorchRig_Ctrl_Reference/TorchRig_Ctrl_Hips/TorchRig_Ctrl_Spine/TorchRig_Ctrl_Spine1/TorchRig_Ctrl_Spine2/TorchRig_Ctrl_RightShoulder/TorchRig_Ctrl_RightArm/TorchRig_Ctrl_RightForeArm" index="0"]
transform = Transform3D(0.99877, 0.0115911, 0.0482012, -0.0373276, 0.815669, 0.577313, -0.0326246, -0.578402, 0.815099, -18.7462, 1.42109e-14, -3.55271e-15)

[node name="HPBar" type="Sprite3D" parent="." index="2"]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1.82001, 0)
texture = SubResource("GradientTexture2D_tspmk")
script = ExtResource("2_tuqtu")

[node name="CollisionShape3D" type="CollisionShape3D" parent="." index="3"]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0.863464, 0)
shape = SubResource("BoxShape3D_5ex7y")

[node name="NavigationAgent3D" type="NavigationAgent3D" parent="." index="4"]

[node name="Area3D" type="Area3D" parent="." index="5"]
collision_layer = 8
collision_mask = 720900

[node name="CollisionShape3D" type="CollisionShape3D" parent="Area3D" index="0"]
shape = SubResource("CapsuleShape3D_fyy5l")

[node name="3D_dialogBox" parent="." index="6" instance=ExtResource("3_qtwyn")]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0.80215, 0.79724)
collision_layer = 5242880
scene = ExtResource("4_4brgg")
scene_properties_keys = PackedStringArray("dialog_box.gd")

[node name="sfx_animal_crossing" type="AudioStreamPlayer3D" parent="." index="7"]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0.618056, 1.02521)
stream = ExtResource("5_xqura")


================================================
FILE: Entities/NPC/Scenes/Villager.tscn
================================================
[gd_scene load_steps=11 format=3 uid="uid://cprv6q5ulutfo"]

[ext_resource type="PackedScene" uid="uid://do26nbxde25ry" path="res://Entities/NPC/Assets/full_moon_fears_torch_villager.glb" id="1_ltxbh"]
[ext_resource type="Script" path="res://Entities/NPC/Scripts/npc.gd" id="2_c8e36"]
[ext_resource type="Script" path="res://Entities/Creature/Scripts/HPBarTest.gd" id="3_d8202"]
[ext_resource type="PackedScene" uid="uid://clujaf3u776a3" path="res://addons/godot-xr-tools/objects/viewport_2d_in_3d.tscn" id="4_olm6m"]
[ext_resource type="PackedScene" uid="uid://c40wiqb58aege" path="res://Entities/NPC/Scenes/dialogBox.tscn" id="5_tu2vu"]
[ext_resource type="AudioStream" uid="uid://bw2bgadx54qij" path="res://Sounds/Animal Crossing And Talking Meme Sound Effect Soundboard Link 🔽🔽.mp3" id="6_olo6r"]

[sub_resource type="Gradient" id="Gradient_0d0hi"]
interpolation_mode = 1
colors = PackedColorArray(1, 0, 0, 1, 1, 1, 1, 1)

[sub_resource type="GradientTexture2D" id="GradientTexture2D_tspmk"]
gradient = SubResource("Gradient_0d0hi")
width = 100
height = 20

[sub_resource type="BoxShape3D" id="BoxShape3D_5ex7y"]
size = Vector3(1, 1.67432, 1)

[sub_resource type="CapsuleShape3D" id="CapsuleShape3D_fyy5l"]

[node name="Villager" instance=ExtResource("1_ltxbh")]
script = ExtResource("2_c8e36")
description = "A basic human"
hpMax = 200
isInvincible = true

[node name="Skeleton3D" parent="Sketchfab_model/5504f715b8d64cb798c61f2f7db76023_fbx/Object_2/RootNode/Object_4/TorchRig_Reference/Object_47" index="0"]
bones/2/scale = Vector3(1, 1, 1)
bones/3/scale = Vector3(1, 1, 1)
bones/6/rotation = Quaternion(0.0507155, -0.063492, -0.115938, 0.989927)
bones/7/rotation = Quaternion(-0.115318, -0.0389252, 0.317385, 0.940454)
bones/7/scale = Vector3(1, 1, 1)
bones/8/rotation = Quaternion(-0.137576, 0.0317817, -0.809804, 0.569455)
bones/8/scale = Vector3(1, 1, 1)
bones/10/rotation = Quaternion(-0.000390392, -0.00894373, -0.0208622, 0.999742)
bones/11/rotation = Quaternion(0.00067248, -0.0178352, 0.0317644, 0.999336)
bones/12/rotation = Quaternion(0.00163144, -0.0177779, 0.0375877, 0.999134)
bones/13/rotation = Quaternion(-0.63749, -0.245657, -0.272417, 0.677531)
bones/13/scale = Vector3(1, 1, 1)
bones/14/rotation = Quaternion(-0.508608, 0.663932, 0.466294, -0.28824)
bones/14/scale = Vector3(1, 1, 1)
bones/15/rotation = Quaternion(-7.02675e-05, 0.000880259, 0.296302, 0.955094)
bones/17/rotation = Quaternion(-0.0888346, -0.253112, 0.06517, 0.961143)
bones/17/scale = Vector3(1, 1, 1)
bones/18/rotation = Quaternion(0.0510614, -0.0501608, 0.0558222, 0.995872)
bones/18/scale = Vector3(1, 1, 1)
bones/19/rotation = Quaternion(-0.333003, 0.742324, 0.23798, 0.5305)
bones/20/rotation = Quaternion(-0.338503, -0.148704, -0.0210631, 0.928902)
bones/20/scale = Vector3(1, 1, 1)
bones/21/rotation = Quaternion(0.510236, -0.455677, 0.0489473, 0.727751)
bones/21/scale = Vector3(1, 1, 1)
bones/22/rotation = Quaternion(-0.050808, -0.0119991, 0.226302, 0.972657)
bones/23/rotation = Quaternion(-0.269773, 0.927837, 0.0719109, 0.247325)
bones/25/rotation = Quaternion(0.325654, -0.191689, 0.0329793, 0.925266)
bones/25/scale = Vector3(1, 1, 1)
bones/26/scale = Vector3(1, 1, 1)
bones/29/rotation = Quaternion(0.115371, -0.107616, 0.0670074, 0.9852)
bones/29/scale = Vector3(1, 1, 1)
bones/31/rotation = Quaternion(-0.354801, 0.913133, 0.0727097, 0.187129)
bones/33/rotation = Quaternion(-0.17803, 0.0589055, 0.0367108, 0.981574)
bones/34/rotation = Quaternion(-0.549962, 0.797446, 0.140932, 0.204352)
bones/35/rotation = Quaternion(0.245657, -0.63749, 0.677531, 0.272417)
bones/35/scale = Vector3(1, 1, 1)
bones/36/rotation = Quaternion(0.270001, -0.537686, -0.399557, 0.691626)
bones/36/scale = Vector3(1, 1, 1)
bones/37/rotation = Quaternion(-0.000331359, 0.000681787, 0.642626, 0.766179)
bones/37/scale = Vector3(1, 1, 1)
bones/38/rotation = Quaternion(-0.303292, 0.0128376, 0.0212162, 0.952575)
bones/38/scale = Vector3(1, 1, 1)
bones/39/rotation = Quaternion(0.170001, -0.188674, -0.00609385, 0.967194)
bones/39/scale = Vector3(1, 1, 1)
bones/40/rotation = Quaternion(0.051222, -0.0391342, 0.0747905, 0.995114)
bones/40/scale = Vector3(1, 1, 1)
bones/41/rotation = Quaternion(-0.333003, 0.742324, 0.23798, 0.5305)
bones/42/scale = Vector3(1, 1, 1)
bones/43/rotation = Quaternion(-0.467488, 0.781471, 0.105098, -0.39964)
bones/44/rotation = Quaternion(-0.196661, -0.306207, 0.384847, 0.848206)
bones/44/scale = Vector3(1, 1, 1)
bones/45/rotation = Quaternion(-0.269773, 0.927837, 0.0719109, 0.247325)
bones/47/rotation = Quaternion(-0.102435, -0.354549, -0.0562393, 0.927706)
bones/48/rotation = Quaternion(0.22118, -0.668397, -0.11679, 0.700489)
bones/49/rotation = Quaternion(0.424126, -0.566695, 0.414999, 0.57162)
bones/52/rotation = Quaternion(-0.0396916, -0.631004, 0.250241, 0.733238)
bones/53/rotation = Quaternion(0.0320914, -0.183351, 0.326133, 0.926817)
bones/54/rotation = Quaternion(-0.354801, 0.913133, 0.0727097, 0.187129)
bones/55/rotation = Quaternion(0.293908, -0.647147, 0.340115, 0.615744)
bones/55/scale = Vector3(1, 1, 1)
bones/57/rotation = Quaternion(-0.549962, 0.797446, 0.140932, 0.204352)
bones/60/rotation = Quaternion(3.04704e-18, 1.71484e-18, 0.378573, 0.925572)
bones/62/rotation = Quaternion(0.672701, 0.187524, 0.675619, -0.236318)
bones/64/rotation = Quaternion(0.686342, 0.192004, 0.662176, -0.231499)
bones/64/scale = Vector3(1, 1, 1)

[node name="TorchRig_Ctrl_HipsEffector" parent="Sketchfab_model/5504f715b8d64cb798c61f2f7db76023_fbx/Object_2/RootNode/Object_4/TorchRig_Ctrl_Reference" index="0"]
transform = Transform3D(0.998475, -0.0552091, -4.65661e-10, 0.0551266, 0.996983, -0.0546419, 0.00301673, 0.0545585, 0.998506, 3.16435, 79.5734, -2.92448)

[node name="TorchRig_Ctrl_LeftAnkleEffector" parent="Sketchfab_model/5504f715b8d64cb798c61f2f7db76023_fbx/Object_2/RootNode/Object_4/TorchRig_Ctrl_Reference" index="1"]
transform = Transform3D(0.979851, -0.00448603, 0.19968, 0.00457757, 0.99999, 3.22924e-06, -0.199678, 0.000910886, 0.979861, 15.6466, 4.86214, -6.96504)

[node name="TorchRig_Ctrl_RightAnkleEffector" parent="Sketchfab_model/5504f715b8d64cb798c61f2f7db76023_fbx/Object_2/RootNode/Object_4/TorchRig_Ctrl_Reference" index="2"]
transform = Transform3D(0.943197, 0.021385, -0.331546, -0.0226747, 0.999743, -2.17671e-05, 0.33146, 0.00753822, 0.943439, -19.2348, 5.20747, -10.8724)

[node name="TorchRig_Ctrl_LeftWristEffector" parent="Sketchfab_model/5504f715b8d64cb798c61f2f7db76023_fbx/Object_2/RootNode/Object_4/TorchRig_Ctrl_Reference" index="3"]
transform = Transform3D(0.24387, 0.924669, -0.29243, -0.860192, 0.345493, 0.375106, 0.447881, 0.160069, 0.879648, 34.636, 71.7439, -2.13266)

[node name="TorchRig_Ctrl_RightWristEffector" parent="Sketchfab_model/5504f715b8d64cb798c61f2f7db76023_fbx/Object_2/RootNode/Object_4/TorchRig_Ctrl_Reference" index="4"]
transform = Transform3D(-0.0601337, -0.974146, 0.217767, -0.540846, 0.21516, 0.813137, -0.838969, -0.0688816, -0.539801, -35.3263, 113.024, 25.6655)

[node name="TorchRig_Ctrl_LeftKneeEffector" parent="Sketchfab_model/5504f715b8d64cb798c61f2f7db76023_fbx/Object_2/RootNode/Object_4/TorchRig_Ctrl_Reference" index="5"]
transform = Transform3D(0.988001, 0.0238354, 0.152596, 0.0241889, 0.951947, -0.305307, -0.152541, 0.305334, 0.939948, 16.4705, 37.7681, 3.58923)

[node name="TorchRig_Ctrl_RightKneeEffector" parent="Sketchfab_model/5504f715b8d64cb798c61f2f7db76023_fbx/Object_2/RootNode/Object_4/TorchRig_Ctrl_Reference" index="6"]
transform = Transform3D(0.966509, 0.150439, -0.207917, -0.222503, 0.894924, -0.386785, 0.127882, 0.420093, 0.898425, -13.9447, 36.6769, 3.89993)

[node name="TorchRig_Ctrl_LeftElbowEffector" parent="Sketchfab_model/5504f715b8d64cb798c61f2f7db76023_fbx/Object_2/RootNode/Object_4/TorchRig_Ctrl_Reference" index="7"]
transform = Transform3D(0.24
Download .txt
gitextract_b21ugibo/

├── .gitignore
├── Config/
│   └── openxr_action_map.tres
├── Entities/
│   ├── Boss/
│   │   └── ForestBoss/
│   │       ├── Assets/
│   │       │   └── tentacle_plant/
│   │       │       ├── license.txt
│   │       │       └── scene.gltf
│   │       ├── Scenes/
│   │       │   └── ForestBoss.tscn
│   │       └── Scripts/
│   │           └── ForestBossScript.gd
│   ├── Creature/
│   │   ├── Assets/
│   │   │   ├── low_poly_kiwi_run.glb
│   │   │   ├── minecraft_-_wolf.glb
│   │   │   └── plantboy_animated_endboss.glb
│   │   ├── Scenes/
│   │   │   ├── Kiwi.tscn
│   │   │   ├── Tuto.tscn
│   │   │   └── plant_boy.tscn
│   │   └── Scripts/
│   │       ├── HPBarTest.gd
│   │       ├── creature.gd
│   │       └── tuto.gd
│   ├── Effects/
│   │   ├── damage_effect.tres
│   │   └── mesh_son_of_mobs.tres
│   ├── NPC/
│   │   ├── Assets/
│   │   │   └── full_moon_fears_torch_villager.glb
│   │   ├── Scenes/
│   │   │   ├── 3D_dialogBox.tscn
│   │   │   ├── NPC.tscn
│   │   │   ├── Villager.tscn
│   │   │   └── dialogBox.tscn
│   │   └── Scripts/
│   │       ├── dialog_box.gd
│   │       └── npc.gd
│   ├── Player/
│   │   ├── Assets/
│   │   │   └── .gitkeep
│   │   ├── Scenes/
│   │   │   ├── .gitkeep
│   │   │   ├── belt_snap_zone.tscn
│   │   │   ├── player.tscn
│   │   │   └── player_kbm.tscn
│   │   ├── Scripts/
│   │   │   ├── hpbar.gd
│   │   │   ├── manabar.gd
│   │   │   ├── player.gd
│   │   │   └── playerClass.gd
│   │   ├── pla78B7.tmp
│   │   └── pla9F64.tmp
│   ├── Scripts/
│   │   ├── aggressive_movement.gd
│   │   ├── entity.gd
│   │   ├── movement.gd
│   │   └── passive_movement.gd
│   ├── TrainingDummy/
│   │   ├── Scenes/
│   │   │   └── training_dummy.tscn
│   │   └── Scripts/
│   │       └── training_dummy.gd
│   └── stats.gd
├── Environment/
│   ├── Scenes/
│   │   ├── climb_wall.tscn
│   │   ├── fountain.tscn
│   │   ├── house1.tscn
│   │   ├── house2.tscn
│   │   ├── house3.tscn
│   │   ├── spellTowerUnlock.tscn
│   │   └── water.tscn
│   └── Scripts/
│       └── spellTowerUnlock.gd
├── Items/
│   ├── Equipment/
│   │   ├── Armor/
│   │   │   └── armor.gd
│   │   ├── Weapon/
│   │   │   ├── Bow/
│   │   │   │   └── Scripts/
│   │   │   │       └── bow.gd
│   │   │   ├── Scripts/
│   │   │   │   ├── melee.gd
│   │   │   │   ├── range.gd
│   │   │   │   └── weapon.gd
│   │   │   └── Sword/
│   │   │       ├── Assets/
│   │   │       │   ├── .gitkeep
│   │   │       │   ├── highlight_material.tres
│   │   │       │   ├── minecraft_diamond-sword/
│   │   │       │   │   ├── license.txt
│   │   │       │   │   └── scene.gltf
│   │   │       │   └── sword_snap_zone.tscn
│   │   │       ├── Scenes/
│   │   │       │   ├── .gitkeep
│   │   │       │   ├── diamond_sword.tscn
│   │   │       │   └── nice_sword.tscn
│   │   │       └── Scripts/
│   │   │           └── .gitkeep
│   │   └── equipment.gd
│   └── Projectile/
│       ├── Scene/
│       │   └── projectile.tscn
│       └── Script/
│           └── projectile.gd
├── LICENSE
├── Levels/
│   ├── Celeste/
│   │   ├── Assets/
│   │   │   └── .gitkeep
│   │   ├── Scenes/
│   │   │   └── .gitkeep
│   │   └── Scripts/
│   │       └── .gitkeep
│   ├── Desert/
│   │   ├── Assets/
│   │   │   └── .gitkeep
│   │   ├── Scenes/
│   │   │   └── .gitkeep
│   │   └── Scripts/
│   │       └── .gitkeep
│   ├── Forest/
│   │   ├── Assets/
│   │   │   ├── .gitkeep
│   │   │   ├── Forest GridMap.tres
│   │   │   └── Forest Mesh Library.glb
│   │   ├── Scenes/
│   │   │   ├── .gitkeep
│   │   │   ├── dungeon.gd
│   │   │   ├── dungeon.tscn
│   │   │   ├── fake_dungeon.tscn
│   │   │   ├── forest_zone.gd
│   │   │   ├── forest_zone.tscn
│   │   │   └── torch.tscn
│   │   └── Scripts/
│   │       └── .gitkeep
│   ├── Mine/
│   │   ├── Assets/
│   │   │   └── .gitkeep
│   │   ├── Scenes/
│   │   │   └── .gitkeep
│   │   └── Scripts/
│   │       └── .gitkeep
│   ├── Mountain/
│   │   ├── Assets/
│   │   │   └── .gitkeep
│   │   ├── Scenes/
│   │   │   └── .gitkeep
│   │   └── Scripts/
│   │       └── .gitkeep
│   ├── Starting_menu/
│   │   ├── Scenes/
│   │   │   ├── hedge_2.tscn
│   │   │   └── start_menu.tscn
│   │   └── Scripts/
│   │       ├── starting_menu.gd
│   │       └── world_start_menu.gd
│   ├── Test/
│   │   ├── Assets/
│   │   │   ├── LeverBase.glb
│   │   │   ├── LeverStick.glb
│   │   │   ├── Test Mesh Library.glb
│   │   │   ├── archery_target_low_poly.glb
│   │   │   └── world_blocks_test.tres
│   │   ├── Scenes/
│   │   │   ├── climb_stone_object.tscn
│   │   │   ├── door.tscn
│   │   │   ├── grid_map_test.tscn
│   │   │   ├── lever.gd
│   │   │   ├── lever.tscn
│   │   │   ├── tool_board.tscn
│   │   │   └── torch.tscn
│   │   ├── Scripts/
│   │   │   ├── debug_pos.gd
│   │   │   ├── lever.gd
│   │   │   ├── lever_main_menu.gd
│   │   │   ├── lever_main_menu_for_demo.gd
│   │   │   ├── lever_start_menu.gd
│   │   │   ├── main_menu.gd
│   │   │   ├── mesh_instance_3d.gd
│   │   │   ├── test_scene.gd
│   │   │   └── torch.gd
│   │   ├── demo.tscn
│   │   ├── main_menu.tscn
│   │   ├── tes2B.tmp
│   │   ├── tes36FE.tmp
│   │   ├── tes6881.tmp
│   │   ├── tesFB3D.tmp
│   │   ├── test_scene.tscn
│   │   └── test_scene_ethan.tscn
│   └── Underwater/
│       ├── Assets/
│       │   └── .gitkeep
│       ├── Scenes/
│       │   └── .gitkeep
│       └── Scripts/
│           └── .gitkeep
├── README.md
├── Scripts/
│   └── GameState.gd
├── Sounds/
│   └── .gitignore
├── Spells/
│   ├── Assets/
│   │   └── .gitkeep
│   ├── PoisonBall/
│   │   ├── Asset/
│   │   │   └── PoisonMaterial.tres
│   │   ├── Scene/
│   │   │   └── PoisonBall.tscn
│   │   └── Scripts/
│   │       └── poisonball.gd
│   ├── Scenes/
│   │   ├── .gitkeep
│   │   ├── electric_arc.tscn
│   │   ├── fire_ball.tscn
│   │   └── heal_orb.tscn
│   └── Scripts/
│       ├── .gitkeep
│       ├── electric_arc.gd
│       ├── fire_ball.gd
│       ├── heal_orb.gd
│       └── spell.gd
├── UI/
│   ├── Assets/
│   │   └── .gitkeep
│   ├── Scenes/
│   │   ├── .gitkeep
│   │   ├── HPBar.tscn
│   │   ├── SpellMenu.tscn
│   │   ├── in_game_ui.tscn
│   │   ├── in_game_ui_debug.tscn
│   │   ├── main_menu.tscn
│   │   ├── resume_button.gd
│   │   └── spell_menu_selector.tscn
│   ├── Scripts/
│   │   ├── .gitkeep
│   │   ├── global.gd
│   │   ├── in_game_ui_debug.gd
│   │   ├── keyMappingMenu.gd
│   │   ├── menuButtons.gd
│   │   ├── parametersMenu.gd
│   │   └── spell_menu.gd
│   └── Textures/
│       └── HPBar.tres
├── install/
│   ├── .gitignore
│   └── src/
│       ├── gui.py
│       ├── install.py
│       └── unzip.py
└── project.godot
Download .txt
SYMBOL INDEX (34 symbols across 2 files)

FILE: install/src/gui.py
  function resource_path (line 24) | def resource_path(relative_path):
  class ArchiveCleaner (line 30) | class ArchiveCleaner:
    method __init__ (line 31) | def __init__(self, files):
    method delete_archives (line 34) | def delete_archives(self):
  function add_rounded_corners (line 42) | def add_rounded_corners(image_path, size, radius=30, bg_color=(255, 255,...
  class InstallerApp (line 51) | class InstallerApp(ttk.Window):
    method __init__ (line 52) | def __init__(self):
    method show_frame (line 65) | def show_frame(self, frame_class):
  class StartPage (line 68) | class StartPage(ttk.Frame):
    method __init__ (line 69) | def __init__(self, master):
  class APKStep1 (line 80) | class APKStep1(ttk.Frame):
    method __init__ (line 81) | def __init__(self, master):
    method download_and_open_doc (line 91) | def download_and_open_doc(self):
    method open_mqdh_then_download (line 96) | def open_mqdh_then_download(self):
    method download_apk (line 100) | def download_apk(self, path):
  class APKDownloadProgress (line 118) | class APKDownloadProgress(ttk.Frame):
    method __init__ (line 119) | def __init__(self, master):
    method update_progress (line 130) | def update_progress(self, percent, downloaded_mb, total_mb, total_bytes):
  class SourceStep (line 135) | class SourceStep(ttk.Frame):
    method __init__ (line 136) | def __init__(self, master):
    method clone_repo (line 145) | def clone_repo(self):
    method do_clone (line 151) | def do_clone(self, folder):
    method download_zips (line 169) | def download_zips(self, project_path):
    method unzip_zips (line 195) | def unzip_zips(self, project_path):
  class GitOutputPage (line 211) | class GitOutputPage(ttk.Frame):
    method __init__ (line 212) | def __init__(self, master):
    method update_output (line 218) | def update_output(self, text):
  class DownloadPage (line 224) | class DownloadPage(ttk.Frame):
    method __init__ (line 225) | def __init__(self, master):
    method update_progress (line 234) | def update_progress(self, value):
  class UnzipPage (line 238) | class UnzipPage(ttk.Frame):
    method __init__ (line 239) | def __init__(self, master):
    method update_progress (line 248) | def update_progress(self, value):

FILE: install/src/unzip.py
  function unzip (line 16) | def unzip(zip_path, extract_to, progress_callback=None):
Condensed preview — 165 files, each showing path, character count, and a content snippet. Download the .json file or copy for the full structured content (8,749K chars).
[
  {
    "path": ".gitignore",
    "chars": 279,
    "preview": "# Godot 4+ specific ignores\n.godot/\n\n# Godot-specific ignores\n.import/\nexport.cfg\nexport_presets.cfg\n.DS_Store\n\n# Import"
  },
  {
    "path": "Config/openxr_action_map.tres",
    "chars": 56337,
    "preview": "[gd_resource type=\"OpenXRActionMap\" load_steps=221 format=3 uid=\"uid://dynfr7srtp7x7\"]\n\n[sub_resource type=\"OpenXRAction"
  },
  {
    "path": "Entities/Boss/ForestBoss/Assets/tentacle_plant/license.txt",
    "chars": 676,
    "preview": "Model Information:\n* title:\tTentacle Plant\n* source:\thttps://sketchfab.com/3d-models/tentacle-plant-8372c5e8dfca49a1ae10"
  },
  {
    "path": "Entities/Boss/ForestBoss/Assets/tentacle_plant/scene.gltf",
    "chars": 79047,
    "preview": "{\n  \"accessors\": [\n    {\n      \"bufferView\": 3,\n      \"componentType\": 5126,\n      \"count\": 1275,\n      \"max\": [\n       "
  },
  {
    "path": "Entities/Boss/ForestBoss/Scenes/ForestBoss.tscn",
    "chars": 2549,
    "preview": "[gd_scene load_steps=10 format=3 uid=\"uid://baslo52ff8tpu\"]\n\n[ext_resource type=\"Script\" path=\"res://Entities/Boss/Fores"
  },
  {
    "path": "Entities/Boss/ForestBoss/Scripts/ForestBossScript.gd",
    "chars": 3364,
    "preview": "class_name ForestBoss\n\nextends Entity\n\n# Spell scene\nvar spell_scene = preload(\"res://Spells/PoisonBall/Scene/PoisonBall"
  },
  {
    "path": "Entities/Creature/Scenes/Kiwi.tscn",
    "chars": 5382,
    "preview": "[gd_scene load_steps=6 format=3 uid=\"uid://bqwpctc6titk7\"]\n\n[ext_resource type=\"PackedScene\" uid=\"uid://qc0ub5ax7fgv\" pa"
  },
  {
    "path": "Entities/Creature/Scenes/Tuto.tscn",
    "chars": 9157,
    "preview": "[gd_scene load_steps=6 format=3 uid=\"uid://bxpd3kisrv8px\"]\n\n[ext_resource type=\"Script\" path=\"res://Entities/Creature/Sc"
  },
  {
    "path": "Entities/Creature/Scenes/plant_boy.tscn",
    "chars": 9157,
    "preview": "[gd_scene load_steps=6 format=3 uid=\"uid://b7harfardein1\"]\n\n[ext_resource type=\"PackedScene\" uid=\"uid://xu2jkr53okyt\" pa"
  },
  {
    "path": "Entities/Creature/Scripts/HPBarTest.gd",
    "chars": 465,
    "preview": "extends Sprite3D\n\n\n@onready var entity_scene = get_parent()\n\nvar maxHP : float \n\nfunc _ready():\n\tmaxHP = entity_scene.hp"
  },
  {
    "path": "Entities/Creature/Scripts/creature.gd",
    "chars": 3434,
    "preview": "class_name Creature\n\nextends Entity\n\n@export var damage : int ## Amount of damage it deals when attacking\n@export var at"
  },
  {
    "path": "Entities/Creature/Scripts/tuto.gd",
    "chars": 470,
    "preview": "class_name Tuto\n\nextends Creature\n\n# Called when the node enters the scene tree for the first time.\nfunc _ready() -> voi"
  },
  {
    "path": "Entities/Effects/damage_effect.tres",
    "chars": 134,
    "preview": "[gd_resource type=\"StandardMaterial3D\" format=3 uid=\"uid://drdr1p7myhgky\"]\n\n[resource]\nalbedo_color = Color(0.815686, 0,"
  },
  {
    "path": "Entities/Effects/mesh_son_of_mobs.tres",
    "chars": 293,
    "preview": "[gd_resource type=\"SphereMesh\" load_steps=2 format=3 uid=\"uid://boarfhocxjd7i\"]\n\n[sub_resource type=\"StandardMaterial3D\""
  },
  {
    "path": "Entities/NPC/Scenes/3D_dialogBox.tscn",
    "chars": 550,
    "preview": "[gd_scene load_steps=3 format=3 uid=\"uid://di6y3dm1aa8ey\"]\n\n[ext_resource type=\"PackedScene\" uid=\"uid://clujaf3u776a3\" p"
  },
  {
    "path": "Entities/NPC/Scenes/NPC.tscn",
    "chars": 18454,
    "preview": "[gd_scene load_steps=11 format=3 uid=\"uid://45s13vcev4a6\"]\n\n[ext_resource type=\"PackedScene\" uid=\"uid://b3ro3ohuir7n1\" p"
  },
  {
    "path": "Entities/NPC/Scenes/Villager.tscn",
    "chars": 18456,
    "preview": "[gd_scene load_steps=11 format=3 uid=\"uid://cprv6q5ulutfo\"]\n\n[ext_resource type=\"PackedScene\" uid=\"uid://do26nbxde25ry\" "
  },
  {
    "path": "Entities/NPC/Scenes/dialogBox.tscn",
    "chars": 606,
    "preview": "[gd_scene load_steps=3 format=3 uid=\"uid://c40wiqb58aege\"]\n\n[ext_resource type=\"Script\" path=\"res://Entities/NPC/Scripts"
  },
  {
    "path": "Entities/NPC/Scripts/dialog_box.gd",
    "chars": 452,
    "preview": "extends Panel\n\n@onready var label = $Label\nvar tween:Tween = null\n\nfunc writeText(text: String) -> void :\n\tif tween:\n\t\tt"
  },
  {
    "path": "Entities/NPC/Scripts/npc.gd",
    "chars": 1808,
    "preview": "class_name NPC\n\nextends Entity\n\n@onready var dialogBox = $\"3D_dialogBox\"\n@onready var dialogBox_scene = dialogBox.get_sc"
  },
  {
    "path": "Entities/Player/Assets/.gitkeep",
    "chars": 0,
    "preview": ""
  },
  {
    "path": "Entities/Player/Scenes/.gitkeep",
    "chars": 0,
    "preview": ""
  },
  {
    "path": "Entities/Player/Scenes/belt_snap_zone.tscn",
    "chars": 897,
    "preview": "[gd_scene load_steps=5 format=3 uid=\"uid://ryiwkyu8bn1n\"]\n\n[ext_resource type=\"PackedScene\" uid=\"uid://ce7vysyvondf8\" pa"
  },
  {
    "path": "Entities/Player/Scenes/player.tscn",
    "chars": 7549,
    "preview": "[gd_scene load_steps=21 format=3 uid=\"uid://c717orbdilke3\"]\n\n[ext_resource type=\"Script\" path=\"res://Entities/Player/Scr"
  },
  {
    "path": "Entities/Player/Scenes/player_kbm.tscn",
    "chars": 1220,
    "preview": "[gd_scene load_steps=7 format=3 uid=\"uid://cjt2gdprk4vl4\"]\n\n[ext_resource type=\"Script\" path=\"res://Entities/Player/Scri"
  },
  {
    "path": "Entities/Player/Scripts/hpbar.gd",
    "chars": 537,
    "preview": "extends Sprite3D\n\n\n@onready var player = get_tree().current_scene.get_node(\"Player\")\n\nvar current_hp : float \nvar maxHP "
  },
  {
    "path": "Entities/Player/Scripts/manabar.gd",
    "chars": 297,
    "preview": "extends Sprite3D\n\n@onready var player_scene = get_parent().get_parent().get_parent()\n\nfunc _ready():\n\tpass\n\nfunc _proces"
  },
  {
    "path": "Entities/Player/Scripts/player.gd",
    "chars": 5132,
    "preview": "extends PlayerScript\n\n@onready var pauseMenu = $\"LeftHand/#UI/pause_menu\"\n@onready var debugMenu = $\"LeftHand/#UI/debug_"
  },
  {
    "path": "Entities/Player/Scripts/playerClass.gd",
    "chars": 3620,
    "preview": "class_name PlayerScript\n\nextends Node3D\n\nconst SPEED = 10.0\nconst JUMP_VELOCITY = 4.5\n\nenum SpellEnum {FIREBALL, ## Spel"
  },
  {
    "path": "Entities/Player/pla78B7.tmp",
    "chars": 3917,
    "preview": "[gd_scene load_steps=15 format=3 uid=\"uid://cd5le1v57c30r\"]\n\n[ext_resource type=\"Script\" path=\"res://Entities/Player/Scr"
  },
  {
    "path": "Entities/Player/pla9F64.tmp",
    "chars": 3827,
    "preview": "[gd_scene load_steps=15 format=3 uid=\"uid://cd5le1v57c30r\"]\n\n[ext_resource type=\"Script\" path=\"res://Entities/Player/Scr"
  },
  {
    "path": "Entities/Scripts/aggressive_movement.gd",
    "chars": 1544,
    "preview": "class_name MovementAggressive\nextends Movement\n\nstatic func stillBehavior(entity_position : Vector3)->Vector3:\n\treturn e"
  },
  {
    "path": "Entities/Scripts/entity.gd",
    "chars": 7753,
    "preview": "class_name Entity\n\nextends CharacterBody3D\n\nenum races {\n\tHuman,\n\tDwarf,\n\tDog,\n\tGoblin,\n\tBOSS\n}\n\nenum passiveMode {\n\tSTI"
  },
  {
    "path": "Entities/Scripts/movement.gd",
    "chars": 750,
    "preview": "class_name Movement\n\n\nstatic func angleRotation(x: float, z : float)->float:\n\tprint(\"x= \", x,\" z= \", z)\n\tif x > 0:\n\t\tret"
  },
  {
    "path": "Entities/Scripts/passive_movement.gd",
    "chars": 1997,
    "preview": "class_name MovementPassive\n\n\nstatic func stillBehavior(positionEntity : Vector3)->Vector3:\n\treturn positionEntity\n\t\n\nsta"
  },
  {
    "path": "Entities/TrainingDummy/Scenes/training_dummy.tscn",
    "chars": 1205,
    "preview": "[gd_scene load_steps=6 format=3 uid=\"uid://c53jnapvcwyfw\"]\n\n[ext_resource type=\"Script\" path=\"res://Entities/TrainingDum"
  },
  {
    "path": "Entities/TrainingDummy/Scripts/training_dummy.gd",
    "chars": 432,
    "preview": "extends Node\n\nvar last_damage : float\n\n# Called when the node enters the scene tree for the first time.\nfunc _ready() ->"
  },
  {
    "path": "Entities/stats.gd",
    "chars": 423,
    "preview": "class_name Statistics\n\nextends Node\n\n@export var HP : int = 100\n@export var ATK : int = 0\n@export var DEF : int = 0\n@exp"
  },
  {
    "path": "Environment/Scenes/climb_wall.tscn",
    "chars": 5863,
    "preview": "[gd_scene load_steps=4 format=3 uid=\"uid://csxurdq6jyljp\"]\n\n[ext_resource type=\"PackedScene\" uid=\"uid://ci42hw60qc84r\" p"
  },
  {
    "path": "Environment/Scenes/fountain.tscn",
    "chars": 668,
    "preview": "[gd_scene load_steps=3 format=3 uid=\"uid://de4ww0tck65vf\"]\n\n[ext_resource type=\"PackedScene\" uid=\"uid://dydt4k2v6s3fg\" p"
  },
  {
    "path": "Environment/Scenes/house1.tscn",
    "chars": 11394,
    "preview": "[gd_scene load_steps=25 format=3 uid=\"uid://di3fkpoyj5vlh\"]\n\n[ext_resource type=\"PackedScene\" uid=\"uid://c3wdeihc257lr\" "
  },
  {
    "path": "Environment/Scenes/house2.tscn",
    "chars": 14170,
    "preview": "[gd_scene load_steps=33 format=3 uid=\"uid://b4g5ex0g565fs\"]\n\n[ext_resource type=\"PackedScene\" uid=\"uid://c3wdeihc257lr\" "
  },
  {
    "path": "Environment/Scenes/house3.tscn",
    "chars": 16509,
    "preview": "[gd_scene load_steps=37 format=3 uid=\"uid://bq5khta73ph47\"]\n\n[ext_resource type=\"PackedScene\" uid=\"uid://c3wdeihc257lr\" "
  },
  {
    "path": "Environment/Scenes/spellTowerUnlock.tscn",
    "chars": 3594,
    "preview": "[gd_scene load_steps=13 format=3 uid=\"uid://cgaxsqy0e6h3\"]\n\n[ext_resource type=\"Script\" path=\"res://Environment/Scripts/"
  },
  {
    "path": "Environment/Scenes/water.tscn",
    "chars": 5755,
    "preview": "[gd_scene load_steps=7 format=3 uid=\"uid://cbrffegkyc7xu\"]\n\n[sub_resource type=\"Shader\" id=\"Shader_chtgi\"]\ncode = \"// NO"
  },
  {
    "path": "Environment/Scripts/spellTowerUnlock.gd",
    "chars": 1355,
    "preview": "class_name SpellTowerUnlock\n\nextends Node\n\n\n\n@export_enum(\"FireBall\", \"ElectricArc\", \"HealOrb\") var spellToUnlock : Stri"
  },
  {
    "path": "Items/Equipment/Armor/armor.gd",
    "chars": 3055,
    "preview": "# Armor.gd\n# Enhanced Armor class for equippable items.\n# This class extends Equipment and supports multiple armor types"
  },
  {
    "path": "Items/Equipment/Weapon/Bow/Scripts/bow.gd",
    "chars": 2322,
    "preview": "# Bow.gd\nextends RangeWeapon\nclass_name Bow\n\n# Exported variables allow configuration from the editor.\n@export var charg"
  },
  {
    "path": "Items/Equipment/Weapon/Scripts/melee.gd",
    "chars": 1129,
    "preview": "class_name MeleeWeapon\n\nextends Weapon\n\n@export var range : int # hit dstance\n\nvar position_t_moins_1 : Vector3\nvar velo"
  },
  {
    "path": "Items/Equipment/Weapon/Scripts/range.gd",
    "chars": 416,
    "preview": "class_name RangeWeapon\n\nextends Weapon\n\n@export var reloadTime : float\n\n\n# Curve of the range weapon projectile\nfunc cur"
  },
  {
    "path": "Items/Equipment/Weapon/Scripts/weapon.gd",
    "chars": 538,
    "preview": "class_name Weapon\n\nextends Equipment\n\n\n# @export var dimensions : Vector3\n@export var damages : int\n@export var fullAtkS"
  },
  {
    "path": "Items/Equipment/Weapon/Sword/Assets/.gitkeep",
    "chars": 0,
    "preview": ""
  },
  {
    "path": "Items/Equipment/Weapon/Sword/Assets/highlight_material.tres",
    "chars": 181,
    "preview": "[gd_resource type=\"StandardMaterial3D\" format=3 uid=\"uid://dhtgugsx1naqy\"]\n\n[resource]\ncull_mode = 1\nshading_mode = 0\nal"
  },
  {
    "path": "Items/Equipment/Weapon/Sword/Assets/minecraft_diamond-sword/license.txt",
    "chars": 716,
    "preview": "Model Information:\n* title:\tMinecraft Diamond-Sword\n* source:\thttps://sketchfab.com/3d-models/minecraft-diamond-sword-2f"
  },
  {
    "path": "Items/Equipment/Weapon/Sword/Assets/minecraft_diamond-sword/scene.gltf",
    "chars": 3261,
    "preview": "{\n  \"accessors\": [\n    {\n      \"bufferView\": 2,\n      \"componentType\": 5126,\n      \"count\": 538,\n      \"max\": [\n        "
  },
  {
    "path": "Items/Equipment/Weapon/Sword/Assets/sword_snap_zone.tscn",
    "chars": 1545,
    "preview": "[gd_scene load_steps=6 format=3 uid=\"uid://cnejj18caclcm\"]\n\n[ext_resource type=\"PackedScene\" uid=\"uid://ce7vysyvondf8\" p"
  },
  {
    "path": "Items/Equipment/Weapon/Sword/Scenes/.gitkeep",
    "chars": 0,
    "preview": ""
  },
  {
    "path": "Items/Equipment/Weapon/Sword/Scenes/diamond_sword.tscn",
    "chars": 32074,
    "preview": "[gd_scene load_steps=16 format=4 uid=\"uid://3be1vp1kq1iy\"]\n\n[ext_resource type=\"PackedScene\" uid=\"uid://c8l60rnugru40\" p"
  },
  {
    "path": "Items/Equipment/Weapon/Sword/Scenes/nice_sword.tscn",
    "chars": 3149,
    "preview": "[gd_scene load_steps=10 format=3 uid=\"uid://bsr17ytbnwu7h\"]\n\n[ext_resource type=\"PackedScene\" uid=\"uid://c8l60rnugru40\" "
  },
  {
    "path": "Items/Equipment/Weapon/Sword/Scripts/.gitkeep",
    "chars": 0,
    "preview": ""
  },
  {
    "path": "Items/Equipment/equipment.gd",
    "chars": 305,
    "preview": "class_name Equipment\n\nextends Node3D\n\nsignal equipment(new_stats) \nsignal unequipment(old_stats)\n\n# @export var name : S"
  },
  {
    "path": "Items/Projectile/Scene/projectile.tscn",
    "chars": 1019,
    "preview": "[gd_scene load_steps=5 format=3 uid=\"uid://cnpj55tgfsqvo\"]\n\n[ext_resource type=\"Script\" path=\"res://Items/Projectile/Scr"
  },
  {
    "path": "Items/Projectile/Script/projectile.gd",
    "chars": 829,
    "preview": "class_name Projectile\n\nextends RigidBody3D\n\n\nvar initial_position : Vector3\nvar destination : Vector3\nvar speed : float\n"
  },
  {
    "path": "LICENSE",
    "chars": 1067,
    "preview": "MIT License\n\nCopyright (c) 2024 dallatIkes\n\nPermission is hereby granted, free of charge, to any person obtaining a copy"
  },
  {
    "path": "Levels/Celeste/Assets/.gitkeep",
    "chars": 0,
    "preview": ""
  },
  {
    "path": "Levels/Celeste/Scenes/.gitkeep",
    "chars": 0,
    "preview": ""
  },
  {
    "path": "Levels/Celeste/Scripts/.gitkeep",
    "chars": 0,
    "preview": ""
  },
  {
    "path": "Levels/Desert/Assets/.gitkeep",
    "chars": 0,
    "preview": ""
  },
  {
    "path": "Levels/Desert/Scenes/.gitkeep",
    "chars": 0,
    "preview": ""
  },
  {
    "path": "Levels/Desert/Scripts/.gitkeep",
    "chars": 0,
    "preview": ""
  },
  {
    "path": "Levels/Forest/Assets/.gitkeep",
    "chars": 0,
    "preview": ""
  },
  {
    "path": "Levels/Forest/Assets/Forest GridMap.tres",
    "chars": 1540085,
    "preview": "[gd_resource type=\"MeshLibrary\" load_steps=324 format=4 uid=\"uid://bmi8ycvgfu0y6\"]\n\n[ext_resource type=\"Texture2D\" uid=\""
  },
  {
    "path": "Levels/Forest/Scenes/.gitkeep",
    "chars": 0,
    "preview": ""
  },
  {
    "path": "Levels/Forest/Scenes/dungeon.gd",
    "chars": 636,
    "preview": "extends Node3D\n\nconst WORLD = preload(\"res://Levels/Forest/Scenes/forest_grid_map.tscn\")\n@onready var sfx_cave = $sfx_ca"
  },
  {
    "path": "Levels/Forest/Scenes/dungeon.tscn",
    "chars": 143909,
    "preview": "[gd_scene load_steps=56 format=3 uid=\"uid://23w47wo7fcu0\"]\n\n[ext_resource type=\"Script\" path=\"res://Levels/Forest/Scenes"
  },
  {
    "path": "Levels/Forest/Scenes/fake_dungeon.tscn",
    "chars": 15923,
    "preview": "[gd_scene load_steps=9 format=3 uid=\"uid://cwmdt77ccmtp7\"]\n\n[ext_resource type=\"PackedScene\" uid=\"uid://w5gpfb041yj4\" pa"
  },
  {
    "path": "Levels/Forest/Scenes/forest_zone.gd",
    "chars": 440,
    "preview": "extends Node3D\n\n\n#Called when the node enters the scene tree for the first time.\nfunc _ready() -> void:\n\tif GameState.sh"
  },
  {
    "path": "Levels/Forest/Scenes/forest_zone.tscn",
    "chars": 5705627,
    "preview": "[gd_scene load_steps=37 format=3 uid=\"uid://bwysclqe4ioyb\"]\n\n[ext_resource type=\"Script\" path=\"res://Levels/Forest/Scene"
  },
  {
    "path": "Levels/Forest/Scenes/torch.tscn",
    "chars": 559,
    "preview": "[gd_scene load_steps=2 format=3 uid=\"uid://c1lp2l4vgb1ug\"]\n\n[ext_resource type=\"PackedScene\" uid=\"uid://y08bekrrw48p\" pa"
  },
  {
    "path": "Levels/Forest/Scripts/.gitkeep",
    "chars": 0,
    "preview": ""
  },
  {
    "path": "Levels/Mine/Assets/.gitkeep",
    "chars": 0,
    "preview": ""
  },
  {
    "path": "Levels/Mine/Scenes/.gitkeep",
    "chars": 0,
    "preview": ""
  },
  {
    "path": "Levels/Mine/Scripts/.gitkeep",
    "chars": 0,
    "preview": ""
  },
  {
    "path": "Levels/Mountain/Assets/.gitkeep",
    "chars": 0,
    "preview": ""
  },
  {
    "path": "Levels/Mountain/Scenes/.gitkeep",
    "chars": 0,
    "preview": ""
  },
  {
    "path": "Levels/Mountain/Scripts/.gitkeep",
    "chars": 0,
    "preview": ""
  },
  {
    "path": "Levels/Starting_menu/Scenes/hedge_2.tscn",
    "chars": 4080,
    "preview": "[gd_scene load_steps=3 format=3 uid=\"uid://chw6e0y1s18l0\"]\n\n[ext_resource type=\"PackedScene\" uid=\"uid://cxnif1fir8paj\" p"
  },
  {
    "path": "Levels/Starting_menu/Scenes/start_menu.tscn",
    "chars": 38341,
    "preview": "[gd_scene load_steps=23 format=3 uid=\"uid://bgui52ospmdea\"]\n\n[ext_resource type=\"Script\" path=\"res://Levels/Starting_men"
  },
  {
    "path": "Levels/Starting_menu/Scripts/starting_menu.gd",
    "chars": 218,
    "preview": "extends VBoxContainer\n\nconst WORLD = preload(\"res://Levels/Test/demo.tscn\")\nfunc _on_startbutton_pressed() -> void:\n\tget"
  },
  {
    "path": "Levels/Starting_menu/Scripts/world_start_menu.gd",
    "chars": 317,
    "preview": "extends Node3D\n\n@onready var camera_pivot = $camera_pivot\nvar rotation_speed = 10 \n@onready var sfx_menu = $sfx_menu\n\n\nf"
  },
  {
    "path": "Levels/Test/Assets/world_blocks_test.tres",
    "chars": 462593,
    "preview": "[gd_resource type=\"MeshLibrary\" load_steps=113 format=4 uid=\"uid://xa5h52wqdnf5\"]\n\n[ext_resource type=\"Texture2D\" uid=\"u"
  },
  {
    "path": "Levels/Test/Scenes/climb_stone_object.tscn",
    "chars": 786,
    "preview": "[gd_scene load_steps=5 format=3 uid=\"uid://ci42hw60qc84r\"]\n\n[ext_resource type=\"PackedScene\" uid=\"uid://cjyilbm4ucc7s\" p"
  },
  {
    "path": "Levels/Test/Scenes/door.tscn",
    "chars": 79,
    "preview": "[gd_scene format=3 uid=\"uid://gwsac4piuj5g\"]\n\n[node name=\"Door\" type=\"Node3D\"]\n"
  },
  {
    "path": "Levels/Test/Scenes/grid_map_test.tscn",
    "chars": 9161,
    "preview": "[gd_scene load_steps=2 format=3 uid=\"uid://cv61u1e5ae2ib\"]\n\n[ext_resource type=\"MeshLibrary\" uid=\"uid://xa5h52wqdnf5\" pa"
  },
  {
    "path": "Levels/Test/Scenes/lever.gd",
    "chars": 2907,
    "preview": "extends Node3D\n\n# Signal emitted when the lever is straight\nsignal neutral_position(lever)\n\n# Signal emitted when the le"
  },
  {
    "path": "Levels/Test/Scenes/lever.tscn",
    "chars": 2522,
    "preview": "[gd_scene load_steps=10 format=3 uid=\"uid://cwru8wjnyjiks\"]\n\n[ext_resource type=\"Script\" path=\"res://Levels/Test/Scripts"
  },
  {
    "path": "Levels/Test/Scenes/tool_board.tscn",
    "chars": 627,
    "preview": "[gd_scene load_steps=3 format=3 uid=\"uid://mf7sr62wde8x\"]\n\n[ext_resource type=\"PackedScene\" path=\"res://Items/Equipment/"
  },
  {
    "path": "Levels/Test/Scenes/torch.tscn",
    "chars": 1949,
    "preview": "[gd_scene load_steps=8 format=3 uid=\"uid://cfrk2xrnvma5q\"]\n\n[ext_resource type=\"Script\" path=\"res://Levels/Test/Scripts/"
  },
  {
    "path": "Levels/Test/Scripts/debug_pos.gd",
    "chars": 936,
    "preview": "extends MeshInstance3D\n\n#Set this node visible for debug\n\n# Called when the node enters the scene tree for the first tim"
  },
  {
    "path": "Levels/Test/Scripts/lever.gd",
    "chars": 2371,
    "preview": "extends Node3D\n\n# Signal emitted when the lever is straight\nsignal neutral_position(lever)\n\n# Signal emitted when the le"
  },
  {
    "path": "Levels/Test/Scripts/lever_main_menu.gd",
    "chars": 2586,
    "preview": "extends Node3D\n\n# Signal emitted when the lever is straight\nsignal neutral_position(lever)\n\n# Signal emitted when the le"
  },
  {
    "path": "Levels/Test/Scripts/lever_main_menu_for_demo.gd",
    "chars": 2604,
    "preview": "extends Node3D\n\n# Signal emitted when the lever is straight\nsignal neutral_position(lever)\n\n# Signal emitted when the le"
  },
  {
    "path": "Levels/Test/Scripts/lever_start_menu.gd",
    "chars": 2609,
    "preview": "extends Node3D\n\n# Signal emitted when the lever is straight\nsignal neutral_position(lever)\n\n# Signal emitted when the le"
  },
  {
    "path": "Levels/Test/Scripts/main_menu.gd",
    "chars": 221,
    "preview": "extends VBoxContainer\n\nconst WORLD = preload(\"res://Levels/Test/demo.tscn\")\n\n\n\nfunc _on_startbutton_pressed() -> void:\n\t"
  },
  {
    "path": "Levels/Test/Scripts/mesh_instance_3d.gd",
    "chars": 270,
    "preview": "extends MeshInstance3D\n\n\n# Called when the node enters the scene tree for the first time.\nfunc _ready() -> void:\n\tpass #"
  },
  {
    "path": "Levels/Test/Scripts/test_scene.gd",
    "chars": 682,
    "preview": "extends Node3D\n\nvar xr_interface: XRInterface\n@onready var musicbg = $musicbg\n\nfunc _ready():\n\tmusicbg.volume_db = -30\n\t"
  },
  {
    "path": "Levels/Test/Scripts/torch.gd",
    "chars": 633,
    "preview": "extends Node\n\n\nsignal torchLit(torch)\nsignal torchUnlit(torch)\n\nvar isLit : bool\n@onready var lit_scene = get_node(\"Lit\""
  },
  {
    "path": "Levels/Test/demo.tscn",
    "chars": 39496,
    "preview": "[gd_scene load_steps=28 format=3 uid=\"uid://dukv6cpvxtuas\"]\n\n[ext_resource type=\"Script\" path=\"res://Levels/Test/Scripts"
  },
  {
    "path": "Levels/Test/main_menu.tscn",
    "chars": 36590,
    "preview": "[gd_scene load_steps=21 format=3 uid=\"uid://c3k06m6dn2d7w\"]\n\n[ext_resource type=\"Script\" path=\"res://Levels/Test/Scripts"
  },
  {
    "path": "Levels/Test/tes2B.tmp",
    "chars": 9536,
    "preview": "[gd_scene load_steps=16 format=3 uid=\"uid://0t23pyw3gtfy\"]\n\n[ext_resource type=\"Script\" path=\"res://Levels/Test/test_sce"
  },
  {
    "path": "Levels/Test/tes36FE.tmp",
    "chars": 9536,
    "preview": "[gd_scene load_steps=16 format=3 uid=\"uid://0t23pyw3gtfy\"]\n\n[ext_resource type=\"Script\" path=\"res://Levels/Test/test_sce"
  },
  {
    "path": "Levels/Test/tes6881.tmp",
    "chars": 9536,
    "preview": "[gd_scene load_steps=16 format=3 uid=\"uid://0t23pyw3gtfy\"]\n\n[ext_resource type=\"Script\" path=\"res://Levels/Test/test_sce"
  },
  {
    "path": "Levels/Test/tesFB3D.tmp",
    "chars": 9869,
    "preview": "[gd_scene load_steps=16 format=3 uid=\"uid://0t23pyw3gtfy\"]\n\n[ext_resource type=\"Script\" path=\"res://Levels/Test/test_sce"
  },
  {
    "path": "Levels/Test/test_scene.tscn",
    "chars": 16669,
    "preview": "[gd_scene load_steps=16 format=3 uid=\"uid://0t23pyw3gtfy\"]\n\n[ext_resource type=\"Script\" path=\"res://Levels/Test/Scripts/"
  },
  {
    "path": "Levels/Test/test_scene_ethan.tscn",
    "chars": 17108,
    "preview": "[gd_scene load_steps=15 format=3 uid=\"uid://chbumdu60phua\"]\n\n[ext_resource type=\"Script\" path=\"res://Levels/Test/Scripts"
  },
  {
    "path": "Levels/Underwater/Assets/.gitkeep",
    "chars": 0,
    "preview": ""
  },
  {
    "path": "Levels/Underwater/Scenes/.gitkeep",
    "chars": 0,
    "preview": ""
  },
  {
    "path": "Levels/Underwater/Scripts/.gitkeep",
    "chars": 0,
    "preview": ""
  },
  {
    "path": "README.md",
    "chars": 5114,
    "preview": "# Vanquished Realm \n\n[![GitHub Release](https://img.shields.io/github/v/release/dallatIkes/projetGL)](https://github.com"
  },
  {
    "path": "Scripts/GameState.gd",
    "chars": 100,
    "preview": "extends Node\n\nvar player_position: Vector3 = Vector3.ZERO\nvar should_restore_position: bool = false\n"
  },
  {
    "path": "Sounds/.gitignore",
    "chars": 19,
    "preview": "*.import\n.DS_Store\n"
  },
  {
    "path": "Spells/Assets/.gitkeep",
    "chars": 0,
    "preview": ""
  },
  {
    "path": "Spells/PoisonBall/Asset/PoisonMaterial.tres",
    "chars": 143,
    "preview": "[gd_resource type=\"StandardMaterial3D\" format=3 uid=\"uid://dpyrc1cca60u0\"]\n\n[resource]\nalbedo_color = Color(0.0784314, 1"
  },
  {
    "path": "Spells/PoisonBall/Scene/PoisonBall.tscn",
    "chars": 5137,
    "preview": "[gd_scene load_steps=12 format=3 uid=\"uid://b4w8nwaqta6sa\"]\n\n[ext_resource type=\"Script\" path=\"res://Spells/PoisonBall/S"
  },
  {
    "path": "Spells/PoisonBall/Scripts/poisonball.gd",
    "chars": 585,
    "preview": "extends Node\n\n@export var damage : int\n\n@onready var anim_player = $MeshInstance3D/PoisonAnimation\n\n\n# Called when the n"
  },
  {
    "path": "Spells/Scenes/.gitkeep",
    "chars": 0,
    "preview": ""
  },
  {
    "path": "Spells/Scenes/electric_arc.tscn",
    "chars": 2230,
    "preview": "[gd_scene load_steps=7 format=3 uid=\"uid://bwqrccdtkw5i6\"]\n\n[ext_resource type=\"PackedScene\" uid=\"uid://c8l60rnugru40\" p"
  },
  {
    "path": "Spells/Scenes/fire_ball.tscn",
    "chars": 2235,
    "preview": "[gd_scene load_steps=7 format=3 uid=\"uid://bmptv7pnc8n4g\"]\n\n[ext_resource type=\"PackedScene\" uid=\"uid://c8l60rnugru40\" p"
  },
  {
    "path": "Spells/Scenes/heal_orb.tscn",
    "chars": 1565,
    "preview": "[gd_scene load_steps=7 format=3 uid=\"uid://ciy4e7i47leh3\"]\n\n[ext_resource type=\"PackedScene\" uid=\"uid://c8l60rnugru40\" p"
  },
  {
    "path": "Spells/Scripts/.gitkeep",
    "chars": 0,
    "preview": ""
  },
  {
    "path": "Spells/Scripts/electric_arc.gd",
    "chars": 2036,
    "preview": "class_name ElectricArc\n\nextends Spell\n\n\n@onready var mode : int # The electric arc is present when mode = 0 but destroy "
  },
  {
    "path": "Spells/Scripts/fire_ball.gd",
    "chars": 3476,
    "preview": "class_name FireBall\n\nextends Spell\n\nvar mode : int # The Fireball is inactive at 0, 1 it is visible and 2 the ball is th"
  },
  {
    "path": "Spells/Scripts/heal_orb.gd",
    "chars": 1413,
    "preview": "class_name HealOrb\n\nextends Spell\n\n@onready var mode : int # The heal orb is present when mode = 0 but destroy when mode"
  },
  {
    "path": "Spells/Scripts/spell.gd",
    "chars": 969,
    "preview": "class_name Spell\n\nextends RigidBody3D\n\n# @export var name : String (already instancied in Node3d)\n@export var descriptio"
  },
  {
    "path": "UI/Assets/.gitkeep",
    "chars": 0,
    "preview": ""
  },
  {
    "path": "UI/Scenes/.gitkeep",
    "chars": 0,
    "preview": ""
  },
  {
    "path": "UI/Scenes/HPBar.tscn",
    "chars": 428,
    "preview": "[gd_scene load_steps=3 format=3 uid=\"uid://b4854n1j77bnw\"]\n\n[ext_resource type=\"Texture2D\" uid=\"uid://l1bns2cm2axp\" path"
  },
  {
    "path": "UI/Scenes/SpellMenu.tscn",
    "chars": 3620,
    "preview": "[gd_scene load_steps=14 format=3 uid=\"uid://bj87t0ko8wnss\"]\n\n[ext_resource type=\"Script\" path=\"res://UI/Scripts/spell_me"
  },
  {
    "path": "UI/Scenes/in_game_ui.tscn",
    "chars": 9643,
    "preview": "[gd_scene load_steps=7 format=3 uid=\"uid://cr3f307xa3bfq\"]\n\n[ext_resource type=\"Script\" path=\"res://UI/Scenes/resume_but"
  },
  {
    "path": "UI/Scenes/in_game_ui_debug.tscn",
    "chars": 1692,
    "preview": "[gd_scene load_steps=2 format=3 uid=\"uid://bnyi785o8xx0p\"]\n\n[ext_resource type=\"Script\" path=\"res://UI/Scripts/in_game_u"
  },
  {
    "path": "UI/Scenes/main_menu.tscn",
    "chars": 2182,
    "preview": "[gd_scene load_steps=2 format=3 uid=\"uid://dr8hvlehkgoc8\"]\n\n[ext_resource type=\"Script\" path=\"res://Levels/Starting_menu"
  },
  {
    "path": "UI/Scenes/resume_button.gd",
    "chars": 410,
    "preview": "extends Button\n@onready var sfx_1 = $\"sfx_1\"\n\n# Called when the node enters the scene tree for the first time.\nfunc _rea"
  },
  {
    "path": "UI/Scenes/spell_menu_selector.tscn",
    "chars": 478,
    "preview": "[gd_scene load_steps=3 format=3 uid=\"uid://dv85jkge5irnb\"]\n\n[sub_resource type=\"BoxShape3D\" id=\"BoxShape3D_ek2wj\"]\nsize "
  },
  {
    "path": "UI/Scripts/.gitkeep",
    "chars": 0,
    "preview": ""
  },
  {
    "path": "UI/Scripts/global.gd",
    "chars": 245,
    "preview": "extends Node\n\nsignal reset_menu()\n\nsignal turnmode_change()\n\n# Global variables\n\n## Step turn angle in degrees\nvar angle"
  },
  {
    "path": "UI/Scripts/in_game_ui_debug.gd",
    "chars": 619,
    "preview": "extends Node2D\n\nvar content = ['premierTruc', 'deuxiemeTruc', 'troisiemeTruc']\n@onready var label = $Control/ColorRect/D"
  },
  {
    "path": "UI/Scripts/keyMappingMenu.gd",
    "chars": 654,
    "preview": "extends Node\n\n@onready var menu_sfx1 = $\"menu_sfx1\"\n@onready var menu_sfx2 = $\"menu_sfx2\"\n# Called when the node enters "
  },
  {
    "path": "UI/Scripts/menuButtons.gd",
    "chars": 1180,
    "preview": "extends Button\n@onready var sfx1 = $\"sfx1\"\n@onready var sfx2 = $\"sfx2\"\n# Called when the node enters the scene tree for "
  },
  {
    "path": "UI/Scripts/parametersMenu.gd",
    "chars": 2336,
    "preview": "extends Node\n\nsignal new_angle_value(angle)\n@onready var sfx1 = $\"sfx1\"\n@onready var sfx2 = $\"sfx2\"\n\n@onready var player"
  },
  {
    "path": "UI/Scripts/spell_menu.gd",
    "chars": 4267,
    "preview": "class_name SpellMenu\n\nextends Node3D\n\n# Variable for debug menu\nvar zone # the zone where the hand is\nvar area2 # the ar"
  },
  {
    "path": "UI/Textures/HPBar.tres",
    "chars": 288,
    "preview": "[gd_resource type=\"GradientTexture2D\" load_steps=2 format=3 uid=\"uid://l1bns2cm2axp\"]\n\n[sub_resource type=\"Gradient\" id="
  },
  {
    "path": "install/.gitignore",
    "chars": 21,
    "preview": "*.spec\nbuild/*\ndist/*"
  },
  {
    "path": "install/src/gui.py",
    "chars": 11752,
    "preview": "import ttkbootstrap as ttk\nfrom ttkbootstrap.constants import *\nfrom tkinter import filedialog, messagebox\nfrom PIL impo"
  },
  {
    "path": "install/src/install.py",
    "chars": 101,
    "preview": "from gui import InstallerApp\n\nif __name__ == \"__main__\":\n    app = InstallerApp()\n    app.mainloop()\n"
  },
  {
    "path": "install/src/unzip.py",
    "chars": 736,
    "preview": "import urllib.request\nimport zipfile\n\n# URLs des fichiers .zip hébergés dans une release GitHub\nZIP_FILES = [\n    {\n    "
  },
  {
    "path": "project.godot",
    "chars": 1976,
    "preview": "; Engine configuration file.\n; It's best edited using the editor UI and not directly,\n; since the parameters that go her"
  }
]

// ... and 9 more files (download for full content)

About this extraction

This page contains the full source code of the dallatIkes/projetGL GitHub repository, extracted and formatted as plain text for AI agents and large language models (LLMs). The extraction includes 165 files (8.1 MB), approximately 2.1M tokens, and a symbol index with 34 extracted functions, classes, methods, constants, and types. Use this with OpenClaw, Claude, ChatGPT, Cursor, Windsurf, or any other AI tool that accepts text input. You can copy the full output to your clipboard or download it as a .txt file.

Extracted by GitExtract — free GitHub repo to text converter for AI. Built by Nikandr Surkov.

Copied to clipboard!