[gd_scene load_steps=44 format=3 uid="uid://dqb3ybvpsfcbw"]

[ext_resource type="PackedScene" uid="uid://cs8e62lsifik5" path="res://game/floor.tscn" id="1"]
[ext_resource type="PackedScene" uid="uid://d04fmtjhjx4oy" path="res://OQ_Toolkit/OQ_UI2D/OQ_UI2DLabel.tscn" id="2"]
[ext_resource type="PackedScene" uid="uid://crstqa7v6ehg3" path="res://OQ_Toolkit/OQ_UI2D/OQ_UI2DCanvas.tscn" id="3"]
[ext_resource type="PackedScene" uid="uid://iglrdadxsqw4" path="res://game/Wall/Wall.tscn" id="3_73652"]
[ext_resource type="PackedScene" uid="uid://iiatb07725bg" path="res://game/SpectatorWindow.tscn" id="6_g42ih"]
[ext_resource type="PackedScene" uid="uid://b08nwxm66uyir" path="res://game/vr_goggles.glb" id="7_e6irq"]
[ext_resource type="Script" path="res://game/scripts/BeepSaberController.gd" id="8_5lcn1"]
[ext_resource type="Shader" path="res://game/vr_goggles.gdshader" id="8_7x23q"]
[ext_resource type="Script" path="res://game/BeepSaber_Game.gd" id="9"]
[ext_resource type="PackedScene" uid="uid://n1wrym3osxb8" path="res://game/LightSaber.tscn" id="10"]
[ext_resource type="PackedScene" uid="uid://glii0poslcve" path="res://game/BeepSaberMainMenu.tscn" id="11"]
[ext_resource type="PackedScene" uid="uid://cisgyiarwaf2i" path="res://game/scripts/UIRaycast/UIRaycast.tscn" id="12"]
[ext_resource type="PackedScene" uid="uid://qjvg3reomvyk" path="res://game/event_driver.tscn" id="13"]
[ext_resource type="Material" uid="uid://dqox51k4cngtf" path="res://game/Text.material" id="13_3xkki"]
[ext_resource type="Sky" uid="uid://byunh6ley5hib" path="res://game/background_sky.tres" id="14"]
[ext_resource type="Shader" path="res://game/PercentIndicator.gdshader" id="14_155do"]
[ext_resource type="PackedScene" uid="uid://63fr72w7kh2w" path="res://game/PercentIndicator.tscn" id="16"]
[ext_resource type="PackedScene" uid="uid://f53k0dxxtenr" path="res://game/Pause_Panel.tscn" id="18"]
[ext_resource type="PackedScene" uid="uid://biylg2wsontn3" path="res://game/settings_Panel.tscn" id="19"]
[ext_resource type="PackedScene" uid="uid://383dbnh6gxd3" path="res://game/ui/BeatSaverPanel/BeatSaverPanel.tscn" id="20"]
[ext_resource type="PackedScene" uid="uid://i5nhm2p2kqay" path="res://game/EndScore.tscn" id="20_fgfws"]
[ext_resource type="PackedScene" uid="uid://spe4kya7ntv8" path="res://OQ_Toolkit/OQ_UI2D/OQ_UI2DKeyboard.tscn" id="21"]
[ext_resource type="PackedScene" uid="uid://dmuvh1rllcn3e" path="res://game/Points_label_driver.tscn" id="22"]
[ext_resource type="PackedScene" uid="uid://cpwxp083qm1jq" path="res://game/HighscorePanel.tscn" id="23"]
[ext_resource type="PackedScene" uid="uid://6du64wi28yi6" path="res://game/Bomb/Bomb.tscn" id="24"]
[ext_resource type="PackedScene" uid="uid://cj71atwq2eow8" path="res://game/ui/NameSelector/NameSelector.tscn" id="25"]
[ext_resource type="PackedScene" uid="uid://cb8ftj7lpxrfy" path="res://game/ui/YouTubeUI/YouTubeUI.tscn" id="26"]
[ext_resource type="PackedScene" uid="uid://cjirr6sfxfhhd" path="res://game/scripts/ScenePool/ScenePool.tscn" id="27"]
[ext_resource type="PackedScene" uid="uid://dkqqtux44xxe7" path="res://game/ui/MapDownloadPanel/MapDownloadPanel.tscn" id="28"]
[ext_resource type="PackedScene" uid="uid://bmdbiqndkvcm6" path="res://game/ui/BeatSageUI/BeatSageUI.tscn" id="29"]
[ext_resource type="PackedScene" uid="uid://cbbovki8xp6e2" path="res://game/GodotSplash.tscn" id="29_vrn2v"]
[ext_resource type="PackedScene" uid="uid://cgfj82g2xp1ne" path="res://OQ_Toolkit/OQ_UI2D/OQ_UI2DLogWindow.tscn" id="31"]
[ext_resource type="Script" path="res://game/scripts/SongUploader/song_uploader.gd" id="33_l0uxg"]
[ext_resource type="PackedScene" uid="uid://dvj8dorx2l7s0" path="res://game/BeepCube/BeepCube.tscn" id="33_nc705"]
[ext_resource type="PackedScene" uid="uid://b62c3hkjmky75" path="res://game/Chain/ChainLink.tscn" id="34_tsovg"]

[sub_resource type="Environment" id="1"]
background_mode = 2
sky = ExtResource("14")
sky_rotation = Vector3(0, 3.14159, 0)
ambient_light_color = Color(1, 1, 1, 1)
ambient_light_sky_contribution = 0.37
ssr_fade_in = 0.197926
ssr_fade_out = 1.41421
glow_enabled = true
glow_intensity = 1.63
glow_strength = 0.83
glow_bloom = 0.03
glow_blend_mode = 1
glow_hdr_threshold = 1.04
fog_density = 0.0015

[sub_resource type="SphereShape3D" id="2"]
radius = 0.07

[sub_resource type="TextMesh" id="TextMesh_p7n0m"]
text = "FPS:"
font_size = 7
horizontal_alignment = 0
depth = 0.0

[sub_resource type="ShaderMaterial" id="ShaderMaterial_0pkk4"]
render_priority = 0
shader = ExtResource("8_7x23q")
shader_parameter/left_color = Color(1, 0, 0, 1)
shader_parameter/right_color = Color(0, 0, 1, 1)

[sub_resource type="TextMesh" id="TextMesh_cx1im"]
text = "x 0
Combo 000"
font_size = 6
horizontal_alignment = 0
vertical_alignment = 0
depth = 0.0

[sub_resource type="TextMesh" id="TextMesh_0bbpk"]
text = "Score: 000000"
font_size = 6
vertical_alignment = 0
depth = 0.0

[sub_resource type="ShaderMaterial" id="ShaderMaterial_6dld2"]
resource_local_to_scene = true
render_priority = 0
shader = ExtResource("14_155do")
shader_parameter/how_full = 0.75

[sub_resource type="QuadMesh" id="QuadMesh_02xdc"]
size = Vector2(0.5, 0.5)

[node name="BeepSaber" type="Node3D" groups=["main_game"]]
script = ExtResource("9")

[node name="GodotSplash" parent="." node_paths=PackedStringArray("camera") instance=ExtResource("29_vrn2v")]
camera = NodePath("../XROrigin3D/XRCamera3D")

[node name="pre_renderer" type="Node3D" parent="."]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1.00581, -5.78464)
visible = false

[node name="Bomb" parent="pre_renderer" instance=ExtResource("24")]

[node name="Wall" parent="pre_renderer" instance=ExtResource("3_73652")]

[node name="WorldEnvironment" type="WorldEnvironment" parent="." groups=["enviroment"]]
environment = SubResource("1")

[node name="SongPlayer" type="AudioStreamPlayer" parent="."]
bus = &"Music"
playback_type = 1

[node name="SpectatorWindow" parent="." instance=ExtResource("6_g42ih")]

[node name="XROrigin3D" type="XROrigin3D" parent="."]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1)

[node name="XRCamera3D" type="XRCamera3D" parent="XROrigin3D"]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1.8, 0)
cull_mask = 1
far = 1024.0

[node name="PlayerHead" type="Area3D" parent="XROrigin3D/XRCamera3D"]

[node name="CollisionShape3D" type="CollisionShape3D" parent="XROrigin3D/XRCamera3D/PlayerHead"]
shape = SubResource("2")

[node name="DebugInfoLabel" type="MeshInstance3D" parent="XROrigin3D/XRCamera3D/PlayerHead"]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -0.778996, 0.48322, -1.51666)
material_override = ExtResource("13_3xkki")
mesh = SubResource("TextMesh_p7n0m")

[node name="VRGoggles" parent="XROrigin3D/XRCamera3D" instance=ExtResource("7_e6irq")]
layers = 2
material_override = SubResource("ShaderMaterial_0pkk4")

[node name="LeftController" type="XRController3D" parent="XROrigin3D"]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -0.25, 1.5, -0.5)
tracker = &"left_hand"
script = ExtResource("8_5lcn1")

[node name="LeftLightSaber" parent="XROrigin3D/LeftController" node_paths=PackedStringArray("song_player_ref") instance=ExtResource("10")]
song_player_ref = NodePath("../../../SongPlayer")

[node name="UIRaycast" parent="XROrigin3D/LeftController/LeftLightSaber" node_paths=PackedStringArray("controller") instance=ExtResource("12")]
transform = Transform3D(1, 0, 0, 0, -4.37114e-08, -1, 0, 1, -4.37114e-08, 0, 0, 0)
active = false
ui_raycast_length = 5.0
controller = NodePath("../..")

[node name="RightController" type="XRController3D" parent="XROrigin3D"]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.25, 1.5, -0.5)
tracker = &"right_hand"
script = ExtResource("8_5lcn1")

[node name="RightLightSaber" parent="XROrigin3D/RightController" node_paths=PackedStringArray("song_player_ref") instance=ExtResource("10")]
type = 1
song_player_ref = NodePath("../../../SongPlayer")

[node name="UIRaycast" parent="XROrigin3D/RightController/RightLightSaber" node_paths=PackedStringArray("controller") instance=ExtResource("12")]
transform = Transform3D(1, 0, 0, 0, -4.37114e-08, -1, 0, 1, -4.37114e-08, 0, 0, 0)
ui_raycast_length = 5.0
controller = NodePath("../..")

[node name="Track" type="Node3D" parent="."]

[node name="StandingGround" parent="." instance=ExtResource("1")]

[node name="event_driver" parent="." instance=ExtResource("13")]

[node name="MainMenu_OQ_UI2DCanvas" parent="." instance=ExtResource("3")]
transform = Transform3D(2, 0, 0, 0, 2, 0, 0, 0, 1, 0, 1.5, -1)

[node name="BeepSaberMainMenu" parent="MainMenu_OQ_UI2DCanvas" node_paths=PackedStringArray("main_song_player_ref", "keyboard", "beepsaber_game", "song_uploader_ref") instance=ExtResource("11")]
main_song_player_ref = NodePath("../../SongPlayer")
keyboard = NodePath("../../Keyboard_highscore")
beepsaber_game = NodePath("../..")
song_uploader_ref = NodePath("../../SongUploader")

[node name="Multiplier_Label" type="MeshInstance3D" parent="."]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -1.75, 1.375, -2.5)
material_override = ExtResource("13_3xkki")
mesh = SubResource("TextMesh_cx1im")
skeleton = NodePath("")

[node name="Point_Label" type="MeshInstance3D" parent="."]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 1.5, 1.375, -2.5)
material_override = ExtResource("13_3xkki")
mesh = SubResource("TextMesh_0bbpk")
skeleton = NodePath("")

[node name="Percent_Indicator" parent="." instance=ExtResource("16")]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 1.5, 1, -2.5)
material_override = SubResource("ShaderMaterial_6dld2")
mesh = SubResource("QuadMesh_02xdc")

[node name="EndScore" parent="." instance=ExtResource("20_fgfws")]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1.60386, -0.777581)
layers = 3

[node name="PauseMenu_canvas" parent="." instance=ExtResource("3")]
transform = Transform3D(1.86849, 0, 0, 0, 1.86849, 0, 0, 0, 1.86849, 0, 1.43532, -0.756856)
visible = false

[node name="Pause_Panel" parent="PauseMenu_canvas" instance=ExtResource("18")]

[node name="Pause_countdown" parent="." instance=ExtResource("2")]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1.49382, -0.649511)
visible = false
text = "3"
font_size_multiplier = 4.587

[node name="Settings_canvas" parent="." instance=ExtResource("3")]
transform = Transform3D(2.3178, 0, 0, 0, 2.3178, 0, 0, 0, 2.3178, 0, 1.5, -1)
visible = false

[node name="settings_Panel" parent="Settings_canvas" node_paths=PackedStringArray("beepsaber_game") instance=ExtResource("19")]
beepsaber_game = NodePath("../..")

[node name="OQ_UI2DLogWindow" parent="Settings_canvas" instance=ExtResource("31")]
transform = Transform3D(0.373265, 0, 0, 0, 0.323257, 0.186633, 0, -0.186633, 0.323257, 0, -0.407229, 0.0410669)

[node name="MapSourceDialogs" type="Node3D" parent="."]
transform = Transform3D(0.346575, 0, -0.938022, 0, 1, 0, 0.938022, 0, 0.346575, 2.43, 1.498, 0.468)

[node name="MapDownload_Canvas" parent="MapSourceDialogs" instance=ExtResource("3")]
transform = Transform3D(2, 0, 0, 0, 2, 0, 0, 0, 2, 0, 0, 0)

[node name="MapDownloadPanel" parent="MapSourceDialogs/MapDownload_Canvas" node_paths=PackedStringArray("beat_saver_panel", "beat_sage_panel") instance=ExtResource("28")]
beat_saver_panel = NodePath("../../BeatSaver_Canvas/BeatSaverPanel")
beat_sage_panel = NodePath("../../BeatSage_Canvas/BeatSageUI")

[node name="BeatSaver_Canvas" parent="MapSourceDialogs" instance=ExtResource("3")]
transform = Transform3D(2, 0, 0, 0, 2, 0, 0, 0, 2, 0, 0, 0)
visible = false

[node name="BeatSaverPanel" parent="MapSourceDialogs/BeatSaver_Canvas" node_paths=PackedStringArray("main_menu_ref", "keyboard") instance=ExtResource("20")]
main_menu_ref = NodePath("../../../MainMenu_OQ_UI2DCanvas/BeepSaberMainMenu")
keyboard = NodePath("../../../Keyboard_online_search")

[node name="BeatSage_Canvas" parent="MapSourceDialogs" instance=ExtResource("3")]
transform = Transform3D(2, 0, 0, 0, 2, 0, 0, 0, 2, 0, 0, 0)
visible = false

[node name="BeatSageUI" parent="MapSourceDialogs/BeatSage_Canvas" instance=ExtResource("29")]

[node name="YouTube_Canvas" parent="MapSourceDialogs" instance=ExtResource("3")]
transform = Transform3D(2, 0, 0, 0, 2, 0, 0, 0, 2, 0, 0, 0.01)
visible = false

[node name="YouTubeUI" parent="MapSourceDialogs/YouTube_Canvas" node_paths=PackedStringArray("keyboard") instance=ExtResource("26")]
keyboard = NodePath("../../../Keyboard_online_search")

[node name="Keyboard_online_search" parent="." instance=ExtResource("21")]
transform = Transform3D(0.838233, 0.349429, -2.22632, 0, 2.37535, 0.372819, 2.25358, -0.129972, 0.828095, 2.09772, 0.833935, 0.302276)
visible = false

[node name="Points_label_driver" parent="." instance=ExtResource("22")]

[node name="Highscores_Canvas" parent="." instance=ExtResource("3")]
transform = Transform3D(1, 0, 1.73205, 0, 2, 0, -1.73205, 0, 1, -2.29734, 1.42321, -0.236991)

[node name="HighscorePanel" parent="Highscores_Canvas" instance=ExtResource("23")]
offset_right = 752.0
show_close_button = false
show_song_info = false

[node name="NameSelector_Canvas" parent="." instance=ExtResource("3")]
transform = Transform3D(2, 0, 0, 0, 2, 0, 0, 0, 2, 0, 0.980611, -0.747554)
visible = false
update_only_on_input = false

[node name="NameSelector" parent="NameSelector_Canvas" instance=ExtResource("25")]
mouse_filter = 1

[node name="BeepCubePool" parent="." instance=ExtResource("27")]
scene = ExtResource("33_nc705")

[node name="ChainLinkPool" parent="." instance=ExtResource("27")]
scene = ExtResource("34_tsovg")

[node name="Keyboard_highscore" parent="." instance=ExtResource("21")]
transform = Transform3D(2.40442, 0, 0, 0, 2.37659, 0.364816, 0, -0.364816, 2.37659, -0.00735812, 0.350501, -0.67319)
visible = false
cancelable = false
min_chars_to_enable_enter = 1
is_name_input = true

[node name="SongUploader" type="Node" parent="." node_paths=PackedStringArray("main_menu_ref")]
script = ExtResource("33_l0uxg")
main_menu_ref = NodePath("../MainMenu_OQ_UI2DCanvas/BeepSaberMainMenu")

[connection signal="finished" from="SongPlayer" to="." method="_on_song_ended"]
[connection signal="area_entered" from="XROrigin3D/XRCamera3D/PlayerHead" to="." method="_on_PlayerHead_area_entered"]
[connection signal="area_exited" from="XROrigin3D/XRCamera3D/PlayerHead" to="." method="_on_PlayerHead_area_exited"]
[connection signal="difficulty_changed" from="MainMenu_OQ_UI2DCanvas/BeepSaberMainMenu" to="." method="_on_BeepSaberMainMenu_difficulty_changed"]
[connection signal="settings_requested" from="MainMenu_OQ_UI2DCanvas/BeepSaberMainMenu" to="." method="_settings_button"]
[connection signal="start_map" from="MainMenu_OQ_UI2DCanvas/BeepSaberMainMenu" to="." method="start_map"]
[connection signal="mainmenu" from="EndScore" to="." method="_main_menu_button"]
[connection signal="repeat" from="EndScore" to="." method="_restart_button"]
[connection signal="continue_button" from="PauseMenu_canvas/Pause_Panel" to="." method="_unpause_button"]
[connection signal="mainmenu_button" from="PauseMenu_canvas/Pause_Panel" to="." method="_main_menu_button"]
[connection signal="restart_button" from="PauseMenu_canvas/Pause_Panel" to="." method="_restart_button"]
[connection signal="apply" from="Settings_canvas/settings_Panel" to="." method="_on_settings_Panel_apply"]
[connection signal="name_selected" from="NameSelector_Canvas/NameSelector" to="." method="_submit_highscore"]
[connection signal="new_scene_instanced" from="BeepCubePool" to="." method="_on_ScenePool_new_scene_instanced"]
[connection signal="new_scene_instanced" from="ChainLinkPool" to="." method="_on_ScenePool_new_scene_instanced"]
[connection signal="text_input_enter" from="Keyboard_highscore" to="." method="_submit_highscore"]
