public EntityAgeable createChild(EntityAgeable p_90011_1_) {
    EntityHorse entityhorse = (EntityHorse) p_90011_1_;
    EntityHorse entityhorse1 = new EntityHorse(this.worldObj);
    int i = this.getHorseType();
    int j = entityhorse.getHorseType();
    int k = 0;

    if (i == j) {
      k = i;
    } else if (i == 0 && j == 1 || i == 1 && j == 0) {
      k = 2;
    }

    if (k == 0) {
      int i1 = this.rand.nextInt(9);
      int l;

      if (i1 < 4) {
        l = this.getHorseVariant() & 255;
      } else if (i1 < 8) {
        l = entityhorse.getHorseVariant() & 255;
      } else {
        l = this.rand.nextInt(7);
      }

      int j1 = this.rand.nextInt(5);

      if (j1 < 2) {
        l |= this.getHorseVariant() & 65280;
      } else if (j1 < 4) {
        l |= entityhorse.getHorseVariant() & 65280;
      } else {
        l |= this.rand.nextInt(5) << 8 & 65280;
      }

      entityhorse1.setHorseVariant(l);
    }

    entityhorse1.setHorseType(k);
    double d1 =
        this.getEntityAttribute(SharedMonsterAttributes.maxHealth).getBaseValue()
            + p_90011_1_.getEntityAttribute(SharedMonsterAttributes.maxHealth).getBaseValue()
            + (double) this.func_110267_cL();
    entityhorse1.getEntityAttribute(SharedMonsterAttributes.maxHealth).setBaseValue(d1 / 3.0D);
    double d2 =
        this.getEntityAttribute(horseJumpStrength).getBaseValue()
            + p_90011_1_.getEntityAttribute(horseJumpStrength).getBaseValue()
            + this.func_110245_cM();
    entityhorse1.getEntityAttribute(horseJumpStrength).setBaseValue(d2 / 3.0D);
    double d0 =
        this.getEntityAttribute(SharedMonsterAttributes.movementSpeed).getBaseValue()
            + p_90011_1_.getEntityAttribute(SharedMonsterAttributes.movementSpeed).getBaseValue()
            + this.func_110203_cN();
    entityhorse1.getEntityAttribute(SharedMonsterAttributes.movementSpeed).setBaseValue(d0 / 3.0D);
    return entityhorse1;
  }
  protected void func_110847_a(EntityHorse par1EntityHorse, float par2) {
    float f1 = 1.0F;
    int i = par1EntityHorse.getHorseType();

    if (i == 1) {
      f1 *= 0.87F;
    } else if (i == 2) {
      f1 *= 0.92F;
    }

    GL11.glScalef(f1, f1, f1);
    super.preRenderCallback(par1EntityHorse, par2);
  }
  /** Returns true if the mob is currently able to mate with the specified mob. */
  public boolean canMateWith(EntityAnimal p_70878_1_) {
    if (p_70878_1_ == this) {
      return false;
    } else if (p_70878_1_.getClass() != this.getClass()) {
      return false;
    } else {
      EntityHorse entityhorse = (EntityHorse) p_70878_1_;

      if (this.canMate() && entityhorse.canMate()) {
        int i = this.getHorseType();
        int j = entityhorse.getHorseType();
        return i == j || i == 0 && j == 1 || i == 1 && j == 0;
      } else {
        return false;
      }
    }
  }
 protected ResourceLocation func_110849_a(EntityHorse par1EntityHorse) {
   if (!par1EntityHorse.func_110239_cn()) {
     switch (par1EntityHorse.getHorseType()) {
       case 0:
       default:
         return whiteHorseTextures;
       case 1:
         return donkeyTextures;
       case 2:
         return muleTextures;
       case 3:
         return zombieHorseTextures;
       case 4:
         return skeletonHorseTextures;
     }
   } else {
     return this.func_110848_b(par1EntityHorse);
   }
 }