feat: derive resource visuals from state

This commit is contained in:
Rijad Zuzo
2026-07-17 18:39:14 +02:00
parent 04c5371b6b
commit 2719b0398b
21 changed files with 686 additions and 18 deletions
+29
View File
@@ -23,6 +23,9 @@ func _run() -> void:
var lookdev := scene.instantiate() as Node3D
root.add_child(lookdev)
await process_frame
if not _apply_resource_capture_overrides():
quit(1)
return
_stabilize_lookdev(lookdev)
for _frame in WARMUP_FRAMES:
await process_frame
@@ -73,6 +76,32 @@ func _get_argument_value(prefix: String, default_value: String) -> String:
return default_value
func _apply_resource_capture_overrides() -> bool:
var hide_labels := OS.get_cmdline_user_args().has("--hide-resource-labels")
for resource in ResourceNode.get_all():
if hide_labels:
resource.set_debug_label_enabled(false)
for argument in OS.get_cmdline_user_args():
if not argument.begins_with("--resource-amount="):
continue
var override_text := argument.trim_prefix("--resource-amount=")
var parts := override_text.split(":", false, 1)
if parts.size() != 2 or not parts[1].is_valid_float():
push_error("Invalid resource amount override: %s" % override_text)
return false
var resource := ResourceNode.get_by_id(StringName(parts[0]))
if resource == null:
push_error("Unknown resource amount override ID: %s" % parts[0])
return false
var state := ResourceStateRecord.create_from_node(resource)
state.set_amount_remaining(parts[1].to_float())
if not resource.bind_state(state):
push_error("Could not bind capture state for resource: %s" % parts[0])
return false
return true
func _analyze_image(image: Image) -> Dictionary:
var min_luma := INF
var max_luma := -INF