fix: scoping

This commit is contained in:
DottsGit
2026-06-06 02:03:05 -04:00
parent a47d01632d
commit 27460be0ea
5 changed files with 66 additions and 5 deletions
+2 -1
View File
@@ -28,7 +28,8 @@ func _ready() -> void:
func _input(event: InputEvent) -> void: func _input(event: InputEvent) -> void:
if event is InputEventMouseMotion and Input.get_mouse_mode() == Input.MOUSE_MODE_CAPTURED: if event is InputEventMouseMotion and Input.get_mouse_mode() == Input.MOUSE_MODE_CAPTURED:
var sens = SettingsManager.mouse_sensitivity var is_ads = camera and camera.fov < params.base_fov - 5.0
var sens = SettingsManager.ads_sensitivity if is_ads else SettingsManager.mouse_sensitivity
# Yaw: rotate the player (parent) # Yaw: rotate the player (parent)
get_parent().rotate_y(-event.relative.x * sens) get_parent().rotate_y(-event.relative.x * sens)
# Pitch: rotate this pivot # Pitch: rotate this pivot
+4
View File
@@ -25,6 +25,7 @@ var default_bindings = {
var current_bindings = {} var current_bindings = {}
var show_debug_ui: bool = false var show_debug_ui: bool = false
var mouse_sensitivity: float = 0.002 var mouse_sensitivity: float = 0.002
var ads_sensitivity: float = 0.001
# Video Settings # Video Settings
var display_mode: int = DisplayServer.WINDOW_MODE_WINDOWED var display_mode: int = DisplayServer.WINDOW_MODE_WINDOWED
@@ -129,6 +130,7 @@ func _save_settings() -> void:
"bindings": current_bindings, "bindings": current_bindings,
"show_debug_ui": show_debug_ui, "show_debug_ui": show_debug_ui,
"mouse_sensitivity": mouse_sensitivity, "mouse_sensitivity": mouse_sensitivity,
"ads_sensitivity": ads_sensitivity,
"display_mode": display_mode, "display_mode": display_mode,
"resolution_index": resolution_index, "resolution_index": resolution_index,
"fps_cap": fps_cap, "fps_cap": fps_cap,
@@ -165,6 +167,8 @@ func _load_settings() -> void:
show_debug_ui = data["show_debug_ui"] show_debug_ui = data["show_debug_ui"]
if data.has("mouse_sensitivity"): if data.has("mouse_sensitivity"):
mouse_sensitivity = data["mouse_sensitivity"] mouse_sensitivity = data["mouse_sensitivity"]
if data.has("ads_sensitivity"):
ads_sensitivity = data["ads_sensitivity"]
if data.has("display_mode"): display_mode = data["display_mode"] if data.has("display_mode"): display_mode = data["display_mode"]
if data.has("resolution_index"): resolution_index = data["resolution_index"] if data.has("resolution_index"): resolution_index = data["resolution_index"]
if data.has("fps_cap"): fps_cap = data["fps_cap"] if data.has("fps_cap"): fps_cap = data["fps_cap"]
+47
View File
@@ -26,6 +26,8 @@ var settings_back_btn: Button
var _debug_ui_checkbox: CheckButton var _debug_ui_checkbox: CheckButton
var _mouse_sens_slider: HSlider var _mouse_sens_slider: HSlider
var _mouse_sens_input: LineEdit var _mouse_sens_input: LineEdit
var _ads_sens_slider: HSlider
var _ads_sens_input: LineEdit
var _display_mode_opt: OptionButton var _display_mode_opt: OptionButton
var _resolution_opt: OptionButton var _resolution_opt: OptionButton
var _fps_slider: HSlider var _fps_slider: HSlider
@@ -423,6 +425,43 @@ func _build_ui() -> void:
SettingsManager._save_settings() SettingsManager._save_settings()
) )
var ads_sens_hbox = HBoxContainer.new()
mouse_tab.add_child(ads_sens_hbox)
var ads_sens_title = Label.new()
ads_sens_title.text = "ADS Sensitivity"
ads_sens_title.custom_minimum_size = Vector2(150, 0)
ads_sens_hbox.add_child(ads_sens_title)
_ads_sens_slider = HSlider.new()
_ads_sens_slider.min_value = 1.0
_ads_sens_slider.max_value = 100.0
_ads_sens_slider.step = 1.0
_ads_sens_slider.value = SettingsManager.ads_sensitivity * 10000.0
_ads_sens_slider.custom_minimum_size = Vector2(200, 0)
_ads_sens_slider.size_flags_vertical = Control.SIZE_SHRINK_CENTER
ads_sens_hbox.add_child(_ads_sens_slider)
_ads_sens_input = LineEdit.new()
_ads_sens_input.text = str(round(SettingsManager.ads_sensitivity * 10000.0))
_ads_sens_input.custom_minimum_size = Vector2(60, 0)
ads_sens_hbox.add_child(_ads_sens_input)
_ads_sens_slider.value_changed.connect(func(value: float):
_ads_sens_input.text = str(round(value))
SettingsManager.ads_sensitivity = value / 10000.0
SettingsManager._save_settings()
)
_ads_sens_input.text_submitted.connect(func(new_text: String):
var val = new_text.to_float()
val = clampf(val, 1.0, 100.0)
_ads_sens_slider.value = val
_ads_sens_input.text = str(round(val))
SettingsManager.ads_sensitivity = val / 10000.0
SettingsManager._save_settings()
)
var spacer_mouse = Control.new() var spacer_mouse = Control.new()
spacer_mouse.size_flags_vertical = Control.SIZE_EXPAND_FILL spacer_mouse.size_flags_vertical = Control.SIZE_EXPAND_FILL
mouse_tab.add_child(spacer_mouse) mouse_tab.add_child(spacer_mouse)
@@ -431,7 +470,9 @@ func _build_ui() -> void:
reset_mouse_btn.text = "Reset to Defaults" reset_mouse_btn.text = "Reset to Defaults"
reset_mouse_btn.pressed.connect(func(): reset_mouse_btn.pressed.connect(func():
_mouse_sens_slider.value = 20.0 _mouse_sens_slider.value = 20.0
_ads_sens_slider.value = 10.0
SettingsManager.mouse_sensitivity = 0.002 SettingsManager.mouse_sensitivity = 0.002
SettingsManager.ads_sensitivity = 0.001
SettingsManager._save_settings() SettingsManager._save_settings()
) )
mouse_tab.add_child(reset_mouse_btn) mouse_tab.add_child(reset_mouse_btn)
@@ -629,6 +670,12 @@ func _show_settings() -> void:
if _mouse_sens_slider: if _mouse_sens_slider:
var display_val = round(SettingsManager.mouse_sensitivity * 10000.0) var display_val = round(SettingsManager.mouse_sensitivity * 10000.0)
_mouse_sens_slider.value = display_val _mouse_sens_slider.value = display_val
_mouse_sens_input.text = str(display_val)
var ads_display_val = round(SettingsManager.ads_sensitivity * 10000.0)
_ads_sens_slider.value = ads_display_val
_ads_sens_input.text = str(ads_display_val)
_mouse_sens_slider.value = display_val
if _mouse_sens_input: if _mouse_sens_input:
_mouse_sens_input.text = str(display_val) _mouse_sens_input.text = str(display_val)
+10 -4
View File
@@ -76,16 +76,22 @@ func _process(delta: float) -> void:
super._process(delta) super._process(delta)
if camera: if camera:
if Input.is_action_just_pressed("fire_alt"):
is_ads = not is_ads
target_fov = ads_fov if is_ads else default_fov
camera.fov = lerpf(camera.fov, target_fov, 15.0 * delta) camera.fov = lerpf(camera.fov, target_fov, 15.0 * delta)
# Move model slightly based on ADS # Move model slightly based on ADS
var target_pos = Vector3(0.0, -0.15, -0.6) if is_ads else Vector3(0.3, -0.3, -0.8) var target_pos = Vector3(0.0, -0.15, -0.6) if is_ads else Vector3(0.3, -0.3, -0.8)
position = position.lerp(target_pos, 15.0 * delta) position = position.lerp(target_pos, 15.0 * delta)
func _input(event: InputEvent) -> void:
super._input(event)
if Input.get_mouse_mode() != Input.MOUSE_MODE_CAPTURED:
return
if event.is_action_pressed("fire_alt"):
is_ads = not is_ads
target_fov = ads_fov if is_ads else default_fov
func _start_reload() -> void: func _start_reload() -> void:
super._start_reload() super._start_reload()
is_ads = false # Drop out of ADS on reload is_ads = false # Drop out of ADS on reload
+3
View File
@@ -64,6 +64,9 @@ func _build_model() -> void:
func _process(delta: float) -> void: func _process(delta: float) -> void:
super._process(delta) super._process(delta)
if not visible:
return
if camera: if camera:
is_targeting = Input.is_action_pressed("fire_alt") is_targeting = Input.is_action_pressed("fire_alt")
targeting_laser.visible = is_targeting targeting_laser.visible = is_targeting