@@ -71,6 +71,7 @@ void CLuaElementDefs::LoadFunctions()
7171 {" isElementLowLOD" , IsElementLowLod},
7272 {" isElementCallPropagationEnabled" , IsElementCallPropagationEnabled},
7373 {" isElementWaitingForGroundToLoad" , IsElementWaitingForGroundToLoad},
74+ {" isElementOnFire" , ArgumentParser<IsElementOnFire>},
7475
7576 // Element set funcs
7677 {" createElement" , CreateElement},
@@ -99,6 +100,7 @@ void CLuaElementDefs::LoadFunctions()
99100 {" setElementFrozen" , SetElementFrozen},
100101 {" setLowLODElement" , ArgumentParser<SetLowLodElement>},
101102 {" setElementCallPropagationEnabled" , SetElementCallPropagationEnabled},
103+ {" setElementOnFire" , ArgumentParser<SetElementOnFire>},
102104 };
103105
104106 // Add functions
@@ -169,6 +171,7 @@ void CLuaElementDefs::AddClass(lua_State* luaVM)
169171 lua_classfunction (luaVM, " getAttachedOffsets" , " getElementAttachedOffsets" );
170172 lua_classfunction (luaVM, " getData" , " getElementData" );
171173 lua_classfunction (luaVM, " getAllData" , " getAllElementData" );
174+ lua_classfunction (luaVM, " isOnFire" , " isElementOnFire" );
172175
173176 lua_classfunction (luaVM, " setAttachedOffsets" , " setElementAttachedOffsets" );
174177 lua_classfunction (luaVM, " setData" , " setElementData" );
@@ -191,6 +194,7 @@ void CLuaElementDefs::AddClass(lua_State* luaVM)
191194 lua_classfunction (luaVM, " setLowLOD" , " setLowLODElement" );
192195 lua_classfunction (luaVM, " setCallPropagationEnabled" , " setElementCallPropagationEnabled" );
193196 lua_classfunction (luaVM, " setStreamable" , " setElementStreamable" );
197+ lua_classfunction (luaVM, " setOnFire" , " setElementOnFire" );
194198
195199 lua_classvariable (luaVM, " callPropagationEnabled" , " setElementCallPropagationEnabled" , " isElementCallPropagationEnabled" );
196200 lua_classvariable (luaVM, " waitingForGroundToLoad" , NULL , " isElementWaitingForGroundToLoad" );
@@ -225,6 +229,7 @@ void CLuaElementDefs::AddClass(lua_State* luaVM)
225229 lua_classvariable (luaVM, " velocity" , SetElementVelocity, OOP_GetElementVelocity);
226230 lua_classvariable (luaVM, " angularVelocity" , SetElementAngularVelocity, OOP_GetElementTurnVelocity);
227231 lua_classvariable (luaVM, " isElement" , NULL , " isElement" );
232+ lua_classvariable (luaVM, " onFire" , " setElementOnFire" , " isElementOnFire" );
228233 // TODO: Support element data: player.data["age"] = 1337; <=> setElementData(player, "age", 1337)
229234
230235 lua_registerclass (luaVM, " Element" );
@@ -2509,6 +2514,32 @@ bool CLuaElementDefs::SetLowLodElement(lua_State* luaVM, CClientEntity* pEntity,
25092514 return CStaticFunctionDefinitions::SetLowLodElement (*pEntity, pLowLodEntity.value_or (nullptr ));
25102515}
25112516
2517+ bool CLuaElementDefs::SetElementOnFire (CClientEntity* entity, bool onFire)
2518+ {
2519+ switch (entity->GetType ())
2520+ {
2521+ case CCLIENTPED:
2522+ case CCLIENTPLAYER:
2523+ {
2524+ static_cast <CClientPed*>(entity)->SetOnFire (onFire);
2525+ return true ;
2526+ }
2527+ case CCLIENTVEHICLE:
2528+ {
2529+ static_cast <CClientVehicle*>(entity)->SetOnFire (onFire);
2530+ return true ;
2531+ }
2532+ case CCLIENTOBJECT:
2533+ case CCLIENTWEAPON:
2534+ {
2535+ static_cast <CClientObject*>(entity)->SetOnFire (onFire);
2536+ return true ;
2537+ }
2538+ }
2539+
2540+ return false ;
2541+ }
2542+
25122543int CLuaElementDefs::IsElementLowLod (lua_State* luaVM)
25132544{
25142545 // bool isElementLowLOD ( element theElement )
@@ -2604,3 +2635,18 @@ int CLuaElementDefs::IsElementWaitingForGroundToLoad(lua_State* luaVM)
26042635 lua_pushboolean (luaVM, false );
26052636 return 1 ;
26062637}
2638+
2639+ bool CLuaElementDefs::IsElementOnFire (CClientEntity* entity)
2640+ {
2641+ switch (entity->GetType ())
2642+ {
2643+ case CCLIENTPED:
2644+ return static_cast <CClientPed*>(entity)->IsOnFire ();
2645+ case CCLIENTVEHICLE:
2646+ return static_cast <CClientVehicle*>(entity)->IsOnFire ();
2647+ case CCLIENTOBJECT:
2648+ return static_cast <CClientObject*>(entity)->IsOnFire ();
2649+ }
2650+
2651+ return false ;
2652+ }
0 commit comments