/// <summary>
 /// Determines whether this instance can be added to the specified pGroup.
 /// </summary>
 /// <returns>
 /// <c>true</c> if this instance can be added to the specified pGroup; otherwise, <c>false</c>.
 /// </returns>
 /// <param name='pGroup'>
 /// If set to <c>true</c> p group.
 /// </param>
 public override bool CanBeAddedTo( GroupCrystallonEntity pGroup )
 {
     bool okToSnap = false;
     //			if ( pGroup.MemberType.IsAssignableFrom(this.MemberType) ) { // GROUPS' MEMBER TYPES ARE COMPATIBLE
     if ( pGroup.CheckMemberTypeCompatability(this) ) {
         if( AppMain.ORIENTATION_MATTERS ) { // -------------------- ORIENTATION TEST
             okToSnap = true;
             for ( int i=0; i < _maxMembers; i++ ) {
                 if (_pucks[i].Children.Count > 0 && pGroup._pucks[i].Children.Count > 0) {
                     okToSnap = false;
                     break;
                 }
             }
         } else {
             okToSnap = ( this.population + pGroup.population <= pGroup.maxPopulation );
         }
     }
     return okToSnap;
 }
 public override bool CanBeAddedTo(GroupCrystallonEntity pGroup)
 {
     bool okToSnap = false;
     if (_sprite.Color.W < 0.8f) {
         Console.WriteLine(_sprite.Color.W);
         return false;
     }
     //			if( pGroup.MemberType.IsAssignableFrom(this.GetType()) ) { // CHECK FOR OBJECT TYPE COMPATIBILITY WITH GROUP
     if ( pGroup.CheckMemberTypeCompatability(this) ){
         if (AppMain.ORIENTATION_MATTERS) { // ------------------- ORIENTATION TEST
             okToSnap = ( pGroup.pucks[_orientationIndex].Children.Count == 0 );
             okToSnap = okToSnap && (Array.IndexOf(pGroup.members, this) == -1);
         } else {
             okToSnap = ( pGroup.population < pGroup.maxPopulation );
         }
     }
     return okToSnap;
 }