sound settings set on start + smoother zoom (and holding works)

This commit is contained in:
Altaezio
2026-07-21 11:04:47 +02:00
parent 2b98447b41
commit bc77604fc9
2 changed files with 15 additions and 7 deletions
+8 -4
View File
@@ -77,6 +77,7 @@ func _init():
load_settings_data()
update_language_settings()
update_video_settings()
update_sound_settings(settings_data)
settings_data.language_changed.connect(_on_settings_language_changed)
settings_data.video_changed.connect(_on_settings_video_changed)
settings_data.sound_changed.connect(_on_settings_sound_changed)
@@ -92,10 +93,7 @@ func _on_settings_language_changed(s : SettingsData):
update_language_settings(s)
func _on_settings_sound_changed(s : SettingsData):
AudioServer.set_bus_volume_db(SettingsData.MASTER_BUS_ID, linear_to_db(s.master_volume))
AudioServer.set_bus_volume_db(SettingsData.MUSIC_BUS_ID, linear_to_db(s.music_volume))
AudioServer.set_bus_volume_db(SettingsData.SFX_BUS_ID, linear_to_db(s.sfx_volume))
AudioServer.set_bus_volume_db(SettingsData.AMBIANCE_BUS_ID, linear_to_db(s.ambiance_volume))
update_sound_settings(s)
func _on_timeline_started():
current_dialog_path = Dialogic.current_timeline.resource_path
@@ -105,6 +103,12 @@ func _on_timeline_ended():
game_data.dialogs_done.append(current_dialog_path)
save_game_data()
func update_sound_settings(s: SettingsData):
AudioServer.set_bus_volume_db(SettingsData.MASTER_BUS_ID, linear_to_db(s.master_volume))
AudioServer.set_bus_volume_db(SettingsData.MUSIC_BUS_ID, linear_to_db(s.music_volume))
AudioServer.set_bus_volume_db(SettingsData.SFX_BUS_ID, linear_to_db(s.sfx_volume))
AudioServer.set_bus_volume_db(SettingsData.AMBIANCE_BUS_ID, linear_to_db(s.ambiance_volume))
func update_language_settings(s : SettingsData = settings_data):
TranslationServer.set_locale(s.language)
+7 -3
View File
@@ -17,10 +17,14 @@ const ZOOM_STEP = 0.1
var shake_noise := FastNoiseLite.new()
func _input(_e):
if Input.is_action_just_pressed("zoom_in"):
if Input.is_action_pressed("zoom_in"):
if settings.zoom < zoom.x: # was zooming out
settings.zoom = (zoom.x / ZOOM_STEP) * ZOOM_STEP
settings.zoom = settings.zoom + ZOOM_STEP
GameInfo.save_settings()
if Input.is_action_just_pressed("zoom_out"):
if Input.is_action_pressed("zoom_out"):
if settings.zoom > zoom.x: # was zooming in
settings.zoom = (zoom.x / ZOOM_STEP) * ZOOM_STEP
settings.zoom = settings.zoom - ZOOM_STEP
GameInfo.save_settings()
@@ -33,7 +37,7 @@ func _process(delta):
if following and should_follow:
global_position = following.global_position.lerp(global_position, MOVE_LERP_WEIGHT)
zoom = zoom.lerp(Vector2.ONE * settings.zoom, MOVE_LERP_WEIGHT)
zoom = zoom.lerp(Vector2.ONE * settings.zoom, ZOOM_LERP_WEIGHT)
if shake_active_time > 0.:
shake_active_time -= delta