code region
This commit is contained in:
parent
12c31eb2bf
commit
62fedcf68a
1 changed files with 19 additions and 10 deletions
|
@ -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
|
||||
|
|
Loading…
Reference in a new issue