diff --git a/addons/capri_tools/global_music_selector.gd b/addons/capri_tools/global_music_selector.gd deleted file mode 100644 index 53d9f8f..0000000 --- a/addons/capri_tools/global_music_selector.gd +++ /dev/null @@ -1,46 +0,0 @@ -extends EditorProperty - - -var _dropdown_button := Button.new() - -var _popup_menu := PopupMenu.new() - - -func _init() -> void: - _dropdown_button.pressed.connect(_show_popup) - _dropdown_button.icon = EditorInterface.get_editor_theme().get_icon("AudioStreamWAV", "EditorIcons") - - _popup_menu.index_pressed.connect(_on_song_selected) - - add_child(_dropdown_button) - add_child(_popup_menu) - add_focusable(_dropdown_button) - - -func _update_property() -> void: - var new_value: StringName = get_edited_object()[get_edited_property()] - _dropdown_button.text = new_value.capitalize() - - -func _show_popup() -> void: - var songs = Music.songs.keys() - - _popup_menu.clear() - for sound: StringName in songs: - _popup_menu.add_icon_item( - EditorInterface.get_editor_theme().get_icon("AudioStreamWAV", "EditorIcons"), - sound.capitalize() - ) - - var button_rect = _dropdown_button.get_global_rect() - _popup_menu.reset_size() - var popup_pos = button_rect.position + Vector2(DisplayServer.window_get_position()) - _popup_menu.position = popup_pos - _popup_menu.min_size.x = button_rect.size.x - _popup_menu.popup() - - -func _on_song_selected(index: int) -> void: - var sound = Music.songs.keys()[index] - _dropdown_button.grab_focus() - emit_changed(get_edited_property(), sound) diff --git a/addons/capri_tools/global_music_selector.gd.uid b/addons/capri_tools/global_music_selector.gd.uid deleted file mode 100644 index 817031e..0000000 --- a/addons/capri_tools/global_music_selector.gd.uid +++ /dev/null @@ -1 +0,0 @@ -uid://uc6u3ls6jx3y diff --git a/addons/capri_tools/global_sound_selector_plugin.gd b/addons/capri_tools/global_sound_selector_plugin.gd index 4f0e5bc..d963c34 100644 --- a/addons/capri_tools/global_sound_selector_plugin.gd +++ b/addons/capri_tools/global_sound_selector_plugin.gd @@ -2,7 +2,6 @@ extends EditorInspectorPlugin const GlobalSoundSelector = preload("global_sound_selector.gd") -const GlobalMusicSelector = preload("global_music_selector.gd") func _can_handle(object: Object) -> bool: @@ -10,11 +9,8 @@ func _can_handle(object: Object) -> bool: func _parse_property(object: Object, type: Variant.Type, name: String, hint_type: PropertyHint, hint_string: String, usage_flags: int, wide: bool) -> bool: - if type == TYPE_STRING_NAME: - if hint_string == "global_sound": - add_property_editor(name, GlobalSoundSelector.new()) - return true - if hint_string == "global_music": - add_property_editor(name, GlobalMusicSelector.new()) - return true - return false + if type == TYPE_STRING_NAME and hint_string == "global_sound": + add_property_editor(name, GlobalSoundSelector.new()) + return true + else: + return false diff --git a/assets/music/bug_music.ogg b/assets/music/bug_music.ogg deleted file mode 100644 index f36408e..0000000 Binary files a/assets/music/bug_music.ogg and /dev/null differ diff --git a/assets/music/bug_music.ogg.import b/assets/music/bug_music.ogg.import deleted file mode 100644 index d2bb39b..0000000 --- a/assets/music/bug_music.ogg.import +++ /dev/null @@ -1,19 +0,0 @@ -[remap] - -importer="oggvorbisstr" -type="AudioStreamOggVorbis" -uid="uid://dmctaba7v1rgu" -path="res://.godot/imported/bug_music.ogg-4e14ca93037a40f8bd3b8d23ee565dcc.oggvorbisstr" - -[deps] - -source_file="res://assets/music/bug_music.ogg" -dest_files=["res://.godot/imported/bug_music.ogg-4e14ca93037a40f8bd3b8d23ee565dcc.oggvorbisstr"] - -[params] - -loop=true -loop_offset=28.0 -bpm=0.0 -beat_count=0 -bar_beats=4 diff --git a/autoloads/global_sounds.tscn b/autoloads/global_sounds.tscn index f848e22..8a1de4a 100644 --- a/autoloads/global_sounds.tscn +++ b/autoloads/global_sounds.tscn @@ -14,6 +14,7 @@ sounds = { [node name="SoggyAmbience" type="AudioStreamPlayer" parent="."] stream = ExtResource("2_3njyb") volume_db = -10.0 +autoplay = true bus = &"Background Sound" [node name="WinSound" type="AudioStreamPlayer" parent="."] diff --git a/autoloads/music.gd b/autoloads/music.gd deleted file mode 100644 index 2a2e7e3..0000000 --- a/autoloads/music.gd +++ /dev/null @@ -1,53 +0,0 @@ -@tool -extends Node - - -@export_dir var songs_dir: String -@export_tool_button("Update Songs") var _update_songs_action = _update_songs -@export var songs: Dictionary[StringName, AudioStream] - -@export var player_a: AudioStreamPlayer -@export var player_b: AudioStreamPlayer - - -@onready var _active_player: AudioStreamPlayer = player_a -@onready var _tween: Tween = null - - -func play_song(id: StringName, crossfade_time: float = 0.0, restart: bool = false) -> void: - var new_stream = songs.get(id) as AudioStream - if new_stream: - if not restart and _active_player.stream == new_stream: - return - var new_player = player_b if _active_player == player_a else player_a - new_player.stream = new_stream - new_player.play() - - if crossfade_time > 0.0: - new_player.volume_linear = 0.0 - if _tween: - _tween.kill() - _tween = create_tween().set_parallel() - _tween.tween_property(new_player, ^"volume_linear", 1.0, crossfade_time) - _tween.tween_property(_active_player, ^"volume_linear", 0.0, crossfade_time) - _tween.chain().tween_callback(_active_player.stop) - else: - new_player.volume_linear = 1.0 - _active_player.stop() - - _active_player = new_player - - -func _update_songs() -> void: - songs.clear() - var dir = DirAccess.open(songs_dir) - if dir: - dir.list_dir_begin() - var file = dir.get_next() - while file != "": - if not dir.current_is_dir() and not file.ends_with(".import"): - var stream := load(songs_dir + "/" + file) as AudioStream - if stream: - songs[file.get_basename()] = stream - file = dir.get_next() - notify_property_list_changed() diff --git a/autoloads/music.gd.uid b/autoloads/music.gd.uid deleted file mode 100644 index 9bbeb91..0000000 --- a/autoloads/music.gd.uid +++ /dev/null @@ -1 +0,0 @@ -uid://dgi1v18r8dx4q diff --git a/autoloads/music.tscn b/autoloads/music.tscn deleted file mode 100644 index 7a7902e..0000000 --- a/autoloads/music.tscn +++ /dev/null @@ -1,19 +0,0 @@ -[gd_scene load_steps=3 format=3 uid="uid://cxrhw5ic2vunh"] - -[ext_resource type="Script" uid="uid://dgi1v18r8dx4q" path="res://autoloads/music.gd" id="1_16wm1"] -[ext_resource type="AudioStream" uid="uid://dmctaba7v1rgu" path="res://assets/music/bug_music.ogg" id="2_kl0u4"] - -[node name="Music" type="Node" node_paths=PackedStringArray("player_a", "player_b")] -script = ExtResource("1_16wm1") -songs_dir = "res://assets/music" -songs = Dictionary[StringName, AudioStream]({ -&"bug_music": ExtResource("2_kl0u4") -}) -player_a = NodePath("MusicPlayerA") -player_b = NodePath("MusicPlayerB") - -[node name="MusicPlayerA" type="AudioStreamPlayer" parent="."] -bus = &"Music" - -[node name="MusicPlayerB" type="AudioStreamPlayer" parent="."] -bus = &"Music" diff --git a/autoloads/scene_manager.tscn b/autoloads/scene_manager.tscn index 4e9a340..4ac64e0 100644 --- a/autoloads/scene_manager.tscn +++ b/autoloads/scene_manager.tscn @@ -1,6 +1,8 @@ -[gd_scene load_steps=2 format=3 uid="uid://ckgsfhfpg00ys"] +[gd_scene load_steps=4 format=3 uid="uid://ckgsfhfpg00ys"] [ext_resource type="Script" uid="uid://crlo6ow7fo6ca" path="res://autoloads/scene_manager.gd" id="1_1hxm1"] +[ext_resource type="AudioStream" uid="uid://sci5aqar0oyx" path="res://assets/audio/bgs/amb_sog.wav" id="2_dr7pa"] +[ext_resource type="AudioStream" uid="uid://flc817bekeh6" path="res://assets/audio/sfx/level_win.ogg" id="3_8ri5f"] [node name="SceneManager" type="Node" node_paths=PackedStringArray("viewport", "viewport_holder")] script = ExtResource("1_1hxm1") @@ -47,3 +49,14 @@ handle_input_locally = false canvas_item_default_texture_filter = 0 size = Vector2i(288, 216) render_target_update_mode = 4 + +[node name="AudioStreamPlayer" type="AudioStreamPlayer" parent="."] +stream = ExtResource("2_dr7pa") +volume_db = -10.0 +autoplay = true +bus = &"Background Sound" + +[node name="WinSound" type="AudioStreamPlayer" parent="."] +stream = ExtResource("3_8ri5f") +volume_db = -6.558 +bus = &"Sound Effects" diff --git a/default_bus_layout.tres b/default_bus_layout.tres index 86cc9b8..c20f634 100644 --- a/default_bus_layout.tres +++ b/default_bus_layout.tres @@ -10,29 +10,23 @@ spread = 0.3 wet = 0.1 [resource] -bus/1/name = &"Music" +bus/1/name = &"Capri" bus/1/solo = false bus/1/mute = false bus/1/bypass_fx = false bus/1/volume_db = 0.0 bus/1/send = &"Master" -bus/2/name = &"Capri" +bus/1/effect/0/effect = SubResource("AudioEffectReverb_rn7sq") +bus/1/effect/0/enabled = true +bus/2/name = &"Background Sound" bus/2/solo = false bus/2/mute = false bus/2/bypass_fx = false bus/2/volume_db = 0.0 bus/2/send = &"Master" -bus/2/effect/0/effect = SubResource("AudioEffectReverb_rn7sq") -bus/2/effect/0/enabled = true -bus/3/name = &"Background Sound" +bus/3/name = &"Sound Effects" bus/3/solo = false bus/3/mute = false bus/3/bypass_fx = false bus/3/volume_db = 0.0 bus/3/send = &"Master" -bus/4/name = &"Sound Effects" -bus/4/solo = false -bus/4/mute = false -bus/4/bypass_fx = false -bus/4/volume_db = 0.0 -bus/4/send = &"Master" diff --git a/maps/descent/tutorial.tscn b/maps/descent/tutorial.tscn index 039b2dd..844ed7e 100644 --- a/maps/descent/tutorial.tscn +++ b/maps/descent/tutorial.tscn @@ -21,7 +21,6 @@ shader_parameter/fps = 15.0 script = ExtResource("1_8bygc") title = "Obligatory Tutorial Level" id = "tutorial" -music = &"bug_music" [node name="Sprite2D" type="Sprite2D" parent="."] material = SubResource("ShaderMaterial_sf5kh") diff --git a/maps/level_z.tscn b/maps/level_z.tscn index bc4d050..ce6a651 100644 --- a/maps/level_z.tscn +++ b/maps/level_z.tscn @@ -13,7 +13,6 @@ script = ExtResource("1_hcs1r") title = "Test Level Z" id = "z-level" order = 2 -music = &"bug_music" [node name="Background" type="Sprite2D" parent="."] modulate = Color(0.996924, 0.421436, 0, 1) diff --git a/objects/enemies/lashy/blast_star.tscn b/objects/enemies/lashy/blast_star.tscn index 60b2b16..2732ff6 100644 --- a/objects/enemies/lashy/blast_star.tscn +++ b/objects/enemies/lashy/blast_star.tscn @@ -2,33 +2,6 @@ [ext_resource type="Texture2D" uid="uid://350f21o7jrwq" path="res://assets/textures/effects/star.png" id="1_1xc4y"] -[sub_resource type="Animation" id="Animation_6qf6s"] -length = 0.001 -tracks/0/type = "value" -tracks/0/imported = false -tracks/0/enabled = true -tracks/0/path = NodePath("Sprite2D:scale") -tracks/0/interp = 1 -tracks/0/loop_wrap = true -tracks/0/keys = { -"times": PackedFloat32Array(0), -"transitions": PackedFloat32Array(1), -"update": 0, -"values": [Vector2(1, 1)] -} -tracks/1/type = "value" -tracks/1/imported = false -tracks/1/enabled = true -tracks/1/path = NodePath("Sprite2D:rotation") -tracks/1/interp = 1 -tracks/1/loop_wrap = true -tracks/1/keys = { -"times": PackedFloat32Array(0), -"transitions": PackedFloat32Array(1), -"update": 0, -"values": [0.0] -} - [sub_resource type="Animation" id="Animation_1xc4y"] resource_name = "blast" length = 0.3 @@ -72,6 +45,33 @@ tracks/2/keys = { }] } +[sub_resource type="Animation" id="Animation_6qf6s"] +length = 0.001 +tracks/0/type = "value" +tracks/0/imported = false +tracks/0/enabled = true +tracks/0/path = NodePath("Sprite2D:scale") +tracks/0/interp = 1 +tracks/0/loop_wrap = true +tracks/0/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 0, +"values": [Vector2(1, 1)] +} +tracks/1/type = "value" +tracks/1/imported = false +tracks/1/enabled = true +tracks/1/path = NodePath("Sprite2D:rotation") +tracks/1/interp = 1 +tracks/1/loop_wrap = true +tracks/1/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 0, +"values": [0.0] +} + [sub_resource type="AnimationLibrary" id="AnimationLibrary_kd46a"] _data = { &"RESET": SubResource("Animation_6qf6s"), diff --git a/project.godot b/project.godot index c556d90..93a1a87 100644 --- a/project.godot +++ b/project.godot @@ -20,7 +20,6 @@ config/icon="res://icon.svg" SceneManager="*res://autoloads/scene_manager.tscn" Levels="*res://autoloads/levels.tscn" GlobalSounds="*res://autoloads/global_sounds.tscn" -Music="*res://autoloads/music.tscn" [display] diff --git a/scripts/level/level.gd b/scripts/level/level.gd index f3df270..e4f6bf7 100644 --- a/scripts/level/level.gd +++ b/scripts/level/level.gd @@ -5,8 +5,3 @@ extends Node2D @export var title: String @export var id: String @export_range(0,1,1,"or_greater") var order: int -@export_custom(0, "global_music") var music: StringName - - -func _ready() -> void: - Music.play_song(music)