import enum AIinfluenceEBumpPolicy : Uint8
{
	Static,
	Lean,
	Move,
}

import class BumpComponent extends IPlacedComponent
{
	public import final function SetBumpPolicy( policy : AIinfluenceEBumpPolicy );

	var m_isBumpable : Bool;

	private export function OnAttach()
	{
		if( ( ( ScriptedPuppet )( GetEntity() ) ) )
		{
			m_isBumpable = TweakDBInterface.GetCharacterRecord( ( ( ScriptedPuppet )( GetEntity() ) ).GetRecordID() ).IsBumpable();
			if( m_isBumpable )
			{
				Toggle( true );
				SetBumpPolicy( AIinfluenceEBumpPolicy.Lean );
			}
		}
	}

	public function ToggleComponentOn()
	{
		if( m_isBumpable )
		{
			Toggle( true );
		}
	}

	public static function ToggleComponentOn( puppet : weak< ScriptedPuppet > )
	{
		var bumpComponent : BumpComponent;
		if( !( puppet ) )
		{
			return;
		}
		bumpComponent = puppet.GetBumpComponent();
		if( bumpComponent )
		{
			bumpComponent.ToggleComponentOn();
		}
	}

}

