Add saves, settings, and multiplayer-safe menus
This commit is contained in:
parent
e2067e3bf4
commit
0d050b08cc
32 changed files with 2468 additions and 49 deletions
39
settings/player_settings.gd
Normal file
39
settings/player_settings.gd
Normal file
|
|
@ -0,0 +1,39 @@
|
|||
class_name PlayerSettings
|
||||
extends Resource
|
||||
|
||||
const MIN_AUTO_CLICK_INTERVAL: float = 0.10
|
||||
const MAX_AUTO_CLICK_INTERVAL: float = 0.50
|
||||
const MIN_MOUSE_SENSITIVITY: float = 0.001
|
||||
const MAX_MOUSE_SENSITIVITY: float = 0.012
|
||||
const MIN_CONTROLLER_SENSITIVITY: float = 0.5
|
||||
const MAX_CONTROLLER_SENSITIVITY: float = 5.0
|
||||
|
||||
@export var auto_click_enabled: bool = false
|
||||
@export_range(0.10, 0.50, 0.01) var auto_click_interval: float = 0.20
|
||||
@export_range(0.001, 0.012, 0.0005) var mouse_camera_sensitivity: float = 0.005
|
||||
@export_range(0.5, 5.0, 0.1) var controller_camera_sensitivity: float = 2.5
|
||||
@export var invert_camera_y: bool = false
|
||||
|
||||
|
||||
func is_valid() -> bool:
|
||||
return (
|
||||
is_finite(auto_click_interval)
|
||||
and auto_click_interval >= MIN_AUTO_CLICK_INTERVAL
|
||||
and auto_click_interval <= MAX_AUTO_CLICK_INTERVAL
|
||||
and is_finite(mouse_camera_sensitivity)
|
||||
and mouse_camera_sensitivity >= MIN_MOUSE_SENSITIVITY
|
||||
and mouse_camera_sensitivity <= MAX_MOUSE_SENSITIVITY
|
||||
and is_finite(controller_camera_sensitivity)
|
||||
and controller_camera_sensitivity >= MIN_CONTROLLER_SENSITIVITY
|
||||
and controller_camera_sensitivity <= MAX_CONTROLLER_SENSITIVITY
|
||||
)
|
||||
|
||||
|
||||
func copy() -> PlayerSettings:
|
||||
var result := PlayerSettings.new()
|
||||
result.auto_click_enabled = auto_click_enabled
|
||||
result.auto_click_interval = auto_click_interval
|
||||
result.mouse_camera_sensitivity = mouse_camera_sensitivity
|
||||
result.controller_camera_sensitivity = controller_camera_sensitivity
|
||||
result.invert_camera_y = invert_camera_y
|
||||
return result
|
||||
Loading…
Add table
Add a link
Reference in a new issue