feat(M03): add environment snapshot facade
This commit is contained in:
@@ -2,6 +2,7 @@ extends SceneTree
|
||||
|
||||
const DEFAULT_MANIFEST_PATH := "res://src/tools/render_baseline_manifest.json"
|
||||
const M2_NATIVE_ANIMATED_BUILDER := preload("res://addons/mpq_extractor/loaders/m2_native_animated_builder.gd")
|
||||
const WORLD_ENVIRONMENT_SNAPSHOT_SCRIPT := preload("res://src/render/environment/world_environment_snapshot.gd")
|
||||
const SHUTDOWN_DRAIN_FRAMES := 2
|
||||
|
||||
|
||||
@@ -130,7 +131,7 @@ func _capture_async() -> void:
|
||||
camera.make_current()
|
||||
if player != null:
|
||||
player.global_position = _vector3(checkpoint.get("player", checkpoint.get("target", [0.0, 0.0, 0.0])))
|
||||
_set_sky_time(world, float(checkpoint.get("time_hours", 13.0)))
|
||||
_apply_environment_time(render_facade, float(checkpoint.get("time_hours", 13.0)))
|
||||
render_facade.call("refresh_streaming_focus", true)
|
||||
|
||||
if dry_run:
|
||||
@@ -308,12 +309,10 @@ func _create_diagnostic_spawn_marker(checkpoint: Dictionary) -> Node3D:
|
||||
return marker_root
|
||||
|
||||
|
||||
func _set_sky_time(world: Node, time_hours: float) -> void:
|
||||
var sky := world.get_node_or_null("WowSkyController")
|
||||
if sky != null:
|
||||
sky.set("use_system_time", false)
|
||||
sky.set("time_speed", 0.0)
|
||||
sky.set("fixed_time_hours", time_hours)
|
||||
func _apply_environment_time(render_facade: Node, time_hours: float) -> void:
|
||||
var environment_snapshot: RefCounted = WORLD_ENVIRONMENT_SNAPSHOT_SCRIPT.at_time_of_day(time_hours)
|
||||
if not bool(render_facade.call("apply_environment_snapshot", environment_snapshot)):
|
||||
push_error("Render checkpoint could not apply environment time %.3f" % time_hours)
|
||||
|
||||
|
||||
func _environment_metadata() -> Dictionary:
|
||||
|
||||
Reference in New Issue
Block a user