diff options
Diffstat (limited to 'client/map')
-rw-r--r-- | client/map/auto_setup/environment_setup.gd | 11 | ||||
-rw-r--r-- | client/map/auto_setup/light_setup.gd | 9 | ||||
-rw-r--r-- | client/map/map.gd | 19 | ||||
-rw-r--r-- | client/map/tiles/exterior_tree.gd | 2 | ||||
-rw-r--r-- | client/map/tiles/grass.gd | 2 | ||||
-rw-r--r-- | client/map/tiles/light_tile.gd | 11 |
6 files changed, 22 insertions, 32 deletions
diff --git a/client/map/auto_setup/environment_setup.gd b/client/map/auto_setup/environment_setup.gd index 3ce8add3..c484ca1d 100644 --- a/client/map/auto_setup/environment_setup.gd +++ b/client/map/auto_setup/environment_setup.gd @@ -22,12 +22,9 @@ func set_sky(sky_name: String): environment.sky.sky_material = load("res://map/environment/presets/%s_sky.tres" % sky_name) func _ready(): - apply_settings() - Global.settings_changed.connect(apply_settings) - -func apply_settings(): - environment.ssao_enabled = Global.get_setting("ssao") - environment.sdfgi_enabled = Global.get_setting("gi") == 1 and allow_sdfgi - environment.glow_enabled = Global.get_setting("glow") + Settings.hook_changed_init("graphics.ssao", false, func (x): environment.ssao_enabled = x) + Settings.hook_changed_init("graphics.gi", false, func (x): environment.sdfgi_enabled = x == "sdfgi" and allow_sdfgi) + Settings.hook_changed_init("graphics.glow", false, func (x): environment.glow_enabled = x) + if !Global.on_vulkan(): environment.environment.tonemap_exposure = 0.5 diff --git a/client/map/auto_setup/light_setup.gd b/client/map/auto_setup/light_setup.gd index 1e256dae..7d1b0b7a 100644 --- a/client/map/auto_setup/light_setup.gd +++ b/client/map/auto_setup/light_setup.gd @@ -19,13 +19,12 @@ class_name LightSetup @export var completely_disable_light_if_shadows_disabled := false func _ready(): - apply_settings() - Global.settings_changed.connect(apply_settings) + Settings.hook_changed_init("graphics.shadows", false, apply_settings) -func apply_settings(): +func apply_settings(setting: bool): if completely_disable_light_if_shadows_disabled: - visible = Global.get_setting("shadows") - shadow_enabled = Global.get_setting("shadows") + visible = setting + shadow_enabled = setting func set_sky(sky_name: String): match sky_name: diff --git a/client/map/map.gd b/client/map/map.gd index 208665bf..ce3c6dfa 100644 --- a/client/map/map.gd +++ b/client/map/map.gd @@ -52,17 +52,18 @@ func clear_tile(pos: Vector2i): func _ready(): voxelgi_timer.connect("timeout", gi_bake) - Global.settings_changed.connect(func(): - # is not baked yet but setting is true - if Global.get_setting("gi") == 2 and not currently_baked: - gi_bake() - else: - currently_baked = false - voxelgi.data = null - ) + Settings.hook_changed("graphics.gi", false, apply_gi_setting) + +func apply_gi_setting(state): + if state == "voxelgi" and not currently_baked: + gi_bake() + else: + currently_baked = false + voxelgi.data = null + func gi_bake(): - if not Global.get_setting("gi") == 2: return + if Global.get_setting("graphics.gi") != "voxelgi": return print("Map: Rebaking VoxelGI") currently_baked = true gi_bake_blocking() diff --git a/client/map/tiles/exterior_tree.gd b/client/map/tiles/exterior_tree.gd index edc08df3..9054cbaa 100644 --- a/client/map/tiles/exterior_tree.gd +++ b/client/map/tiles/exterior_tree.gd @@ -27,7 +27,7 @@ func _init(rename: String, _neighbors: Array): var trunk: Mesh = load("res://map/tiles/tree/trunk_%d.res" % tree) var leaves: Mesh = load("res://map/tiles/tree/leaves_%d_%s.res" % [ tree, - "lq" if Global.get_setting("lq_trees") else "hq" + "lq" if Global.get_setting("graphics.lq_trees") else "hq" ]) var trunk_instance: MeshInstance3D = MeshInstance3D.new() trunk_instance.mesh = trunk diff --git a/client/map/tiles/grass.gd b/client/map/tiles/grass.gd index b33642a3..4bd3587c 100644 --- a/client/map/tiles/grass.gd +++ b/client/map/tiles/grass.gd @@ -25,7 +25,7 @@ func _init(rename: String, _neighbors: Array): var random = RandomNumberGenerator.new() random.seed = rename.hash() - for _i in Global.get_setting("grass_amount"): + for _i in Global.get_setting("graphics.grass_amount"): var g: Node3D = GRASS_SIDE.instantiate() base_mesh.add_child(g) g.position = Vector3(random.randf_range(-.5, .5), 0, random.randf_range(-.5, .5)) diff --git a/client/map/tiles/light_tile.gd b/client/map/tiles/light_tile.gd index fac3ee39..346cc3bb 100644 --- a/client/map/tiles/light_tile.gd +++ b/client/map/tiles/light_tile.gd @@ -18,12 +18,5 @@ extends Node3D @export var lights: Array[Light3D] func _ready(): - Global.settings_changed.connect(func(): - for l in lights: - update_shadows() - ) - update_shadows() - -func update_shadows(): - for l in lights: - l.shadow_enabled = Global.get_setting("shadows") + # TODO hook settings + for l in lights: l.shadow_enabled = Global.get_setting("graphics.shadows") |