Vehicles

Motor

Konfiguruje nativní VehicleEngineSettings před sestavením vozidla.

Rozšíření zpřístupňuje hlavní torque, RPM, inertia a damping nastavení, ale zachovává nativní torque curve Jolt Physics 5.6.

Volby při vytvoření#

GML
var car = jolt_vehicle(chassis, {
    engine: {
        max_torque: 500,
        min_rpm: 1000,
        max_rpm: 7000,
        inertia: 0.5,
        angular_damping: 0.2
    }
});
PolePravidloÚčinek
max_torque> 0Maximální moment motoru v N m.
min_rpm> 0 a pod aktuálním max_rpmVolnoběžné/minimální RPM.
max_rpmNad aktuálním min_rpmMaximální provozní RPM.
inertia> 0Odpor proti změně úhlové rychlosti motoru.
angular_damping>= 0Pasivní tlumení úhlové rychlosti.

Runtime stav#

GetterVýsledek
get_engine_rpm()Aktuální rychlost motoru v RPM.
get_engine_state(){rpm, gear, clutch, switching}.
  • Neuvedená pole zachovají nativní výchozí hodnoty Jolt.
  • Současné veřejné API neumí měnit engine settings po build().

Konfigurační objekt a settery#

GML
var engine = jolt_vehicle_engine();
engine.set_max_torque(500);
engine.set_min_rpm(1000);
engine.set_max_rpm(7000);
var settings = jolt_vehicle_settings();
settings.set_engine(engine);
var car = jolt_vehicle(chassis, settings);

Konfigurační factories vracejí GML objekt nastavení; samy nevytvářejí fyziku. Jejich settery vracejí self, tedy tento objekt, a nejsou potvrzením platnosti hodnoty. Pole se spotřebují a ověří při jolt_vehicle, add_wheel nebo add_differential. Vynechané pole zachová default odpovídajícího options zápisu uvedený výše. Změna nastavení po jeho použití nemění existující vozidlo, kolo ani diferenciál. Nastavení nepotřebuje destroy.

Vozidlo při chybě vytvoření vrací undefined. add_differential vrací Boolean; add_wheel vrací číselný index začínající nulou, nebo Boolean false při chybě. Index 0 je úspěch: nepoužívej pouze if (!wheel_index). Konfiguraci kol a diferenciálů dokonči před build().

Pokud dodáš min_rpm i max_rpm, loader předá dvojici nativní validaci atomicky; nerozhoduje staré pořadí změn vůči výchozím mezím. Při dodání jediné meze se ověřuje vůči současné druhé mezi. Min musí být kladné a menší než max; samotný setter objektu nastavení tuto validaci neprovádí.

Ověřené kontrakty operací#

Následující kontrakty rozlišují jednotky, návratové hodnoty, chyby a životnost podle aktuální implementace. Nevynechávej kontrolu výsledku: false, 0 a undefined mohou mít u různých metod odlišný význam.

Symbol / vlastníkSignaturaKontrakt operace
jolt_vehicle_enginejolt_vehicle_engine()Vytvoří prázdný settings objekt. Nevyžaduje svět, nevytváří fyziku; settery vrací self. Vynechané vlastnosti přenechá defaultům při jolt_vehicle.
JoltVehicle.get_engine_rpmJoltVehicle.get_engine_rpm()Číselné RPM nebo index převodu podle metody; undefined při chybě/nebuildnutém vehicle.
JoltVehicleEngineSettings.set_angular_dampingJoltVehicleEngineSettings.set_angular_damping(value)Konfigurace před vytvořením; vrací self, validace až při jolt_vehicle/add_wheel/add_differential. Konečné tlumení >= 0.
JoltVehicleEngineSettings.set_inertiaJoltVehicleEngineSettings.set_inertia(value)Konfigurace před vytvořením; vrací self, validace až při jolt_vehicle/add_wheel/add_differential. Konečná setrvačnost > 0 kg·m².
JoltVehicleEngineSettings.set_max_rpmJoltVehicleEngineSettings.set_max_rpm(value)Konfigurace před vytvořením; vrací self, validace až při jolt_vehicle/add_wheel/add_differential. Konečné RPM: 0 < min < max. Jsou-li zadány oba limity, předají se atomicky; jednotlivý limit musí vyhovovat aktuálnímu druhému limitu.
JoltVehicleEngineSettings.set_max_torqueJoltVehicleEngineSettings.set_max_torque(value)Konfigurace před vytvořením; vrací self, validace až při jolt_vehicle/add_wheel/add_differential. Konečný moment > 0 N·m.
JoltVehicleEngineSettings.set_min_rpmJoltVehicleEngineSettings.set_min_rpm(value)Konfigurace před vytvořením; vrací self, validace až při jolt_vehicle/add_wheel/add_differential. Konečné RPM: 0 < min < max. Jsou-li zadány oba limity, předají se atomicky; jednotlivý limit musí vyhovovat aktuálnímu druhému limitu.