public Builder clear() {
        super.clear();
        id_ = 0;
        bitField0_ = (bitField0_ & ~0x00000001);
        name_ = "";
        bitField0_ = (bitField0_ & ~0x00000002);
        sublabel_ = "";
        bitField0_ = (bitField0_ & ~0x00000004);
        race_ = org.bwapi.proxy.messages.GameMessages.Race.Zerg;
        bitField0_ = (bitField0_ & ~0x00000008);
        if (whatBuildsTypeBuilder_ == null) {
          whatBuildsType_ = org.bwapi.proxy.messages.GameMessages.UnitType.getDefaultInstance();
        } else {
          whatBuildsTypeBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000010);
        whatBuildsNumber_ = 0;
        bitField0_ = (bitField0_ & ~0x00000020);
        if (requiredUnitsBuilder_ == null) {
          requiredUnits_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000040);
        } else {
          requiredUnitsBuilder_.clear();
        }
        if (requiredTechBuilder_ == null) {
          requiredTech_ = org.bwapi.proxy.messages.GameMessages.TechType.getDefaultInstance();
        } else {
          requiredTechBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000080);
        if (abilitiesBuilder_ == null) {
          abilities_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000100);
        } else {
          abilitiesBuilder_.clear();
        }
        if (upgradesBuilder_ == null) {
          upgrades_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000200);
        } else {
          upgradesBuilder_.clear();
        }
        if (armorUpgradeBuilder_ == null) {
          armorUpgrade_ = org.bwapi.proxy.messages.GameMessages.UpgradeType.getDefaultInstance();
        } else {
          armorUpgradeBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000400);
        maxHitPoints_ = 0;
        bitField0_ = (bitField0_ & ~0x00000800);
        maxShields_ = 0;
        bitField0_ = (bitField0_ & ~0x00001000);
        maxEnergy_ = 0;
        bitField0_ = (bitField0_ & ~0x00002000);
        armor_ = 0;
        bitField0_ = (bitField0_ & ~0x00004000);
        mineralPrice_ = 0;
        bitField0_ = (bitField0_ & ~0x00008000);
        gasPrice_ = 0;
        bitField0_ = (bitField0_ & ~0x00010000);
        buildTime_ = 0;
        bitField0_ = (bitField0_ & ~0x00020000);
        supplyRequired_ = 0;
        bitField0_ = (bitField0_ & ~0x00040000);
        supplyProvided_ = 0;
        bitField0_ = (bitField0_ & ~0x00080000);
        spaceRequired_ = 0;
        bitField0_ = (bitField0_ & ~0x00100000);
        spaceProvided_ = 0;
        bitField0_ = (bitField0_ & ~0x00200000);
        buildScore_ = 0;
        bitField0_ = (bitField0_ & ~0x00400000);
        destroyScore_ = 0;
        bitField0_ = (bitField0_ & ~0x00800000);
        size_ = org.bwapi.proxy.messages.GameMessages.UnitSizeType.Independent;
        bitField0_ = (bitField0_ & ~0x01000000);
        tileWidth_ = 0;
        bitField0_ = (bitField0_ & ~0x02000000);
        tileHeight_ = 0;
        bitField0_ = (bitField0_ & ~0x04000000);
        dimensionLeft_ = 0;
        bitField0_ = (bitField0_ & ~0x08000000);
        dimensionUp_ = 0;
        bitField0_ = (bitField0_ & ~0x10000000);
        dimensionRight_ = 0;
        bitField0_ = (bitField0_ & ~0x20000000);
        dimensionDown_ = 0;
        bitField0_ = (bitField0_ & ~0x40000000);
        seekRange_ = 0;
        bitField0_ = (bitField0_ & ~0x80000000);
        sightRange_ = 0;
        bitField1_ = (bitField1_ & ~0x00000001);
        if (groundWeaponBuilder_ == null) {
          groundWeapon_ = org.bwapi.proxy.messages.GameMessages.WeaponType.getDefaultInstance();
        } else {
          groundWeaponBuilder_.clear();
        }
        bitField1_ = (bitField1_ & ~0x00000002);
        maxGroundHits_ = 0;
        bitField1_ = (bitField1_ & ~0x00000004);
        if (airWeaponBuilder_ == null) {
          airWeapon_ = org.bwapi.proxy.messages.GameMessages.WeaponType.getDefaultInstance();
        } else {
          airWeaponBuilder_.clear();
        }
        bitField1_ = (bitField1_ & ~0x00000008);
        maxAirHits_ = 0;
        bitField1_ = (bitField1_ & ~0x00000010);
        topSpeed_ = 0D;
        bitField1_ = (bitField1_ & ~0x00000020);
        acceleration_ = 0;
        bitField1_ = (bitField1_ & ~0x00000040);
        haltDistance_ = 0;
        bitField1_ = (bitField1_ & ~0x00000080);
        turnRadius_ = 0;
        bitField1_ = (bitField1_ & ~0x00000100);
        canProduce_ = false;
        bitField1_ = (bitField1_ & ~0x00000200);
        canAttack_ = false;
        bitField1_ = (bitField1_ & ~0x00000400);
        canMove_ = false;
        bitField1_ = (bitField1_ & ~0x00000800);
        isFlyer_ = false;
        bitField1_ = (bitField1_ & ~0x00001000);
        regeneratesHP_ = false;
        bitField1_ = (bitField1_ & ~0x00002000);
        isSpellcaster_ = false;
        bitField1_ = (bitField1_ & ~0x00004000);
        hasPermanentCloak_ = false;
        bitField1_ = (bitField1_ & ~0x00008000);
        isInvincible_ = false;
        bitField1_ = (bitField1_ & ~0x00010000);
        isOrganic_ = false;
        bitField1_ = (bitField1_ & ~0x00020000);
        isMechanical_ = false;
        bitField1_ = (bitField1_ & ~0x00040000);
        isRobotic_ = false;
        bitField1_ = (bitField1_ & ~0x00080000);
        isDetector_ = false;
        bitField1_ = (bitField1_ & ~0x00100000);
        isResourceContainer_ = false;
        bitField1_ = (bitField1_ & ~0x00200000);
        isResourceDepot_ = false;
        bitField1_ = (bitField1_ & ~0x00400000);
        isRefinery_ = false;
        bitField1_ = (bitField1_ & ~0x00800000);
        isWorker_ = false;
        bitField1_ = (bitField1_ & ~0x01000000);
        requiresPsi_ = false;
        bitField1_ = (bitField1_ & ~0x02000000);
        requiresCreep_ = false;
        bitField1_ = (bitField1_ & ~0x04000000);
        isTwoUnitsInOneEgg_ = false;
        bitField1_ = (bitField1_ & ~0x08000000);
        isBurrowable_ = false;
        bitField1_ = (bitField1_ & ~0x10000000);
        isCloakable_ = false;
        bitField1_ = (bitField1_ & ~0x20000000);
        isBuilding_ = false;
        bitField1_ = (bitField1_ & ~0x40000000);
        isAddon_ = false;
        bitField1_ = (bitField1_ & ~0x80000000);
        isFlyingBuilding_ = false;
        bitField2_ = (bitField2_ & ~0x00000001);
        isNeutral_ = false;
        bitField2_ = (bitField2_ & ~0x00000002);
        return this;
      }