Add production bathymetric sonar slice

This commit is contained in:
chindit committed 2026-10-02 15:52:11 +02:00
1 parent a18e82eb44
commit 7613daee84
28 files changed
+1825 -87

No files matched your search

+68
View File
@@ -0,0 +1,68 @@
class_name SonarDisplay
extends Control
const SonarScan = preload("res://game/domain/sonar/sonar_scan.gd")
const SonarScanState = preload("res://game/domain/sonar/sonar_scan_state.gd")
const BathymetricSonarRendererScript = preload(
"res://game/presentation/sonar/sonar_relief_renderer.gd"
)
@onready var _renderer: Node = %SonarReliefRenderer
@onready var _expanded_panel: PanelContainer = %ExpandedPanel
@onready var _expanded_view: TextureRect = %ExpandedView
@onready var _status_label: Label = %StatusLabel
func _ready() -> void:
_expanded_view.texture = _renderer.render_texture()
_expanded_panel.visible = false
func present(
current_scan: SonarScan,
previous_scan: SonarScan,
visible_rows: int,
previous_opacity: float
) -> void:
if current_scan == null:
_status_label.text = "SONAR PRÊT · F POUR ÉMETTRE"
return
_renderer.present(current_scan, previous_scan, visible_rows, previous_opacity)
_status_label.text = "%s · %.0f %% · %.0f–%.0f m · %d CONTACT(S)" % [
_state_text(current_scan.state),
current_scan.reveal_progress * 100.0,
current_scan.minimum_elevation_m,
current_scan.maximum_elevation_m,
_renderer.visible_contact_count(),
]
func toggle_expanded() -> void:
_expanded_panel.visible = not _expanded_panel.visible
func is_expanded() -> bool:
return _expanded_panel.visible
func sonar_texture() -> Texture2D:
return _renderer.render_texture()
func built_row_count() -> int:
return _renderer.built_row_count()
func status_text() -> String:
return _status_label.text
func _state_text(state: SonarScanState.Value) -> String:
match state:
SonarScanState.Value.REVEALING:
return "RELEVÉ EN COURS"
SonarScanState.Value.RECOVERY:
return "RÉCUPÉRATION"
SonarScanState.Value.READY:
return "RELEVÉ DISPONIBLE"
return "CAPTURE"