Add daynight scene to museum beome gen + add camera pivot to daynight
This commit is contained in:
@@ -1,5 +1,7 @@
|
||||
extends Node3D
|
||||
|
||||
signal camera_changed(camera: Camera3D)
|
||||
|
||||
@export_group("Camera")
|
||||
@export var camera_iso : Camera3D
|
||||
@export var pivot : Node3D
|
||||
@@ -42,7 +44,11 @@ func _ready():
|
||||
if camera_top: array_camera.append(camera_top)
|
||||
|
||||
if camera_iso:
|
||||
camera_iso.make_current()
|
||||
set_camera(camera_iso)
|
||||
|
||||
func set_camera(camera: Camera3D):
|
||||
camera.make_current()
|
||||
emit_signal("camera_changed", camera)
|
||||
|
||||
func _input(event):
|
||||
if event is InputEventKey and event.pressed and not event.echo:
|
||||
@@ -84,27 +90,27 @@ func _input(event):
|
||||
var manual_action = false
|
||||
|
||||
if event.keycode == KEY_1 and camera_iso:
|
||||
camera_iso.make_current()
|
||||
set_camera(camera_iso)
|
||||
is_moving_enabled = true
|
||||
manual_action = true
|
||||
|
||||
elif event.keycode == KEY_2 and camera_front:
|
||||
camera_front.make_current()
|
||||
set_camera(camera_front)
|
||||
is_moving_enabled = false
|
||||
manual_action = true
|
||||
|
||||
elif event.keycode == KEY_3 and camera_side1:
|
||||
camera_side1.make_current()
|
||||
set_camera(camera_side1)
|
||||
is_moving_enabled = false
|
||||
manual_action = true
|
||||
|
||||
elif event.keycode == KEY_4 and camera_side2:
|
||||
camera_side2.make_current()
|
||||
set_camera(camera_side2)
|
||||
is_moving_enabled = false
|
||||
manual_action = true
|
||||
|
||||
elif event.keycode == KEY_5 and camera_top:
|
||||
camera_top.make_current()
|
||||
set_camera(camera_top)
|
||||
is_moving_enabled = false
|
||||
manual_action = true
|
||||
|
||||
@@ -123,7 +129,7 @@ func _process(delta):
|
||||
cinematic_timer = 0.0
|
||||
cinematic_index = (cinematic_index + 1) % array_camera.size()
|
||||
var next_cam = array_camera[cinematic_index]
|
||||
next_cam.make_current()
|
||||
set_camera(next_cam)
|
||||
is_moving_enabled = (next_cam == camera_iso)
|
||||
|
||||
if not is_moving_enabled or pivot == null:
|
||||
|
||||
@@ -5,6 +5,7 @@ extends Node3D
|
||||
|
||||
@export_group("Camera")
|
||||
@export var camera: Camera3D
|
||||
@export var camera_pivot: Node3D
|
||||
|
||||
@export_group("Particles")
|
||||
@export var particles_wind: GPUParticles3D
|
||||
@@ -59,6 +60,7 @@ func _ready() -> void:
|
||||
environment,
|
||||
environment_config,
|
||||
camera,
|
||||
camera_pivot,
|
||||
thunder_sounds,
|
||||
rain_sounds
|
||||
)
|
||||
|
||||
@@ -19,6 +19,7 @@ var sun: DirectionalLight3D
|
||||
var environment: WorldEnvironment
|
||||
var environment_config: EnvironmentConfig
|
||||
var camera: Camera3D
|
||||
var camera_pivot: Node3D
|
||||
|
||||
var day_time: float = 0.0
|
||||
|
||||
@@ -48,7 +49,7 @@ func _init(wind: GPUParticles3D, snow: GPUParticles3D,
|
||||
fireflies: GPUParticles3D, rain: GPUParticles3D, ray: PackedScene,
|
||||
dust: ColorRect, blurr: ColorRect, envshadows: MeshInstance3D,
|
||||
thesun: DirectionalLight3D, theenvironment: WorldEnvironment, environmentconfig: EnvironmentConfig,
|
||||
thecamera: Camera3D, thundersounds: Array[AudioStream], rainsounds: Array[AudioStream]) -> void:
|
||||
thecamera: Camera3D, thecamerapivot: Node3D, thundersounds: Array[AudioStream], rainsounds: Array[AudioStream]) -> void:
|
||||
particles_wind = wind
|
||||
particles_snow = snow
|
||||
particles_fireflies = fireflies
|
||||
@@ -61,6 +62,7 @@ func _init(wind: GPUParticles3D, snow: GPUParticles3D,
|
||||
environment = theenvironment
|
||||
environment_config = environmentconfig
|
||||
camera = thecamera
|
||||
camera_pivot = thecamerapivot
|
||||
thunder_sounds = thundersounds
|
||||
rain_sounds = rainsounds
|
||||
|
||||
@@ -78,6 +80,10 @@ func _init(wind: GPUParticles3D, snow: GPUParticles3D,
|
||||
|
||||
toggle_dust(environment_config.enable_dust)
|
||||
toggle_blur(environment_config.enable_blur)
|
||||
|
||||
#set camera pivot if available
|
||||
if camera_pivot:
|
||||
camera_pivot.get_node("pivot").camera_changed.connect(_set_camera)
|
||||
|
||||
func _ready() -> void:
|
||||
|
||||
@@ -228,7 +234,9 @@ func _process(delta: float) -> void:
|
||||
if environment_config.material_fog:
|
||||
environment_config.material_fog.set_shader_parameter("night_intensity", night_val)
|
||||
environment_config.material_fog.set_shader_parameter("sun_color", final_tint)
|
||||
|
||||
|
||||
func _set_camera(curr_camera: Camera3D):
|
||||
camera = curr_camera
|
||||
|
||||
func _follow_camera() -> void:
|
||||
if not camera or not is_instance_valid(camera):
|
||||
|
||||
Reference in New Issue
Block a user