101 lines
3.5 KiB
Ucode
101 lines
3.5 KiB
Ucode
/**
|
|
* ParticleModuleBeamSource
|
|
*
|
|
* This module implements a single source for a beam emitter.
|
|
*
|
|
* Copyright 1998-2013 Epic Games, Inc. All Rights Reserved.
|
|
*/
|
|
|
|
class ParticleModuleBeamSource extends ParticleModuleBeamBase
|
|
native(Particle)
|
|
editinlinenew
|
|
hidecategories(Object);
|
|
|
|
/** The method flag. */
|
|
var(Source) Beam2SourceTargetMethod SourceMethod;
|
|
|
|
/** The strength of the tangent from the source point for each beam. */
|
|
var(Source) name SourceName;
|
|
|
|
`if(`__TW_BEAM_SOCKETS_)
|
|
/** Specific socket name to attach to if using Actor method */
|
|
var(Source) name SourceSocketName;
|
|
`endif
|
|
|
|
/** Whether to treat the as an absolute position in world space. */
|
|
var(Source) bool bSourceAbsolute;
|
|
|
|
/** Default source-point to use. */
|
|
var(Source) rawdistributionvector Source;
|
|
|
|
/** Whether to lock the source to the life of the particle. */
|
|
var(Source) bool bLockSource;
|
|
|
|
/** The method to use for the source tangent. */
|
|
var(Source) Beam2SourceTargetTangentMethod SourceTangentMethod;
|
|
|
|
/** The tangent for the source point for each beam. */
|
|
var(Source) rawdistributionvector SourceTangent;
|
|
|
|
/** Whether to lock the source to the life of the particle. */
|
|
var(Source) bool bLockSourceTangent;
|
|
|
|
/** The strength of the tangent from the source point for each beam. */
|
|
var(Source) rawdistributionfloat SourceStrength;
|
|
|
|
/** Whether to lock the source to the life of the particle. */
|
|
var(Source) bool bLockSourceStength;
|
|
|
|
cpptext
|
|
{
|
|
virtual void Spawn(FParticleEmitterInstance* Owner, INT Offset, FLOAT SpawnTime);
|
|
virtual void Update(FParticleEmitterInstance* Owner, INT Offset, FLOAT DeltaTime);
|
|
virtual UINT RequiredBytes(FParticleEmitterInstance* Owner = NULL);
|
|
virtual void PostEditChangeProperty(FPropertyChangedEvent& PropertyChangedEvent);
|
|
|
|
virtual void AutoPopulateInstanceProperties(UParticleSystemComponent* PSysComp);
|
|
|
|
void GetDataPointers(FParticleEmitterInstance* Owner, const BYTE* ParticleBase,
|
|
INT& CurrentOffset,
|
|
FBeamParticleSourceTargetPayloadData*& ParticleSource,
|
|
FBeamParticleSourceBranchPayloadData*& BranchSource);
|
|
void GetDataPointerOffsets(FParticleEmitterInstance* Owner, const BYTE* ParticleBase,
|
|
INT& CurrentOffset, INT& ParticleSourceOffset, INT& BranchSourceOffset);
|
|
|
|
UBOOL ResolveSourceData(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
|
|
{
|
|
SourceMethod=PEB2STM_Default
|
|
|
|
SourceName="None"
|
|
bSourceAbsolute=false
|
|
|
|
Begin Object Class=DistributionVectorConstant Name=DistributionSource
|
|
Constant=(X=50,Y=50,Z=50)
|
|
End Object
|
|
Source=(Distribution=DistributionSource)
|
|
|
|
SourceTangentMethod=PEB2STTM_Direct
|
|
|
|
Begin Object Class=DistributionVectorConstant Name=DistributionSourceTangent
|
|
Constant=(X=1,Y=0,Z=0)
|
|
End Object
|
|
SourceTangent=(Distribution=DistributionSourceTangent)
|
|
|
|
Begin Object Class=DistributionFloatConstant Name=DistributionSourceStrength
|
|
Constant=25.0
|
|
End Object
|
|
SourceStrength=(Distribution=DistributionSourceStrength)
|
|
}
|