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

147 lines
3.9 KiB
Ucode

/**
* Copyright 1998-2013 Epic Games, Inc. All Rights Reserved.
* DO NOT USE, try the NxForceField classes instead!
*/
class RB_CylindricalForceActor extends RigidBodyBase
native(ForceField)
placeable;
/** Used to preview the radius of the force. */
var() DrawCylinderComponent RenderComponent;
/** Strength of the force applied by this actor.*/
var() interp float RadialStrength;
/** Rotational strength of the force applied around the cylinder axis.*/
var() interp float RotationalStrength;
/** Strength of the force applied along the cylinder axis */
var() interp float LiftStrength;
/** Lift falloff height, 0-1, lift starts to fall off in a linear way above this height */
var() interp float LiftFalloffHeight;
/** Velocity above which the radial force is ignored. */
var() interp float EscapeVelocity;
/** Radius of influence of the force at the bottom of the cylinder. */
var() interp float ForceRadius;
/** Radius of the force field at the top */
var() interp float ForceTopRadius;
/** Height of force cylinder */
var() interp float ForceHeight;
/** Offset from the actor base to the center of the force field */
var() interp float HeightOffset;
/** Indicates whether the force is active at the moment. */
var() bool bForceActive;
/** Apply force field to cloth */
var() bool bForceApplyToCloth;
/** Apply force field to fluid */
var() bool bForceApplyToFluid;
/** Apply force field to rigid bodies */
var() bool bForceApplyToRigidBodies;
/** Apply force field to projectiles like rockets */
var() bool bForceApplyToProjectiles;
//TODO: Remove the above booleans and just use the channels
/** Which types of object to apply this force field to */
var() const RBCollisionChannelContainer CollideWithChannels;
cpptext
{
virtual void PostEditChangeProperty(FPropertyChangedEvent& PropertyChangedEvent);
virtual void TickSpecial(FLOAT DeltaSeconds);
#if WITH_EDITOR
virtual void EditorApplyScale(const FVector& DeltaScale, const FMatrix& ScaleMatrix, const FVector* PivotLocation, UBOOL bAltDown, UBOOL bShiftDown, UBOOL bCtrlDown);
#endif
}
replication
{
if (bNetDirty)
bForceActive;
}
/** Handling Toggle event from Kismet. */
simulated function OnToggle(SeqAct_Toggle inAction)
{
if(inAction.InputLinks[0].bHasImpulse)
{
bForceActive = true;
}
else if(inAction.InputLinks[1].bHasImpulse)
{
bForceActive = false;
}
else if(inAction.InputLinks[2].bHasImpulse)
{
bForceActive = !bForceActive;
}
SetForcedInitialReplicatedProperty(Property'Engine.RB_CylindricalForceActor.bForceActive', (bForceActive == default.bForceActive));
}
defaultproperties
{
Begin Object Class=DrawCylinderComponent Name=DrawCylinder0
CylinderRadius=200.0
CylinderTopRadius=200.0
CylinderHeight=200.0
bDrawOnlyIfSelected=True
End Object
RenderComponent=DrawCylinder0
Components.Add(DrawCylinder0)
Begin Object Class=SpriteComponent Name=Sprite
Sprite=Texture2D'EditorResources.S_RadForce'
HiddenGame=True
AlwaysLoadOnClient=False
AlwaysLoadOnServer=False
SpriteCategoryName="Physics"
End Object
Components.Add(Sprite)
TickGroup=TG_PreAsyncWork
ForceRadius=200.0
ForceTopRadius=200.0
ForceHeight=200.0
LiftFalloffHeight=0.0
EscapeVelocity=10000.0
RemoteRole=ROLE_SimulatedProxy
bNoDelete=true
bAlwaysRelevant=true
NetUpdateFrequency=0.1
bOnlyDirtyReplication=true
bForceApplyToCloth=True
bForceApplyToFluid=True
bForceApplyToRigidBodies=True
bForceApplyToProjectiles=False
CollideWithChannels={(
Default=True,
Pawn=True,
Vehicle=True,
Water=True,
GameplayPhysics=True,
EffectPhysics=True,
Untitled1=True,
Untitled2=True,
Untitled3=True,
FluidDrain=True,
Cloth=True
)}
}