protected void updateSprite() {
    final GroupSprite s = (GroupSprite) buildSprite().baseSprite() ;
    final Model m =
      (drill == NOT_DRILLING || drill == STATE_RED_ALERT) ?
      null : DRILL_MODELS[drill] ;
    
    final ImageSprite old1 = (ImageSprite) s.atIndex(1) ;
    if (old1 != null && old1.model() == m) return ;
    if (old1 != null) {
      final Sprite old2 = s.atIndex(2) ;
      s.detach(old1) ;
      s.detach(old2) ;
      world.ephemera.addGhost(null, 2, old1, 1.0f) ;
      world.ephemera.addGhost(null, 2, old2, 1.0f) ;
    }
    
    if (m != null) {
      //
      //  TODO:  Fade in transparently too...
      s.attach(m.makeSprite(), -0.5f, -1.5f, 0) ;
      s.attach(m.makeSprite(), -0.5f,  0.5f, 0) ;
    }
  }