45 lines
1.6 KiB
Ucode
45 lines
1.6 KiB
Ucode
|
//=============================================================================
|
||
|
// KFParticleSystemComponent
|
||
|
//=============================================================================
|
||
|
// Special Particle system component that can handle rendering at a different FOV than the the world.
|
||
|
//=============================================================================
|
||
|
// Killing Floor 2
|
||
|
// Copyright (C) 2015 Tripwire Interactive LLC
|
||
|
// Based on UDKParticleSystemComponent Copyright 1998-2012 Epic Games, Inc.
|
||
|
// - Andrew "Strago" Ladenberger
|
||
|
//=============================================================================
|
||
|
|
||
|
class KFParticleSystemComponent extends ParticleSystemComponent
|
||
|
native(Effect);
|
||
|
|
||
|
/** Used when a custom FOV is set to make sure the particles render properly using the custom FOV */
|
||
|
var public{private} const float FOV;
|
||
|
var public{private} const bool bHasSavedScale3D;
|
||
|
var public{private} const vector SavedScale3D;
|
||
|
|
||
|
|
||
|
cpptext
|
||
|
{
|
||
|
// SABER CODE BEGIN [mfalcon] Moved custom FOV calculations to render thread.
|
||
|
/** Creates a FKFParticleSystemSceneProxy (defined in UTWeapon.cpp) */
|
||
|
virtual FPrimitiveSceneProxy* CreateSceneProxy() override;
|
||
|
// SABER CODE END
|
||
|
|
||
|
private:
|
||
|
/** Override LocalToWorld with custom FOV changes */
|
||
|
virtual void SetTransformedToWorld();
|
||
|
virtual void InitParticles();
|
||
|
}
|
||
|
|
||
|
|
||
|
/** This changes the FOV used for rendering the particle system component. A value of 0 means to use the default. */
|
||
|
native final function SetFOV(float NewFOV);
|
||
|
|
||
|
defaultproperties
|
||
|
{
|
||
|
bAcceptsLights=false
|
||
|
bOverrideLODMethod=true
|
||
|
LODMethod=PARTICLESYSTEMLODMETHOD_DirectSet
|
||
|
SecondsBeforeInactive=1.0f
|
||
|
}
|