public override Drawable clone()
 {
     Drawable[] newDbls = new Drawable[this.dbls.Length];
     for(int i = 0; i < this.dbls.Length; i++)
     {
         newDbls[i] = this.dbls[i].clone();
     }
     return new DrawableCollection(newDbls, depth);
 }
 public DrawableCollection(Drawable[] dbls, float depth)
     : base(depth)
 {
     foreach (Drawable dbl in dbls)
     {
         dbl.depth = depth;
     }
     this.dbls = dbls;
 }
 protected virtual void adjustedDepthDraw(Drawable dbl, TileDrawInfo tdi, SpriteBatch sb)
 {
     float origDepth = dbl.depth;
     dbl.depth = tdi.getAdjustedDepth(origDepth);
     dbl.draw(sb, tdi.pos, tdi.scale, Color.White, 0);
     dbl.depth = origDepth;
 }