double z = flower.supertile.getPos().getZ() + 0.5; if(MathHelper.pointDistanceSpace(x, y, z, event.getTargetX(), event.getTargetY(), event.getTargetZ()) < RANGE) possibleFlowers.add(flower);
/** * Teleport at random, for automated systems * * @param entity the entity hit by the arrow */ protected void tryTeleport(EntityLivingBase entity) { double x = entity.posX; double y = entity.posY; double z = entity.posZ; EnderTeleportEvent event = new EnderTeleportEvent(entity, x+ (this.rand.nextDouble() - 0.5D) * tpRange * 2, y+ (double)(this.rand.nextInt(4) - 2), z+ (this.rand.nextDouble() - 0.5D) * tpRange * 2, 0); if (MinecraftForge.EVENT_BUS.post(event)){ return; } if(entity.attemptTeleport(event.getTargetX(), event.getTargetY(), event.getTargetZ())){ this.world.playSound(null, x, y, z, SoundEvents.ENTITY_ENDERMEN_TELEPORT, entity.getSoundCategory(), 1.0F, 1.0F); entity.playSound(SoundEvents.ENTITY_ENDERMEN_TELEPORT, 1.0F, 1.0F); } }
/** * * @return true if teleport was a success */ public static boolean enderTeleportEvent(EntityLivingBase player, World world, double x, double y, double z) { EnderTeleportEvent event = new EnderTeleportEvent(player, x, y, z, 0); boolean wasCancelled = MinecraftForge.EVENT_BUS.post(event); if (wasCancelled == false) { //new target? maybe, maybe not. https://github.com/PrinceOfAmber/Cyclic/issues/438 UtilEntity.teleportWallSafe(player, world, event.getTargetX(), event.getTargetY(), event.getTargetZ()); } return !wasCancelled; }
public static boolean teleportEntityTo(EntityLivingBase entity, double x, double y, double z) { EnderTeleportEvent event = new EnderTeleportEvent(entity, x, y, z, 0); if (MinecraftForge.EVENT_BUS.post(event)) { return false; } entity.setPositionAndUpdate(event.getTargetX(), event.getTargetY(), event.getTargetZ()); entity.playSound(SoundEvents.ENTITY_ENDERMEN_TELEPORT, 1.0F, 1.0F); return true; }
/** * Most generic handling of EnderTeleportEvent * * @param event to handle * @return true only if the event is not cancelled */ private boolean handleTeleportEvent(EnderTeleportEvent event){ if (!MinecraftForge.EVENT_BUS.post(event)) { for (int i = 0; i < 32; ++i){ this.world.spawnParticle(EnumParticleTypes.PORTAL, event.getTargetX(), event.getTargetY() + this.rand.nextDouble() * 2.0D, event.getTargetZ(), this.rand.nextGaussian(), 0.0D, this.rand.nextGaussian()); } event.getEntity().dismountRidingEntity(); event.getEntity().setPositionAndUpdate(event.getTargetX(), event.getTargetY(), event.getTargetZ()); event.getEntity().fallDistance = 0.0F; event.getEntity().attackEntityFrom(getEnderDamage(), event.getAttackDamage()); return true; } return false; } }
public void moveEntityViaTeleport(EntityLivingBase entityLiving, double x, double y, double z) { if (entityLiving instanceof EntityPlayerMP) { EntityPlayerMP player = (EntityPlayerMP) entityLiving; EnderTeleportEvent event = new EnderTeleportEvent(player, x, y, z, 5.0F); if (!MinecraftForge.EVENT_BUS.post(event)) { if (entityLiving.isRiding()) player.mountEntityAndWakeUp(); entityLiving.setPositionAndUpdate(event.getTargetX(), event.getTargetY(), event.getTargetZ()); } } else if (entityLiving != null) { entityLiving.setPosition(x, y, z); } }
/** * Teleport the enderman */ private boolean teleportTo(double x, double y, double z) { net.minecraftforge.event.entity.living.EnderTeleportEvent event = new net.minecraftforge.event.entity.living.EnderTeleportEvent(this, x, y, z, 0); if (net.minecraftforge.common.MinecraftForge.EVENT_BUS.post(event)) { return false; } boolean flag = attemptTeleport(event.getTargetX(), event.getTargetY(), event.getTargetZ()); if (flag) { world.playSound(null, prevPosX, prevPosY, prevPosZ, SoundEvents.ENTITY_ENDERMEN_TELEPORT, getSoundCategory(), 1.0F, 1.0F); playSound(SoundEvents.ENTITY_ENDERMEN_TELEPORT, 1.0F, 1.0F); } return flag; }
((EntityPlayerMP) entity).connection.setPlayerLocation(event.getTargetX(), event.getTargetY(), event.getTargetZ(), entity.rotationYaw, entity.rotationPitch); } else { entity.setPositionAndUpdate(event.getTargetX(), event.getTargetY(), event.getTargetZ());
/** * Teleport the enderman */ private boolean teleportTo(double x, double y, double z) { net.minecraftforge.event.entity.living.EnderTeleportEvent event = new net.minecraftforge.event.entity.living.EnderTeleportEvent(this, x, y, z, 0); if (net.minecraftforge.common.MinecraftForge.EVENT_BUS.post(event)) { return false; } boolean flag = attemptTeleport(event.getTargetX(), event.getTargetY(), event.getTargetZ()); if (flag) { world.playSound(null, prevPosX, prevPosY, prevPosZ, SoundEvents.ENTITY_ENDERMEN_TELEPORT, getSoundCategory(), 1.0F, 1.0F); playSound(SoundEvents.ENTITY_ENDERMEN_TELEPORT, 1.0F, 1.0F); } return flag; }
posX = event.getTargetX(); posY = event.getTargetY(); posZ = event.getTargetZ();
@SubscribeEvent public void onEnderTeleport(EnderTeleportEvent event) { if (isTeleportPrevented(event.getEntity().world, event.getEntity().posX, event.getEntity().posY, event.getEntity().posZ)) { event.setCanceled(true); } if (isTeleportPrevented(event.getEntity().world, event.getTargetX(), event.getTargetY(), event.getTargetZ())) { event.setCanceled(true); } }
@Override public boolean doExtraFunction(@Nonnull ItemStack stack, @Nonnull EntityPlayer player, EnumHand hand) { if (ItemHelper.getOrCreateCompound(stack).getByte("teleportCooldown") > 0 ) { return false; } BlockPos c = PlayerHelper.getBlockLookingAt(player, 64); if (c == null) { c = new BlockPos(PlayerHelper.getLookVec(player, 32).getRight()); } EnderTeleportEvent event = new EnderTeleportEvent(player, c.getX(), c.getY(), c.getZ(), 0); if (!MinecraftForge.EVENT_BUS.post(event)) { if (player.isRiding()) { player.dismountRidingEntity(); } player.setPositionAndUpdate(event.getTargetX(), event.getTargetY(), event.getTargetZ()); player.getEntityWorld().playSound(null, player.posX, player.posY, player.posZ, SoundEvents.ENTITY_ENDERMEN_TELEPORT, SoundCategory.PLAYERS, 1, 1); player.fallDistance = 0.0F; stack.getTagCompound().setByte("teleportCooldown", ((byte) 10)); return true; } return false; }
@SubscribeEvent public void onEnderTeleportEvent(EnderTeleportEvent event) { if (mountedPearl) { Entity rider = event.getEntity(); if (rider != null && rider instanceof EntityPlayer && rider.getRidingEntity() != null) { EntityPlayer playerRider = (EntityPlayer) rider; Entity maybeHorse = playerRider.getRidingEntity(); //take the players horse and set its position to the target event.getEntity().getRidingEntity().setPositionAndUpdate(event.getTargetX(), event.getTargetY(), event.getTargetZ()); playerRider.getEntityData().setInteger(KEY_MOUNTENTITY, maybeHorse.getEntityId()); } } } }
moveEntityViaTeleport(entityLiving, event.getTargetX(), event.getTargetY(), event.getTargetZ()); boolean flag = false; int i = MathHelper.floor(entityLiving.posX);
entity.setPositionAndUpdate(event.getTargetX(), event.getTargetY(), event.getTargetZ()); entity.fallDistance = 0f;
@Override protected void onImpact(RayTraceResult position) { if (position.entityHit != null) { position.entityHit.attackEntityFrom(DamageSource.causeThrownDamage(this, this.getThrower()), 0.0F); } for (int i = 0; i < 32; ++i) { this.world.spawnParticle(EnumParticleTypes.PORTAL, this.posX, this.posY + this.rand.nextDouble() * 2.0D, this.posZ, this.rand.nextGaussian(), 0.0D, this.rand.nextGaussian()); } if (!this.world.isRemote) { if (this.getThrower() != null && this.getThrower() instanceof EntityPlayerMP) { EntityPlayerMP entityplayermp = (EntityPlayerMP)this.getThrower(); if (entityplayermp.connection.netManager.isChannelOpen() && entityplayermp.world == this.world) { EnderTeleportEvent event = new EnderTeleportEvent(entityplayermp, this.posX, this.posY, this.posZ, 0.0F); if (!MinecraftForge.EVENT_BUS.post(event)) { if (this.getThrower().isRiding()) { this.getThrower().dismountRidingEntity(); } this.getThrower().setPositionAndUpdate(event.getTargetX(), event.getTargetY(), event.getTargetZ()); this.getThrower().fallDistance = 0.0F; this.getThrower().attackEntityFrom(DamageSource.FALL, event.getAttackDamage()); this.getThrower().addPotionEffect(new PotionEffect(MobEffects.SLOWNESS, BloodPearlOfTeleportationConfig.slownessDuration * 20, 2)); } } } this.setDead(); } }
shootingEntity.dismountRidingEntity(); shootingEntity.setPositionAndUpdate(event.getTargetX(), event.getTargetY(), event.getTargetZ()); shootingEntity.fallDistance = 0.0F; shootingEntity.attackEntityFrom(DamageSource.FALL, event.getAttackDamage());