本文整理汇总了Java中net.minecraft.entity.Entity.hasCapability方法的典型用法代码示例。如果您正苦于以下问题:Java Entity.hasCapability方法的具体用法?Java Entity.hasCapability怎么用?Java Entity.hasCapability使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类net.minecraft.entity.Entity
的用法示例。
在下文中一共展示了Entity.hasCapability方法的4个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Java代码示例。
示例1: worldTick
import net.minecraft.entity.Entity; //导入方法依赖的package包/类
@SubscribeEvent
public void worldTick(TickEvent.WorldTickEvent event) {
if (event.phase == TickEvent.Phase.END) {
try {
for (Entity entity : event.world.loadedEntityList) {
if (entity.hasCapability(CapabilityHackingProvider.HACKING_CAPABILITY, null)) {
IHacking hack = entity.getCapability(CapabilityHackingProvider.HACKING_CAPABILITY, null);
if (!hack.getCurrentHacks().isEmpty()) {
hack.update(entity);
}
}
}
} catch (Throwable e) {
// Catching a CME which I have no clue on what might cause it.
}
}
}
示例2: canHack
import net.minecraft.entity.Entity; //导入方法依赖的package包/类
@Override
public boolean canHack(Entity entity, EntityPlayer player) {
if (entity.hasCapability(CapabilityItemHandler.ITEM_HANDLER_CAPABILITY, null)) {
IItemHandler handler = entity.getCapability(CapabilityItemHandler.ITEM_HANDLER_CAPABILITY, null);
for (int i = 0; i < handler.getSlots(); i++) {
if (!handler.getStackInSlot(i).isEmpty()) return true;
}
}
return false;
}
示例3: onEntityAttack
import net.minecraft.entity.Entity; //导入方法依赖的package包/类
@SubscribeEvent(priority=EventPriority.LOWEST)
public void onEntityAttack(LivingAttackEvent e) {
if (e.getEntity().getEntityWorld().isRemote) return;
Entity attacker = e.getSource().getTrueSource();
if (attacker==null) return; //It's probably just some bat dying in lava
if (attacker.hasCapability(CAPABILITY_WEAPONSKILL, EnumFacing.UP)) {
IWeaponSkillInfo skillInfo = attacker.getCapability(CAPABILITY_WEAPONSKILL, EnumFacing.UP);
if (skillInfo.getCooldown()<=0) {
//Search for activations
if (attacker instanceof EntityLivingBase) {
//Tool activations
if (e.getSource().damageType.equals("player")) {
ItemStack weapon = ((EntityLivingBase)attacker).getHeldItem(((EntityLivingBase) attacker).getActiveHand());
if (weapon.getItem() instanceof ISkillActivating) {
int activated = ((ISkillActivating) weapon.getItem()).activateSkill(skillInfo, (EntityLivingBase)attacker, weapon, e.getSource(), (EntityLiving) e.getEntityLiving());
if (activated>0) {
// TODO: Stats? Advancements?
skillInfo.setCooldown(activated);
}
}
}
}
}
}
//TODO: Check the defender for armor WeaponSkills
}
示例4: trackEntity
import net.minecraft.entity.Entity; //导入方法依赖的package包/类
public void trackEntity(Entity entity, IHackableEntity iHackable) {
if (iHackable.getId() != null && entity.hasCapability(CapabilityHackingProvider.HACKING_CAPABILITY, null)) {
IHacking hack = entity.getCapability(CapabilityHackingProvider.HACKING_CAPABILITY, null);
hack.addHackable(iHackable);
}
}