public Builder clear() {
        super.clear();
        id_ = 0;
        bitField0_ = (bitField0_ & ~0x00000001);
        name_ = "";
        bitField0_ = (bitField0_ & ~0x00000002);
        if (techBuilder_ == null) {
          tech_ = org.bwapi.proxy.messages.GameMessages.TechType.getDefaultInstance();
        } else {
          techBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000004);
        if (whatUsesBuilder_ == null) {
          whatUses_ = org.bwapi.proxy.messages.GameMessages.UnitType.getDefaultInstance();
        } else {
          whatUsesBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000008);
        damageAmount_ = 0;
        bitField0_ = (bitField0_ & ~0x00000010);
        damageBonus_ = 0;
        bitField0_ = (bitField0_ & ~0x00000020);
        damageCooldown_ = 0;
        bitField0_ = (bitField0_ & ~0x00000040);
        damageFactor_ = 0;
        bitField0_ = (bitField0_ & ~0x00000080);
        if (upgradeTypeBuilder_ == null) {
          upgradeType_ = org.bwapi.proxy.messages.GameMessages.UpgradeType.getDefaultInstance();
        } else {
          upgradeTypeBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000100);
        damageType_ = org.bwapi.proxy.messages.GameMessages.DamageType.IndependentDamage;
        bitField0_ = (bitField0_ & ~0x00000200);
        explosionType_ = org.bwapi.proxy.messages.GameMessages.ExplosionType.ExplosionNone;
        bitField0_ = (bitField0_ & ~0x00000400);
        minRange_ = 0;
        bitField0_ = (bitField0_ & ~0x00000800);
        maxRange_ = 0;
        bitField0_ = (bitField0_ & ~0x00001000);
        innerSplashRadius_ = 0;
        bitField0_ = (bitField0_ & ~0x00002000);
        medianSplashRadius_ = 0;
        bitField0_ = (bitField0_ & ~0x00004000);
        outerSplashRadius_ = 0;
        bitField0_ = (bitField0_ & ~0x00008000);
        targetsAir_ = false;
        bitField0_ = (bitField0_ & ~0x00010000);
        targetsGround_ = false;
        bitField0_ = (bitField0_ & ~0x00020000);
        targetsMechanical_ = false;
        bitField0_ = (bitField0_ & ~0x00040000);
        targetsOrganic_ = false;
        bitField0_ = (bitField0_ & ~0x00080000);
        targetsNonBuilding_ = false;
        bitField0_ = (bitField0_ & ~0x00100000);
        targetsNonRobotic_ = false;
        bitField0_ = (bitField0_ & ~0x00200000);
        targetsTerrain_ = false;
        bitField0_ = (bitField0_ & ~0x00400000);
        targetsOrgOrMech_ = false;
        bitField0_ = (bitField0_ & ~0x00800000);
        targetsOwn_ = false;
        bitField0_ = (bitField0_ & ~0x01000000);
        return this;
      }