/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
package org.petah.spring.bai.tasks.standard;
import org.petah.common.option.Option;
import org.petah.common.option.OptionsManager;
import org.petah.spring.bai.cache.CachedUnit;
import org.petah.spring.bai.delegate.AIDelegate;
import org.petah.spring.bai.group.UnitGroup;
import org.petah.spring.bai.tasks.Task;
import org.petah.spring.bai.unit.UnitType;
/**
*
* @author Petah
*/
public class DefaultExpansionBuilder extends Task {
// Options
private static Option<Integer> updateTime = OptionsManager.getOption(
new Option<Integer>("DefaultExpansionBuilder.updateTime", 20));
// Class properties
private int nextUpdate = 0;
public DefaultExpansionBuilder(AIDelegate aiDelegate) {
super(aiDelegate);
}
public boolean update(UnitGroup group, int frame) {
// If its time to update
if (nextUpdate <= frame) {
nextUpdate = frame + updateTime.getValue();
for (CachedUnit builder : group) {
if (builder.getUnitInfo().isType(UnitType.Builder) && builder.getCurrentCommands().size() == 0) {
DefaultCommands.queueClosestMetalExtractor(aiDelegate, builder,
DefaultCommands.getBestMetalExtractor(aiDelegate, null, builder), builder.getPos());
}
}
}
return false;
}
}