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

103 lines
3.4 KiB
Ucode

/**
* ParticleModuleBeamTarget
*
* This module implements a single target for a beam emitter.
*
* Copyright 1998-2013 Epic Games, Inc. All Rights Reserved.
*/
class ParticleModuleBeamTarget extends ParticleModuleBeamBase
native(Particle)
editinlinenew
hidecategories(Object);
/** The method flag. */
var(Target) Beam2SourceTargetMethod TargetMethod;
/** The target point sources of each beam, when using the end point method. */
var(Target) name TargetName;
`if(`__TW_BEAM_SOCKETS_)
/** Specific socket name to attach to if using Actor method */
var(Target) name TargetSocketName;
`endif
/** Default target-point information to use if the beam method is endpoint. */
var(Target) rawdistributionvector Target;
/** Whether to treat the as an absolute position in world space. */
var(Target) bool bTargetAbsolute;
/** Whether to lock the Target to the life of the particle. */
var(Target) bool bLockTarget;
/** The method to use for the Target tangent. */
var(Target) Beam2SourceTargetTangentMethod TargetTangentMethod;
/** The tangent for the Target point for each beam. */
var(Target) rawdistributionvector TargetTangent;
/** Whether to lock the Target to the life of the particle. */
var(Target) bool bLockTargetTangent;
/** The strength of the tangent from the Target point for each beam. */
var(Target) rawdistributionfloat TargetStrength;
/** Whether to lock the Target to the life of the particle. */
var(Target) bool bLockTargetStength;
/** Default target-point information to use if the beam method is endpoint. */
var(Target) float LockRadius;
cpptext
{
virtual void Spawn(FParticleEmitterInstance* Owner, INT Offset, FLOAT SpawnTime);
virtual void Update(FParticleEmitterInstance* Owner, INT Offset, FLOAT DeltaTime);
virtual void PostEditChangeProperty(FPropertyChangedEvent& PropertyChangedEvent);
virtual void AutoPopulateInstanceProperties(UParticleSystemComponent* PSysComp);
void GetDataPointers(FParticleEmitterInstance* Owner, const BYTE* ParticleBase,
INT& CurrentOffset,
FBeamParticleSourceTargetPayloadData*& ParticleSource);
UBOOL ResolveTargetData(FParticleBeam2EmitterInstance* BeamInst,
FBeam2TypeDataPayload* BeamData, const BYTE* ParticleBase,
INT& CurrentOffset, INT ParticleIndex, UBOOL bSpawning,
FBeamParticleModifierPayloadData* ModifierData);
/**
* Retrieve the ParticleSysParams associated with this module.
*
* @param ParticleSysParamList The list of FParticleSysParams to add to
*/
virtual void GetParticleSysParamsUtilized(TArray<FString>& ParticleSysParamList);
}
defaultproperties
{
TargetMethod=PEB2STM_Default
TargetName="None"
bTargetAbsolute=false
Begin Object Class=DistributionVectorConstant Name=DistributionTarget
Constant=(X=50,Y=50,Z=50)
End Object
Target=(Distribution=DistributionTarget)
TargetTangentMethod=PEB2STTM_Direct
Begin Object Class=DistributionVectorConstant Name=DistributionTargetTangent
Constant=(X=1,Y=0,Z=0)
End Object
TargetTangent=(Distribution=DistributionTargetTangent)
Begin Object Class=DistributionFloatConstant Name=DistributionTargetStrength
Constant=25.0
End Object
TargetStrength=(Distribution=DistributionTargetStrength)
LockRadius=10.0
}