/// <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; }