63 lines
2.3 KiB
Ucode
63 lines
2.3 KiB
Ucode
/**
|
|
* Interface for actors that use NavigationHandle
|
|
* - implementations of this interface describe what constraints and parameters to use when searching for a path across the nav mesh
|
|
* Copyright 1998-2013 Epic Games, Inc. All Rights Reserved.
|
|
*/
|
|
interface Interface_NavigationHandle
|
|
native;
|
|
|
|
cpptext
|
|
{
|
|
/** >>>>> here lie functions which take input, and thus can not be cached */
|
|
virtual UBOOL CanCoverSlip(class ACoverLink* Link, INT SlotIdx) { return FALSE; }
|
|
|
|
/**
|
|
* returns the offset from the edge move point this entity should move toward (e.g. how high off the ground we should move to)
|
|
* @param Edge - the edge we're moving to
|
|
* @return - the offset to use
|
|
*/
|
|
virtual FVector GetEdgeZAdjust(struct FNavMeshEdgeBase* Edge)=0;
|
|
|
|
/**
|
|
* allows entities to do custom validation before OK'ing mantle edges
|
|
* @param Edge - the edge we're verifying
|
|
* @return TRUE if the passed edge is OK to traverse
|
|
*/
|
|
virtual UBOOL CheckMantleValidity(struct FNavMeshMantleEdge* Edge){ return TRUE; }
|
|
/*** <<<<<< */
|
|
|
|
|
|
/**
|
|
* this function is responsible for setting all the relevant parmeters used for pathfinding
|
|
* @param out_ParamCache - the output struct to populate params in
|
|
* @NOTE: ALL Params FNavMeshPathParams should be populated
|
|
*
|
|
*/
|
|
virtual void SetupPathfindingParams( struct FNavMeshPathParams& out_ParamCache )=0;
|
|
|
|
/**
|
|
* Called from FindPath() at the beginning of a path search to give this entity a chance to initialize transient data
|
|
*/
|
|
virtual void InitForPathfinding()=0;
|
|
|
|
|
|
/**
|
|
* when this entity is using an edge (e.g. it has been marked active and is in this handle's pathcache) this function allows
|
|
* extra cost to be added for other entities trying to use that edge. (e.g. to keep guys from using the same path)
|
|
* @param Edge - the edge we're about to mark as active
|
|
*/
|
|
virtual INT ExtraEdgeCostToAddWhenActive(FNavMeshEdgeBase* Edge) { return 0; }
|
|
|
|
/**
|
|
* DebugLog function which is called to log information specific to this AI (call NAVHANDLE_DEBUG_LOG macro, don't call this directly)
|
|
* @param LogText - text to log for this AI
|
|
*/
|
|
virtual void DebugLogInternal(const TCHAR* LogText) {}
|
|
}
|
|
|
|
/**
|
|
* this event is called when an edge is deleted that this handle is actively using
|
|
*/
|
|
event NotifyPathChanged();
|
|
|