public static FillableContent Acquire( Point3D loc, Map map )
{
if( map == null || map == Map.Internal )
return null;
if( m_AcquireTable == null )
{
m_AcquireTable = new Hashtable();
for( int i = 0; i < m_ContentTypes.Length; ++i )
{
FillableContent fill = m_ContentTypes[ i ];
for( int j = 0; j < fill.m_Vendors.Length; ++j )
m_AcquireTable[ fill.m_Vendors[ j ] ] = fill;
}
}
Mobile nearest = null;
FillableContent content = null;
foreach( Mobile mob in map.GetMobilesInRange( loc, 20 ) )
{
if( nearest != null && mob.GetDistanceToSqrt( loc ) > nearest.GetDistanceToSqrt( loc ) && !( nearest is Cobbler && mob is Provisioner ) )
continue;
FillableContent check = m_AcquireTable[ mob.GetType() ] as FillableContent;
if( check != null )
{
nearest = mob;
content = check;
}
}
return content;
}
}