summaryrefslogtreecommitdiff
path: root/client/map
diff options
context:
space:
mode:
Diffstat (limited to 'client/map')
-rw-r--r--client/map/auto_setup/environment_setup.gd11
-rw-r--r--client/map/auto_setup/light_setup.gd9
-rw-r--r--client/map/map.gd19
-rw-r--r--client/map/tiles/exterior_tree.gd2
-rw-r--r--client/map/tiles/grass.gd2
-rw-r--r--client/map/tiles/light_tile.gd11
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")