1
0
KF2-Dev-Scripts/Engine/Classes/AISwitchablePylon.uc

57 lines
1.6 KiB
Ucode
Raw Permalink Normal View History

2020-12-13 15:01:13 +00:00
//=============================================================================
// AISwitchablePylon
//
// represents a mesh which is turned on/off via an AI triggerable switch at runtime.. e.g. an electronic gate, or a laser fence
//
// Copyright 1998-2013 Epic Games, Inc. All Rights Reserved.
//=============================================================================
class AISwitchablePylon extends Pylon
placeable
native(inherit);
cpptext
{
/** returns TRUE if the path from Poly back to start has an edge which is linked to a switch which is linked to this
* pylon
* @param Edge - the edge linking Poly to the next neighbor in question
* @param Poly - the source poly (the current end-of-line poly in the chain)
* @return - TRUE if the previousPath chain of Poly has a switch linked to this pylon in it
*/
UBOOL HasSwitchLinkedToMeInPath(struct FNavMeshEdgeBase* Edge, struct FNavMeshPolyBase* Poly);
// overidden to deny access to edges when we're disabled and the path doesn't incorporate a switch linked to this pylon
virtual UBOOL CostFor( const FNavMeshPathParams& PathParams,
const FVector& PreviousPoint,
FVector& out_PathEdgePoint,
struct FNavMeshEdgeBase* Edge,
struct FNavMeshPolyBase* SourcePoly,
INT& out_Cost);
}
var() bool bOpen;
function PostBeginPlay()
{
Super.PostBeginPlay();
SetEnabled(bOpen);
}
event SetEnabled(bool bEnabled)
{
bOpen = bEnabled;
bForceObstacleMeshCollision = !bOpen;
}
event bool IsEnabled()
{
return bOpen;
}
defaultproperties
{
bNeedsCostCheck=true
bRouteBeginPlayEvenIfStatic=true
}