當前位置: 首頁>>代碼示例>>Java>>正文


Java Entity.hasCapability方法代碼示例

本文整理匯總了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.
        }
    }
}
 
開發者ID:TeamPneumatic,項目名稱:pnc-repressurized,代碼行數:18,代碼來源:HackTickHandler.java

示例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;
}
 
開發者ID:TeamPneumatic,項目名稱:pnc-repressurized,代碼行數:11,代碼來源:HackableLivingDisarm.java

示例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
}
 
開發者ID:elytra,項目名稱:Thermionics,代碼行數:31,代碼來源:Thermionics.java

示例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);
    }
}
 
開發者ID:TeamPneumatic,項目名稱:pnc-repressurized,代碼行數:7,代碼來源:HackTickHandler.java


注:本文中的net.minecraft.entity.Entity.hasCapability方法示例由純淨天空整理自Github/MSDocs等開源代碼及文檔管理平台,相關代碼片段篩選自各路編程大神貢獻的開源項目,源碼版權歸原作者所有,傳播和使用請參考對應項目的License;未經允許,請勿轉載。