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
@@ -4,18 +4,6 @@ extends RefCounted
|
||||
const NAVAL_STEEL_TEXTURE_PATH := (
|
||||
"res://game/presentation/cockpit/assets/naval_painted_steel_albedo.png"
|
||||
)
|
||||
const OXYGEN_GAUGE_FACE_TEXTURE_PATH := (
|
||||
"res://game/presentation/cockpit/assets/oxygen_gauge_face_albedo_v2.png"
|
||||
)
|
||||
const BATTERY_GAUGE_FACE_TEXTURE_PATH := (
|
||||
"res://game/presentation/cockpit/assets/battery_gauge_face_albedo_v2.png"
|
||||
)
|
||||
const HULL_GAUGE_FACE_TEXTURE_PATH := (
|
||||
"res://game/presentation/cockpit/assets/hull_gauge_face_albedo_v2.png"
|
||||
)
|
||||
const DEPTH_GAUGE_FACE_TEXTURE_PATH := (
|
||||
"res://game/presentation/cockpit/assets/depth_gauge_face_albedo_v2.png"
|
||||
)
|
||||
|
||||
var painted_steel: Material
|
||||
var dark_steel: Material
|
||||
@@ -24,21 +12,8 @@ var brushed_steel: StandardMaterial3D
|
||||
var brass: Material
|
||||
var copper: Material
|
||||
var rubber: Material
|
||||
var oxygen_gauge_face: StandardMaterial3D
|
||||
var battery_gauge_face: StandardMaterial3D
|
||||
var hull_gauge_face: StandardMaterial3D
|
||||
var depth_gauge_face: StandardMaterial3D
|
||||
var gauge_glass: StandardMaterial3D
|
||||
var needle_paint: StandardMaterial3D
|
||||
var instrument_screen: ShaderMaterial
|
||||
var warm_emission: StandardMaterial3D
|
||||
var safety_yellow: StandardMaterial3D
|
||||
var signal_red: StandardMaterial3D
|
||||
var indicator_green: StandardMaterial3D
|
||||
var indicator_amber: StandardMaterial3D
|
||||
var indicator_red: StandardMaterial3D
|
||||
var sonar_grid: StandardMaterial3D
|
||||
var warm_glass: StandardMaterial3D
|
||||
|
||||
|
||||
func _init() -> void:
|
||||
@@ -79,21 +54,8 @@ func _init() -> void:
|
||||
0.12
|
||||
)
|
||||
rubber = _plain_material(Color(0.012, 0.018, 0.018), 0.0, 0.92)
|
||||
oxygen_gauge_face = _dedicated_gauge_material(OXYGEN_GAUGE_FACE_TEXTURE_PATH)
|
||||
battery_gauge_face = _dedicated_gauge_material(BATTERY_GAUGE_FACE_TEXTURE_PATH)
|
||||
hull_gauge_face = _dedicated_gauge_material(HULL_GAUGE_FACE_TEXTURE_PATH)
|
||||
depth_gauge_face = _dedicated_gauge_material(DEPTH_GAUGE_FACE_TEXTURE_PATH)
|
||||
gauge_glass = _glass_material()
|
||||
needle_paint = _plain_material(Color(0.68, 0.055, 0.022), 0.12, 0.44)
|
||||
instrument_screen = _screen_material()
|
||||
warm_emission = _emissive_material(Color(0.96, 0.52, 0.18), 2.4)
|
||||
safety_yellow = _plain_material(Color(0.48, 0.31, 0.035), 0.48, 0.53)
|
||||
signal_red = _plain_material(Color(0.42, 0.025, 0.015), 0.38, 0.48)
|
||||
indicator_green = _emissive_material(Color(0.05, 0.82, 0.24), 2.8)
|
||||
indicator_amber = _emissive_material(Color(1.0, 0.43, 0.035), 2.8)
|
||||
indicator_red = _emissive_material(Color(0.9, 0.045, 0.018), 2.8)
|
||||
sonar_grid = _emissive_material(Color(0.02, 0.20, 0.22), 0.55)
|
||||
warm_glass = _warm_glass_material()
|
||||
|
||||
|
||||
func _weathered_material(
|
||||
@@ -185,27 +147,6 @@ func _load_texture(resource_path: String) -> Texture2D:
|
||||
return texture
|
||||
|
||||
|
||||
func _dedicated_gauge_material(resource_path: String) -> StandardMaterial3D:
|
||||
var material := _textured_material(
|
||||
_load_texture(resource_path),
|
||||
Color(0.94, 0.92, 0.86),
|
||||
0.02,
|
||||
0.66
|
||||
)
|
||||
material.transparency = BaseMaterial3D.TRANSPARENCY_ALPHA
|
||||
return material
|
||||
|
||||
|
||||
func _glass_material() -> StandardMaterial3D:
|
||||
var material := StandardMaterial3D.new()
|
||||
material.transparency = BaseMaterial3D.TRANSPARENCY_ALPHA
|
||||
material.albedo_color = Color(0.42, 0.68, 0.66, 0.13)
|
||||
material.metallic = 0.12
|
||||
material.roughness = 0.08
|
||||
material.cull_mode = BaseMaterial3D.CULL_DISABLED
|
||||
return material
|
||||
|
||||
|
||||
func _screen_material() -> ShaderMaterial:
|
||||
var shader := Shader.new()
|
||||
shader.code = """
|
||||
@@ -238,14 +179,3 @@ func _emissive_material(color: Color, energy: float) -> StandardMaterial3D:
|
||||
material.emission = color
|
||||
material.emission_energy_multiplier = energy
|
||||
return material
|
||||
|
||||
|
||||
func _warm_glass_material() -> StandardMaterial3D:
|
||||
var material := StandardMaterial3D.new()
|
||||
material.transparency = BaseMaterial3D.TRANSPARENCY_ALPHA
|
||||
material.albedo_color = Color(1.0, 0.48, 0.12, 0.72)
|
||||
material.roughness = 0.18
|
||||
material.emission_enabled = true
|
||||
material.emission = Color(1.0, 0.28, 0.045)
|
||||
material.emission_energy_multiplier = 2.6
|
||||
return material
|
||||
Reference in new issue
Block a user