2024-01-16 22:01:16 +00:00
|
|
|
extends Camera3D
|
|
|
|
|
2024-02-05 22:42:04 +00:00
|
|
|
@export_group("Main")
|
|
|
|
@export var follow_node: Node3D
|
|
|
|
@export var pivot_node: Node3D
|
|
|
|
|
|
|
|
@export_group("Follow")
|
|
|
|
@export var follow_enabled: bool
|
2024-01-16 22:01:16 +00:00
|
|
|
@export var follow_speed: float
|
|
|
|
|
|
|
|
func _ready():
|
|
|
|
Global.camera = self
|
2024-02-05 22:42:04 +00:00
|
|
|
look_at(pivot_node.position)
|
2024-01-16 22:01:16 +00:00
|
|
|
|
|
|
|
func _process(delta):
|
2024-01-17 20:48:35 +00:00
|
|
|
if Global.player == null:
|
|
|
|
return
|
|
|
|
|
2024-02-05 22:42:04 +00:00
|
|
|
if follow_enabled:
|
|
|
|
follow_node.position = lerp(follow_node.position, Global.player.position, follow_speed * delta)
|
|
|
|
else:
|
|
|
|
follow_node.position = Global.player.position
|
2024-01-16 22:01:16 +00:00
|
|
|
|
2024-01-17 20:48:35 +00:00
|
|
|
# @export var shake_strength: float
|
|
|
|
# var noise = FastNoiseLite.new()
|
2024-01-16 22:01:16 +00:00
|
|
|
# func shake(time):
|
|
|
|
# var trauma_sq := 1.0
|
|
|
|
# var h_offset := noise.get_noise_2d(time, 0) * trauma_sq * shake_strength
|
|
|
|
# var v_offset := noise.get_noise_2d(time, 1) * trauma_sq * shake_strength
|
|
|
|
# rotate_x(noise.get_noise_2d(time, 2) * trauma_sq * shake_strength)
|
|
|
|
# rotate_y(noise.get_noise_2d(time, 3) * trauma_sq * shake_strength)
|
|
|
|
# rotate_z(noise.get_noise_2d(time, 4) * trauma_sq * shake_strength)
|