1
0
KF2-Dev-Scripts/KFGame/Classes/KFWireConnector.uc
2020-12-13 18:01:13 +03:00

74 lines
2.2 KiB
Ucode

//=============================================================================
// KFWireConnector
//=============================================================================
// Beam emitter wire system along with KFWireStart
//=============================================================================
// Killing Floor 2
// Copyright (C) 2015 Tripwire Interactive LLC
//============================================================================
class KFWireConnector extends Emitter
notplaceable
native(Effect);
/** Beam tangent at source and target locations. Typically one is negative of other */
var() vector StartTangent;
var() vector EndTangent;
// @todo: SetBeamTessellationFactor() is missing implementation!
var float TessellationFactor;
cpptext
{
// For editor preview of beam properties
virtual void PostEditChangeProperty(FPropertyChangedEvent& PropertyChangedEvent);
virtual void PostEditChangeChainProperty( struct FPropertyChangedChainEvent& PropertyChangedEvent );
// Apply custom beam properties
virtual void EditorSelectionChange( UBOOL bSelected );
/** Fix up source/target actors */
virtual void PostDuplicate();
};
/** One-time init */
native function ApplyBeamProperties();
simulated event PostBeginPlay()
{
Super.PostBeginPlay();
// If Super didn't sentence us to death
if ( !bTickIsDisabled )
{
ApplyBeamProperties();
// Frame delay. After the PSC has been updated once we're
// basically static geometry and can stop ticking
SetTimer(0.01f, false);
}
}
// Disable tick after one frame
simulated function Timer()
{
SetTickIsDisabled(true);
}
defaultproperties
{
Begin Object Name=Sprite
Sprite=Texture2D'FX_Environmental_TEX.WireTool.KF_WireTool_Icon'
End Object
Begin Object Name=ParticleSystemComponent0
Template=ParticleSystem'FX_Environmental_EMIT_TWO.FX_Cable_beam_01'
InstanceParameters(0)={(Name=WireStart, ParamType=PSPT_Actor)}
InstanceParameters(1)={(Name=WireEnd, ParamType=PSPT_Actor)}
End Object
// remove some things we don't need from Emitter.uc
SupportedEvents.Empty
Components.Remove(ArrowComponent0)
//Components.Remove(ParticleSystemComponent0)
}