DayZ 1.27
DayZ Explorer by KGB
 
Загрузка...
Поиск...
Не найдено

◆ ApplyForce()

void ActionPushCarCB::ApplyForce ( ActionPushObjectData actionData)
inlineprotected

См. определение в файле ActionPushCar.c строка 30

31 {
32 m_ActionDataPushCar = ActionPushCarData.Cast(m_ActionData);
33 CarScript car = CarScript.Cast(actionData.m_Object);
34
35 m_ActionDataPushCar.m_HorizontalDirectionRandom = Math.RandomFloat(1.0, 3.5);
36 m_ActionDataPushCar.m_VerticalDirectionRandom = Math.RandomFloat(-0.5, 0.5);
37
38 float bodyMass = dBodyGetMass(car);
39 float invBodyMass = 1.0 / bodyMass;
41
42 float easedProgress = Easing.EaseInOutSine(actionData.m_ActionComponent.GetProgress());
43
44 vector impulse = car.GetDirection() * force * (float)m_ActionDataPushCar.m_PushDirection;
45 impulse = impulse * invBodyMass;
46 impulse[0] = impulse[0] * m_ActionDataPushCar.m_HorizontalDirectionRandom;
47 impulse[1] = impulse[1] * m_ActionDataPushCar.m_VerticalDirectionRandom;
48 impulse = impulse * easedProgress;
49
50 actionData.m_Player.DepleteStamina(EStaminaModifiers.PUSH_CAR);
51
52 dBodyApplyImpulseAt(car, impulse, car.ModelToWorld(car.GetEnginePos()));
53 }
void CarScript()
Определения CarScript.c:280
EStaminaModifiers
Определения EStaminaModifiers.c:2
float PUSH_FORCE_IMPULSE_INCREMENT
Определения ActionPushCar.c:21
ActionPushCarData m_ActionDataPushCar
Определения ActionPushCar.c:23
override float GetPushForceCoefficientMultiplier()
Определения CivilianSedan.c:421
proto void dBodyApplyImpulseAt(notnull IEntity body, vector impulse, vector pos)
Applies impuls on a pos position in world coordinates.
proto native float dBodyGetMass(notnull IEntity ent)

Перекрестные ссылки dBodyApplyImpulseAt(), dBodyGetMass(), Easing::EaseInOutSine(), CarScript::GetPushForceCoefficientMultiplier(), m_ActionDataPushCar, PUSH_FORCE_IMPULSE_INCREMENT и Math::RandomFloat().