package net.glowstone.entity.ai;
import org.bukkit.entity.EntityType;
import java.util.*;
public class EntityDirector {
private static Map<EntityType, Map<MobState, List<String>>> mobStates = new HashMap<>();
private static Map<String, Class<? extends EntityTask>> tasks = new HashMap<>();
static {
registerEntityTask("look_around", LookAroundTask.class);
registerEntityTask("look_player", LookAtPlayerTask.class);
registerEntityTask("follow_player", FollowPlayerTask.class);
}
public static void registerEntityMobState(EntityType entity, MobState state, String task) {
if (!mobStates.containsKey(entity)) {
mobStates.put(entity, new HashMap<>());
}
if (!mobStates.get(entity).containsKey(state)) {
mobStates.get(entity).put(state, new ArrayList<>());
}
mobStates.get(entity).get(state).add(task);
}
public static Collection<String> getEntityMobStateTask(EntityType entity, MobState state) {
if (mobStates.containsKey(entity) && mobStates.get(entity).containsKey(state)) {
return mobStates.get(entity).get(state);
}
return new ArrayList<>();
}
public static void registerEntityTask(String name, Class<? extends EntityTask> task) {
tasks.put(name, task);
}
public static Class<? extends EntityTask> getEntityTask(String name) {
return tasks.get(name);
}
}