File train.xml

CATATAN:

Halaman ini masih dalam pengerjaan.

■ 1. Ikhtisar

Format train.xml adalah format asli untuk versi OpenBVE yang lebih baru, dan ditujukan untuk menggantikan format train.dat yang lama. Format ini memungkinkan pengaturan jauh lebih banyak properti, dan dapat diperluas.

Format ini dapat dibuat sebagai satu file yang berisi properti seluruh rangkaian, atau sebagai satu definisi rangkaian beserta file kereta anak.

Posisi di Dalam Kereta:

Dalam format train.xml, semua posisi diukur relatif terhadap pusat kereta, yang dianggap berada di 0,0,0 Meskipun ini merupakan perubahan untuk beberapa parameter dari format BVE lama, hal ini berarti semua posisi harus konsisten.

■ 2. Bagian Train

Baik menggunakan file kereta anak maupun satu file, node pertama dalam setiap file train.xml harus berupa node <Train>.

Node ini mendukung properti berikut:

<Car> CarProperties </Car>

Ini mendefinisikan sebuah kereta dalam rangkaian.

CarProperties dapat berupa sekumpulan node anak (jika menggunakan format satu file) atau path relatif di disk ke file kereta anak.

<DriverCar> Car </DriverCar>

Car harus berupa bilangan bulat positif yang kurang dari atau sama dengan jumlah kereta dalam rangkaian, yang menetapkan kereta masinis.

<NotchDescriptions> Notch </NotchDescriptions>

Ini menimpa deskripsi notch antarmuka dalam permainan yang ditampilkan.

Notch dapat berupa satu atau lebih node anak, dengan salah satu subjek berikut: Power, Brake, LocoBrake atau Reverser

Node anak harus dalam format berikut:

<Subject> Descriptions </Subject>

Descriptions harus berupa daftar yang dipisahkan koma atau titik koma, sama dengan jumlah notch yang dimiliki rangkaian untuk subjek tersebut.

Entri daftar ini harus diurutkan dari rendah ke tinggi.

Sebagai contoh tuas rem atau rem lokomotif dengan EB, tahan rem, dan 8 notch, yang berikut ini akan digunakan:

Contoh Brake Handle NotchDescriptions:
ƒ <NotchDescriptions>EB,HLD,N,1,2,3,4,5,6,7,8</NotchDescriptions>

Rangkaian yang menggunakan rem udara otomatis memiliki total tiga notch, misalnya:

Contoh Brake Handle NotchDescriptions:
ƒ <NotchDescriptions>EB,REL,LAP,SRV</NotchDescriptions>

Sebagai contoh tuas daya dengan 8 notch, yang berikut ini akan digunakan:

Contoh Power Handle NotchDescriptions:
ƒ <NotchDescriptions>N,1,2,3,4,5,6,7,8</NotchDescriptions>

Tuas pembalik arah harus dalam urutan Netral, Maju, Mundur:

Contoh Reverser Handle NotchDescriptions:
ƒ <NotchDescriptions>N,F,R</NotchDescriptions>

■ 3. Bagian Car

☀ Note

Saat menggunakan file kereta anak, node <Car> harus menjadi node pertama dalam file. Semua detail lainnya tetap sama.

Node berisi properti untuk setiap kereta dalam rangkaian.

Node ini mendukung properti berikut:

<CameraRestriction> Restrictions </CameraRestriction>

Ini menetapkan pembatasan kamera di dalam kabin (umumnya digunakan untuk kabin 3D).

Restrictions dapat berupa satu atau lebih node anak, dengan salah satu subjek berikut: Backwards, Forwards, Left, Right, Down atau Up

Node anak harus dalam format berikut:

<Subject> Distance </Subject>

Distance harus berupa jarak dalam meter dari titik asal 0,0,0 di pusat objek kabin.

<Length> LengthInMeters </Length>

LengthInMeters harus berupa panjang kereta dalam meter.

<Width> WidthInMeters </Width>

WidthInMeters harus berupa lebar kereta dalam meter.

<Height> HeightInMeters </Height>

HeightInMeters harus berupa panjang kereta dalam meter.

<CenterOfGravityHeight> CenterOfGravityInMeters </CenterOfGravityHeight>

CenterOfGravityInMeters harus berupa ketinggian di atas rel dalam meter tempat pusat massa berada.

<ExposedFrontalArea> Area </ExposedFrontalArea>

Area harus berupa bilangan pecahan positif yang diukur dalam meter persegi (m²) yang menunjukkan luas frontal kereta saat sepenuhnya terpapar udara penghambat, misalnya saat kereta berada di depan dalam arah perjalanan nominal saat ini.

<UnexposedFrontalArea> Area </UnexposedFrontalArea>

Area harus berupa bilangan pecahan positif yang diukur dalam meter persegi (m²) yang menunjukkan luas frontal kereta saat sepenuhnya tidak terpapar udara penghambat, yaitu kereta mana pun dalam rangkaian selain kereta terdepan.

<Mass> EmptyMass </EmptyMass>

EmptyMass harus berupa massa kereta kosong (tanpa muatan) dalam kilogram.

<MotorCar> IsMotorCar </MotorCar>

IsMotorCar menetapkan apakah kereta merupakan kereta motor - Jika true, kereta ini ditetapkan sebagai kereta motor.

<FrontAxle> Position </FrontAxle>

Position harus berupa posisi poros dalam meter dari pusat kereta.

<RearAxle> Position </RearAxle>

Position harus berupa posisi poros dalam meter dari pusat kereta.

<Object> ObjectFile </Object>

ObjectFile harus berupa path relatif di disk ke objek 3D eksterior yang akan digunakan.

<Reversed> IsReversed </IsReversed>

IsReversed menetapkan apakah objek 3D eksterior dibalik. Jika true, objek dibalik.

Bagian Bogie

Bogie depan dan belakang yang dipasang pada kereta dapat ditentukan melalui node anak opsional <FrontBogie> dan <RearBogie>.

Jika tidak ditentukan, setiap bogie secara default terdiri dari sepasang poros yang terletak satu meter di kedua sisi posisi poros luar kereta yang bersangkutan.

<FrontBogie> BogieProperties </FrontBogie>
<RearBogie> BogieProperties </RearBogie>

BogieProperties adalah sekumpulan node anak, yang mendukung properti berikut:

<FrontAxle> Position </FrontAxle>

Position harus berupa posisi poros depan bogie dalam meter, diukur relatif terhadap posisi poros luar kereta yang bersangkutan.

<RearAxle> Position </RearAxle>

Position harus berupa posisi poros belakang bogie dalam meter, diukur relatif terhadap posisi poros luar kereta yang bersangkutan.

<Object> ObjectFile </Object>

ObjectFile harus berupa path relatif di disk ke objek 3D yang akan digunakan untuk bogie ini.

<Reversed> IsReversed </Reversed>

IsReversed menetapkan apakah objek 3D bogie dibalik. Jika true, objek dibalik.

<InteriorView> ObjectFile </InteriorView>

ObjectFile harus berupa path relatif di disk ke tampilan interior yang akan digunakan. Ini dapat berupa objek 3D (misalnya b3d / csv / animated), file panel2.cfg, atau file XML yang menggunakan format XML panel.xml atau panel.animated.

<InteriorDirection> DirectionX, DirectionY, DirectionZ </InteriorDirection>

Perintah ini memungkinkan Anda memutar kamera interior, sehingga memungkinkan tampilan yang tidak sejajar dengan arah jalur ke depan.

DirectionX Jumlah derajat rotasi kamera interior awal pada sumbu X. DirectionY Jumlah derajat rotasi kamera interior awal pada sumbu Y. DirectionZ Jumlah derajat rotasi kamera interior awal pada sumbu Z.
<VisibleFromInterior> IsVisible </VisibleFromInterior>

IsVisible mengontrol apakah objek eksterior kereta ini terlihat dari interior kereta lain. Jika true, objek akan terlihat.

<LoadingSway> Sways </LoadingSway>

Sways menetapkan apakah goyangan pemuatan memengaruhi kereta ini secara khusus. Jika true, maka saat penumpang naik di stasiun, animasi goyangan pemuatan digunakan.

<DriverPosition> Position </DriverPosition>

Position harus berisi vektor 3D yang dipisahkan koma, yang menentukan posisi mata masinis di dalam kereta, relatif terhadap 0,0,0

<Cargo> CargoType </Cargo>

CargoType menentukan jenis muatan yang diangkut kereta ini. Jenis muatan berikut tersedia:

Passenger: Kereta ini mengangkut penumpang. Berat keseluruhannya dipengaruhi oleh pemuatan yang diberikan di stasiun, dan ketidaknyamanan penumpang dinilai. Freight: Kereta ini mengangkut barang. Berat keseluruhannya dipengaruhi oleh pemuatan yang diberikan di stasiun.
None: Kereta ini tidak mengangkut muatan (misalnya lokomotif, kereta rem, atau sejenisnya). Beratnya tidak dipengaruhi oleh pemuatan yang diberikan di stasiun.

■ 3.1. Bagian Power

Kereta motor dapat menentukan node <Power>.

Node ini mendefinisikan kurva percepatan dan tuas daya yang dipasang pada kereta, serta mendukung node anak berikut:

3.1.1. Kurva Percepatan

⚠

Dalam train.dat, angka kurva percepatan diberikan untuk rangkaian secara keseluruhan, dan perhitungan internal dilakukan untuk menghasilkan angka percepatan per kereta.

Namun, dalam train.xml, angka kurva percepatan hanya berlaku untuk kereta saat ini.

Node anak <AccelerationCurves> harus berisi daftar node kurva percepatan. Node tersebut harus dalam urutan menaik, dan harus sesuai dengan jumlah notch daya yang dimiliki rangkaian.

☀ Note

Untuk kompatibilitas mundur, node <AccelerationCurves> juga dapat diletakkan langsung di bawah node <Car>, bukan di bawah node <Power>.

Saat ini, satu-satunya node kurva percepatan yang didukung adalah node <OpenBVE>, yang mendukung properti berikut (sesuai kurva percepatan train.dat):

<StageZeroAcceleration> Acceleration </StageZeroAcceleration>

Acceleration harus berupa bilangan pecahan positif yang menyatakan percepatan pada kecepatan 0 km/jam yang dinyatakan dalam km/jam/detik.

<StageOneAcceleration> Acceleration </StageOneAcceleration>

Acceleration harus berupa bilangan pecahan positif yang menyatakan percepatan pada kecepatan n km/jam yang dinyatakan dalam km/jam/detik.

<StageOneSpeed> Speed </StageOneSpeed>

Speed harus berupa bilangan pecahan positif yang menyatakan kecepatan acuan untuk StageOneAcceleration

<StageTwoExponent> Exponent </StageTwoExponent>

Exponent harus berupa bilangan pecahan positif yang menyatakan eksponen yang digunakan dalam perhitungan kecepatan tahap dua.

<StageTwoSpeed> Speed </StageTwoSpeed>

Speed harus berupa bilangan pecahan positif yang menyatakan kecepatan acuan untuk StageTwoExponent

<Multiplier> Number </Multiplier>

Number harus berupa bilangan pecahan positif yang menyatakan keluaran gabungan kereta motor terhadap percepatan rangkaian. Nilai default adalah 1.0 Nilai nol atau kurang, atau lebih dari 50, tidak valid.

⚠

Angka ini hanya bermakna untuk rangkaian yang menggunakan angka percepatan BVE yang dikonversi melalui CarXMLConvertor, dan harus dihilangkan jika mengatur keluaran percepatan secara per kereta.

Dengan demikian:

Jika kecepatan rangkaian adalah 0 km/jam, a0 menunjukkan keluaran percepatan.

Jika kecepatan rangkaian berada di antara 0 km/jam dan v1, keluaran percepatan ditentukan melalui rumus berikut:

Percepatan antara 0 km/jam dan v1, dengan x adalah kecepatan rangkaian saat ini dalam km/jam:
ƒ a0 + (a1 - a0) * x / v1

Jika kecepatan rangkaian adalah v1, keluaran percepatan ditunjukkan oleh a1.

Jika kecepatan rangkaian berada di antara v1 dan v2, keluaran percepatan ditentukan melalui rumus berikut:

Percepatan antara v1 dan v2, dengan x adalah kecepatan rangkaian saat ini dalam km/jam:
ƒ v1 * a1 / x

Jika kecepatan rangkaian lebih besar dari v2, keluaran percepatan ditentukan melalui rumus berikut (untuk eksponen versi 2.0):

Percepatan di atas v2, dengan x adalah kecepatan rangkaian saat ini dalam km/jam:
ƒ v1 * a1 * v2e-1 / xe

3.1.2. Tuas Daya

Kereta masinis dan bukan masinis:

Properti di dalam node ini hanya akan diinterpretasikan jika kereta ditentukan sebagai kereta masinis.

Node <Handle> menentukan properti untuk tuas daya, dan mendukung properti berikut:

<Notches> NumberOfNotches </Notches>

NumberOfNotches harus berupa bilangan bulat positif, yang menetapkan jumlah notch daya.

☀ Note

Untuk tuas sederhana, node <Notches> juga dapat ditentukan langsung di bawah node <Power>, tanpa node <Handle> yang membungkusnya.

<SpringType> Type </SpringType>
Type: Jenis pegas kembali yang dipasang pada tuas ini (jika ada).

▸ Pilihan yang tersedia untuk Type:

Unsprung: Tidak ada mekanisme pegas kembali yang dipasang.
Single: Mekanisme pegas kembali diatur ulang saat tuas ini dioperasikan.
AnyHandle: Mekanisme pegas kembali diatur ulang saat tuas daya atau rem mana pun dioperasikan. AnyKey: Mekanisme pegas kembali diatur ulang saat tombol keyboard atau kontrol joystick mana pun dioperasikan.
<SpringTime> Time </SpringTime>

Time harus berupa angka positif, yang menetapkan waktu dalam detik yang diperlukan tuas untuk kembali ke posisi istirahatnya saat dilepas.

☀ Note

Node <SpringTime> harus diatur agar mekanisme pegas kembali dipasang - Jika tidak diatur, tuas diperlakukan sebagai tanpa pegas, terlepas dari nilai <SpringType>.

<MaxSprungNotch> Notch </MaxSprungNotch>

Notch harus berupa bilangan bulat positif, yang menentukan notch tertinggi tempat mekanisme pegas kembali dapat menahan tuas.

■ 3.2. Bagian Brake

Bagian <Brake> menentukan properti sistem pengereman kereta, dan terdiri dari node anak berikut, yang masing-masing sesuai dengan komponen sistem rem udara standar pipa ganda:

Kompresor udara

Node opsional <Compressor>, yang mendukung properti berikut:

<Rate> CompressionRate </Rate>

CompressionRate harus berupa angka positif, yang menyatakan laju kompresi dalam Pa/detik.

<RestartPressure> CompressionRate </RestartPressure>

Pressure harus berupa angka positif, yang menyatakan tekanan dalam Pa di reservoir utama, saat kompresor mulai kembali.

Catatan: Jika tidak diatur, kompresor mulai kembali saat tekanan di reservoir utama mencapai minimum.

Reservoir Utama

Node <MainReservoir>, yang mendukung properti berikut:

<MinimumPressure> Pressure </MinimumPressure>

Pressure harus berupa angka positif, yang menyatakan tekanan minimum di reservoir utama dalam Pa.

<MaximumPressure> Pressure </MaximumPressure>

Pressure harus berupa angka positif, yang menyatakan tekanan maksimum yang dapat dicapai di reservoir utama dalam Pa.

<Volume> Volume </Volume>

Volume harus berupa angka positif, yang menyatakan volume reservoir utama dalam meter kubik (m³).

Reservoir Bantu

Node <AuxiliaryReservoir>, yang mendukung properti berikut:

<ChargeRate> Rate </ChargeRate>

Rate harus berupa angka positif, yang menyatakan laju pengisian reservoir bantu dari reservoir utama dalam Pa/detik.

<Volume> Volume </Volume>

Volume harus berupa angka positif, yang menyatakan volume reservoir bantu dalam meter kubik (m³).

Reservoir Penyeimbang

Node <EqualizingReservoir>, yang mendukung properti berikut:

<NormalPressure> Pressure </NormalPressure>

Pressure harus berupa angka positif, yang menyatakan tekanan normal reservoir ini dalam Pa.

☀ Note

Tekanan normal reservoir penyeimbang tidak dapat diatur secara langsung - Nilai ini diturunkan dari tekanan normal pipa rem (1,005 × NormalPressure dari <BrakePipe>).

<ChargeRate> Rate </ChargeRate>

Rate harus berupa angka positif, yang menyatakan laju pengisian reservoir penyeimbang dalam Pa/detik.

<ServiceRate> Rate </ServiceRate>

Rate harus berupa angka positif, yang menyatakan laju pengisian dalam Pa/detik saat melakukan pengereman servis.

<EmergencyRate> Rate </EmergencyRate>

Rate harus berupa angka positif, yang menyatakan laju pengisian dalam Pa/detik saat melakukan pengereman darurat.

<Volume> Volume </Volume>

Volume harus berupa angka positif, yang menyatakan volume reservoir penyeimbang dalam meter kubik (m³).

Pipa Rem

Node <BrakePipe>, yang mendukung properti berikut:

<NormalPressure> Pressure </NormalPressure>

Pressure harus berupa angka positif, yang menyatakan tekanan nominal normal pipa rem dalam Pa.

<ChargeRate> Rate </ChargeRate>

Rate harus berupa angka positif, yang menyatakan laju pengisian normal dalam Pa/detik.

<ServiceRate> Rate </ServiceRate>

Rate harus berupa angka positif, yang menyatakan laju pengisian dalam Pa/detik saat melakukan pengereman servis.

<EmergencyRate> Rate </EmergencyRate>

Rate harus berupa angka positif, yang menyatakan laju pengisian dalam Pa/detik saat melakukan pengereman darurat.

<Volume> Volume </Volume>

Volume harus berupa angka positif, yang menyatakan volume pipa rem dalam meter kubik (m³).

Pipa Udara Langsung

Node <StraightAirPipe>, yang mendukung properti berikut:

<ServiceRate> Rate </ServiceRate>

Rate harus berupa angka positif, yang menyatakan laju pengisian dalam Pa/detik saat melakukan pengereman servis.

<EmergencyRate> Rate </EmergencyRate>

Rate harus berupa angka positif, yang menyatakan laju pengisian dalam Pa/detik saat melakukan pengereman darurat.

<ReleaseRate> Rate </ReleaseRate>

Rate harus berupa angka positif, yang menyatakan laju pengisian dalam Pa/detik saat melepaskan pengereman.

Silinder Rem

Node <BrakeCylinder>, yang mendukung properti berikut:

<ServiceMaximumPressure> Pressure </ServiceMaximumPressure>

Pressure harus berupa angka positif, yang menyatakan tekanan maksimum dalam Pa saat melakukan pengereman servis penuh.

<EmergencyMaximumPressure> Pressure </EmergencyMaximumPressure>

Pressure harus berupa angka positif, yang menyatakan tekanan maksimum dalam Pa saat melakukan pengereman darurat penuh.

<EmergencyRate> Rate </EmergencyRate>

Rate harus berupa angka positif, yang menyatakan laju pelepasan dalam Pa/detik selama pengereman darurat penuh.

<ReleaseRate> Rate </ReleaseRate>

Rate harus berupa angka positif, yang menyatakan laju pengisian dalam Pa/detik saat melepaskan rem.

<Volume> Volume </Volume>

Volume harus berupa angka positif, yang menyatakan volume silinder rem dalam meter kubik (m³).

<LegacyPressureDistribution> Boolean </LegacyPressureDistribution>

Boolean harus berupa nilai boolean true / false, yang menentukan apakah model pipa rem train.dat lama digunakan - Jika true, distribusi tekanan pipa rem dirata-ratakan di seluruh rangkaian, bukan disimulasikan per kereta.

Tuas Rem

Kereta masinis dan bukan masinis:

Properti di dalam node ini hanya akan diinterpretasikan jika kereta ditentukan sebagai kereta masinis.

Node <Handle> menentukan properti untuk tuas rem, dan mendukung properti berikut:

<Notches> NumberOfNotches </Notches>

NumberOfNotches harus berupa bilangan bulat positif, yang menetapkan jumlah notch rem.

☀ Note

Untuk tuas sederhana, node <Notches> juga dapat ditentukan langsung di bawah node <Brake>, tanpa node <Handle> yang membungkusnya.

<SpringType> Type </SpringType>
Type: Jenis pegas kembali yang dipasang pada tuas ini (jika ada).

▸ Pilihan yang tersedia untuk Type:

Unsprung: Tidak ada mekanisme pegas kembali yang dipasang.
Single: Mekanisme pegas kembali diatur ulang saat tuas ini dioperasikan.
AnyHandle: Mekanisme pegas kembali diatur ulang saat tuas daya atau rem mana pun dioperasikan. AnyKey: Mekanisme pegas kembali diatur ulang saat tombol keyboard atau kontrol joystick mana pun dioperasikan.
<SpringTime> Time </SpringTime>

Time harus berupa angka positif, yang menetapkan waktu dalam detik yang diperlukan tuas untuk kembali ke posisi istirahatnya saat dilepas.

☀ Note

Node <SpringTime> harus diatur agar mekanisme pegas kembali dipasang - Jika tidak diatur, tuas diperlakukan sebagai tanpa pegas, terlepas dari nilai <SpringType>.

<MaxSprungNotch> Notch </MaxSprungNotch>

Notch harus berupa bilangan bulat positif, yang menentukan notch tertinggi tempat mekanisme pegas kembali dapat menahan tuas.

<MotorBrakeNotch> Notch </MotorBrakeNotch>

Notch harus berupa bilangan bulat positif, yang menentukan notch maksimum tempat pengereman berbantuan motor tersedia.

■ 3.3. Model Traksi

Dua model traksi didukung: Mesin listrik dan mesin diesel. Selain itu, kereta motor standar yang menggunakan kurva percepatan gaya BVE dapat ditentukan melalui node <MotorCar>.

3.3.1. Mesin Listrik

Node <ElectricEngine> memodelkan mesin listrik sederhana, yang menggunakan pantograf untuk mengambil arus dari kabel listrik di atas.

Dengan model traksi ini, salah satu kereta dalam rangkaian harus memiliki pantograf, yang harus dinaikkan agar rangkaian dapat bergerak.

Node ini mendukung properti berikut:

<Pantograph> boolean </Pantograph> <CollectorShoe> boolean </CollectorShoe>
Boolean harus berupa nilai boolean true / false, yang menentukan apakah kendaraan ini memiliki pantograf / sepatu pengumpul rel ketiga.

Motor traksi dapat ditambahkan melalui node anak <TractionMotor> atau <RegenerativeTractionMotor>.

Node tersebut mendukung properti berikut:

<MaxAmps> Amps </MaxAmps>
Amps menyatakan jumlah ampere yang ditarik motor traksi saat rangkaian berakselerasi maksimum.
<MaxRegenAmps> Amps </MaxRegenAmps>
Amps menyatakan jumlah ampere yang ditarik motor traksi saat rangkaian mengerem maksimum, jika motor traksi ini merupakan motor traksi regeneratif.

3.3.2. Mesin Diesel

Node <DieselEngine> memodelkan mesin diesel. Kereta yang dilengkapi mesin diesel diperlakukan sebagai kereta motor.

Node ini mendukung properti berikut:

<IdleRPM> RPM </IdleRPM>
<MinRPM> RPM </MinRPM>
<MaxRPM> RPM </MaxRPM>
RPM: Kecepatan mesin dalam putaran per menit (RPM) saat idle (IdleRPM), pada daya minimum (MinRPM), dan pada daya maksimum (MaxRPM). Saat idle, mesin berjalan pada IdleRPM; kecepatan mesin kemudian naik secara linear dari MinRPM ke MaxRPM di seluruh notch daya.
<RPMChangeRate> Rate </RPMChangeRate>
<RPMChangeUpRate> Rate </RPMChangeUpRate>
<RPMChangeDownRate> Rate </RPMChangeDownRate>
Rate: Laju perubahan kecepatan mesin, dalam RPM per detik. RPMChangeRate menetapkan kedua laju, yang dapat ditimpa satu per satu melalui RPMChangeUpRate dan RPMChangeDownRate. Jika diatur ke nol, kecepatan mesin berubah seketika.
<IdleFuelUse> Rate </IdleFuelUse>
<MaxPowerFuelUse> Rate </MaxPowerFuelUse>
Rate: Konsumsi bahan bakar saat idle (IdleFuelUse) dan pada daya maksimum (MaxPowerFuelUse), dalam satuan bahan bakar per detik. Konsumsi bahan bakar pada notch daya antara diinterpolasi antara kedua angka ini.
<FuelCapacity> Capacity </FuelCapacity>
Capacity: Kapasitas tangki bahan bakar. Tangki diisi pada awal rute.

Motor traksi dapat ditambahkan melalui node anak <TractionMotor> atau <RegenerativeTractionMotor>, yang mendukung properti yang sama seperti pada mesin listrik.

■ 3.4. Bagian Doors

Bagian <Doors> menentukan properti pintu penumpang yang dipasang pada kereta ini, dan mendukung properti berikut:

<OpenSpeed> Speed </OpenSpeed>

Speed harus berupa angka positif, yang menetapkan waktu yang diperlukan pintu untuk terbuka dalam detik.

<CloseSpeed> Speed </CloseSpeed>

Speed harus berupa angka positif, yang menetapkan waktu yang diperlukan pintu untuk tertutup dalam detik.

☀ Note

Jika kecepatan membuka atau menutup tidak diatur, nilai ini akan dihitung menggunakan durasi suara buka / tutup.

Lihat dokumentasi sound.cfg untuk detail lebih lanjut.

<Width> DoorWidth </Width>

DoorWidth harus berupa angka positif, yang menetapkan lebar bukaan pintu dalam meter.

<Tolerance> DoorTolerance </Tolerance>

DoorTolerance harus berupa angka positif, yang menetapkan toleransi dalam meter sebelum pintu dianggap tertutup.

■ 3.5. Bagian Sanders

Bagian <Sanders> menentukan properti alat pasir yang dipasang pada kereta ini, dan mendukung properti berikut:

☀ Note

Jika tidak diatur, default berikut berlaku: Laju pemasiran tidak terbatas, tingkat pasir dimulai kosong, waktu aplikasi adalah 10 detik, waktu aktivasi adalah 5 detik, dan jumlah tembakan tidak terbatas.

<Type> Type </Type>
Type: Jenis alat pasir yang dipasang pada kereta ini (jika ada).

▸ Pilihan yang tersedia untuk Type:

NotFitted: Tidak ada mekanisme pemasiran yang dipasang.
PressAndHold: Pasir diberikan selama tombol Sanders ditahan dan pasir mencukupi.
Toggle: Tombol Sanders mengaktifkan dan menonaktifkan pasir. NumberOfShots: Tersedia N tembakan pasir, yang diberikan saat tombol Sanders ditekan. Automatic: Pasir diaktifkan secara otomatis saat selip roda terdeteksi dan pasir mencukupi.
<Rate> SandingRate </Rate>
SandingRate: Laju pemberian pasir per detik.
<SandLevel> Level </SandLevel>
Level: Tingkat awal pasir, jika tidak dalam mode tembakan.
<NumberOfShots> Shots </NumberOfShots>
Shots: Jumlah tembakan pasir yang tersedia.
<ApplicationTime> Time </ApplicationTime>
Time: Saat dalam mode tembakan, menetapkan durasi satu tembakan pasir dalam detik.
<ActivationTime> Time </ActivationTime>
Time: Saat dalam mode otomatis, jumlah waktu sebelum sistem bereaksi dan memberikan pasir.
☀ Note

Jika node <Sanders> tidak digunakan, node lama <ReadhesionDevice> dapat digunakan sebagai gantinya untuk menentukan perangkat anti-selip sederhana, yang sesuai dengan entri ReAdhesionDevice dalam format train.dat:

<ReadhesionDevice> DeviceType </ReadhesionDevice>

▸ Pilihan yang tersedia untuk DeviceType:

NotFitted: Tidak ada perangkat readhesi yang dipasang.
TypeA / A: Memutus daya seketika dan membangunnya kembali dengan cepat secara bertahap.
TypeB / B: Pembaruan tidak terlalu sering dan beradaptasi lambat. Selip roda dapat bertahan lebih lama dan daya pulih lebih lambat. Perilakunya lebih halus.
TypeC / C: Perilakunya berada di antara tipe B dan tipe D.
TypeD / D: Pembaruan cepat dan beradaptasi cepat. Selip roda hanya terjadi sebentar dan daya pulih dengan cepat. Perilakunya lebih mendadak.

Jika tidak ada node yang ada, perangkat readhesi tipe A dipasang secara default, sesuai perilaku train.dat.

■ 3.6. Bagian Windscreen

Bagian <Windscreen> menentukan properti kaca depan, dan harus digunakan jika Anda ingin menganimasikan kaca depan pada kabin 3D menggunakan fungsionalitas bawaan. Bagian ini mendukung properti berikut:

☀ Note

Kaca depan hanya dibuat untuk rangkaian pemain.

Jika <NumberOfDrops> tidak diatur, tidak ada kaca depan yang dibuat. Properti lainnya default ke kecepatan sapuan 1 detik, waktu tahan 1 detik, dan umur tetesan 10 detik.

<NumberOfDrops> Drops </NumberOfDrops>
Drops: Jumlah total tetesan pada kaca depan.
<WipeSpeed> Speed </WipeSpeed>
Speed: Waktu dalam detik bagi wiper untuk melakukan satu sapuan kaca depan.
<HoldTime> Time </HoldTime>
Time: Waktu dalam detik bagi wiper untuk berhenti di posisi tahan selama satu sapuan.
<DropLife> Life </DropLife>
Life: Umur dalam detik sebelum tetesan dapat didaur ulang saat semua tetesan terlihat.
<RestPosition> Position </RestPosition>
Position: Posisi istirahat wiper.

▸ Pilihan yang tersedia untuk Position:

Left: Wiper beristirahat di kiri layar saat mati.
Right: Wiper beristirahat di kanan layar saat mati.
<HoldPosition> Position </HoldPosition>
Position: Posisi tahan wiper.

▸ Pilihan yang tersedia untuk Position:

Left: Wiper berhenti di kiri layar selama HoldTime dalam satu sapuan.
Right: Wiper berhenti di kanan layar selama HoldTime dalam satu sapuan.

■ 3.7. Sumber Partikel

Bagian <ParticleSource> melampirkan sumber partikel, seperti gas buang diesel, ke kereta.

Saat ini, ukuran partikel hanya dikendalikan oleh tingkat daya mesin, tetapi tujuannya adalah menambahkan pengendali tambahan di kemudian hari.

Saat partikel dihasilkan, ukuran akhir maksimumnya akan ditentukan dengan interpolasi linear antara MaximumSize dan ukuran MaximumGrown. Angka ini tetap selama umur partikel.

Jika Function tidak ditentukan, ukuran partikel yang diinterpolasi akan dikendalikan oleh tingkat daya mesin, jika tidak, hasil Function akan digunakan.

Bagian ini mendukung properti berikut:

<Location> SourceLocation </Location>
SourceLocation: Vektor 3D yang dipisahkan koma, yang menjelaskan lokasi emitor partikel, relatif terhadap pusat kereta.
<MaximumSize> Size </MaximumSize>
Size*: Ukuran awal maksimum partikel yang dipancarkan. Ini biasanya harus diatur ke diameter bukaan tempat partikel dipancarkan.
<MaximumGrownSize> Size </MaximumGrownSize>
Size: Ukuran maksimum yang akan dicapai partikel, pada tingkat daya maksimum.
<InitialDirection> Direction </InitialDirection>
Direction: Vektor 3D yang dipisahkan koma, yang menjelaskan arah awal gerak partikel saat dipancarkan.
<MaximumLifespan> Life </MaximumLifespan>
Life: Umur maksimum partikel dalam detik.
<Texture> FileName </Texture>
FileName: Path relatif ke atlas tekstur 4x4 yang berisi tekstur partikel yang akan digunakan oleh emitor ini.
<EmitsAtIdle> Boolean </EmitsAtIdle>
Boolean: True atau 1 jika partikel harus dipancarkan saat idle, False atau 0 jika tidak.
<Function> FunctionScript </Function>
FunctionScript: Skrip fungsi yang mengembalikan nilai saat eksekusi antara 0 (Size) dan 1 (MaximumGrownSize), yang mengendalikan ukuran maksimum partikel yang dipancarkan.

Meng-escape Karakter Khusus dalam XML:

Karakter > (tanda lebih besar), < (tanda kurang dari), dan & (ampersand) adalah karakter yang dicadangkan dalam XML, dan harus di-escape agar file dapat dibaca.

Silakan lihat dokumentasi Microsoft

■ 3.8. Sistem Keselamatan

■ 3.8.1. Perangkat Pengawasan Masinis

Bagian <DriverSupervisionDevice> membuat perangkat pengawasan masinis, yang dapat melakukan intervensi jika masinis gagal membatalkannya tepat waktu.

Bagian ini mendukung properti berikut:

<Type> DeviceType </Type>

▸ Pilihan yang tersedia untuk DeviceType:

None: Tidak ada perangkat pengawasan masinis yang dipasang.
CutsPower: Perangkat memutus daya rangkaian saat diaktifkan. ApplyBrake: Perangkat menerapkan rem servis saat diaktifkan. ApplyEmergencyBrake: Perangkat menerapkan rem darurat saat diaktifkan.
<Mode> DeviceMode </Mode>

▸ Pilihan yang tersedia untuk DeviceType:

Power: Timer perangkat diatur ulang saat tuas daya digerakkan.
Brake: Timer perangkat diatur ulang saat tuas rem digerakkan.
AnyHandle: Timer perangkat diatur ulang saat tuas mana pun digerakkan.
Independant: Timer perangkat diatur ulang saat tombol DSD ditekan.
HeldKey: Tombol DSD harus tetap ditekan.
<TriggerMode> TriggerMode </TriggerMode>

▸ Pilihan yang tersedia untuk TriggerMode:

Always: Perangkat selalu aktif.
TrainMoving: Perangkat hanya aktif saat rangkaian bergerak.
DirectionSet: Perangkat hanya aktif saat arah ditetapkan pada tuas pembalik.
<AlarmTime> Time </AlarmTime>
Time: Waktu dalam detik sebelum perangkat masuk ke status alarm. Tidak ada intervensi yang dilakukan sampai InterventionTime terlampaui.
☀ Note

Jika tidak diatur, waktu alarm default ke nilai <InterventionTime>.

<InterventionTime> Time </InterventionTime>
Time: Waktu dalam detik sejak perangkat masuk ke status alarm, hingga perangkat melakukan intervensi.
<RequiredStopTime> Time </RequiredStopTime>
Time: Waktu dalam detik rangkaian harus berhenti setelah intervensi, sampai perangkat dapat diatur ulang.
<LoopingAlert> boolean </LoopingAlert>
Boolean harus berupa nilai boolean true / false, yang menentukan apakah nada peringatan dimainkan sekali, atau terus-menerus sampai perangkat melakukan intervensi.
<LoopingAlarm> boolean </LoopingAlarm>
Boolean harus berupa nilai boolean true / false, yang menentukan apakah nada alarm dimainkan sekali, atau terus-menerus sampai perangkat diatur ulang.

■ 3.9. Tabel Suara Motor

Node opsional <SoundTable> memungkinkan tabel suara motor dilampirkan ke model traksi kereta.

Saat ini, satu-satunya node anak yang didukung adalah <BVE5>, yang memuat tabel suara motor format BVE5:

<BVE5> TableProperties </BVE5>

TableProperties adalah sekumpulan node anak, yang masing-masing berisi path relatif di disk ke file tabel suara yang bersangkutan:

<PowerFreq> FileName </PowerFreq>
<PowerVol> FileName </PowerVol>
<BrakeFreq> FileName </BrakeFreq>
<BrakeVol> FileName </BrakeVol>
FileName: Path relatif ke file tabel suara motor BVE5 yang berisi tabel frekuensi (Freq) atau volume (Vol) untuk aplikasi daya (Power) atau rem (Brake).

■ 4. Bagian Coupler

Node kereta (atau referensi file anak) dapat dipisahkan secara opsional oleh node <Coupler>.

Ini mendefinisikan kopler antara dua kereta, dan mendukung properti berikut:

<Minimum> Distance </Distance>

Distance menetapkan jarak minimum antara dua kereta.

<Maximum> Distance </Maximum>

Distance menetapkan jarak maksimum antara dua kereta.

Perhatikan bahwa Maximum harus lebih besar dari atau sama dengan Minimum.

<Object> ObjectFile </Object>

ObjectFile harus berupa path relatif di disk ke objek 3D eksterior yang akan digunakan.

☀ Note

Objek kopler tidak mengalami deformasi saat kopler memanjang / memendek.

<CanUncouple> Boolean </CanUncouple>

Boolean harus berupa nilai boolean true / false, yang menentukan apakah kopler ini dapat dilepas oleh pemain.

<UncouplingBehaviour> Behaviour </UncouplingBehaviour>

Behaviour menetapkan perilaku sistem rem saat kopler ini dilepas.

▸ Pilihan yang tersedia untuk Behaviour:

Emergency: Rem darurat diterapkan pada kedua rangkaian.
EmergencyPlayer: Rem darurat diterapkan pada rangkaian pemain; rangkaian yang dilepas mempertahankan pengaturan rem sebelumnya.
EmergencyUncoupledConsist: Rem darurat diterapkan pada rangkaian yang dilepas; rangkaian pemain mempertahankan pengaturan rem sebelumnya.
ReleasedUncoupledConsist: Rem dilepaskan pada rangkaian yang dilepas; rangkaian pemain mempertahankan pengaturan rem sebelumnya.
Released: Rem dilepaskan pada kedua rangkaian.

■ 5. Properti Lain-lain

<Plugin> PluginFile </Plugin>

PluginFile harus berisi path relatif ke DLL plugin keamanan yang akan dimuat - Ini hanya berlaku untuk rangkaian pemain.

Saat menggunakan plugin .Net yang mendukung beberapa instans yang berjalan, format alternatif berikut dapat digunakan:

<Plugin>
 <File> PluginFile </File>
 <LoadForAI> Boolean </LoadForAI>
</Plugin>

PluginFile harus berisi path relatif ke DLL plugin keamanan berbasis .Net yang akan dimuat.

Boolean harus berupa nilai boolean true / false, yang menentukan apakah plugin ini juga harus dimuat untuk instans AI tambahan.

<Description> Text </Description>

Text harus berisi deskripsi tekstual rangkaian untuk ditampilkan di menu utama.

<HeadlightStates> NumberOfStates </HeadlightStates>

NumberOfStates harus berupa jumlah total status yang dimiliki lampu depan rangkaian.

Catatan: Efek lampu depan harus diimplementasikan oleh pengembang rangkaian, menggunakan properti animasi / panel.

Node <DriverBody> berisi properti yang berkaitan dengan tubuh masinis. Ini digunakan untuk menghitung pantulan kepala yang disebabkan oleh perintah Track.Accuracy.

Node ini mendukung properti berikut:

<ShoulderHeight> Height </ShoulderHeight>

Height harus berupa tinggi bahu masinis dalam meter di atas titik poros - Jika masinis duduk, ini harus berupa jarak dari dasar kursi ke bahu, dan jika berdiri harus berupa tinggi dari lantai ke bahu.

<HeadHeight> Height </HeadHeight>

Height harus berupa tinggi dalam meter dari bahu masinis ke titik pusat kepala.