1
0
KF2-Dev-Scripts/Engine/Classes/RB_Spring.uc
2020-12-13 18:01:13 +03:00

78 lines
2.6 KiB
Ucode

/**
* Copyright 1998-2013 Epic Games, Inc. All Rights Reserved.
*/
class RB_Spring extends ActorComponent
native(Physics);
cpptext
{
// ActorComponent interface
virtual void Tick(FLOAT DeltaTime);
virtual void TermComponentRBPhys(FRBPhysScene* InScene);
}
/** PrimitiveComponent attached to one end of this spring. */
var const PrimitiveComponent Component1;
/** Optional name of bone inside Component1 that spring is attached to (for PhysicsAsset case). */
var const name BoneName1;
/** PrimitiveComponent attached to other end of this spring. */
var const PrimitiveComponent Component2;
/** Optional name of bone inside Component2 that spring is attached to (for PhysicsAsset case). */
var const name BoneName2;
/** Physics scene index. */
var native const int SceneIndex;
/** Whether we are in the hardware or software scene. */
var native const bool bInHardware;
/** Internal phyiscs engine use. */
var native const pointer SpringData;
/** Zeroed when SetComponents is called, this indicates the time the spring has been acting. */
var native const float TimeSinceActivation;
/** Minimum mass of bodies connected by spring. */
var const float MinBodyMass;
/** Spring extension at which maximum spring force is applied. Force linear ramps up to this point and is constant beyond it. */
var() float SpringSaturateDist;
/** Max linear force applied by spring. Multiplied by SpringMaxForceTimeScale before being passed to simulation. */
var() float SpringMaxForce;
/** If bEnableForceMassRatio is true, this is maximum allowed ratio between MinBodyMass and the applied spring force. */
var() float MaxForceMassRatio;
/** Allows you to limit the maximum force applied by spring based on MinBodyMass. */
var() bool bEnableForceMassRatio;
/**
* Allows scaling of spring force over time. Time is zeroed when SetComponents is called,
* and this curve is a scaling of SpringMaxForce over time from then (in seconds).
*/
var() InterpCurveFloat SpringMaxForceTimeScale;
/** Linear velocity (along spring direction) at which damping force is maximum. */
var() float DampSaturateVel;
/** Maximum velocity damping force applied between sprung bodies. */
var() float DampMaxForce;
native function SetComponents(PrimitiveComponent InComponent1, Name InBoneName1, vector Position1, PrimitiveComponent InComponent2, Name InBoneName2, vector Position2 );
native function Clear();
defaultproperties
{
// Various physics related items need to be ticked pre physics update
TickGroup=TG_PreAsyncWork
SpringMaxForceTimeScale=(Points=((InVal=0,OutVal=1.0)))
}