74 lines
2.2 KiB
Ucode
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)
|
|
}
|