fix: scoping
This commit is contained in:
@@ -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
|
||||||
|
|||||||
@@ -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"]
|
||||||
|
|||||||
@@ -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
@@ -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
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
Reference in New Issue
Block a user