Kontrolka i przełącznik - Prosty gauge XML

Robienie własnych kontrolek jest bardzo proste (przynajmniej na początku). Chciałem zrobić prostą kontrolkę z przełącznikiem do włączania zaworów paliwa. Potrzebujemy 3 pliki:

  • plik xml z gaugem
  • plik bmp dla pozycji ON kontrolki
  • plik bmp dla pozycji OFF kontrolki

Pliki BMP muszą mieć kolor 8-bitowy (indeksowany). Kolor czarny (#000000) jest interpretowany przez FS jako przezroczystość, dlatego należy stosować #010101 dla czerni (wygląda identycznie).

Przykładowe kontrolki:

Pliki powinny znaleźć się w utworzonym podkatalogu w katalogu Gauges w FS.

Objaśnienia do poniższego kodu XML

  • Gauge Name="..." - nazwa gauge'a, nieistotna
  • A:GENERAL ENG FUEL VALVE:1,bool - zmienna symulatora (lista wszystkich tutaj: Zmienne w symulatorze
  • <Image Name="ap_led_green.bmp" ImageSizes="17,17"/> - nazwa pliku, oraz jego rozmiary (to będą też rozmiary domyślne gauge'a. Oddzielny rysunek dla włączonej i wyłączonej kontrolki.
  • Bright="true" - można to dodać do powyższej sekcji Image, aby kontrolka nie była przyciemniana w nocy (wielkość liter jest ważna!).
  • K:TOGGLE_FUEL_VALVE_ENG1 - funkcja do wykonania w momencie kliknięcia gauge'a. Lista funkcji znajduje się w pliku List_of_FS2004_controls.PDF w pakiecie FSUIPC

Poniżej znajduje się plik XML. Wystarczy zmienić funkcje A:.... i K:..., aby kontrolka działała tak jak chcemy. Jeśli usuniemy funkcję K:..., to kontrolka nie będzie klikalna (np. na panelu informacyjnym).


<Gauge Name="TOGGLE_FUEL_VALVE_ENG1" Version="1.0">
   <Element>
      <Select>
         <Value>(A:GENERAL ENG FUEL VALVE:1,bool)</Value>
         <Case Value="1">
            <Image Name="ap_led_green.bmp" ImageSizes="17,17"/>
         </Case>
         <Case Value="0">
            <Image Name="ap_led_red.bmp" ImageSizes="17,17"/>
         </Case>
      </Select>
   </Element>
   <Mouse>
      <Help ID="HELPID_GAUGE_LIGHT_SWITCH_TAXI"/>
      <Cursor Type="Hand"/>
      <Click>(&gt;K:TOGGLE_FUEL_VALVE_ENG1)</Click>
   </Mouse>
</Gauge>


Jak dodać gauge do panelu?

We właściwym oknie w pliku panel.cfg dopisz np: gauge39=SW!eng1_fuel_valve,  284,499,17,17, gdzie:

  • gauge39 to kolejny numer gauge'a
  • SW - nazwa podkatalogu w Gauges, gdzie umiesciłeś pliki
  • eng1_fuel_valve - nazwa pliku XML (bez rozszerzenia .xml)
  • 284,499 - pozycja w oknie, gdzie ma się pojawić gauge
  • 17,17 - rozmiar gauge'a

Przykład implementacji

Przyciski otoczone na rysunku czerwoną linią zostały przygotowane na podstawie powyższego poradnika.