// OVERRIDES ------------------------------------------------------------- /// <summary> /// Adds the members of this group to the specified GroupCrystallonEntity descendent, /// and schedules this newly emptied group's destruction. /// </summary> /// <returns> /// null -- because this group is scheduled for destruction /// </returns> /// <param name='pGroup'> /// The destination group /// </param> public override AbstractCrystallonEntity BeAddedToGroup(GroupCrystallonEntity pGroup) { // if( AppMain.ORIENTATION_MATTERS == false ) { // if ( pGroup.population == 1 ) { // AbstractCrystallonEntity piece = (AbstractCrystallonEntity)pGroup.Remove(pGroup.members[0]); // (piece as SpriteTileCrystallonEntity).setOrientation(2); // pGroup.Attach( piece ); // } // } for ( int i=0; i<members.Length; i++) { AbstractCrystallonEntity e = members[i]; if ( e != null ) { pGroup.Attach( e ); } } pGroup.PostAttach( this ); // CLEAR MEMBERS LIST & SCHEDULE DELETION OF EMPTIED GROUP RemoveAll(); getNode().Schedule((dt) => { GroupManager.Instance.Remove(this, true); } ); return null; }
// OVERRIDES ---------------------------------------------------------------------------------------------------------------------------------------------------- /// <summary> /// Object-specific code for being added to any group. /// </summary> /// <returns> /// This object /// </returns> /// <param name='pGroup'> /// The destination group /// </param> public override AbstractCrystallonEntity BeAddedToGroup(GroupCrystallonEntity pGroup) { getSprite().Color.W = 1.0f; // make fully opaque if selected while fading in. HideGlow(); pGroup.Attach( this ); pGroup.PostAttach( this ); return this; }