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

71 lines
1.8 KiB
Ucode
Raw Normal View History

2020-12-13 15:01:13 +00:00
/**
* Copyright 1998-2013 Epic Games, Inc. All Rights Reserved.
*/
class NavMeshPath_Toward extends NavMeshPathConstraint
native(AI);
/** when TRUE we will bias against paths which leave our high level path pylon list (as marked by bPylonInHighLevelPath on the pylon ) */
var bool bBiasAgainstHighLevelPath;
/** when above is true, how much cost to apply to the heuristic when an edge leaves the high level path */
var float OutOfHighLevelPathBias;
cpptext
{
// Interface
virtual UBOOL EvaluatePath( FNavMeshEdgeBase* Edge, FNavMeshEdgeBase* PredecessorEdge, FNavMeshPolyBase* SrcPoly, FNavMeshPolyBase* DestPoly, const FNavMeshPathParams& PathParams, INT& out_PathCost, INT& out_HeuristicCost, const FVector& EdgePoint );
}
/** Goal trying to find path toward */
var Actor GoalActor;
/** Goal trying to find path toward */
var Vector GoalPoint;
static function bool TowardGoal( NavigationHandle NavHandle, Actor Goal )
{
local NavMeshPath_Toward Con;
if( NavHandle != None && Goal != None )
{
Con = NavMeshPath_Toward(NavHandle.CreatePathConstraint(default.class));
if( Con != None )
{
Con.GoalActor = Goal;
NavHandle.AddPathConstraint( Con );
return TRUE;
}
}
return FALSE;
}
static function bool TowardPoint( NavigationHandle NavHandle, Vector Point )
{
local NavMeshPath_Toward Con;
if( NavHandle != None && Point != Vect(0,0,0) )
{
Con = NavMeshPath_Toward(NavHandle.CreatePathConstraint(default.class));
if( Con != None )
{
Con.GoalPoint = Point;
NavHandle.AddPathConstraint( Con );
return TRUE;
}
}
return FALSE;
}
function Recycle()
{
Super.Recycle();
GoalActor=none;
GoalPoint=default.GoalPoint;
}
defaultproperties
{
bBiasAgainstHighLevelPath=true
OutOfHighLevelPathBias=5000
}