feat(ui): atlas system orbital redesign — horizontal orrery with globe textures
Half-sun on left edge, planets left-to-right with radius-based sizing (Earth = 24px reference, unclamped — gas giants fill the view). Globe textures loaded from wiki at runtime. Double-click on reach map opens system view. M closes atlas from any screen, ESC navigates back. Fixes Godot 4.6 type inference parse errors in main.gd (var zoom/speed). Uses physical_keycode throughout for layout-independent key handling. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -194,7 +194,7 @@ func _unhandled_input(event: InputEvent) -> void:
|
||||
if GameState.free_camera_mode and event is InputEventMouseButton:
|
||||
var mb := event as InputEventMouseButton
|
||||
if mb.pressed:
|
||||
var zoom := camera.zoom
|
||||
var zoom: Vector2 = camera.zoom
|
||||
if mb.button_index == MOUSE_BUTTON_WHEEL_UP:
|
||||
zoom += Vector2(FREE_CAMERA_ZOOM_STEP, FREE_CAMERA_ZOOM_STEP)
|
||||
elif mb.button_index == MOUSE_BUTTON_WHEEL_DOWN:
|
||||
@@ -221,7 +221,7 @@ func _unhandled_key_input(event: InputEvent) -> void:
|
||||
if manifest.app_path.is_empty():
|
||||
push_warning("main.gd: manifest with empty app_path — skipping")
|
||||
continue
|
||||
if manifest.default_key == key_event.keycode:
|
||||
if manifest.default_key == key_event.physical_keycode:
|
||||
HudGroups.toggle_app(
|
||||
manifest.app_path,
|
||||
ImplantRegistry.get_resolved_mode(manifest.app_path)
|
||||
@@ -230,10 +230,10 @@ func _unhandled_key_input(event: InputEvent) -> void:
|
||||
# [ / ] — in-app navigation for the economics monitor. Not manifest-declared because
|
||||
# these control intra-app navigation (prev/next system), not app launch. A planned
|
||||
# handle_global_key lifecycle hook will absorb this (see arch doc Follow-up).
|
||||
if key_event.keycode == KEY_BRACKETLEFT:
|
||||
if key_event.physical_keycode == KEY_BRACKETLEFT:
|
||||
if economics_app and HudGroups.is_app_active("implant/economics"):
|
||||
economics_app.navigate(-1)
|
||||
elif key_event.keycode == KEY_BRACKETRIGHT:
|
||||
elif key_event.physical_keycode == KEY_BRACKETRIGHT:
|
||||
if economics_app and HudGroups.is_app_active("implant/economics"):
|
||||
economics_app.navigate(1)
|
||||
|
||||
@@ -279,7 +279,7 @@ func _process(delta: float) -> void:
|
||||
if Input.is_action_pressed("move_west"):
|
||||
pan.x -= 1.0
|
||||
if pan != Vector2.ZERO:
|
||||
var speed := FREE_CAMERA_PAN_SPEED / camera.zoom.x
|
||||
var speed: float = FREE_CAMERA_PAN_SPEED / camera.zoom.x
|
||||
camera.global_position += pan.normalized() * speed * delta
|
||||
# Track camera to player (D-015: locked, fixed-north).
|
||||
# #117: Manual exponential smoothing.
|
||||
|
||||
Reference in New Issue
Block a user