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
|
extends Node3D
|
||||||
|
#region Declarations
|
||||||
@export_category("Speed")
|
@export_category("Speed")
|
||||||
@onready var move_speed: float = ProjectSettings.get_setting("game/controls/camera_move_speed",20.0)
|
@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)
|
@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 move_disabled:bool = false
|
||||||
var zoom_disabled:bool = false
|
var zoom_disabled:bool = false
|
||||||
var edge_scroll_disabled:bool = ProjectSettings.get_setting("game/controls/edge_scrolling_disabled",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.
|
# 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
|
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
|
## Controls the movement of the player camera
|
||||||
func cam_move(delta:float) -> void:
|
func cam_move(delta:float) -> void:
|
||||||
if move_disabled:return
|
if move_disabled:return
|
||||||
|
@ -61,15 +78,6 @@ func cam_zoom(delta:float) -> void:
|
||||||
zoom_direction *= zoom_speed_damp #Smooth the deceleration
|
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:
|
func cam_edge_scroll(delta:float) -> void:
|
||||||
if edge_scroll_disabled:return
|
if edge_scroll_disabled:return
|
||||||
var current_viewport = get_viewport()
|
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()
|
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))
|
translate_object_local(Vector3(pan_vector.y,0,pan_vector.x))
|
||||||
|
#endregion
|
||||||
|
|
Loading…
Reference in a new issue