code region

This commit is contained in:
Lucas 2025-07-18 00:47:31 +02:00
parent 12c31eb2bf
commit 62fedcf68a

View file

@ -1,5 +1,5 @@
extends Node3D
#region Declarations
@export_category("Speed")
@onready var move_speed: float = ProjectSettings.get_setting("game/controls/camera_move_speed",20.0)
@onready var zoom_speed: float = ProjectSettings.get_setting("game/controls/camera_zoom_speed",20.0)
@ -18,6 +18,11 @@ var zoom_direction : float = 0.0 ## 0.0 means no zoom. Use 1.0 for moving toward
var move_disabled:bool = false
var zoom_disabled:bool = false
var edge_scroll_disabled:bool = ProjectSettings.get_setting("game/controls/edge_scrolling_disabled",false)
#endregion
func _ready():
Input.mouse_mode = Input.MOUSE_MODE_CONFINED # Maybe should be moved in a better script
# Called every frame. 'delta' is the elapsed time since the previous frame.
@ -34,6 +39,18 @@ func _unhandled_input(event: InputEvent) -> void:
zoom_direction = 1
#region Getter
func get_mouse_position() -> Vector2:
return get_viewport().get_mouse_position()
## multiplicator for movement speed, based on zoom level
func get_zoom_factor() -> float:
return remap(cam.position.z,zoom_min,zoom_max,0.1,2.0)
#endregion
#region Movement
## Controls the movement of the player camera
func cam_move(delta:float) -> void:
if move_disabled:return
@ -61,15 +78,6 @@ func cam_zoom(delta:float) -> void:
zoom_direction *= zoom_speed_damp #Smooth the deceleration
func get_mouse_position() -> Vector2:
return get_viewport().get_mouse_position()
## multiplicator for movement speed, based on zoom level
func get_zoom_factor() -> float:
return remap(cam.position.z,zoom_min,zoom_max,0.1,2.0)
func cam_edge_scroll(delta:float) -> void:
if edge_scroll_disabled:return
var current_viewport = get_viewport()
@ -89,3 +97,4 @@ func cam_edge_scroll(delta:float) -> void:
var pan_vector:= Vector2(pan_direction.x,pan_direction.y) * delta * edge_scrolling_speed * get_zoom_factor()
translate_object_local(Vector3(pan_vector.y,0,pan_vector.x))
#endregion