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

80 lines
2.0 KiB
Ucode

/**
* Encapsulates a RB_RadialImpulseComponent to let a level designer place one in a level.
* When toggled from Kismet, will apply a kick to surrounding physics objects within blast radius.
* @see AddRadialImpulse
* Copyright 1998-2013 Epic Games, Inc. All Rights Reserved.
*/
class RB_RadialImpulseActor extends RigidBodyBase
native(Physics)
placeable;
var DrawSphereComponent RenderComponent;
var() const editconst RB_RadialImpulseComponent ImpulseComponent;
var repnotify byte ImpulseCount;
replication
{
if (bNetDirty)
ImpulseCount;
}
/** Handling Toggle event from Kismet. */
simulated function OnToggle(SeqAct_Toggle inAction)
{
if (inAction.InputLinks[0].bHasImpulse)
{
ImpulseComponent.FireImpulse( Location );
ImpulseCount++;
bForceNetUpdate = TRUE;
}
}
simulated event ReplicatedEvent(name VarName)
{
if (VarName == 'ImpulseCount')
{
ImpulseComponent.FireImpulse(Location);
}
}
cpptext
{
#if WITH_EDITOR
// AActor interface.
virtual void EditorApplyScale(const FVector& DeltaScale, const FMatrix& ScaleMatrix, const FVector* PivotLocation, UBOOL bAltDown, UBOOL bShiftDown, UBOOL bCtrlDown);
#endif
}
defaultproperties
{
Begin Object Class=DrawSphereComponent Name=DrawSphere0
bDrawOnlyIfSelected=True
AlwaysLoadOnClient=False
AlwaysLoadOnServer=False
End Object
RenderComponent=DrawSphere0
Components.Add(DrawSphere0)
Begin Object Class=RB_RadialImpulseComponent Name=ImpulseComponent0
PreviewSphere=DrawSphere0
End Object
ImpulseComponent=ImpulseComponent0
Components.Add(ImpulseComponent0)
Begin Object Class=SpriteComponent Name=Sprite
Sprite=Texture2D'EditorResources.S_RadImpulse'
HiddenGame=True
AlwaysLoadOnClient=False
AlwaysLoadOnServer=False
SpriteCategoryName="Physics"
End Object
Components.Add(Sprite)
bEdShouldSnap=true
RemoteRole=ROLE_SimulatedProxy
bNoDelete=true
bAlwaysRelevant=true
NetUpdateFrequency=0.1
bOnlyDirtyReplication=true
}