Adds better type support for pooled enumerables. Refactors code. (#16)

This commit is contained in:
Kamron Batman 2018-08-09 14:08:34 -07:00 committed by GitHub
parent 62b95f4d74
commit b06f5bf60d
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
48 changed files with 252 additions and 243 deletions

View file

@ -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 )

View file

@ -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 )
{

View file

@ -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
{
}
}
}
}

View file

@ -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
}
}
}
}
}

View file

@ -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 )
{

View file

@ -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 )
{