当前位置: 首页>>代码示例>>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;未经允许,请勿转载。