@Override
 public boolean canMateWith(EntityAnimal par1EntityAnimal) {
   if (par1EntityAnimal == this) {
     return false;
   } else if (!this.isTamed()) {
     return false;
   } else if (!(par1EntityAnimal instanceof GCMarsEntitySlimeling)) {
     return false;
   } else {
     GCMarsEntitySlimeling slimeling = (GCMarsEntitySlimeling) par1EntityAnimal;
     return !slimeling.isTamed()
         ? false
         : slimeling.isSitting() ? false : this.isInLove() && slimeling.isInLove();
   }
 }
  @Override
  public boolean func_142018_a(
      EntityLivingBase par1EntityLivingBase, EntityLivingBase par2EntityLivingBase) {
    if (!(par1EntityLivingBase instanceof EntityCreeper)
        && !(par1EntityLivingBase instanceof EntityGhast)) {
      if (par1EntityLivingBase instanceof GCMarsEntitySlimeling) {
        GCMarsEntitySlimeling slimeling = (GCMarsEntitySlimeling) par1EntityLivingBase;

        if (slimeling.isTamed() && slimeling.func_130012_q() == par2EntityLivingBase) {
          return false;
        }
      }

      return par1EntityLivingBase instanceof EntityPlayer
              && par2EntityLivingBase instanceof EntityPlayer
              && !((EntityPlayer) par2EntityLivingBase)
                  .canAttackPlayer((EntityPlayer) par1EntityLivingBase)
          ? false
          : !(par1EntityLivingBase instanceof EntityHorse)
              || !((EntityHorse) par1EntityLivingBase).isTame();
    } else {
      return false;
    }
  }
  public GCMarsEntitySlimeling spawnBabyAnimal(EntityAgeable par1EntityAgeable) {
    if (par1EntityAgeable instanceof GCMarsEntitySlimeling) {
      GCMarsEntitySlimeling otherSlimeling = (GCMarsEntitySlimeling) par1EntityAgeable;

      GCMarsEntitySlimeling newSlimeling =
          new GCMarsEntitySlimeling(
              this.worldObj,
              (this.getColorRed() + otherSlimeling.getColorRed()) / 2,
              (this.getColorGreen() + otherSlimeling.getColorGreen()) / 2,
              (this.getColorBlue() + otherSlimeling.getColorBlue()) / 2);

      String s = this.getOwnerName();

      if (s != null && s.trim().length() > 0) {
        newSlimeling.setOwner(s);
        newSlimeling.setTamed(true);
      }

      return newSlimeling;
    }

    return null;
  }