package org.petah.spring.bai.util;
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;
/**
*
* @author Petah
*/
public class CommandUtil {
// Options
private static Option<Integer> commandTimeout = OptionsManager.getOption(
new Option<Integer>("CommandUtil.commandTimeout", 3000));
// Move states
public static final int MOVE_STATE_HOLD_POSITION = 0;
public static final int MOVE_STATE_MANEUVER = 1;
public static final int MOVE_STATE_ROAM = 2;
// Building facing directions
public static final int FACING_NORTH = 0;
public static final int FACING_EAST = 1;
public static final int FACING_SOUTH = 2;
public static final int FACING_WEST = 3;
// Bits for the option field of a command
public static final int META_KEY = (1 << 2); // 4
public static final int DONT_REPEAT = (1 << 3); // 8
public static final int RIGHT_MOUSE_KEY = (1 << 4); // 16
public static final int SHIFT_KEY = (1 << 5); // 32
public static final int CONTROL_KEY = (1 << 6); // 64
public static final int ALT_KEY = (1 << 7); // 128
// Option definitions
public static final short OPT_NONE = 0;
public static final short OPT_QUEUE = SHIFT_KEY;
public static int getMapCenterFacing(AIDelegate aiDelegate, CachedUnit unit) {
double direction = BuilderUtil.getMapCenterDirection(unit.getPos());
// System.err.println("direction: " + direction);
if (direction >= 45 && direction < 135) {
return FACING_SOUTH;
}
if (direction >= 135 && direction < 225) {
return FACING_WEST;
}
if (direction >= 225 && direction < 315) {
return FACING_NORTH;
}
return FACING_EAST;
}
}