feat(cockpit): replace procedural cockpit with twelve scripted models
Quality Gate / Quality Gate (pull_request) Successful in 9m4s
Quality Gate / Quality Gate (pull_request) Successful in 9m4s
Instance twelve Blender-scripted glTF models in the cockpit scene and rebuild the cabin around them: gauge panel, sonar, switch panel, alert box, speaker, porthole, hull wall, caged lamps, gas bottle, handrails and side consoles. Presentation only; no domain, application or world rule changes beyond enabling glow in the test environment. - Needles, alert lamps and sonar screen are driven by the existing snapshots; the alert box now carries SYS/ATTN/ALRM. - Depth dial reads percent of certified depth. - Sonar display restyled as a turquoise holographic relief with a shader grid and height scale; SubViewport matches the glass (960x604). - Cabin lighting retuned: warm pooled lamp light, cool porthole rim, lamp shadows, dial backlight. - Procedural stand-ins removed (bulkhead, tanks, consoles, levers, indicator columns, placeholder pipe run, dial face PNGs). - Tests adapted where nodes disappeared; one assertion removed (pipe_segment_count) until the pipe kit is placed. - Model .glb files are committed without LFS; textures Godot extracts next to them at import are ignored. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
1 parent
912123087f
commit
2f9b7c0894
45 files changed
+1353
-1603
No files matched your search
@@ -12,6 +12,9 @@ const CockpitDetailing = preload(
|
||||
const COLOR_NORMAL := Color(0.45, 0.89, 0.90, 1.0)
|
||||
const COLOR_ATTENTION := Color(1.0, 0.75, 0.20, 1.0)
|
||||
const COLOR_CRITICAL := Color(1.0, 0.42, 0.31, 1.0)
|
||||
## 1.0 shows the sonar picture as rendered; slightly above lets its brightest
|
||||
## lines bloom without clipping the surface colours.
|
||||
const SONAR_SCREEN_ENERGY := 1.25
|
||||
|
||||
@onready var _resources_label: Label3D = %ResourcesLabel
|
||||
@onready var _navigation_label: Label3D = %NavigationLabel
|
||||
@@ -84,12 +87,18 @@ func return_text() -> String:
|
||||
|
||||
func attach_sonar_texture(texture: Texture2D) -> void:
|
||||
_sonar_texture = texture
|
||||
# The glass shows the picture by emission only: black albedo, no specular,
|
||||
# so cabin lights add nothing to it, and the energy can lift the brightest
|
||||
# lines just above 1.0 for the environment glow to pick up.
|
||||
var material := StandardMaterial3D.new()
|
||||
material.shading_mode = BaseMaterial3D.SHADING_MODE_UNSHADED
|
||||
material.albedo_texture = texture
|
||||
material.albedo_color = Color.BLACK
|
||||
material.metallic_specular = 0.0
|
||||
material.roughness = 1.0
|
||||
material.emission_enabled = true
|
||||
material.emission = Color.WHITE
|
||||
material.emission_operator = BaseMaterial3D.EMISSION_OP_MULTIPLY
|
||||
material.emission_texture = texture
|
||||
material.emission_energy_multiplier = 1.7
|
||||
material.emission_energy_multiplier = SONAR_SCREEN_ENERGY
|
||||
_sonar_screen.material_override = material
|
||||
_sonar_placeholder.visible = false
|
||||
|
||||
|
||||
Reference in new issue
Block a user