82 lines
1.9 KiB
Ucode
82 lines
1.9 KiB
Ucode
|
//=============================================================================
|
||
|
// DynamicPylon
|
||
|
//
|
||
|
// Represents a navigation mesh which is based on a moveable actor
|
||
|
//
|
||
|
// Copyright 1998-2013 Epic Games, Inc. All Rights Reserved.
|
||
|
//=============================================================================
|
||
|
class DynamicPylon extends Pylon
|
||
|
placeable
|
||
|
native(inherit);
|
||
|
|
||
|
// indicates this Pylon is moving (and thus not connected to the rest of the mesh)
|
||
|
var bool bMoving;
|
||
|
|
||
|
function PostBeginPlay()
|
||
|
{
|
||
|
super.PostBeginPlay();
|
||
|
RebuildDynamicEdges();
|
||
|
}
|
||
|
cpptext
|
||
|
{
|
||
|
/**
|
||
|
* indicates whether static cross-pylon edges should be built for this pylon (pylons that move should return false)
|
||
|
*/
|
||
|
virtual UBOOL NeedsStaticCrossPylonEdgesBuilt(){ return FALSE; }
|
||
|
|
||
|
|
||
|
/**
|
||
|
* Called from UpdateComponentsInternal when a transform update is needed (when this pylon has moved)
|
||
|
*/
|
||
|
virtual void PylonMoved();
|
||
|
|
||
|
virtual void PreBeginPlay();
|
||
|
|
||
|
virtual void FindBase();
|
||
|
|
||
|
/**
|
||
|
* is this pylon compatible with dynamic obstacles? (e.g. moving meshes aren't)
|
||
|
*/
|
||
|
virtual UBOOL CompatibleWithDynamicObstacles(){return FALSE;}
|
||
|
|
||
|
void ApplyDynamicSnap();
|
||
|
|
||
|
#if WITH_EDITOR
|
||
|
virtual void CheckForErrors();
|
||
|
#endif
|
||
|
};
|
||
|
|
||
|
/**
|
||
|
* will wipe all dynamic edges for this pylon, and rebuild them from the currently position (use this sparingly, it's not cheap)
|
||
|
* good time to call this is after the pylon is finished moving, or comes to rest
|
||
|
*/
|
||
|
native function RebuildDynamicEdges();
|
||
|
|
||
|
/**
|
||
|
* will remove all dynamic edges associated with this pylon
|
||
|
*/
|
||
|
native function FlushDynamicEdges();
|
||
|
|
||
|
event StartedMoving()
|
||
|
{
|
||
|
`log(self@GetFuncName()@"-----------");
|
||
|
bMoving=true;
|
||
|
FlushDynamicEdges();
|
||
|
}
|
||
|
|
||
|
event StoppedMoving()
|
||
|
{
|
||
|
`log(self@GetFuncName()@"-----------");
|
||
|
bMoving=false;
|
||
|
RebuildDynamicEdges();
|
||
|
}
|
||
|
|
||
|
defaultproperties
|
||
|
{
|
||
|
Begin Object Name=Sprite
|
||
|
Sprite=Texture2D'EditorResources.DynamicPylon'
|
||
|
End Object
|
||
|
|
||
|
bStatic=FALSE
|
||
|
}
|