@@ -94,6 +94,7 @@ void CLuaVehicleDefs::LoadFunctions()
9494 {" getVehicleWheelFrictionState" , ArgumentParser<GetVehicleWheelFrictionState>},
9595 {" getVehicleEntryPoints" , ArgumentParser<GetVehicleEntryPoints>},
9696 {" isVehicleSmokeTrailEnabled" , ArgumentParser<IsSmokeTrailEnabled>},
97+ {" getVehicleRotorState" , ArgumentParser<GetVehicleRotorState>},
9798
9899 // Vehicle set funcs
99100 {" createVehicle" , CreateVehicle},
@@ -161,6 +162,7 @@ void CLuaVehicleDefs::LoadFunctions()
161162 {" setVehicleModelWheelSize" , ArgumentParser<SetVehicleModelWheelSize>},
162163 {" spawnVehicleFlyingComponent" , ArgumentParser<SpawnVehicleFlyingComponent>},
163164 {" setVehicleSmokeTrailEnabled" , ArgumentParser<SetSmokeTrailEnabled>},
165+ {" setVehicleRotorState" , ArgumentParser<SetVehicleRotorState>},
164166 };
165167
166168 // Add functions
@@ -250,6 +252,7 @@ void CLuaVehicleDefs::AddClass(lua_State* luaVM)
250252 lua_classfunction (luaVM, " getWheelFrictionState" , " getVehicleWheelFrictionState" );
251253 lua_classfunction (luaVM, " getEntryPoints" , ArgumentParser<OOP_GetVehicleEntryPoints>);
252254 lua_classfunction (luaVM, " isSmokeTrailEnabled" , " isVehicleSmokeTrailEnabled" );
255+ lua_classfunction (luaVM, " getRotorState" , " getVehicleRotorState" );
253256
254257 lua_classfunction (luaVM, " setComponentVisible" , " setVehicleComponentVisible" );
255258 lua_classfunction (luaVM, " setSirensOn" , " setVehicleSirensOn" );
@@ -299,6 +302,7 @@ void CLuaVehicleDefs::AddClass(lua_State* luaVM)
299302 lua_classfunction (luaVM, " setWheelScale" , " setVehicleWheelScale" );
300303 lua_classfunction (luaVM, " setModelWheelSize" , " setVehicleModelWheelSize" );
301304 lua_classfunction (luaVM, " setSmokeTrailEnabled" , " setVehicleSmokeTrailEnabled" );
305+ lua_classfunction (luaVM, " setRotorState" , " setVehicleRotorState" );
302306
303307 lua_classfunction (luaVM, " resetComponentPosition" , " resetVehicleComponentPosition" );
304308 lua_classfunction (luaVM, " resetComponentRotation" , " resetVehicleComponentRotation" );
@@ -357,6 +361,7 @@ void CLuaVehicleDefs::AddClass(lua_State* luaVM)
357361 lua_classvariable (luaVM, " gravity" , SetVehicleGravity, OOP_GetVehicleGravity);
358362 lua_classvariable (luaVM, " turnVelocity" , SetVehicleTurnVelocity, OOP_GetVehicleTurnVelocity);
359363 lua_classvariable (luaVM, " wheelScale" , " setVehicleWheelScale" , " getVehicleWheelScale" );
364+ lua_classvariable (luaVM, " rotorState" , " setVehicleRotorState" , " getVehicleRotorState" );
360365
361366 lua_registerclass (luaVM, " Vehicle" , " Element" );
362367}
@@ -4398,3 +4403,17 @@ bool CLuaVehicleDefs::IsSmokeTrailEnabled(CClientVehicle* vehicle) noexcept
43984403{
43994404 return vehicle->IsSmokeTrailEnabled ();
44004405}
4406+
4407+ bool CLuaVehicleDefs::SetVehicleRotorState (CClientVehicle* vehicle, bool state, std::optional<bool > stopRotor) noexcept
4408+ {
4409+ if (vehicle->GetVehicleType () != eClientVehicleType::CLIENTVEHICLE_HELI && vehicle->GetVehicleType () != eClientVehicleType::CLIENTVEHICLE_PLANE)
4410+ return false ;
4411+
4412+ vehicle->SetVehicleRotorState (state, stopRotor.value_or (true ));
4413+ return true ;
4414+ }
4415+
4416+ bool CLuaVehicleDefs::GetVehicleRotorState (CClientVehicle* vehicle) noexcept
4417+ {
4418+ return vehicle->GetVehicleRotorState ();
4419+ }
0 commit comments