test_class.file: omicron-core/src/test/java/com/lyndir/omicron/api/ConstructorModuleTest.java
test_class.identifier: ConstructorModuleTest
test_class.superclass: extends AbstractTest
test_case.body: @Test
      public void testOnNewTurn()
              throws Exception {
  
          // Create a unit that can build BASE & MOBILITY.
          ConstructorModule initBaseConstructorModule = ConstructorModule.createWithStandardResourceCost()
                                                                         .buildSpeed( 3 )
                                                                         .buildsModule( ModuleType.BASE );
          ConstructorModule initMobilityConstructorModule = ConstructorModule.createWithStandardResourceCost()
                                                                             .buildSpeed( 2 )
                                                                             .buildsModule( ModuleType.MOBILITY );
          GameObject baseMobilityConstructorUnit = createUnit( testUnitType( "Base Mobility Constructor",
                                                                             BaseModule.createWithStandardResourceCost()
                                                                                       .maxHealth( 1 )
                                                                                       .armor( 1 )
                                                                                       .viewRange( 1 )
                                                                                       .supportedLayers( LevelType.values() ),
                                                                             initBaseConstructorModule, initMobilityConstructorModule ), //
                                                               5, 5 );
          staticGame.getController().setReady();
  
          // Create a BASE unit type and a BASE & MOBILITY unit type.
          UnitType baseUnit = testUnitType( "Base Unit", 5, BaseModule.createWithStandardResourceCost()
                                                                      .maxHealth( 1 )
                                                                      .armor( 1 )
                                                                      .viewRange( 1 )
                                                                      .supportedLayers( ImmutableSet.<LevelType>of() ) );
          UnitType baseMobilityUnit = testUnitType( "Mobility Unit", 7, BaseModule.createWithStandardResourceCost()
                                                                                  .maxHealth( 1 )
                                                                                  .armor( 1 )
                                                                                  .viewRange( 1 )
                                                                                  .supportedLayers( ImmutableSet.<LevelType>of() ),
                                                    MobilityModule.createWithStandardResourceCost()
                                                                  .movementSpeed( 1 )
                                                                  .movementCost( ImmutableMap.<LevelType, Double>of() )
                                                                  .levelingCost( ImmutableMap.<LevelType, Double>of() ) );
  
          // Build a BASE unit, initially without resources.
          ConstructorModule baseConstructorModule = baseMobilityConstructorUnit.getModule( ModuleType.CONSTRUCTOR, 0 ).get();
          ConstructorModule mobilityConstructorModule = baseMobilityConstructorUnit.getModule( ModuleType.CONSTRUCTOR, 1 ).get();
          ITile location1 = baseMobilityConstructorUnit.getLocation().get().neighbour( Side.E ).get();
          ConstructorModule.ConstructionSite site1 = baseConstructorModule.schedule( baseUnit, location1 );
          assertEquals( baseConstructorModule.getRemainingSpeed(), 3 );
          assertEquals( mobilityConstructorModule.getRemainingSpeed(), 2 );
          assertEquals( site1.getRemainingWork( ModuleType.BASE ), 5 );
          assertEquals( site1.getRemainingWork( ModuleType.MOBILITY ), 0 );
          assertEquals( site1.getLocation().get().getContents().get(), site1 );
          assertTrue( CollectionUtils.isEqualElements( staticPlayer.getObjects(), ImmutableSet.of( baseMobilityConstructorUnit, site1 ) ) );
  
          staticGame.getController().setReady();
          assertEquals( baseConstructorModule.getRemainingSpeed(), 3 );
          assertEquals( mobilityConstructorModule.getRemainingSpeed(), 2 );
          assertEquals( site1.getRemainingWork( ModuleType.BASE ), 5 );
          assertEquals( site1.getRemainingWork( ModuleType.MOBILITY ), 0 );
          assertEquals( site1.getLocation().get().getContents().get(), site1 );
          assertTrue( CollectionUtils.isEqualElements( staticPlayer.getObjects(), ImmutableSet.of( baseMobilityConstructorUnit, site1 ) ) );
  
          // Now provide resources, work = 5 so should take 2 turns at a speed of 3.
          GameObject containerUnit = createUnit( testUnitType( "Metal Container", ContainerModule.createWithStandardResourceCost()
                                                                                                 .resourceType( ResourceType.METALS )
                                                                                                 .capacity( 100 ) ), 5, 6 );
          final int baseMetals = baseUnit.getConstructionWork() * ModuleType.BASE.getStandardCost().get( ResourceType.METALS );
          containerUnit.onModule( ModuleType.CONTAINER, 0, module -> module.addStock( baseMetals ) );
          staticGame.getController().setReady();
          assertEquals( baseConstructorModule.getRemainingSpeed(), 0 );
          assertEquals( mobilityConstructorModule.getRemainingSpeed(), 2 );
          assertEquals( site1.getRemainingWork( ModuleType.BASE ), 2 );
          assertEquals( site1.getRemainingWork( ModuleType.MOBILITY ), 0 );
          assertEquals( site1.getLocation().get().getContents().get(), site1 );
          assertTrue( CollectionUtils.isEqualElements( staticPlayer.getObjects(),
                                                       ImmutableSet.of( baseMobilityConstructorUnit, site1, containerUnit ) ) );
  
          staticGame.getController().setReady();
          assertEquals( baseConstructorModule.getRemainingSpeed(), 1 );
          assertEquals( mobilityConstructorModule.getRemainingSpeed(), 2 );
          assertEquals( site1.getRemainingWork( ModuleType.BASE ), 0 );
          assertEquals( site1.getRemainingWork( ModuleType.MOBILITY ), 0 );
          assertNotEquals( site1.getLocation().get().getContents().get(), site1 );
          GameObject newUnit1 = GameObject.cast( site1.getLocation().get().getContents().get() );
          assertEquals( newUnit1.getType(), baseUnit );
          assertTrue( CollectionUtils.isEqualElements( staticPlayer.getObjects(),
                                                       ImmutableSet.of( baseMobilityConstructorUnit, newUnit1, containerUnit ) ) );
          assertEquals( containerUnit.getModule( ModuleType.CONTAINER, 0 ).get().getStock(), 0 );
          newUnit1.getController().die();
          assertTrue( CollectionUtils.isEqualElements( staticPlayer.getObjects(),
                                                       ImmutableSet.of( baseMobilityConstructorUnit, containerUnit ) ) );
  
          // Build a BASE & MOBILITY unit, work = 7 so should take 3 turns at a speed of 3 for BASE and 4 turns at a speed of 2 for MOBILITY, so after 4 turns we should be done.
          final int baseMobilityMetals =
                  baseMobilityUnit.getConstructionWork() * (ModuleType.BASE.getStandardCost().get( ResourceType.METALS ) + //
                                                            ModuleType.MOBILITY.getStandardCost().get( ResourceType.METALS ));
          containerUnit.onModule( ModuleType.CONTAINER, 0, module -> module.addStock( baseMobilityMetals ) );
          staticGame.getController().setReady();
          ITile location2 = baseMobilityConstructorUnit.getLocation().get().neighbour( Side.W ).get();
          ConstructorModule.ConstructionSite site2 = baseConstructorModule.schedule( baseMobilityUnit, location2 );
          assertEquals( baseConstructorModule.getRemainingSpeed(), 3 );
          assertEquals( mobilityConstructorModule.getRemainingSpeed(), 2 );
          assertEquals( site2.getRemainingWork( ModuleType.BASE ), 7 );
          assertEquals( site2.getRemainingWork( ModuleType.MOBILITY ), 7 );
          assertEquals( site2.getLocation().get().getContents().get(), site2 );
          assertTrue( CollectionUtils.isEqualElements( staticPlayer.getObjects(),
                                                       ImmutableSet.of( baseMobilityConstructorUnit, containerUnit, site2 ) ) );
  
          staticGame.getController().setReady();
          assertEquals( baseConstructorModule.getRemainingSpeed(), 0 );
          assertEquals( mobilityConstructorModule.getRemainingSpeed(), 0 );
          assertEquals( site2.getRemainingWork( ModuleType.BASE ), 4 );
          assertEquals( site2.getRemainingWork( ModuleType.MOBILITY ), 5 );
          assertEquals( site2.getLocation().get().getContents().get(), site2 );
          assertTrue( CollectionUtils.isEqualElements( staticPlayer.getObjects(),
                                                       ImmutableSet.of( baseMobilityConstructorUnit, containerUnit, site2 ) ) );
  
          staticGame.getController().setReady();
          assertEquals( baseConstructorModule.getRemainingSpeed(), 0 );
          assertEquals( mobilityConstructorModule.getRemainingSpeed(), 0 );
          assertEquals( site2.getRemainingWork( ModuleType.BASE ), 1 );
          assertEquals( site2.getRemainingWork( ModuleType.MOBILITY ), 3 );
          assertEquals( site2.getLocation().get().getContents().get(), site2 );
          assertTrue( CollectionUtils.isEqualElements( staticPlayer.getObjects(),
                                                       ImmutableSet.of( baseMobilityConstructorUnit, containerUnit, site2 ) ) );
  
          staticGame.getController().setReady();
          assertEquals( baseConstructorModule.getRemainingSpeed(), 2 );
          assertEquals( mobilityConstructorModule.getRemainingSpeed(), 0 );
          assertEquals( site2.getRemainingWork( ModuleType.BASE ), 0 );
          assertEquals( site2.getRemainingWork( ModuleType.MOBILITY ), 1 );
          assertEquals( site2.getLocation().get().getContents().get(), site2 );
          assertTrue( CollectionUtils.isEqualElements( staticPlayer.getObjects(),
                                                       ImmutableSet.of( baseMobilityConstructorUnit, containerUnit, site2 ) ) );
  
          staticGame.getController().setReady();
          assertEquals( baseConstructorModule.getRemainingSpeed(), 3 );
          assertEquals( mobilityConstructorModule.getRemainingSpeed(), 1 );
          assertEquals( site2.getRemainingWork( ModuleType.BASE ), 0 );
          assertEquals( site2.getRemainingWork( ModuleType.MOBILITY ), 0 );
          assertNotEquals( site2.getLocation().get().getContents().get(), site2 );
          GameObject newUnit2 = GameObject.cast( site2.getLocation().get().getContents().get() );
          assertEquals( newUnit2.getType(), baseMobilityUnit );
          assertTrue( CollectionUtils.isEqualElements( staticPlayer.getObjects(),
                                                       ImmutableSet.of( baseMobilityConstructorUnit, containerUnit, newUnit2 ) ) );
          assertEquals( containerUnit.getModule( ModuleType.CONTAINER, 0 ).get().getStock(), 0 );
          newUnit2.getController().die();
          baseMobilityConstructorUnit.getController().die();
          containerUnit.getController().die();
          assertTrue( CollectionUtils.isEqualElements( staticPlayer.getObjects(), ImmutableSet.of() ) );
  
          // Build a BASE & MOBILITY unit, using a constructor that can do only BASE, then help out with one that can do only MOBILITY.
          initBaseConstructorModule = ConstructorModule.createWithStandardResourceCost().buildSpeed( 3 ).buildsModule( ModuleType.BASE );
          GameObject baseConstructorUnit = createUnit( testUnitType( "Base Constructor", BaseModule.createWithStandardResourceCost()
                                                                                                   .maxHealth( 1 )
                                                                                                   .armor( 1 )
                                                                                                   .viewRange( 1 )
                                                                                                   .supportedLayers( LevelType.values() ),
                                                                     initBaseConstructorModule ), 5, 5 );
          baseConstructorModule = baseConstructorUnit.getModule( ModuleType.CONSTRUCTOR, 0 ).get();
          containerUnit = createUnit( testUnitType( "Metal Container", ContainerModule.createWithStandardResourceCost()
                                                                                      .resourceType( ResourceType.METALS )
                                                                                      .capacity( 100 ) ), 5, 4 );
          containerUnit.onModule( ModuleType.CONTAINER, 0, module -> module.addStock( baseMobilityMetals ) );
          staticGame.getController().setReady();
          ITile location3 = baseConstructorUnit.getLocation().get().neighbour( Side.E ).get();
          ConstructorModule.ConstructionSite site3 = baseConstructorModule.schedule( baseMobilityUnit, location3 );
          assertEquals( baseConstructorModule.getRemainingSpeed(), 3 );
          assertEquals( site3.getRemainingWork( ModuleType.BASE ), 7 );
          assertEquals( site3.getRemainingWork( ModuleType.MOBILITY ), 7 );
          assertEquals( site3.getLocation().get().getContents().get(), site3 );
          assertTrue( CollectionUtils.isEqualElements( staticPlayer.getObjects(),
                                                       ImmutableSet.of( baseConstructorUnit, containerUnit, site3 ) ) );
  
          staticGame.getController().setReady();
          assertEquals( baseConstructorModule.getRemainingSpeed(), 0 );
          assertEquals( site3.getRemainingWork( ModuleType.BASE ), 4 );
          assertEquals( site3.getRemainingWork( ModuleType.MOBILITY ), 7 );
          assertEquals( site3.getLocation().get().getContents().get(), site3 );
          assertTrue( CollectionUtils.isEqualElements( staticPlayer.getObjects(),
                                                       ImmutableSet.of( baseConstructorUnit, containerUnit, site3 ) ) );
  
          staticGame.getController().setReady();
          assertEquals( baseConstructorModule.getRemainingSpeed(), 0 );
          assertEquals( site3.getRemainingWork( ModuleType.BASE ), 1 );
          assertEquals( site3.getRemainingWork( ModuleType.MOBILITY ), 7 );
          assertEquals( site3.getLocation().get().getContents().get(), site3 );
          assertTrue( CollectionUtils.isEqualElements( staticPlayer.getObjects(),
                                                       ImmutableSet.of( baseConstructorUnit, containerUnit, site3 ) ) );
  
          staticGame.getController().setReady();
          assertEquals( baseConstructorModule.getRemainingSpeed(), 2 );
          assertEquals( site3.getRemainingWork( ModuleType.BASE ), 0 );
          assertEquals( site3.getRemainingWork( ModuleType.MOBILITY ), 7 );
          assertEquals( site3.getLocation().get().getContents().get(), site3 );
          assertTrue( CollectionUtils.isEqualElements( staticPlayer.getObjects(),
                                                       ImmutableSet.of( baseConstructorUnit, containerUnit, site3 ) ) );
  
          staticGame.getController().setReady();
          assertEquals( baseConstructorModule.getRemainingSpeed(), 3 );
          assertEquals( site3.getRemainingWork( ModuleType.BASE ), 0 );
          assertEquals( site3.getRemainingWork( ModuleType.MOBILITY ), 7 );
          assertEquals( site3.getLocation().get().getContents().get(), site3 );
          assertTrue( CollectionUtils.isEqualElements( staticPlayer.getObjects(),
                                                       ImmutableSet.of( baseConstructorUnit, containerUnit, site3 ) ) );
  
          // Send help.
          initMobilityConstructorModule = ConstructorModule.createWithStandardResourceCost()
                                                           .buildSpeed( 2 )
                                                           .buildsModule( ModuleType.MOBILITY );
          IGameObject mobilityConstructorUnit = createUnit( testUnitType( "Mobility Constructor", initMobilityConstructorModule ), 5, 6 );
          mobilityConstructorModule = mobilityConstructorUnit.getModule( ModuleType.CONSTRUCTOR, 0 ).get();
          staticGame.getController().setReady();
          assertEquals( baseConstructorModule.getRemainingSpeed(), 3 );
          assertEquals( mobilityConstructorModule.getRemainingSpeed(), 2 );
          assertEquals( site3.getRemainingWork( ModuleType.BASE ), 0 );
          assertEquals( site3.getRemainingWork( ModuleType.MOBILITY ), 7 );
          assertEquals( site3.getLocation().get().getContents().get(), site3 );
          assertTrue( CollectionUtils.isEqualElements( staticPlayer.getObjects(),
                                                       ImmutableSet.of( baseConstructorUnit, containerUnit, mobilityConstructorUnit,
                                                                        site3 ) ) );
  
          mobilityConstructorModule.setTarget( baseConstructorUnit );
          staticGame.getController().setReady();
          assertEquals( baseConstructorModule.getRemainingSpeed(), 3 );
          assertEquals( mobilityConstructorModule.getRemainingSpeed(), 0 );
          assertEquals( site3.getRemainingWork( ModuleType.BASE ), 0 );
          assertEquals( site3.getRemainingWork( ModuleType.MOBILITY ), 5 );
          assertEquals( site3.getLocation().get().getContents().get(), site3 );
          assertTrue( CollectionUtils.isEqualElements( staticPlayer.getObjects(),
                                                       ImmutableSet.of( baseConstructorUnit, containerUnit, mobilityConstructorUnit,
                                                                        site3 ) ) );
  
          staticGame.getController().setReady();
          assertEquals( baseConstructorModule.getRemainingSpeed(), 3 );
          assertEquals( mobilityConstructorModule.getRemainingSpeed(), 0 );
          assertEquals( site3.getRemainingWork( ModuleType.BASE ), 0 );
          assertEquals( site3.getRemainingWork( ModuleType.MOBILITY ), 3 );
          assertEquals( site3.getLocation().get().getContents().get(), site3 );
          assertTrue( CollectionUtils.isEqualElements( staticPlayer.getObjects(),
                                                       ImmutableSet.of( baseConstructorUnit, containerUnit, mobilityConstructorUnit,
                                                                        site3 ) ) );
  
          staticGame.getController().setReady();
          assertEquals( baseConstructorModule.getRemainingSpeed(), 3 );
          assertEquals( mobilityConstructorModule.getRemainingSpeed(), 0 );
          assertEquals( site3.getRemainingWork( ModuleType.BASE ), 0 );
          assertEquals( site3.getRemainingWork( ModuleType.MOBILITY ), 1 );
          assertEquals( site3.getLocation().get().getContents().get(), site3 );
          assertTrue( CollectionUtils.isEqualElements( staticPlayer.getObjects(),
                                                       ImmutableSet.of( baseConstructorUnit, containerUnit, mobilityConstructorUnit,
                                                                        site3 ) ) );
  
          staticGame.getController().setReady();
          assertEquals( baseConstructorModule.getRemainingSpeed(), 3 );
          assertEquals( mobilityConstructorModule.getRemainingSpeed(), 1 );
          assertEquals( site3.getRemainingWork( ModuleType.BASE ), 0 );
          assertEquals( site3.getRemainingWork( ModuleType.MOBILITY ), 0 );
          assertNotEquals( site3.getLocation().get().getContents().get(), site3 );
          GameObject newUnit3 = GameObject.cast( site3.getLocation().get().getContents().get() );
          assertEquals( newUnit3.getType(), baseMobilityUnit );
          assertTrue( CollectionUtils.isEqualElements( staticPlayer.getObjects(),
                                                       ImmutableSet.of( baseConstructorUnit, containerUnit, mobilityConstructorUnit,
                                                                        newUnit3 ) ) );
          assertEquals( containerUnit.getModule( ModuleType.CONTAINER, 0 ).get().getStock(), 0 );
          newUnit3.getController().die();
          assertTrue( CollectionUtils.isEqualElements( staticPlayer.getObjects(),
                                                       ImmutableSet.of( baseConstructorUnit, containerUnit, mobilityConstructorUnit ) ) );
      }
test_case.class_method_signature: ConstructorModuleTest.testOnNewTurn()
test_case.full_signature: @Test public void testOnNewTurn()
test_case.identifier: testOnNewTurn
test_case.invocations: buildsModule buildSpeed createWithStandardResourceCost buildsModule buildSpeed createWithStandardResourceCost createUnit testUnitType supportedLayers viewRange armor maxHealth createWithStandardResourceCost values setReady getController testUnitType supportedLayers viewRange armor maxHealth createWithStandardResourceCost of testUnitType supportedLayers viewRange armor maxHealth createWithStandardResourceCost of levelingCost movementCost movementSpeed createWithStandardResourceCost of of get getModule get getModule get neighbour get getLocation schedule assertEquals getRemainingSpeed assertEquals getRemainingSpeed assertEquals getRemainingWork assertEquals getRemainingWork assertEquals get getContents get getLocation assertTrue isEqualElements getObjects of setReady getController assertEquals getRemainingSpeed assertEquals getRemainingSpeed assertEquals getRemainingWork assertEquals getRemainingWork assertEquals get getContents get getLocation assertTrue isEqualElements getObjects of createUnit testUnitType capacity resourceType createWithStandardResourceCost getConstructionWork get getStandardCost onModule addStock setReady getController assertEquals getRemainingSpeed assertEquals getRemainingSpeed assertEquals getRemainingWork assertEquals getRemainingWork assertEquals get getContents get getLocation assertTrue isEqualElements getObjects of setReady getController assertEquals getRemainingSpeed assertEquals getRemainingSpeed assertEquals getRemainingWork assertEquals getRemainingWork assertNotEquals get getContents get getLocation cast get getContents get getLocation assertEquals getType assertTrue isEqualElements getObjects of assertEquals getStock get getModule die getController assertTrue isEqualElements getObjects of getConstructionWork get getStandardCost get getStandardCost onModule addStock setReady getController get neighbour get getLocation schedule assertEquals getRemainingSpeed assertEquals getRemainingSpeed assertEquals getRemainingWork assertEquals getRemainingWork assertEquals get getContents get getLocation assertTrue isEqualElements getObjects of setReady getController assertEquals getRemainingSpeed assertEquals getRemainingSpeed assertEquals getRemainingWork assertEquals getRemainingWork assertEquals get getContents get getLocation assertTrue isEqualElements getObjects of setReady getController assertEquals getRemainingSpeed assertEquals getRemainingSpeed assertEquals getRemainingWork assertEquals getRemainingWork assertEquals get getContents get getLocation assertTrue isEqualElements getObjects of setReady getController assertEquals getRemainingSpeed assertEquals getRemainingSpeed assertEquals getRemainingWork assertEquals getRemainingWork assertEquals get getContents get getLocation assertTrue isEqualElements getObjects of setReady getController assertEquals getRemainingSpeed assertEquals getRemainingSpeed assertEquals getRemainingWork assertEquals getRemainingWork assertNotEquals get getContents get getLocation cast get getContents get getLocation assertEquals getType assertTrue isEqualElements getObjects of assertEquals getStock get getModule die getController die getController die getController assertTrue isEqualElements getObjects of buildsModule buildSpeed createWithStandardResourceCost createUnit testUnitType supportedLayers viewRange armor maxHealth createWithStandardResourceCost values get getModule createUnit testUnitType capacity resourceType createWithStandardResourceCost onModule addStock setReady getController get neighbour get getLocation schedule assertEquals getRemainingSpeed assertEquals getRemainingWork assertEquals getRemainingWork assertEquals get getContents get getLocation assertTrue isEqualElements getObjects of setReady getController assertEquals getRemainingSpeed assertEquals getRemainingWork assertEquals getRemainingWork assertEquals get getContents get getLocation assertTrue isEqualElements getObjects of setReady getController assertEquals getRemainingSpeed assertEquals getRemainingWork assertEquals getRemainingWork assertEquals get getContents get getLocation assertTrue isEqualElements getObjects of setReady getController assertEquals getRemainingSpeed assertEquals getRemainingWork assertEquals getRemainingWork assertEquals get getContents get getLocation assertTrue isEqualElements getObjects of setReady getController assertEquals getRemainingSpeed assertEquals getRemainingWork assertEquals getRemainingWork assertEquals get getContents get getLocation assertTrue isEqualElements getObjects of buildsModule buildSpeed createWithStandardResourceCost createUnit testUnitType get getModule setReady getController assertEquals getRemainingSpeed assertEquals getRemainingSpeed assertEquals getRemainingWork assertEquals getRemainingWork assertEquals get getContents get getLocation assertTrue isEqualElements getObjects of setTarget setReady getController assertEquals getRemainingSpeed assertEquals getRemainingSpeed assertEquals getRemainingWork assertEquals getRemainingWork assertEquals get getContents get getLocation assertTrue isEqualElements getObjects of setReady getController assertEquals getRemainingSpeed assertEquals getRemainingSpeed assertEquals getRemainingWork assertEquals getRemainingWork assertEquals get getContents get getLocation assertTrue isEqualElements getObjects of setReady getController assertEquals getRemainingSpeed assertEquals getRemainingSpeed assertEquals getRemainingWork assertEquals getRemainingWork assertEquals get getContents get getLocation assertTrue isEqualElements getObjects of setReady getController assertEquals getRemainingSpeed assertEquals getRemainingSpeed assertEquals getRemainingWork assertEquals getRemainingWork assertNotEquals get getContents get getLocation cast get getContents get getLocation assertEquals getType assertTrue isEqualElements getObjects of assertEquals getStock get getModule die getController assertTrue isEqualElements getObjects of
test_case.modifiers: @Test public
test_case.parameters: ()
test_case.return: void
test_case.signature: void testOnNewTurn()
focal_class.declarator: buildSpeed
focal_class.modifier: private final
focal_class.original_string: private final int           buildSpeed;
focal_class.type: int
focal_class.var_name: buildSpeed
focal_class.declarator: buildsModule
focal_class.modifier: private final
focal_class.original_string: private final ModuleType<?> buildsModule;
focal_class.type: ModuleType<?>
focal_class.var_name: buildsModule
focal_class.declarator: resourceConstrained
focal_class.modifier: private
focal_class.original_string: private boolean resourceConstrained;
focal_class.type: boolean
focal_class.var_name: resourceConstrained
focal_class.declarator: remainingSpeed
focal_class.modifier: private
focal_class.original_string: private int     remainingSpeed;
focal_class.type: int
focal_class.var_name: remainingSpeed
focal_class.declarator: target
focal_class.modifier: @Nullable
      private
focal_class.original_string: @Nullable
      private GameObject target;
focal_class.type: GameObject
focal_class.var_name: target
focal_class.file: omicron-core/src/main/java/com/lyndir/omicron/api/ConstructorModule.java
focal_class.identifier: ConstructorModule
focal_class.interfaces: implements IConstructorModule, IConstructorModuleController
focal_class.class_method_signature: ConstructorModule.ConstructorModule(final ImmutableResourceCost resourceCost, final int buildSpeed, final ModuleType<?> buildsModule)
focal_class.full_signature: protected  ConstructorModule(final ImmutableResourceCost resourceCost, final int buildSpeed, final ModuleType<?> buildsModule)
focal_class.identifier: ConstructorModule
focal_class.modifiers: protected
focal_class.parameters: (final ImmutableResourceCost resourceCost, final int buildSpeed, final ModuleType<?> buildsModule)
focal_class.signature:  ConstructorModule(final ImmutableResourceCost resourceCost, final int buildSpeed, final ModuleType<?> buildsModule)
focal_class.class_method_signature: ConstructorModule.createWithStandardResourceCost()
focal_class.full_signature: static Builder0 createWithStandardResourceCost()
focal_class.identifier: createWithStandardResourceCost
focal_class.modifiers: static
focal_class.parameters: ()
focal_class.return: Builder0
focal_class.signature: Builder0 createWithStandardResourceCost()
focal_class.class_method_signature: ConstructorModule.createWithExtraResourceCost(final ImmutableResourceCost resourceCost)
focal_class.full_signature: static Builder0 createWithExtraResourceCost(final ImmutableResourceCost resourceCost)
focal_class.identifier: createWithExtraResourceCost
focal_class.modifiers: static
focal_class.parameters: (final ImmutableResourceCost resourceCost)
focal_class.return: Builder0
focal_class.signature: Builder0 createWithExtraResourceCost(final ImmutableResourceCost resourceCost)
focal_class.class_method_signature: ConstructorModule.onReset()
focal_class.full_signature: @Override protected void onReset()
focal_class.identifier: onReset
focal_class.modifiers: @Override protected
focal_class.parameters: ()
focal_class.return: void
focal_class.signature: void onReset()
focal_class.class_method_signature: ConstructorModule.onNewTurn()
focal_class.full_signature: @Override protected void onNewTurn()
focal_class.identifier: onNewTurn
focal_class.modifiers: @Override protected
focal_class.parameters: ()
focal_class.return: void
focal_class.signature: void onNewTurn()
focal_class.class_method_signature: ConstructorModule.construct(final ConstructionSite site)
focal_class.full_signature: private void construct(final ConstructionSite site)
focal_class.identifier: construct
focal_class.modifiers: private
focal_class.parameters: (final ConstructionSite site)
focal_class.return: void
focal_class.signature: void construct(final ConstructionSite site)
focal_class.class_method_signature: ConstructorModule.getBuildsModule()
focal_class.full_signature: @Override public ModuleType<?> getBuildsModule()
focal_class.identifier: getBuildsModule
focal_class.modifiers: @Override public
focal_class.parameters: ()
focal_class.return: ModuleType<?>
focal_class.signature: ModuleType<?> getBuildsModule()
focal_class.class_method_signature: ConstructorModule.getBuildSpeed()
focal_class.full_signature: @Override public int getBuildSpeed()
focal_class.identifier: getBuildSpeed
focal_class.modifiers: @Override public
focal_class.parameters: ()
focal_class.return: int
focal_class.signature: int getBuildSpeed()
focal_class.class_method_signature: ConstructorModule.isResourceConstrained()
focal_class.full_signature: @Override public boolean isResourceConstrained()
focal_class.identifier: isResourceConstrained
focal_class.modifiers: @Override public
focal_class.parameters: ()
focal_class.return: boolean
focal_class.signature: boolean isResourceConstrained()
focal_class.class_method_signature: ConstructorModule.getRemainingSpeed()
focal_class.full_signature: @Override public int getRemainingSpeed()
focal_class.identifier: getRemainingSpeed
focal_class.modifiers: @Override public
focal_class.parameters: ()
focal_class.return: int
focal_class.signature: int getRemainingSpeed()
focal_class.class_method_signature: ConstructorModule.getTarget()
focal_class.full_signature: @Nullable @Override public GameObject getTarget()
focal_class.identifier: getTarget
focal_class.modifiers: @Nullable @Override public
focal_class.parameters: ()
focal_class.return: GameObject
focal_class.signature: GameObject getTarget()
focal_class.class_method_signature: ConstructorModule.setTarget(@Nullable final IGameObject target)
focal_class.full_signature: @Override public void setTarget(@Nullable final IGameObject target)
focal_class.identifier: setTarget
focal_class.modifiers: @Override public
focal_class.parameters: (@Nullable final IGameObject target)
focal_class.return: void
focal_class.signature: void setTarget(@Nullable final IGameObject target)
focal_class.class_method_signature: ConstructorModule.blueprints()
focal_class.full_signature: @Override public ImmutableSet<? extends UnitType> blueprints()
focal_class.identifier: blueprints
focal_class.modifiers: @Override public
focal_class.parameters: ()
focal_class.return: ImmutableSet<? extends UnitType>
focal_class.signature: ImmutableSet<? extends UnitType> blueprints()
focal_class.class_method_signature: ConstructorModule.schedule(final IUnitType unitType, final ITile location)
focal_class.full_signature: @Override public ConstructionSite schedule(final IUnitType unitType, final ITile location)
focal_class.identifier: schedule
focal_class.modifiers: @Override public
focal_class.parameters: (final IUnitType unitType, final ITile location)
focal_class.return: ConstructionSite
focal_class.signature: ConstructionSite schedule(final IUnitType unitType, final ITile location)
focal_class.class_method_signature: ConstructorModule.getController()
focal_class.full_signature: @Override public IConstructorModuleController getController()
focal_class.identifier: getController
focal_class.modifiers: @Override public
focal_class.parameters: ()
focal_class.return: IConstructorModuleController
focal_class.signature: IConstructorModuleController getController()
focal_class.class_method_signature: ConstructorModule.getModule()
focal_class.full_signature: @Override public IConstructorModule getModule()
focal_class.identifier: getModule
focal_class.modifiers: @Override public
focal_class.parameters: ()
focal_class.return: IConstructorModule
focal_class.signature: IConstructorModule getModule()
focal_class.superclass: extends Module
focal_method.body: @Override
      protected void onNewTurn() {
      }
focal_method.class_method_signature: ConstructorModule.onNewTurn()
focal_method.full_signature: @Override protected void onNewTurn()
focal_method.identifier: onNewTurn
focal_method.modifiers: @Override protected
focal_method.parameters: ()
focal_method.return: void
focal_method.signature: void onNewTurn()