50 lines
1.2 KiB
Ucode
50 lines
1.2 KiB
Ucode
|
// NVCHANGE_BEGIN: TSC - adding module for spawning force fields
|
||
|
/**
|
||
|
* Copyright 1998-2011 Epic Games, Inc. All Rights Reserved.
|
||
|
*/
|
||
|
class ParticleModuleForceFieldBase extends ParticleModule
|
||
|
native(Particle)
|
||
|
editinlinenew
|
||
|
hidecategories(Object)
|
||
|
abstract;
|
||
|
|
||
|
var(ForceFieldComponent) NxForceFieldComponent ForceField;
|
||
|
|
||
|
|
||
|
event NxForceFieldComponent GetForceFieldInstance(vector Location)
|
||
|
{
|
||
|
local NxForceFieldComponent FF;
|
||
|
|
||
|
FF = new ForceField.Class(ForceField);
|
||
|
FF.SetTickGroup(TG_PostAsyncWork);
|
||
|
|
||
|
// the FF needs to be colocated with the particle system component (Location), in case its offset
|
||
|
FF.SetTranslation(Location + FF.Translation);
|
||
|
|
||
|
return FF;
|
||
|
}
|
||
|
|
||
|
cpptext
|
||
|
{
|
||
|
struct FPayload
|
||
|
{
|
||
|
BOOL bSpawned;
|
||
|
FLOAT LastTime;
|
||
|
};
|
||
|
|
||
|
virtual UINT RequiredBytesPerInstance(FParticleEmitterInstance* Owner = NULL);
|
||
|
virtual UINT PrepPerInstanceBlock(FParticleEmitterInstance* Owner, void* InstData);
|
||
|
|
||
|
virtual void Spawn(FParticleEmitterInstance* Owner, INT Offset, FLOAT SpawnTime);
|
||
|
virtual void Update(FParticleEmitterInstance* Owner, INT Offset, FLOAT DeltaTime);
|
||
|
}
|
||
|
|
||
|
|
||
|
defaultproperties
|
||
|
{
|
||
|
bSpawnModule=true
|
||
|
bUpdateModule=true
|
||
|
}
|
||
|
|
||
|
// NVCHANGE_END: TSC - adding module for spawning force fields
|