74 lines
2.7 KiB
Ucode
74 lines
2.7 KiB
Ucode
/**
|
|
* ParticleModuleTrailSpawn
|
|
* The trail spawn module.
|
|
*
|
|
* Copyright 1998-2013 Epic Games, Inc. All Rights Reserved.
|
|
*/
|
|
class ParticleModuleTrailSpawn extends ParticleModuleTrailBase
|
|
native(Particle)
|
|
editinlinenew
|
|
hidecategories(Object);
|
|
|
|
//*************************************************************************************************
|
|
// Trail Spawning Variables
|
|
//*************************************************************************************************
|
|
enum ETrail2SpawnMethod
|
|
{
|
|
/** Use the emitter spawn settings */
|
|
PET2SM_Emitter,
|
|
/** Spawn based on the velocity of the source */
|
|
PET2SM_Velocity,
|
|
/** Spawn base on the distanced covered by the source */
|
|
PET2SM_Distance
|
|
};
|
|
|
|
/**
|
|
* This parameter will map a given distance range [MinInput..MaxInput]
|
|
* to the given spawn values [MinOutput..MaxOutput]
|
|
* Anything below the MinOutput will result in no particles being spawned
|
|
* NOTE: The distance travelled is accumulated. If it takes 10 frames to travel the min.
|
|
* distance, then MinOutput particles will be spawned every 10 frames...
|
|
* IMPORTANT! This type must be a floatparticleparam type, but nothing is forcing it now!
|
|
*/
|
|
var(Spawn) export noclear distributionfloatparticleparameter SpawnDistanceMap;
|
|
|
|
/**
|
|
* The minimum velocity the source must be travelling at in order to spawn particles.
|
|
*/
|
|
var(Spawn) float MinSpawnVelocity;
|
|
|
|
//*************************************************************************************************
|
|
// C++ Text
|
|
//*************************************************************************************************
|
|
cpptext
|
|
{
|
|
virtual void PostEditChangeProperty(FPropertyChangedEvent& PropertyChangedEvent);
|
|
virtual void PostLoad();
|
|
|
|
// Trail
|
|
// virtual void GetDataPointers(FParticleEmitterInstance* Owner, const BYTE* ParticleBase,
|
|
// INT& CurrentOffset, FBeam2TypeDataPayload*& BeamData, FVector*& InterpolatedPoints,
|
|
// FLOAT*& NoiseRate, FVector*& TargetNoisePoints, FVector*& CurrentNoisePoints,
|
|
// FLOAT*& TaperValues);
|
|
|
|
UINT GetSpawnCount(FParticleTrail2EmitterInstance* TrailInst, FLOAT DeltaTime);
|
|
}
|
|
|
|
//*************************************************************************************************
|
|
// Default properties
|
|
//*************************************************************************************************
|
|
defaultproperties
|
|
{
|
|
Begin Object Class=DistributionFloatParticleParameter Name=DistributionSpawnDistanceMap
|
|
ParameterName="None"
|
|
MinInput=10.0
|
|
MaxInput=100.0
|
|
MinOutput=1.0
|
|
MaxOutput=5.0
|
|
Constant=1.0
|
|
End Object
|
|
SpawnDistanceMap=DistributionSpawnDistanceMap
|
|
|
|
MinSpawnVelocity=0.0
|
|
}
|