Java 类net.minecraft.entity.item.EntityXPOrb 实例源码

项目:Infernum    文件:SpellSoulDrain.java   
@Override
public void onCastTick(World world, EntityPlayer player, ItemStack stack) {
    if (!world.isRemote) {
        BlockPos centerPos = player.getPosition();
        AxisAlignedBB area = new AxisAlignedBB(centerPos).expandXyz(3F);
        for (Entity entity : world.getEntitiesWithinAABBExcludingEntity(player, area)) {
            if (entity instanceof EntityLivingBase) {
                WorldServer worldServer = (WorldServer) world;
                if (player.getItemInUseCount() % 10 == 0 && consumePower(player)) {
                    MessageSoulDrainFX message = new MessageSoulDrainFX(entity.posX,
                            entity.posY + (entity.height / 2.0F), entity.posZ, player.posX,
                            player.posY + (player.height / 2.0F), player.posZ);
                    PacketHandler.INSTANCE.sendToAllAround(message, new NetworkRegistry.TargetPoint(
                            player.dimension, player.posX, player.posY, player.posZ, 128));
                    entity.attackEntityFrom(DamageSource.magic, 1);
                    world.spawnEntity(new EntityXPOrb(world, entity.posX, entity.posY + 0.5, entity.posZ, 1));
                }
            }
        }
    }
}
项目:DecompiledMinecraft    文件:EntityLivingBase.java   
/**
 * Called whenever an item is picked up from walking over it. Args: pickedUpEntity, stackSize
 */
public void onItemPickup(Entity p_71001_1_, int p_71001_2_)
{
    if (!p_71001_1_.isDead && !this.worldObj.isRemote)
    {
        EntityTracker entitytracker = ((WorldServer)this.worldObj).getEntityTracker();

        if (p_71001_1_ instanceof EntityItem)
        {
            entitytracker.sendToAllTrackingEntity(p_71001_1_, new S0DPacketCollectItem(p_71001_1_.getEntityId(), this.getEntityId()));
        }

        if (p_71001_1_ instanceof EntityArrow)
        {
            entitytracker.sendToAllTrackingEntity(p_71001_1_, new S0DPacketCollectItem(p_71001_1_.getEntityId(), this.getEntityId()));
        }

        if (p_71001_1_ instanceof EntityXPOrb)
        {
            entitytracker.sendToAllTrackingEntity(p_71001_1_, new S0DPacketCollectItem(p_71001_1_.getEntityId(), this.getEntityId()));
        }
    }
}
项目:CustomWorldGen    文件:NetHandlerPlayClient.java   
public void handleCollectItem(SPacketCollectItem packetIn)
{
    PacketThreadUtil.checkThreadAndEnqueue(packetIn, this, this.gameController);
    Entity entity = this.clientWorldController.getEntityByID(packetIn.getCollectedItemEntityID());
    EntityLivingBase entitylivingbase = (EntityLivingBase)this.clientWorldController.getEntityByID(packetIn.getEntityID());

    if (entitylivingbase == null)
    {
        entitylivingbase = this.gameController.thePlayer;
    }

    if (entity != null)
    {
        if (entity instanceof EntityXPOrb)
        {
            this.clientWorldController.playSound(entity.posX, entity.posY, entity.posZ, SoundEvents.ENTITY_EXPERIENCE_ORB_PICKUP, SoundCategory.PLAYERS, 0.2F, ((this.avRandomizer.nextFloat() - this.avRandomizer.nextFloat()) * 0.7F + 1.0F) * 2.0F, false);
        }
        else
        {
            this.clientWorldController.playSound(entity.posX, entity.posY, entity.posZ, SoundEvents.ENTITY_ITEM_PICKUP, SoundCategory.PLAYERS, 0.2F, ((this.avRandomizer.nextFloat() - this.avRandomizer.nextFloat()) * 0.7F + 1.0F) * 2.0F, false);
        }

        this.gameController.effectRenderer.addEffect(new ParticleItemPickup(this.clientWorldController, entity, entitylivingbase, 0.5F));
        this.clientWorldController.removeEntityFromWorld(packetIn.getCollectedItemEntityID());
    }
}
项目:DecompiledMinecraft    文件:NetHandlerPlayClient.java   
public void handleCollectItem(S0DPacketCollectItem packetIn)
{
    PacketThreadUtil.checkThreadAndEnqueue(packetIn, this, this.gameController);
    Entity entity = this.clientWorldController.getEntityByID(packetIn.getCollectedItemEntityID());
    EntityLivingBase entitylivingbase = (EntityLivingBase)this.clientWorldController.getEntityByID(packetIn.getEntityID());

    if (entitylivingbase == null)
    {
        entitylivingbase = this.gameController.thePlayer;
    }

    if (entity != null)
    {
        if (entity instanceof EntityXPOrb)
        {
            this.clientWorldController.playSoundAtEntity(entity, "random.orb", 0.2F, ((this.avRandomizer.nextFloat() - this.avRandomizer.nextFloat()) * 0.7F + 1.0F) * 2.0F);
        }
        else
        {
            this.clientWorldController.playSoundAtEntity(entity, "random.pop", 0.2F, ((this.avRandomizer.nextFloat() - this.avRandomizer.nextFloat()) * 0.7F + 1.0F) * 2.0F);
        }

        this.gameController.effectRenderer.addEffect(new EntityPickupFX(this.clientWorldController, entity, entitylivingbase, 0.5F));
        this.clientWorldController.removeEntityFromWorld(packetIn.getCollectedItemEntityID());
    }
}
项目:BaseClient    文件:EntityLivingBase.java   
/**
 * Called whenever an item is picked up from walking over it. Args: pickedUpEntity, stackSize
 */
public void onItemPickup(Entity p_71001_1_, int p_71001_2_)
{
    if (!p_71001_1_.isDead && !this.worldObj.isRemote)
    {
        EntityTracker entitytracker = ((WorldServer)this.worldObj).getEntityTracker();

        if (p_71001_1_ instanceof EntityItem)
        {
            entitytracker.sendToAllTrackingEntity(p_71001_1_, new S0DPacketCollectItem(p_71001_1_.getEntityId(), this.getEntityId()));
        }

        if (p_71001_1_ instanceof EntityArrow)
        {
            entitytracker.sendToAllTrackingEntity(p_71001_1_, new S0DPacketCollectItem(p_71001_1_.getEntityId(), this.getEntityId()));
        }

        if (p_71001_1_ instanceof EntityXPOrb)
        {
            entitytracker.sendToAllTrackingEntity(p_71001_1_, new S0DPacketCollectItem(p_71001_1_.getEntityId(), this.getEntityId()));
        }
    }
}
项目:BaseClient    文件:NetHandlerPlayClient.java   
public void handleCollectItem(S0DPacketCollectItem packetIn)
{
    PacketThreadUtil.checkThreadAndEnqueue(packetIn, this, this.gameController);
    Entity entity = this.clientWorldController.getEntityByID(packetIn.getCollectedItemEntityID());
    EntityLivingBase entitylivingbase = (EntityLivingBase)this.clientWorldController.getEntityByID(packetIn.getEntityID());

    if (entitylivingbase == null)
    {
        entitylivingbase = this.gameController.thePlayer;
    }

    if (entity != null)
    {
        if (entity instanceof EntityXPOrb)
        {
            this.clientWorldController.playSoundAtEntity(entity, "random.orb", 0.2F, ((this.avRandomizer.nextFloat() - this.avRandomizer.nextFloat()) * 0.7F + 1.0F) * 2.0F);
        }
        else
        {
            this.clientWorldController.playSoundAtEntity(entity, "random.pop", 0.2F, ((this.avRandomizer.nextFloat() - this.avRandomizer.nextFloat()) * 0.7F + 1.0F) * 2.0F);
        }

        this.gameController.effectRenderer.addEffect(new EntityPickupFX(this.clientWorldController, entity, entitylivingbase, 0.5F));
        this.clientWorldController.removeEntityFromWorld(packetIn.getCollectedItemEntityID());
    }
}
项目:BaseClient    文件:EntityLivingBase.java   
/**
 * Called whenever an item is picked up from walking over it. Args: pickedUpEntity, stackSize
 */
public void onItemPickup(Entity p_71001_1_, int p_71001_2_)
{
    if (!p_71001_1_.isDead && !this.worldObj.isRemote)
    {
        EntityTracker entitytracker = ((WorldServer)this.worldObj).getEntityTracker();

        if (p_71001_1_ instanceof EntityItem)
        {
            entitytracker.sendToAllTrackingEntity(p_71001_1_, new S0DPacketCollectItem(p_71001_1_.getEntityId(), this.getEntityId()));
        }

        if (p_71001_1_ instanceof EntityArrow)
        {
            entitytracker.sendToAllTrackingEntity(p_71001_1_, new S0DPacketCollectItem(p_71001_1_.getEntityId(), this.getEntityId()));
        }

        if (p_71001_1_ instanceof EntityXPOrb)
        {
            entitytracker.sendToAllTrackingEntity(p_71001_1_, new S0DPacketCollectItem(p_71001_1_.getEntityId(), this.getEntityId()));
        }
    }
}
项目:BaseClient    文件:NetHandlerPlayClient.java   
public void handleCollectItem(S0DPacketCollectItem packetIn) {
    PacketThreadUtil.checkThreadAndEnqueue(packetIn, this, this.gameController);
    Entity entity = this.clientWorldController.getEntityByID(packetIn.getCollectedItemEntityID());
    EntityLivingBase entitylivingbase = (EntityLivingBase) this.clientWorldController
            .getEntityByID(packetIn.getEntityID());

    if (entitylivingbase == null) {
        entitylivingbase = this.gameController.thePlayer;
    }

    if (entity != null) {
        if (entity instanceof EntityXPOrb) {
            this.clientWorldController.playSoundAtEntity(entity, "random.orb", 0.2F,
                    ((this.avRandomizer.nextFloat() - this.avRandomizer.nextFloat()) * 0.7F + 1.0F) * 2.0F);
        } else {
            this.clientWorldController.playSoundAtEntity(entity, "random.pop", 0.2F,
                    ((this.avRandomizer.nextFloat() - this.avRandomizer.nextFloat()) * 0.7F + 1.0F) * 2.0F);
        }

        this.gameController.effectRenderer
                .addEffect(new EntityPickupFX(this.clientWorldController, entity, entitylivingbase, 0.5F));
        this.clientWorldController.removeEntityFromWorld(packetIn.getCollectedItemEntityID());
    }
}
项目:Zombe-Modpack    文件:NetHandlerPlayClient.java   
public void handleCollectItem(SPacketCollectItem packetIn)
{
    PacketThreadUtil.checkThreadAndEnqueue(packetIn, this, this.gameController);
    Entity entity = this.clientWorldController.getEntityByID(packetIn.getCollectedItemEntityID());
    EntityLivingBase entitylivingbase = (EntityLivingBase)this.clientWorldController.getEntityByID(packetIn.getEntityID());

    if (entitylivingbase == null)
    {
        entitylivingbase = this.gameController.player;
    }

    if (entity != null)
    {
        SoundEvent soundevent = entity instanceof EntityXPOrb ? SoundEvents.ENTITY_EXPERIENCE_ORB_PICKUP : SoundEvents.ENTITY_ITEM_PICKUP;
        this.clientWorldController.playSound(entity.posX, entity.posY, entity.posZ, soundevent, SoundCategory.PLAYERS, 0.2F, ((this.avRandomizer.nextFloat() - this.avRandomizer.nextFloat()) * 0.7F + 1.0F) * 2.0F, false);

        if (entity instanceof EntityItem)
        {
            ((EntityItem)entity).getEntityItem().func_190920_e(packetIn.func_191208_c());
        }

        this.gameController.effectRenderer.addEffect(new ParticleItemPickup(this.clientWorldController, entity, entitylivingbase, 0.5F));
        this.clientWorldController.removeEntityFromWorld(packetIn.getCollectedItemEntityID());
    }
}
项目:Mods    文件:EntityTF2Character.java   
@Override
public void useRecipe(MerchantRecipe recipe) {
    recipe.incrementToolUses();
    if (recipe.getItemToBuy().getItem() instanceof ItemWeapon) {
        this.loadout.setStackInSlot(ItemFromData.getData(recipe.getItemToBuy()).getInt(PropertyType.SLOT), recipe.getItemToBuy());
        this.switchSlot(0);
    }

    else if(recipe.getItemToBuy().getItem() instanceof ItemWearable) {
        this.setItemStackToSlot(EntityEquipmentSlot.HEAD, recipe.getItemToBuy());
    }
    this.livingSoundTime = -this.getTalkInterval();
    this.playSound(SoundEvents.ENTITY_VILLAGER_YES, this.getSoundVolume(), this.getSoundPitch());
    int i = 3 + this.rand.nextInt(4);

    this.lastTrader = this.trader;
    this.tradeCount.put(this.trader,
            this.tradeCount.containsKey(trader) ? this.tradeCount.get(this.trader) + 1 : 1);
    this.traderFollowTicks = Math.min(4800, this.tradeCount.get(this.trader) * 250 + 350);
    if (recipe.getRewardsExp())
        this.world.spawnEntity(new EntityXPOrb(this.world, this.posX, this.posY + 0.5D, this.posZ, i));

}
项目:CustomWorldGen    文件:EntityLivingBase.java   
/**
 * Called when the entity picks up an item.
 */
public void onItemPickup(Entity entityIn, int quantity)
{
    if (!entityIn.isDead && !this.worldObj.isRemote)
    {
        EntityTracker entitytracker = ((WorldServer)this.worldObj).getEntityTracker();

        if (entityIn instanceof EntityItem)
        {
            entitytracker.sendToAllTrackingEntity(entityIn, new SPacketCollectItem(entityIn.getEntityId(), this.getEntityId()));
        }

        if (entityIn instanceof EntityArrow)
        {
            entitytracker.sendToAllTrackingEntity(entityIn, new SPacketCollectItem(entityIn.getEntityId(), this.getEntityId()));
        }

        if (entityIn instanceof EntityXPOrb)
        {
            entitytracker.sendToAllTrackingEntity(entityIn, new SPacketCollectItem(entityIn.getEntityId(), this.getEntityId()));
        }
    }
}
项目:Industrial-Foregoing    文件:MobRelocatorTile.java   
@Override
public void protectedUpdate() {
    super.protectedUpdate();
    this.getWorld().getEntitiesWithinAABB(EntityXPOrb.class, getWorkingArea().expand(2, 2, 2)).stream().filter(entityXPOrb -> !entityXPOrb.isDead).forEach(entityXPOrb -> {
        if (this.outExp.fill(new FluidStack(FluidsRegistry.ESSENCE, (int) (entityXPOrb.getXpValue() * 20 * BlockRegistry.mobRelocatorBlock.getEssenceMultiplier())), false) > 0) {
            this.outExp.fill(new FluidStack(FluidsRegistry.ESSENCE, (int) (entityXPOrb.getXpValue() * 20 * BlockRegistry.mobRelocatorBlock.getEssenceMultiplier())), true);
        }
        entityXPOrb.setDead();
    });
}
项目:Uranium    文件:TrackingRange.java   
/**
 * Gets the range an entity should be 'tracked' by players and visible in
 * the client.
 *
 * @param entity
 * @param defaultRange Default range defined by Mojang
 * @return
 */
public static int getEntityTrackingRange(Entity entity, int defaultRange)
{
    SpigotWorldConfig config = entity.worldObj.getSpigotConfig(); // Cauldron
    int range = defaultRange;
    if ( entity instanceof EntityPlayerMP )
    {
        range = config.playerTrackingRange;
    } else if ( entity.defaultActivationState || entity instanceof EntityGhast )
    {
        range = defaultRange;
    } else if ( entity.activationType == 1 )
    {
        range = config.monsterTrackingRange;
    } else if ( entity.activationType == 2 )
    {
        range = config.animalTrackingRange;
    } else if ( entity instanceof EntityItemFrame || entity instanceof EntityPainting || entity instanceof EntityItem || entity instanceof EntityXPOrb )
    {
        range = config.miscTrackingRange;
    }
    // Cauldron start - allow for 0 to disable tracking ranges
    if (range == 0)
    {
        return defaultRange;
    }
    // Cauldron end

    return Math.min( config.maxTrackingRange, range );
}
项目:Bewitchment    文件:RitualFlames.java   
private void smeltAndSpawn(EntityItem e) {
    ItemStack copy = e.getItem().copy();
    ItemStack is = copy.splitStack(1);
    if (rng.nextDouble() < 0.7d) {
        ItemStack result = FurnaceRecipes.instance().getSmeltingResult(is).copy();
        e.getEntityWorld().spawnEntity(new EntityItem(e.getEntityWorld(), e.posX, e.posY, e.posZ, result));
    } else {
        e.getEntityWorld().spawnEntity(new EntityXPOrb(e.getEntityWorld(), e.posX, e.posY, e.posZ, 2));
    }
    e.setItem(copy);
}
项目:Randores2    文件:CraftiniumForgeOutputSlot.java   
@Override
protected void onCrafting(ItemStack stack) {
    stack.onCrafting(this.player.world, this.player, this.removeCount);

    if (!this.player.world.isRemote) {
        int i = this.removeCount;
        CraftiniumSmelt smelt = CraftiniumSmeltRegistry.findMatchingXp(stack, this.player.world, this.forge);
        float f = smelt == null ? 0 : smelt.experience(stack, this.player.world, this.forge);

        if (f == 0.0F) {
            i = 0;
        } else if (f < 1.0F) {
            int j = MathHelper.floor((float) i * f);

            if (j < MathHelper.ceil((float) i * f) && Math.random() < (double) ((float) i * f - (float) j)) {
                ++j;
            }

            i = j;
        }

        while (i > 0) {
            int k = EntityXPOrb.getXPSplit(i);
            i -= k;
            this.player.world.spawnEntity(new EntityXPOrb(this.player.world, this.player.posX, this.player.posY + 0.5D, this.player.posZ + 0.5D, k));
        }
    }

    this.removeCount = 0;

    net.minecraftforge.fml.common.FMLCommonHandler.instance().firePlayerSmeltedEvent(player, stack);
}
项目:DecompiledMinecraft    文件:EntityLivingBase.java   
/**
 * handles entity death timer, experience orb and particle creation
 */
protected void onDeathUpdate()
{
    ++this.deathTime;

    if (this.deathTime == 20)
    {
        if (!this.worldObj.isRemote && (this.recentlyHit > 0 || this.isPlayer()) && this.canDropLoot() && this.worldObj.getGameRules().getBoolean("doMobLoot"))
        {
            int i = this.getExperiencePoints(this.attackingPlayer);

            while (i > 0)
            {
                int j = EntityXPOrb.getXPSplit(i);
                i -= j;
                this.worldObj.spawnEntityInWorld(new EntityXPOrb(this.worldObj, this.posX, this.posY, this.posZ, j));
            }
        }

        this.setDead();

        for (int k = 0; k < 20; ++k)
        {
            double d2 = this.rand.nextGaussian() * 0.02D;
            double d0 = this.rand.nextGaussian() * 0.02D;
            double d1 = this.rand.nextGaussian() * 0.02D;
            this.worldObj.spawnParticle(EnumParticleTypes.EXPLOSION_NORMAL, this.posX + (double)(this.rand.nextFloat() * this.width * 2.0F) - (double)this.width, this.posY + (double)(this.rand.nextFloat() * this.height), this.posZ + (double)(this.rand.nextFloat() * this.width * 2.0F) - (double)this.width, d2, d0, d1, new int[0]);
        }
    }
}
项目:DecompiledMinecraft    文件:EntityVillager.java   
public void useRecipe(MerchantRecipe recipe)
{
    recipe.incrementToolUses();
    this.livingSoundTime = -this.getTalkInterval();
    this.playSound("mob.villager.yes", this.getSoundVolume(), this.getSoundPitch());
    int i = 3 + this.rand.nextInt(4);

    if (recipe.getToolUses() == 1 || this.rand.nextInt(5) == 0)
    {
        this.timeUntilReset = 40;
        this.needsInitilization = true;
        this.isWillingToMate = true;

        if (this.buyingPlayer != null)
        {
            this.lastBuyingPlayer = this.buyingPlayer.getName();
        }
        else
        {
            this.lastBuyingPlayer = null;
        }

        i += 5;
    }

    if (recipe.getItemToBuy().getItem() == Items.emerald)
    {
        this.wealth += recipe.getItemToBuy().stackSize;
    }

    if (recipe.getRewardsExp())
    {
        this.worldObj.spawnEntityInWorld(new EntityXPOrb(this.worldObj, this.posX, this.posY + 0.5D, this.posZ, i));
    }
}
项目:DecompiledMinecraft    文件:S11PacketSpawnExperienceOrb.java   
public S11PacketSpawnExperienceOrb(EntityXPOrb xpOrb)
{
    this.entityID = xpOrb.getEntityId();
    this.posX = MathHelper.floor_double(xpOrb.posX * 32.0D);
    this.posY = MathHelper.floor_double(xpOrb.posY * 32.0D);
    this.posZ = MathHelper.floor_double(xpOrb.posZ * 32.0D);
    this.xpValue = xpOrb.getXpValue();
}
项目:DecompiledMinecraft    文件:Block.java   
/**
 * Spawns the given amount of experience into the World as XP orb entities
 */
protected void dropXpOnBlockBreak(World worldIn, BlockPos pos, int amount)
{
    if (!worldIn.isRemote)
    {
        while (amount > 0)
        {
            int i = EntityXPOrb.getXPSplit(amount);
            amount -= i;
            worldIn.spawnEntityInWorld(new EntityXPOrb(worldIn, (double)pos.getX() + 0.5D, (double)pos.getY() + 0.5D, (double)pos.getZ() + 0.5D, i));
        }
    }
}
项目:DecompiledMinecraft    文件:EntityLivingBase.java   
/**
 * handles entity death timer, experience orb and particle creation
 */
protected void onDeathUpdate()
{
    ++this.deathTime;

    if (this.deathTime == 20)
    {
        if (!this.worldObj.isRemote && (this.recentlyHit > 0 || this.isPlayer()) && this.canDropLoot() && this.worldObj.getGameRules().getBoolean("doMobLoot"))
        {
            int i = this.getExperiencePoints(this.attackingPlayer);

            while (i > 0)
            {
                int j = EntityXPOrb.getXPSplit(i);
                i -= j;
                this.worldObj.spawnEntityInWorld(new EntityXPOrb(this.worldObj, this.posX, this.posY, this.posZ, j));
            }
        }

        this.setDead();

        for (int k = 0; k < 20; ++k)
        {
            double d2 = this.rand.nextGaussian() * 0.02D;
            double d0 = this.rand.nextGaussian() * 0.02D;
            double d1 = this.rand.nextGaussian() * 0.02D;
            this.worldObj.spawnParticle(EnumParticleTypes.EXPLOSION_NORMAL, this.posX + (double)(this.rand.nextFloat() * this.width * 2.0F) - (double)this.width, this.posY + (double)(this.rand.nextFloat() * this.height), this.posZ + (double)(this.rand.nextFloat() * this.width * 2.0F) - (double)this.width, d2, d0, d1, new int[0]);
        }
    }
}
项目:DecompiledMinecraft    文件:EntityVillager.java   
public void useRecipe(MerchantRecipe recipe)
{
    recipe.incrementToolUses();
    this.livingSoundTime = -this.getTalkInterval();
    this.playSound("mob.villager.yes", this.getSoundVolume(), this.getSoundPitch());
    int i = 3 + this.rand.nextInt(4);

    if (recipe.getToolUses() == 1 || this.rand.nextInt(5) == 0)
    {
        this.timeUntilReset = 40;
        this.needsInitilization = true;
        this.isWillingToMate = true;

        if (this.buyingPlayer != null)
        {
            this.lastBuyingPlayer = this.buyingPlayer.getName();
        }
        else
        {
            this.lastBuyingPlayer = null;
        }

        i += 5;
    }

    if (recipe.getItemToBuy().getItem() == Items.emerald)
    {
        this.wealth += recipe.getItemToBuy().stackSize;
    }

    if (recipe.getRewardsExp())
    {
        this.worldObj.spawnEntityInWorld(new EntityXPOrb(this.worldObj, this.posX, this.posY + 0.5D, this.posZ, i));
    }
}
项目:DecompiledMinecraft    文件:Block.java   
/**
 * Spawns the given amount of experience into the World as XP orb entities
 */
protected void dropXpOnBlockBreak(World worldIn, BlockPos pos, int amount)
{
    if (!worldIn.isRemote)
    {
        while (amount > 0)
        {
            int i = EntityXPOrb.getXPSplit(amount);
            amount -= i;
            worldIn.spawnEntityInWorld(new EntityXPOrb(worldIn, (double)pos.getX() + 0.5D, (double)pos.getY() + 0.5D, (double)pos.getZ() + 0.5D, i));
        }
    }
}
项目:DecompiledMinecraft    文件:NetHandlerPlayClient.java   
/**
 * Spawns an experience orb and sets its value (amount of XP)
 */
public void handleSpawnExperienceOrb(S11PacketSpawnExperienceOrb packetIn)
{
    PacketThreadUtil.checkThreadAndEnqueue(packetIn, this, this.gameController);
    Entity entity = new EntityXPOrb(this.clientWorldController, (double)packetIn.getX() / 32.0D, (double)packetIn.getY() / 32.0D, (double)packetIn.getZ() / 32.0D, packetIn.getXPValue());
    entity.serverPosX = packetIn.getX();
    entity.serverPosY = packetIn.getY();
    entity.serverPosZ = packetIn.getZ();
    entity.rotationYaw = 0.0F;
    entity.rotationPitch = 0.0F;
    entity.setEntityId(packetIn.getEntityID());
    this.clientWorldController.addEntityToWorld(packetIn.getEntityID(), entity);
}
项目:BaseClient    文件:EntityLivingBase.java   
/**
 * handles entity death timer, experience orb and particle creation
 */
protected void onDeathUpdate()
{
    ++this.deathTime;

    if (this.deathTime == 20)
    {
        if (!this.worldObj.isRemote && (this.recentlyHit > 0 || this.isPlayer()) && this.canDropLoot() && this.worldObj.getGameRules().getBoolean("doMobLoot"))
        {
            int i = this.getExperiencePoints(this.attackingPlayer);

            while (i > 0)
            {
                int j = EntityXPOrb.getXPSplit(i);
                i -= j;
                this.worldObj.spawnEntityInWorld(new EntityXPOrb(this.worldObj, this.posX, this.posY, this.posZ, j));
            }
        }

        this.setDead();

        for (int k = 0; k < 20; ++k)
        {
            double d2 = this.rand.nextGaussian() * 0.02D;
            double d0 = this.rand.nextGaussian() * 0.02D;
            double d1 = this.rand.nextGaussian() * 0.02D;
            this.worldObj.spawnParticle(EnumParticleTypes.EXPLOSION_NORMAL, this.posX + (double)(this.rand.nextFloat() * this.width * 2.0F) - (double)this.width, this.posY + (double)(this.rand.nextFloat() * this.height), this.posZ + (double)(this.rand.nextFloat() * this.width * 2.0F) - (double)this.width, d2, d0, d1, new int[0]);
        }
    }
}
项目:BaseClient    文件:EntityVillager.java   
public void useRecipe(MerchantRecipe recipe)
{
    recipe.incrementToolUses();
    this.livingSoundTime = -this.getTalkInterval();
    this.playSound("mob.villager.yes", this.getSoundVolume(), this.getSoundPitch());
    int i = 3 + this.rand.nextInt(4);

    if (recipe.getToolUses() == 1 || this.rand.nextInt(5) == 0)
    {
        this.timeUntilReset = 40;
        this.needsInitilization = true;
        this.isWillingToMate = true;

        if (this.buyingPlayer != null)
        {
            this.lastBuyingPlayer = this.buyingPlayer.getName();
        }
        else
        {
            this.lastBuyingPlayer = null;
        }

        i += 5;
    }

    if (recipe.getItemToBuy().getItem() == Items.emerald)
    {
        this.wealth += recipe.getItemToBuy().stackSize;
    }

    if (recipe.getRewardsExp())
    {
        this.worldObj.spawnEntityInWorld(new EntityXPOrb(this.worldObj, this.posX, this.posY + 0.5D, this.posZ, i));
    }
}
项目:BaseClient    文件:S11PacketSpawnExperienceOrb.java   
public S11PacketSpawnExperienceOrb(EntityXPOrb xpOrb)
{
    this.entityID = xpOrb.getEntityId();
    this.posX = MathHelper.floor_double(xpOrb.posX * 32.0D);
    this.posY = MathHelper.floor_double(xpOrb.posY * 32.0D);
    this.posZ = MathHelper.floor_double(xpOrb.posZ * 32.0D);
    this.xpValue = xpOrb.getXpValue();
}
项目:BaseClient    文件:Block.java   
/**
 * Spawns the given amount of experience into the World as XP orb entities
 */
protected void dropXpOnBlockBreak(World worldIn, BlockPos pos, int amount) {
    if (!worldIn.isRemote) {
        while (amount > 0) {
            int i = EntityXPOrb.getXPSplit(amount);
            amount -= i;
            worldIn.spawnEntityInWorld(new EntityXPOrb(worldIn, (double) pos.getX() + 0.5D,
                    (double) pos.getY() + 0.5D, (double) pos.getZ() + 0.5D, i));
        }
    }
}
项目:BaseClient    文件:NetHandlerPlayClient.java   
/**
 * Spawns an experience orb and sets its value (amount of XP)
 */
public void handleSpawnExperienceOrb(S11PacketSpawnExperienceOrb packetIn)
{
    PacketThreadUtil.checkThreadAndEnqueue(packetIn, this, this.gameController);
    Entity entity = new EntityXPOrb(this.clientWorldController, (double)packetIn.getX() / 32.0D, (double)packetIn.getY() / 32.0D, (double)packetIn.getZ() / 32.0D, packetIn.getXPValue());
    entity.serverPosX = packetIn.getX();
    entity.serverPosY = packetIn.getY();
    entity.serverPosZ = packetIn.getZ();
    entity.rotationYaw = 0.0F;
    entity.rotationPitch = 0.0F;
    entity.setEntityId(packetIn.getEntityID());
    this.clientWorldController.addEntityToWorld(packetIn.getEntityID(), entity);
}
项目:BaseClient    文件:EntityLivingBase.java   
/**
 * handles entity death timer, experience orb and particle creation
 */
protected void onDeathUpdate()
{
    ++this.deathTime;

    if (this.deathTime == 20)
    {
        if (!this.worldObj.isRemote && (this.recentlyHit > 0 || this.isPlayer()) && this.canDropLoot() && this.worldObj.getGameRules().getBoolean("doMobLoot"))
        {
            int i = this.getExperiencePoints(this.attackingPlayer);

            while (i > 0)
            {
                int j = EntityXPOrb.getXPSplit(i);
                i -= j;
                this.worldObj.spawnEntityInWorld(new EntityXPOrb(this.worldObj, this.posX, this.posY, this.posZ, j));
            }
        }

        this.setDead();

        for (int k = 0; k < 20; ++k)
        {
            double d2 = this.rand.nextGaussian() * 0.02D;
            double d0 = this.rand.nextGaussian() * 0.02D;
            double d1 = this.rand.nextGaussian() * 0.02D;
            this.worldObj.spawnParticle(EnumParticleTypes.EXPLOSION_NORMAL, this.posX + (double)(this.rand.nextFloat() * this.width * 2.0F) - (double)this.width, this.posY + (double)(this.rand.nextFloat() * this.height), this.posZ + (double)(this.rand.nextFloat() * this.width * 2.0F) - (double)this.width, d2, d0, d1, new int[0]);
        }
    }
}
项目:BaseClient    文件:EntityVillager.java   
public void useRecipe(MerchantRecipe recipe)
{
    recipe.incrementToolUses();
    this.livingSoundTime = -this.getTalkInterval();
    this.playSound("mob.villager.yes", this.getSoundVolume(), this.getSoundPitch());
    int i = 3 + this.rand.nextInt(4);

    if (recipe.getToolUses() == 1 || this.rand.nextInt(5) == 0)
    {
        this.timeUntilReset = 40;
        this.needsInitilization = true;
        this.isWillingToMate = true;

        if (this.buyingPlayer != null)
        {
            this.lastBuyingPlayer = this.buyingPlayer.getName();
        }
        else
        {
            this.lastBuyingPlayer = null;
        }

        i += 5;
    }

    if (recipe.getItemToBuy().getItem() == Items.emerald)
    {
        this.wealth += recipe.getItemToBuy().stackSize;
    }

    if (recipe.getRewardsExp())
    {
        this.worldObj.spawnEntityInWorld(new EntityXPOrb(this.worldObj, this.posX, this.posY + 0.5D, this.posZ, i));
    }
}
项目:BaseClient    文件:S11PacketSpawnExperienceOrb.java   
public S11PacketSpawnExperienceOrb(EntityXPOrb xpOrb)
{
    this.entityID = xpOrb.getEntityId();
    this.posX = MathHelper.floor_double(xpOrb.posX * 32.0D);
    this.posY = MathHelper.floor_double(xpOrb.posY * 32.0D);
    this.posZ = MathHelper.floor_double(xpOrb.posZ * 32.0D);
    this.xpValue = xpOrb.getXpValue();
}
项目:BaseClient    文件:Block.java   
/**
 * Spawns the given amount of experience into the World as XP orb entities
 */
protected void dropXpOnBlockBreak(World worldIn, BlockPos pos, int amount)
{
    if (!worldIn.isRemote)
    {
        while (amount > 0)
        {
            int i = EntityXPOrb.getXPSplit(amount);
            amount -= i;
            worldIn.spawnEntityInWorld(new EntityXPOrb(worldIn, (double)pos.getX() + 0.5D, (double)pos.getY() + 0.5D, (double)pos.getZ() + 0.5D, i));
        }
    }
}
项目:BaseClient    文件:NetHandlerPlayClient.java   
/**
 * Spawns an experience orb and sets its value (amount of XP)
 */
public void handleSpawnExperienceOrb(S11PacketSpawnExperienceOrb packetIn) {
    PacketThreadUtil.checkThreadAndEnqueue(packetIn, this, this.gameController);
    Entity entity = new EntityXPOrb(this.clientWorldController, (double) packetIn.getX() / 32.0D,
            (double) packetIn.getY() / 32.0D, (double) packetIn.getZ() / 32.0D, packetIn.getXPValue());
    entity.serverPosX = packetIn.getX();
    entity.serverPosY = packetIn.getY();
    entity.serverPosZ = packetIn.getZ();
    entity.rotationYaw = 0.0F;
    entity.rotationPitch = 0.0F;
    entity.setEntityId(packetIn.getEntityID());
    this.clientWorldController.addEntityToWorld(packetIn.getEntityID(), entity);
}
项目:MiningWells    文件:TileEntityMiningWell.java   
private void destroyXp() {
    AxisAlignedBB bb = getAABBForExtension();
    List<EntityXPOrb> ents = getWorld().getEntitiesWithinAABB(EntityXPOrb.class, bb);
    for (EntityXPOrb ent : ents) {
        getWorld().removeEntity(ent);
    }
}
项目:connor41-etfuturum2    文件:ModEnchantments.java   
public static void onPlayerPickupXP(PlayerPickupXpEvent event) {
    EntityPlayer player = event.entityPlayer;
    EntityXPOrb orb = event.orb;
    if (player.worldObj.isRemote)
        return;
    if (!EtFuturum.enableMending)
        return;

    ItemStack[] stacks = new ItemStack[5];
    stacks[0] = player.getCurrentEquippedItem(); // held
    stacks[1] = player.getEquipmentInSlot(1); // boots
    stacks[2] = player.getEquipmentInSlot(2); // leggings
    stacks[3] = player.getEquipmentInSlot(3); // chestplate
    stacks[4] = player.getEquipmentInSlot(4); // helmet

    for (ItemStack stack : stacks)
        if (stack != null && stack.getItemDamage() > 0 && EnchantmentHelper.getEnchantmentLevel(mending.effectId, stack) > 0) {
            int xp = orb.xpValue;
            while (xp > 0 && stack.getItemDamage() > 0) {
                stack.setItemDamage(stack.getItemDamage() - 2);
                xp--;
            }
            if (xp <= 0) {
                orb.setDead();
                event.setCanceled(true);
                return;
            }
        }
}
项目:Zombe-Modpack    文件:NetHandlerPlayClient.java   
/**
 * Spawns an experience orb and sets its value (amount of XP)
 */
public void handleSpawnExperienceOrb(SPacketSpawnExperienceOrb packetIn)
{
    PacketThreadUtil.checkThreadAndEnqueue(packetIn, this, this.gameController);
    double d0 = packetIn.getX();
    double d1 = packetIn.getY();
    double d2 = packetIn.getZ();
    Entity entity = new EntityXPOrb(this.clientWorldController, d0, d1, d2, packetIn.getXPValue());
    EntityTracker.updateServerPosition(entity, d0, d1, d2);
    entity.rotationYaw = 0.0F;
    entity.rotationPitch = 0.0F;
    entity.setEntityId(packetIn.getEntityID());
    this.clientWorldController.addEntityToWorld(packetIn.getEntityID(), entity);
}
项目:morefurnaces    文件:SlotOutput.java   
/**
 * the itemStack passed in is the output - ie, iron ingots, and pickaxes, not ore and wood.
 */
protected void onCrafting(ItemStack stack)
{
    stack.onCrafting(this.player.world, this.player, this.removeCount);

    if (!this.player.world.isRemote)
    {
        int i = this.removeCount;
        float f = FurnaceRecipes.instance().getSmeltingExperience(stack);

        if (f == 0.0F)
        {
            i = 0;
        }
        else if (f < 1.0F)
        {
            int j = MathHelper.floor((float)i * f);

            if (j < MathHelper.ceil((float)i * f) && Math.random() < (double)((float)i * f - (float)j))
            {
                ++j;
            }

            i = j;
        }

        while (i > 0)
        {
            int k = EntityXPOrb.getXPSplit(i);
            i -= k;
            this.player.world.spawnEntity(new EntityXPOrb(this.player.world, this.player.posX, this.player.posY + 0.5D, this.player.posZ + 0.5D, k));
        }
    }

    this.removeCount = 0;
    net.minecraftforge.fml.common.FMLCommonHandler.instance().firePlayerSmeltedEvent(player, stack);
}
项目:Backmemed    文件:EntityLivingBase.java   
/**
 * handles entity death timer, experience orb and particle creation
 */
protected void onDeathUpdate()
{
    ++this.deathTime;

    if (this.deathTime == 20)
    {
        if (!this.world.isRemote && (this.isPlayer() || this.recentlyHit > 0 && this.canDropLoot() && this.world.getGameRules().getBoolean("doMobLoot")))
        {
            int i = this.getExperiencePoints(this.attackingPlayer);

            while (i > 0)
            {
                int j = EntityXPOrb.getXPSplit(i);
                i -= j;
                this.world.spawnEntityInWorld(new EntityXPOrb(this.world, this.posX, this.posY, this.posZ, j));
            }
        }

        this.setDead();

        for (int k = 0; k < 20; ++k)
        {
            double d2 = this.rand.nextGaussian() * 0.02D;
            double d0 = this.rand.nextGaussian() * 0.02D;
            double d1 = this.rand.nextGaussian() * 0.02D;
            this.world.spawnParticle(EnumParticleTypes.EXPLOSION_NORMAL, this.posX + (double)(this.rand.nextFloat() * this.width * 2.0F) - (double)this.width, this.posY + (double)(this.rand.nextFloat() * this.height), this.posZ + (double)(this.rand.nextFloat() * this.width * 2.0F) - (double)this.width, d2, d0, d1, new int[0]);
        }
    }
}
项目:Backmemed    文件:EntityLivingBase.java   
/**
 * Called when the entity picks up an item.
 */
public void onItemPickup(Entity entityIn, int quantity)
{
    if (!entityIn.isDead && !this.world.isRemote)
    {
        EntityTracker entitytracker = ((WorldServer)this.world).getEntityTracker();

        if (entityIn instanceof EntityItem || entityIn instanceof EntityArrow || entityIn instanceof EntityXPOrb)
        {
            entitytracker.sendToAllTrackingEntity(entityIn, new SPacketCollectItem(entityIn.getEntityId(), this.getEntityId(), quantity));
        }
    }
}
项目:Backmemed    文件:EntityVillager.java   
public void useRecipe(MerchantRecipe recipe)
{
    recipe.incrementToolUses();
    this.livingSoundTime = -this.getTalkInterval();
    this.playSound(SoundEvents.ENTITY_VILLAGER_YES, this.getSoundVolume(), this.getSoundPitch());
    int i = 3 + this.rand.nextInt(4);

    if (recipe.getToolUses() == 1 || this.rand.nextInt(5) == 0)
    {
        this.timeUntilReset = 40;
        this.needsInitilization = true;
        this.isWillingToMate = true;

        if (this.buyingPlayer != null)
        {
            this.lastBuyingPlayer = this.buyingPlayer.getName();
        }
        else
        {
            this.lastBuyingPlayer = null;
        }

        i += 5;
    }

    if (recipe.getItemToBuy().getItem() == Items.EMERALD)
    {
        this.wealth += recipe.getItemToBuy().func_190916_E();
    }

    if (recipe.getRewardsExp())
    {
        this.world.spawnEntityInWorld(new EntityXPOrb(this.world, this.posX, this.posY + 0.5D, this.posZ, i));
    }
}