147 lines
3.9 KiB
Ucode
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
|
||
|
)}
|
||
|
|
||
|
}
|