本文整理匯總了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);
}
}