act1: фиксы багов + crosshair + улучшенные текстуры
Some checks failed
Godot CI / Import + smoke test (push) Failing after 14s

БАГ-ФИКСЫ:
- Трясёт у двери: Interactable теперь extends Area3D (не StaticBody3D).
  RayCast3D детектит Area3D через collide_with_areas=true.
  Игрок физически проходит через интерактивы (gift box, флешка,
  записка, дверь) — не толкается в узких местах. Бампается только
  в стены/мебель/пол.
- Все 6 интерактивов в act1_room.tscn и act1_kitchen.tscn
  переведены на type="Area3D".

UI:
- Crosshair в центре экрана: 8×8 точка с тёмной рамкой и белой
  центральной 2×2 точкой. set_crosshair_visible() для 2D-сцен
  (Акт 2 прячет его).
- SubtitlePanel расширен: 16-624 × 240-354 (было 24-616 × 270-350).
  Text-лейбл заменён на RichTextLabel с fit_content + bbcode.
  Длинные реплики отца теперь нормально влезают.
- NoteOverlay аналогично RichTextLabel.
- ControlsHint перенесён сверху (под HUD-датой), 14px меньше.

ТЕКСТУРЫ через FastNoiseLite + 128×128 разрешалка:
- wallpaper: шумная бежевая база + растительный крест-цветок
  каждые 22px, шахматное смещение, тонкая горизонтальная полоса
  каждые 32px (стык обоев).
- linoleum: настоящая паркетная доска 16×64px со смещением между
  рядами, тонкие швы, волокно через шум.
- ceiling: побелка с пятном протёчки в углу (canon-деталь).
- wall_carpet: бордовая база + двойная золотая рамка + ромб-
  медальон с золотыми углами + декоративные уголки.
- blanket: 30 звёздочек (белые/жёлтые) разного размера на шумной
  тёмно-синей базе.
- poster_csgo: диагональная штриховка + силуэт AWP по центру +
  пиксельный «CS:GO» текст внизу.
- poster_morgen: круг с лицом, глаза-щели, рот + пиксельный «MS».
- door: вертикальное волокно Perlin + 3 горизонтальных шва (панели)
  + 4 сучка разного размера.
- desk_white: чистый белый + жёлтый Steam-стикер в углу + царапина.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
Dmitrii Bykov 2026-05-24 18:04:50 +03:00
parent cc23e7fe3c
commit 773b15fd8e
8 changed files with 498 additions and 183 deletions

View file

@ -4,14 +4,15 @@ signal advanced
@onready var subtitle_panel: PanelContainer = $SubtitlePanel
@onready var who_label: Label = $SubtitlePanel/V/Who
@onready var text_label: Label = $SubtitlePanel/V/Text
@onready var text_label: RichTextLabel = $SubtitlePanel/V/Text
@onready var hint_label: Label = $SubtitlePanel/V/Hint
@onready var note_overlay: Control = $NoteOverlay
@onready var note_text: Label = $NoteOverlay/Center/P/V2/Text
@onready var note_text: RichTextLabel = $NoteOverlay/Center/P/V2/Text
@onready var prompt_label: Label = $PromptLabel
@onready var controls_hint: Label = $ControlsHint
@onready var crosshair: Control = $Crosshair
@onready var date_time_label: Label = $DateTimeLabel
@onready var objective_label: Label = $ObjectiveLabel
@ -30,7 +31,11 @@ func _ready() -> void:
money_label.visible = false
weather_label.visible = false
stats_label.visible = false
# ControlsHint всегда виден, не блокирует игру
crosshair.visible = true
func set_crosshair_visible(v: bool) -> void:
crosshair.visible = v
func say(who: String, line: String) -> Signal: