本文整理汇总了Java中net.minecraft.entity.ai.EntityAIBase类的典型用法代码示例。如果您正苦于以下问题:Java EntityAIBase类的具体用法?Java EntityAIBase怎么用?Java EntityAIBase使用的例子?那么, 这里精选的类代码示例或许可以为您提供帮助。
EntityAIBase类属于net.minecraft.entity.ai包,在下文中一共展示了EntityAIBase类的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Java代码示例。
示例1: removeTask
import net.minecraft.entity.ai.EntityAIBase; //导入依赖的package包/类
/**
* removes the indicated task from the entity's AI tasks.
*/
public void removeTask(EntityAIBase par1EntityAIBase) {
Iterator iterator = taskEntries.iterator();
while (iterator.hasNext()) {
EntityAITaskEntry entityaitaskentry = (EntityAITaskEntry) iterator.next();
EntityAIBase entityaibase1 = entityaitaskentry.action;
if (entityaibase1 == par1EntityAIBase) {
if (executingTaskEntries.contains(entityaitaskentry)) {
entityaibase1.resetTask();
executingTaskEntries.remove(entityaitaskentry);
}
iterator.remove();
}
}
}
示例2: initEntityAI
import net.minecraft.entity.ai.EntityAIBase; //导入依赖的package包/类
@Override
protected void initEntityAI() {
super.initEntityAI();
EntityAIBase remove = null;
for(EntityAITaskEntry task : this.tasks.taskEntries) {
if(task.action.getClass().getSimpleName().equals("AIFireballAttack")) {
remove = task.action;
break;
}
}
if(remove != null) {
this.tasks.removeTask(remove);
this.tasks.addTask(7, new AIUnderworldFireballAttack(this));
} else {
Log.logger.error(this.getName() + " failed to override Ghast fireball AI.");
}
}
示例3: generateAIList
import net.minecraft.entity.ai.EntityAIBase; //导入依赖的package包/类
private String[] generateAIList(boolean target)
{
Iterator<Class<? extends EntityAIBase>> it = CustomAIHelper.isTarget.keySet().iterator();
ArrayList<String> list = new ArrayList<String>();
while(it.hasNext())
{
Class<? extends EntityAIBase> c = it.next();
Boolean bool = CustomAIHelper.isTarget.get(c);
if(bool == null)
;
else if(bool)
{
if(target && CustomAIHelper.isSuitableForEntity((EntityLiving) entity, c))
list.add(CustomAIHelper.getNameFromClass(c));
}
else
{
if(!target && CustomAIHelper.isSuitableForEntity((EntityLiving) entity, c))
list.add(CustomAIHelper.getNameFromClass(c));
}
}
return list.toArray(new String[0]);
}
示例4: generateAIList
import net.minecraft.entity.ai.EntityAIBase; //导入依赖的package包/类
private String[] generateAIList(boolean target)
{
Iterator<Class<? extends EntityAIBase>> it = CustomAIHelper.isTarget.keySet().iterator();
ArrayList<String> list = new ArrayList<String>();
while(it.hasNext())
{
Class<? extends EntityAIBase> c = it.next();
Boolean bool = CustomAIHelper.isTarget.get(c);
if(bool == null)
;
else if(bool)
{
if(target)
list.add(CustomAIHelper.getNameFromClass(c));
}
else
{
if(!target)
list.add(CustomAIHelper.getNameFromClass(c));
}
}
return list.toArray(new String[0]);
}
示例5: getWorkerFromClass
import net.minecraft.entity.ai.EntityAIBase; //导入依赖的package包/类
public EntityAIWorker getWorkerFromClass(Class<? extends EntityAIBase> c)
{
Set<Class<? extends EntityAIBase>[]> keys = workerRegistry.keySet();
Iterator<Class<? extends EntityAIBase>[]> it = keys.iterator();
while(it.hasNext())
{
Class<? extends EntityAIBase>[] classes = it.next();
for(Class<? extends EntityAIBase> clazz : classes)
{
if(clazz == c)
{
return workerRegistry.get(classes);
}
}
}
return null;
}
示例6: removeDummyAIBlockerTask
import net.minecraft.entity.ai.EntityAIBase; //导入依赖的package包/类
/**
* Removes the (last found) dummy blocker AI task, if any
* @param tasks
*/
public static void removeDummyAIBlockerTask(EntityAITasks tasks)
{
EntityAIBase task = null;
for (EntityAITaskEntry taskEntry : tasks.taskEntries)
{
if (taskEntry.action instanceof EntityAIDummyBlockerTask)
{
task = taskEntry.action;
}
// Restore the default mutex bits.
// TODO: If modded mob tasks use this bit, then we should store the original value so we can restore it.
if (taskEntry.action instanceof EntityAIFindEntityNearestPlayer)
{
taskEntry.action.setMutexBits(taskEntry.action.getMutexBits() & 0x7F);
}
}
if (task != null)
{
tasks.removeTask(task);
}
}
示例7: func_85156_a
import net.minecraft.entity.ai.EntityAIBase; //导入依赖的package包/类
public void func_85156_a(EntityAIBase p_85156_1_) {
Iterator var2 = this.field_75782_a.iterator();
while(var2.hasNext()) {
EntityAITaskEntry var3 = (EntityAITaskEntry)var2.next();
EntityAIBase var4 = var3.field_75733_a;
if(var4 == p_85156_1_) {
if(this.field_75780_b.contains(var3)) {
var4.func_75251_c();
this.field_75780_b.remove(var3);
}
var2.remove();
}
}
}
示例8: removeTask
import net.minecraft.entity.ai.EntityAIBase; //导入依赖的package包/类
/**
* removes the indicated task from the entity's AI tasks.
*/
public void removeTask(EntityAIBase par1EntityAIBase){
Iterator iterator = taskEntries.iterator();
while(iterator.hasNext()) {
EntityAITaskEntry entityaitaskentry = (EntityAITaskEntry)iterator.next();
EntityAIBase entityaibase1 = entityaitaskentry.action;
if(entityaibase1 == par1EntityAIBase) {
if(executingTaskEntries.contains(entityaitaskentry)) {
entityaibase1.resetTask();
executingTaskEntries.remove(entityaitaskentry);
}
iterator.remove();
}
}
}
示例9: getWidgetAI
import net.minecraft.entity.ai.EntityAIBase; //导入依赖的package包/类
@Override
public EntityAIBase getWidgetAI(IDroneBase drone, IProgWidget widget) {
return new DroneEntityBase<IProgWidget, EntityLivingBase>(drone, widget) {
private final List<Entity> visitedEntities = new ArrayList<Entity>();
@Override
protected boolean isEntityValid(Entity entity) {
return entity instanceof EntityLivingBase && !visitedEntities.contains(entity);
}
@Override
protected boolean doAction() {
visitedEntities.add(targetedEntity);
boolean activated = false;
ItemStack stack = drone.getInv().getStackInSlot(0);
if (stack.getItem().itemInteractionForEntity(stack, drone.getFakePlayer(), targetedEntity, EnumHand.MAIN_HAND)) {
activated = true;
}
if (!activated && targetedEntity instanceof EntityAgeable && ((EntityAgeable) targetedEntity).processInteract(drone.getFakePlayer(), EnumHand.MAIN_HAND)) {
activated = true;
}
DroneAIBlockInteract.transferToDroneFromFakePlayer(drone);
return false;//return activated; <-- will right click as long as it's sucessfully activated.
}
};
}
示例10: getWidgetAI
import net.minecraft.entity.ai.EntityAIBase; //导入依赖的package包/类
@Override
public EntityAIBase getWidgetAI(IDroneBase drone, IProgWidget widget) {
if (widget instanceof ProgWidgetDroneEvaluation) {
return null;
} else {
return new EntityAIBase() {//Trick the CC program into thinking this is an executable piece.
@Override
public boolean shouldExecute() {
return false;
}
};
}
}
示例11: isEntityAITaskActive
import net.minecraft.entity.ai.EntityAIBase; //导入依赖的package包/类
public static boolean isEntityAITaskActive(EntityLiving entity, String AIName) {
for(Object obj : entity.tasks.taskEntries) {
EntityAITaskEntry taskEntry = (EntityAITaskEntry) obj;
EntityAIBase task = taskEntry.action;
if(task instanceof IEntityAIAnimation) {
IEntityAIAnimation animatedTask = (IEntityAIAnimation) task;
if(animatedTask.getAIName().equals(AIName) && animatedTask.isExecuting())
return true;
}
}
return false;
}
示例12: buffedNametag
import net.minecraft.entity.ai.EntityAIBase; //导入依赖的package包/类
@SubscribeEvent(priority = EventPriority.LOW)
public void buffedNametag(EntityInteractEvent event) {
ItemStack is = event.entityPlayer.getHeldItem();
if (is == null) return;
if (is.getItem() != Items.name_tag) return;
if (!(event.target instanceof EntityLiving)) return;
final EntityLiving ent = (EntityLiving) event.target;
final String origName = ent.getCustomNameTag();
if (!Strings.isNullOrEmpty(origName)) return;
NBTTagCompound tag = ent.getEntityData();
final String name = "FZMiscBuffNametags";
if (tag.hasKey(name)) return;
tag.setBoolean(name, true);
ent.tasks.addTask(0, new EntityAIBase() {
boolean buffApplied = false; // Might not be necessary.
@Override
public boolean shouldExecute() {
if (buffApplied) return false;
buffApplied = true;
if (ent.getCustomNameTag().equals(origName)) return false;
float delta = 2*3;
float origHealth = ent.getMaxHealth();
float newMaxHealth = origHealth + delta;
ent.getEntityAttribute(SharedMonsterAttributes.maxHealth).setBaseValue(newMaxHealth);
ent.heal(delta);
EnumParticleTypes particleType = EnumParticleTypes.HEART;
if (ent instanceof IMob) {
particleType = EnumParticleTypes.SMOKE_NORMAL;
}
if (ent.worldObj instanceof WorldServer) {
WorldServer ws = (WorldServer) ent.worldObj;
ws.spawnParticle(particleType, false, ent.posX, ent.posY, ent.posZ, 8, 0.0, 0.0, 0.0, 0.0);
}
return false;
}
});
}
示例13: addTask
import net.minecraft.entity.ai.EntityAIBase; //导入依赖的package包/类
@Override
public boolean addTask(int priority, AIBase ai) {
if (ai instanceof EntityAIBase) {
this.addTask(priority, (EntityAIBase) ai);
} else {
this.addTask(priority, new NeptuneCustomEntityAI(ai));
}
return this.hasTask(ai.getClass());
}
示例14: EntityPeep
import net.minecraft.entity.ai.EntityAIBase; //导入依赖的package包/类
public EntityPeep(World world){
super(world);
this.timeUntilNextEasterEgg = this.rand.nextInt(6000) + 6000;
EntityAIBase tempt = null;
for(Object thingy : tasks.taskEntries){
EntityAITasks.EntityAITaskEntry ai = (EntityAITasks.EntityAITaskEntry)thingy;
if(ai.action instanceof EntityAITempt) {
tempt = ai.action;
break;
}
}
if(tempt !=null)
this.tasks.removeTask(tempt);
this.tasks.addTask(3, new EntityAITempt(this, 1.0D, Items.sugar, false));
}
示例15: getNameForTask
import net.minecraft.entity.ai.EntityAIBase; //导入依赖的package包/类
public static String getNameForTask(Class<? extends EntityAIBase> action)
{
if(map.containsKey(action))
{
return map.get(action);
}
String s = action.getCanonicalName();
if(s.contains("."))
{
return s.substring(s.lastIndexOf('.')+1);
}
return s;
}