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
|