feat(world): generic dive site scene fed by a baked site definition

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
This commit is contained in:
OlivierandClaude Sonnet 5.5 committed 2026-10-06 20:08:07 +02:00
1 parent 0e590f2bc7
commit b1d32f7d81
8 files changed
+286 -6

No files matched your search

+16 -1
View File
@@ -31,17 +31,32 @@ func _init() -> void:
DirAccess.make_dir_recursive_absolute(OUTPUT_DIRECTORY)
DirAccess.make_dir_recursive_absolute(PREVIEW_DIRECTORY)
var output_path := "%s/%s_terrain.res" % [OUTPUT_DIRECTORY, name]
var save_error := ResourceSaver.save(data, output_path)
var save_error := ResourceSaver.save(data, output_path, ResourceSaver.FLAG_CHANGE_PATH)
if save_error != OK:
push_error("cannot save %s (%d)" % [output_path, save_error])
quit(1)
return
# ResourceSaver restores the previous path after saving, so the data must
# take over the baked path explicitly for the definition to reference it.
data.take_over_path(output_path)
var preview_path := "%s/%s_terrain_preview.png" % [PREVIEW_DIRECTORY, name]
var preview_error := SiteTerrainBaker.write_preview_png(data, preview_path)
if preview_error != OK:
push_error("cannot write %s (%d)" % [preview_path, preview_error])
quit(1)
return
var definition = recipe_script.definition(data)
var definition_error: String = definition.validation_error()
if not definition_error.is_empty():
push_error("recipe %s definition is invalid: %s" % [name, definition_error])
quit(1)
return
var definition_path := "%s/%s.tres" % [OUTPUT_DIRECTORY, name]
var definition_save_error := ResourceSaver.save(definition, definition_path)
if definition_save_error != OK:
push_error("cannot save %s (%d)" % [definition_path, definition_save_error])
quit(1)
return
var rock_cells := 0
for material: int in data.materials:
if material == SiteTerrainBaker.SonarMaterial.Value.ROCK: