@Override public boolean shouldExecute() { if(!endermite.getEntityWorld().getGameRules().getBoolean("mobGriefing")) return false; else if(endermite.getAttackTarget() != null) return false; else if(!endermite.getNavigator().noPath()) return false; else { Random random = endermite.getRNG(); if(random.nextInt(EndermitesIntoShulkers.chance) == 0) { facing = EnumFacing.random(random); BlockPos blockpos = (new BlockPos(endermite.posX, endermite.posY + 0.5D, endermite.posZ)).offset(facing); IBlockState iblockstate = endermite.getEntityWorld().getBlockState(blockpos); if(iblockstate.getBlock() == Blocks.PURPUR_BLOCK) { doMerge = true; return true; } } doMerge = false; return super.shouldExecute(); } }
@Override public void startExecuting() { if(!doMerge) super.startExecuting(); else { World world = endermite.getEntityWorld(); BlockPos blockpos = (new BlockPos(endermite.posX, endermite.posY + 0.5D, endermite.posZ)).offset(facing); IBlockState iblockstate = world.getBlockState(blockpos); if(iblockstate.getBlock() == Blocks.PURPUR_BLOCK) { world.setBlockToAir(blockpos); endermite.spawnExplosionParticle(); endermite.setDead(); EntityShulker shulker = new EntityShulker(world); shulker.setAttachmentPos(blockpos); shulker.setPosition(blockpos.getX() + 0.5, blockpos.getY() + 0.5, blockpos.getZ() + 0.5); world.spawnEntity(shulker); } } }
if (!MinecraftForge.EVENT_BUS.post(event)) { if (rand.nextFloat() < 0.15F && world.getGameRules().getBoolean("doMobSpawning") && !(entity instanceof EntityEndermite)) { EntityEndermite entityendermite = new EntityEndermite(world); entityendermite.setSpawnedByPlayer(true); entityendermite.setLocationAndAngles(entity.posX, entity.posY, entity.posZ, entity.rotationYaw, entity.rotationPitch); world.spawnEntity(entityendermite);
public void trySpawnTriggeredEntity(World world, BlockPos pos) { if (this.spawn != null && world.getDifficulty() != EnumDifficulty.PEACEFUL) { int rand = world.rand.nextInt(100); if (rand < this.spawnChance) { Entity e = null; switch (this.spawn) { case ENDERMITE: e = new EntityEndermite(world); break; case SILVERFISH: e = new EntitySilverfish(world); break; } if (e != null) { e.setPosition(pos.getX() + 0.5, pos.getY() + 0.5, pos.getZ() + 0.5); world.spawnEntity(e); } } } }
EnderTeleportEvent event = new EnderTeleportEvent(entityplayermp, posX, posY, posZ, 5.0F); if(!MinecraftForge.EVENT_BUS.post(event) && rand.nextFloat() < 0.025F && getEntityWorld().getGameRules().getBoolean("doMobSpawning")) { EntityEndermite entityendermite = new EntityEndermite(getEntityWorld()); entityendermite.setSpawnedByPlayer(true); entityendermite.setLocationAndAngles(shootingEntity.posX, shootingEntity.posY, shootingEntity.posZ, shootingEntity.rotationYaw, shootingEntity.rotationPitch); getEntityWorld().spawnEntity(entityendermite);