Skip to content

Latest commit

 

History

History
112 lines (90 loc) · 3.75 KB

File metadata and controls

112 lines (90 loc) · 3.75 KB

Lewy Panel Global Alarms - Podsumowanie

? Uko?czone zadania

1. Nowa klasa GlobalAlarmPanel.cs - Przeróbka na wzór SliderWindow

  • ? Panel boczny po lewej stronie okna g?ównego
  • ? Wysuwanie z lewej - analogicznie do SliderWindow (prawy panel)
  • ? Animowane wysuwanie/zwijanie (slideSpeed = 12f)
  • ? Tekstura Alarm_bar obrócona pionowo (flip vertically)
  • ? Przycisk toggle (z obrócon? tekstur?) po lewej stronie
  • ? Nag?ówek "Global Alarms|"
  • ? Tekstury i style identyczne jak prawy panel
  • ? Input lock (ControlTypes.All) - blokada klików pod UI
  • ? Snap (SNAP_EPSILON) - brak p?yni?cia

2. Mechanika wysuwania z LEWEJ strony

  • ? mainWindowRect - referencja do g?ównego okna
  • ? panelRect - pozycja i rozmiar panelu (lewo)
  • ? slideT - animacja (0 = hidden, 1 = visible)
  • ? hiddenPanelX - panel poza ekranem z lewej
  • ? visiblePanelX - panel przylegaj?cy do okna
  • ? Smooth lerp z snap dla p?ynno?ci bez "mlaskania"
  • ? protrusion - cz??? panelu widoczna na ekranie

3. Tekstura obró?ona

  • ? RotateTextureVertically() - flip tekstury (Y-axis)
  • ? Automatyczne czyszczenie tekstury w OnDestroy()
  • ? Cache dla GUIStyle cachedAlarmButtonStyle
  • ? Reload tekstury przy zmianie skina

4. Integracja z g?ównym oknem

  • ? Inicjalizacja w Start()
  • ? Samodzielny OnGUI() (rysuje si? automatycznie)
  • ? Synchronizacja pozycji z g?ównym oknem
  • ? Input lock podczas hover'a

5. Struktura globalnych alarmów (przygotowanie)

  • ? GlobalAlarmDefinition.cs - Definicja alarmu
  • ? GlobalAlarmManager.cs - Zarz?dzanie
  • ? GlobalAlarmRunner.cs - Wyzwalanie w locie

?? Architektura

GlobalAlarmPanel (MonoBehaviour)
??? mainWindowRect (referencja do KerbNote okna)
??? panelRect (lewy panel - x, y, width, height)
??? slideT (0..1 animacja)
??? hiddenPanelX / visiblePanelX (pozycje)
??? alarmBarTexture (orygina?)
??? alarmBarTextureRotated (flip vertically)
??? panelWindowID (GUI.Window ID)
??? buttonWindowID (GUI.Window ID - przycisk)
??? OnGUI()
    ??? DrawPanelWindow() - zawarto?? panelu
    ??? DrawAlarmBarWindow() - przycisk z tekstur?
    ??? UpdateInputLock() - blokada klików

?? Parametry

Parametr Warto?? Opis
slideSpeed 12f Szybko?? animacji (px/s)
buttonWidth barFixedWidth Szeroko?? paska (z tekstury)
buttonHeight 300f Wysoko?? paska (sta?a)
panelRect.width 225px Szeroko?? panelu (75% z 300)
slideT 0..1 Animacja: 0=schowany, 1=widoczny

?? Nowe pliki

src/
??? GlobalAlarmPanel.cs          (420 linii) - Lewy panel z mechanik?
??? GlobalAlarmDefinition.cs     (70 linii)  - Definicja alarmu
??? GlobalAlarmManager.cs        (200 linii) - Zarz?dzanie alarmami
??? GlobalAlarmRunner.cs         (180 linii) - Wyzwalanie alarmów

?? Zmodyfikowane pliki

  • KerbNote.UI.Windows.cs - Usuni?to globalAlarmPanel.Draw() (teraz OnGUI)
  • KerbCalc.cs - Inicjalizacja w Start()

?? Funkcjonalno??

Panel

  • Wysuwanie z lewej - klik na Alarm_bar => panel wysuwany z lewej
  • Animacja - smooth lerp z snap do pozycji

Przycisk (Alarm_bar)

  • Tekstura obrócona o 180° (flip vertical)
  • Pozycjonowany na lewo od panelu
  • Wysoko?? 300px (sta?a)
  • Szeroko?? wg tekstury (zwykle ~18px)

?? Jak to wygl?da

  1. Alarm_bar (pasek) wysuwa si? z LEWEJ strony okna
  2. Po klikni?ciu - panel wysuwa si? PO LEWEJ stronie
  3. Tekstura paska obrócona pionowo (180°)
  4. Input lock blokuje klikanie w gr? pod panelem

? Status

  • Build: ? Kompiluje si? bez b??dów
  • Mechanika: ? Sama jak prawy panel ale z lewej
  • Tekstura: ? Obrócona (flip vertical)
  • Menu: ? Pusty (gotowy do dodania przycisków)

Gotowe do u?ytku! ??