Adds better type support for pooled enumerables. Refactors code. (#16)
This commit is contained in:
parent
62b95f4d74
commit
b06f5bf60d
48 changed files with 252 additions and 243 deletions
|
|
@ -172,7 +172,7 @@ namespace Server.Engines.ConPVP
|
|||
if ( m_Flying || !Visible || m_Game == null || this.Parent != null )
|
||||
return;
|
||||
|
||||
IPooledEnumerable eable = this.GetClientsInRange( 0 );
|
||||
IPooledEnumerable<NetState> eable = this.GetClientsInRange( 0 );
|
||||
foreach ( NetState ns in eable )
|
||||
{
|
||||
Mobile m = ns.Mobile;
|
||||
|
|
@ -518,7 +518,7 @@ namespace Server.Engines.ConPVP
|
|||
if ( landTile.ID == 0x244 && statics.Length == 0 ) // 0x244 = invalid land tile
|
||||
{
|
||||
bool empty = true;
|
||||
IPooledEnumerable eable = this.Map.GetItemsInRange( point, 0 );
|
||||
IPooledEnumerable<Item> eable = this.Map.GetItemsInRange( point, 0 );
|
||||
|
||||
foreach ( Item item in eable )
|
||||
{
|
||||
|
|
@ -559,7 +559,7 @@ namespace Server.Engines.ConPVP
|
|||
|
||||
Rectangle2D rect = new Rectangle2D( pTop.X, pTop.Y, ( pBottom.X - pTop.X ) + 1, ( pBottom.Y - pTop.Y ) + 1 );
|
||||
|
||||
IPooledEnumerable area = this.Map.GetItemsInBounds( rect );
|
||||
IPooledEnumerable<Item> area = this.Map.GetItemsInBounds( rect );
|
||||
foreach ( Item i in area )
|
||||
{
|
||||
if ( i == this || i.ItemID >= 0x4000 )
|
||||
|
|
@ -620,8 +620,8 @@ namespace Server.Engines.ConPVP
|
|||
|
||||
area.Free();
|
||||
|
||||
area = this.Map.GetClientsInBounds( rect );
|
||||
foreach ( NetState ns in area )
|
||||
IPooledEnumerable<NetState> clients = this.Map.GetClientsInBounds( rect );
|
||||
foreach ( NetState ns in clients)
|
||||
{
|
||||
Mobile m = ns.Mobile;
|
||||
|
||||
|
|
@ -645,7 +645,7 @@ namespace Server.Engines.ConPVP
|
|||
if ( !found )
|
||||
continue;
|
||||
|
||||
area.Free();
|
||||
clients.Free();
|
||||
|
||||
// TODO: probably need to change this a lot...
|
||||
DoCatch( m );
|
||||
|
|
@ -653,7 +653,7 @@ namespace Server.Engines.ConPVP
|
|||
return;
|
||||
}
|
||||
|
||||
area.Free();
|
||||
clients.Free();
|
||||
|
||||
m_PathIdx = pathCheckEnd;
|
||||
|
||||
|
|
@ -683,7 +683,7 @@ namespace Server.Engines.ConPVP
|
|||
myZ = t.Z + height;
|
||||
}
|
||||
|
||||
IPooledEnumerable eable = this.GetItemsInRange( 0 );
|
||||
IPooledEnumerable<Item> eable = this.GetItemsInRange( 0 );
|
||||
foreach ( Item item in eable )
|
||||
{
|
||||
if ( item.Visible && item != this )
|
||||
|
|
|
|||
|
|
@ -452,7 +452,7 @@ namespace Server.Engines.Craft
|
|||
if ( map == null )
|
||||
return false;
|
||||
|
||||
IPooledEnumerable eable = map.GetItemsInRange( from.Location, 2 );
|
||||
IPooledEnumerable<Item> eable = map.GetItemsInRange( from.Location, 2 );
|
||||
|
||||
foreach ( Item item in eable )
|
||||
{
|
||||
|
|
|
|||
|
|
@ -64,7 +64,7 @@ namespace Server.Engines.Craft
|
|||
if ( map == null )
|
||||
return;
|
||||
|
||||
IPooledEnumerable eable = map.GetItemsInRange( from.Location, range );
|
||||
IPooledEnumerable<Item> eable = map.GetItemsInRange( from.Location, range );
|
||||
|
||||
foreach ( Item item in eable )
|
||||
{
|
||||
|
|
@ -738,4 +738,4 @@ namespace Server.Engines.Craft
|
|||
{
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -251,16 +251,12 @@ namespace Server.Factions
|
|||
bool mobs = type.IsSubclassOf( typeof( Mobile ) );
|
||||
bool items = type.IsSubclassOf( typeof( Item ) );
|
||||
|
||||
IPooledEnumerable eable;
|
||||
|
||||
if ( mobs )
|
||||
eable = mob.GetMobilesInRange( range );
|
||||
else if ( items )
|
||||
eable = mob.GetItemsInRange( range );
|
||||
else
|
||||
if ( !(items || mobs) )
|
||||
return false;
|
||||
|
||||
foreach ( object obj in eable )
|
||||
IPooledEnumerable<IEntity> eable = mob.Map.GetObjectsInRange(mob.Location, range, items, mobs);
|
||||
|
||||
foreach ( IEntity obj in eable )
|
||||
{
|
||||
if ( type.IsAssignableFrom( obj.GetType() ) )
|
||||
{
|
||||
|
|
@ -275,15 +271,15 @@ namespace Server.Factions
|
|||
|
||||
public static bool IsNearType( Mobile mob, Type[] types, int range )
|
||||
{
|
||||
IPooledEnumerable eable = mob.GetObjectsInRange( range );
|
||||
IPooledEnumerable<IEntity> eable = mob.GetObjectsInRange( range );
|
||||
|
||||
foreach( object obj in eable )
|
||||
foreach( IEntity obj in eable )
|
||||
{
|
||||
Type objType = obj.GetType();
|
||||
|
||||
for( int i = 0; i < types.Length; i++ )
|
||||
{
|
||||
if( types[i].IsAssignableFrom( objType ) )
|
||||
if ( types[i].IsAssignableFrom( objType ) )
|
||||
{
|
||||
eable.Free();
|
||||
return true;
|
||||
|
|
@ -1434,4 +1430,4 @@ namespace Server.Factions
|
|||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -15,7 +15,7 @@ namespace Server.Commands
|
|||
|
||||
public static bool FindMorphItem( int x, int y, int z, int inactiveItemID, int activeItemID )
|
||||
{
|
||||
IPooledEnumerable eable = Map.Felucca.GetItemsInRange( new Point3D( x, y, z ), 0 );
|
||||
IPooledEnumerable<Item> eable = Map.Felucca.GetItemsInRange( new Point3D( x, y, z ), 0 );
|
||||
|
||||
foreach ( Item item in eable )
|
||||
{
|
||||
|
|
@ -49,7 +49,7 @@ namespace Server.Commands
|
|||
|
||||
public static Item TryCreateItem( int x, int y, int z, Item srcItem )
|
||||
{
|
||||
IPooledEnumerable eable = Map.Felucca.GetItemsInBounds( new Rectangle2D( x, y, 1, 1 ) );
|
||||
IPooledEnumerable<Item> eable = Map.Felucca.GetItemsInBounds( new Rectangle2D( x, y, 1, 1 ) );
|
||||
|
||||
foreach ( Item item in eable )
|
||||
{
|
||||
|
|
|
|||
|
|
@ -376,7 +376,7 @@ namespace Server.Mobiles
|
|||
|
||||
Packet p = null;
|
||||
|
||||
IPooledEnumerable eable = Map.GetClientsInRange( Location );
|
||||
IPooledEnumerable<NetState> eable = Map.GetClientsInRange( Location );
|
||||
|
||||
foreach( NetState state in eable )
|
||||
{
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue