Skip to content

railTypes

extrazi edited this page Jul 1, 2023 · 10 revisions
original    original
EN     PL

Manual M4nfo

Rodzaje szyn

Definiowanie właściwości i obsługa typów szyn

Introduction
Kod typów szyn składa się z trzech części:
  • definicja typu szyny
  • 'łańcuch' funkcji wydajnościowych dla typu szyny, z uwzględnieniem zmiennych związanych z grą, w tym grafiki
  • aktywacja typu szyny
''Definicja'' określa właściwości 'features' typu szyny, takie jak etykieta, powiązane teksty, ograniczenie prędkości itp. Należy pamiętać, że definicja typu szyny może wystąpić tylko po wcześniejszym wywołaniu funkcji grfinit() dla pliku newGRF.

Funkcje wydajności typu szyny są używane do grupowania zestawów sprite'ów graficznych z poprzedniego spriteblock() lub do oceny zmiennych związanych z grą i udostępniania ich obu funkcji aktywacji typu szyny.

Aktywacja typu szyny tworzy instancję typu szyny poprzez ostateczne przypisanie zestawów graficznych do określonego elementu typu szyny (ikona, podkład toru, tunel, sieć trakcyjna, ...). Odbywa się to poprzez dostarczenie bloku funkcji specjalnych obsługujących odniesienia i elementy typu szyna do aktywacji typu szyny. Zobacz poniżej.

Funkcje
Funkcje Znaczenie
definerailtype(<Label>, <block>) Definicja typu szyny
makerailtype(<Label>, <block>) Aktywacja typu szyny

Opis

definerailtype(<Label>, <block>)

Ta funkcja definiuje typ szyny. Jego parametrami są etykieta typu szyny i blok funkcji definiujących właściwości , gdzie względne położenie funkcji właściwości jest nieistotne.

Należy pamiętać, że etykieta musi być cytowana w ten sposób: {SABE}.

Identyfikatory typu szyny są nowe, lokalne GRF, z ID do mapowania etykiet. Dlatego, aby zmodyfikować istniejący typ 'szyny', należy określić jego etykietę w definerailtype(). Aby utworzyć nowy typ 'szyny', ponownie po prostu określ jego etykietę w definerailtype(). Jeśli etykieta koliduje z innym newGRF, to jeden newGRF zakończy modyfikację właściwości zamiast tworzenia nowego typu szyny.

Zarezerwowane etykiety dla domyślnych typów szyn to: RAIL (normalna kolej), ELRL (zelektryfikowana kolej), MONO (jednoszynowa), MGLV (maglev).

Zestawy typów szyn mogą wykorzystywać do 16 typów szyn i powinny używać jednej ze standardowych etykiet , zamiast wymyślać własne.

 Przykład (defining new rail type 'DBHE'):
 
 deftxt(rt_tool,
 	US, "Electrified main line construction",
 	UK, "Electrified main line construction",
 	D, "Bau elektrifizierter Hauptbahnen",
 	F, UTF8 "Construction de voie ferré (voie principale, électrifié)",
 	E, UTF8 "Construccíon de ferrocarril (vía primera, electrificado)",
 )
 
 ...
 
 definerailtype({DBHE},
 	toolbartext(rt_tool)
 	menutext(rt_menu)
 	vehwindowtext(rt_window)
 	autoreplacetext(rt_autoreplace)
 	newenginetext(rt_engine)
 	compatible_list({"RAIL"}, {"ELRL"}, {"SACE"}) 
 	powered_list({"ELRL"})
 	railtypeflags(RT_CATY)
 	stationtype(RAIL)
 	costfactor(15)
 	speedlimit(160 km/h)
 	acceleration(RAIL)
 	mapcolour(176)
 )

makerailtype(<Label>, <block>)

Ta funkcja aktywuje zdefiniowany wcześniej typ szyny. Jego parametry to etykieta typu szyny i blok funkcji związanych ze specjalnym typem szyny:

Funkcja Znaczenie
ink(<ref()>, <rail_type_element>) Łączenie łańcucha grafik lub zmiennych zależności z określonym elementem typu szyny
default(<ref()>) Domyślny łańcuch do użycia z tym typem szyny

Elementy typu szynowego przypisują określone typy grafiki zdefiniowane przez skojarzone z nimi łańcuchy:

Element typu szyna Typ sprite'a Num sprites Stosowanie
RT_ICON Ikony i kursory[*] 16 4 kierunki kolejowe, autorail, depot, tunel i konwersja kolei. Najpierw wszystkie ikony, potem wszystkie kursory.
RT_OLAY Nakładki torowe dla rozjazdów i PBS[*] 10 6 płaskich i 4 nachylone elementy. 'Sprites' powinny zawierać tylko ścieżkę, bez krajobrazu.
RT_ULAY Podkład[*] 16 6 płaskich i 4 nachylone oraz 1 X skrzyżowań z torem i 5 skrzyżowań bez toru. Sprite powinny zawierać ścieżkę i 'balast' pod nią. Nie należy rysować krajobrazu.
RT_TNNL Tunel[*] 4 1 'sprite' w każdym kierunku. Sprite jest nakładką na ścieżkę w istniejącej grafice tunelu. Rysowany jest pierwotny sprite naziemny, następnie nakładka, następnie prawdopodobnie pociąg i oryginalna głowica tunelu jest rysowana na górze. Zapewnia to zgodność z różnymi typami krajobrazu. Kolejność spriteów: SW, NW, NE, SE. Jeśli zdefiniowano również RT_TUPO, zachowanie jest nieco inne, patrz tunel portal overlay .
RT_WIRE Drut linowy 28 Ma taki sam układ drutów pierwszych 28 'sprites', jak Action5 type 5 (lub link akcja 5 ) .
RT_PYLN Słupy trakcyjne 8 Ma ten sam układ dla pylonów 8 'sprites' za drutami, jak w Action5 typu 5.
RT_BRDG Powierzchnie mostów[*] 6 10 sprite'ów, jeśli kiedykolwiek uwzględnimy ukośne mosty.
RT_XING Nakładka na przejazd kolejowy[*] 10 1 nakładka na szynę i 4 lekkie sprite'y dla X i Y.
RT_DEPO Depoty 6 2 'sprites' dla każdego widoku południowego, 1 'sprite' dla każdego widoku północnego, zgodnie z oryginalnym układem 'sprites' depotu.
RT_FNCE Ogrodzenia 8 X, y, pionowe, poziome, nachylenie SW, nachylenie SE, nachylenie NE i nachylenie NW. Ma ten sam układ, co oryginalne sprite'y ogrodzenia (zaczynając od # 1301).
RT_TUPO Nakładka na 'portal' tunelu 4 1 'sprite' na każdy kierunek, kolejność to SW, NW, NE, SE. (Od r23952)
RT_SGNL Sprites sygnałowe 8 1 sprite dla każdego kierunku, kolejność to SW, NE, SE, NW, E, W, S, N. (od r24367)

[*] Te 'sprites' muszą być zapewnione, inne mogą zostać pominięte, jeśli nie są potrzebne.

Sprite'y do przejazdów kolejowych:

Numer sprite'a Usage
dla x dla y
0 1 Nakładka na szynę
2 3 Północne światło
4 5 Eastern light
6 7 Western light
8 9 Southern light

Depot sprites:

Numer sprite'a Stosowanie
0 NE wall for SE-entry depot
1 Depot building for SE-entry
2 NW wall for SW-entry depot
3 Depot building for SW-entry
4 Depot building for NE-entry
5 Budynek zajezdni dla wejścia NW

Nakładka na portal tunelu:

Jeśli ten element zostanie zdefiniowany, tunele dla tego typu szyny będą rysowane inaczej, co pozwoli na tworzenie niestandardowych 'portali' tuneli:

Podczas stawiania tunelu, gra najpierw rysuje 'sprite' bazowego z trawy (1), a następnie 'sprite' wraca z RT_TNNL (2). Następnie rysowane są sprite'y z pociągu (jeśli dotyczy), potem kolejna nakładka z trawy (3), a na końcu sprite z RT_TUPO (4). Wymagane sprite'y trawy (1, 3) są dostarczane przez podstawowy zestaw sprite'ów (lub przez niestandardowe podstawowe sprite'y ), który nie zawiera żadnych sprite'ów dla toru lub portalu, więc muszą być dostarczone przez zestaw sprite'ów typu rail.

Funkcji tuneltype() można użyć do rozróżnienia kilku żądanych odmian tunelu. Jeśli zwróci '0', tunel używa zwykłego portalu bez żadnych dodatkowych funkcji (takich jak ścieżki powyżej). Wszystkie inne wartości są zarezerwowane dla przyszłych rozszerzeń (np. Tunele bazowe).

'Sprites' sygnalizacyjne:

Element dostarczający niestandardową grafikę sygnałową dla tego typu szyn. Powiązane zestawy 'sprites' dla różnych wariantów sygnału, typów i stanów muszą składać się z 8 'sprites', odpowiadających następującym kierunkom sygnału, tj. Skierowanym na południowy zachód, północny wschód, północny zachód, południowy wschód, wschód, zachód, południe i północ. Warianty sygnału to sygnał świetlny lub semafor, typy sygnałów to sygnał blokowy, sygnały wstępne (wejście, wyjście, kombi) i sygnały PBS (1-drożne, 2-drożne). Stan sygnału jest "czerwony" lub "zielony", więc łącznie 24 zestawy po 8 'sprites' sygnałowych każdy.

Funkcje signaltype(), signalvariant() i signalstate() zwracają dodatkowe informacje o sygnale, który ma zostać narysowany, dla typu, wariantu lub stanu sygnału. Funkcja signal() zwraca połączone informacje o sygnale. Zobacz przykład.

Jeśli rozstrzygnięcie nie powiedzie się lub zakończy się pustym zestawem 'sprites', zamiast tego zostaną użyte pasujące 'sprites' z podstawowego zestawu.

Przykłady
 makerailtype(DBHE,
 	link(ref(7), RT_ICON)  // icons and cursors
 	link(ref(11), RT_OLAY) // track overlays for junctions and PBS
 	link(ref(2), RT_ULAY)  // track underlays
 	link(ref(3), RT_TNNL)  // tunnels
 	link(ref(4), RT_BRDG)  // bridge surfaces
 	link(ref(5), RT_XING)  // level crossing overlays
 	link(ref(8), RT_DEPO)  // depot sprites
 	link(ref(10), RT_PYLN) // catenary pylons
 	link(ref(9), RT_WIRE)  // catenary wires
 	link(ref(12), RT_FNCE) // track fences
 	link(ref(13), RT_TUPO) // tunnel portal
 	link(ref(15), RT_SGNL) // custom signals
 	default(cbfail())      // s.b.
 )

Wartość domyślna będzie używana do wywołań zwrotnych typu kolejowego. Jednakże, ponieważ obecnie nie ma wywołań zwrotnych dla typów szyn, zawsze powinno to skutkować niepowodzeniem wywołania zwrotnego.