Search in sources :

Example 1 with EntityShulker

use of net.minecraft.entity.monster.EntityShulker in project Crossroads by Crossroads-Development.

the class RiftEffect method doEffect.

@Override
public void doEffect(World worldIn, BlockPos pos, double mult) {
    if (worldIn.getBlockState(pos).getBlock() == Blocks.PURPUR_BLOCK) {
        worldIn.setBlockState(pos, Blocks.AIR.getDefaultState());
        EntityShulker shulker = new EntityShulker(worldIn);
        shulker.setAttachmentPos(pos);
        shulker.setPosition(pos.getX(), pos.getY(), pos.getZ());
        worldIn.spawnEntity(shulker);
        return;
    }
    if (worldIn.getTileEntity(pos) instanceof TileEntitySkull && ((TileEntitySkull) worldIn.getTileEntity(pos)).getSkullType() == 0) {
        int meta = worldIn.getBlockState(pos).getBlock().getMetaFromState(worldIn.getBlockState(pos));
        worldIn.setBlockState(pos, Blocks.AIR.getDefaultState(), 3);
        worldIn.setBlockState(pos, Blocks.SKULL.getStateFromMeta(meta), 3);
        ((TileEntitySkull) worldIn.getTileEntity(pos)).setType(1);
        return;
    }
    if (BlockSilverfish.canContainSilverfish(worldIn.getBlockState(pos))) {
        worldIn.setBlockState(pos, Blocks.MONSTER_EGG.getDefaultState().withProperty(BlockSilverfish.VARIANT, BlockSilverfish.EnumType.forModelBlock(worldIn.getBlockState(pos))), 3);
        return;
    }
    WorldServer worldServ = (WorldServer) worldIn;
    if (worldServ.countEntities(EnumCreatureType.MONSTER, true) <= worldServ.playerEntities.size() * 3 * EnumCreatureType.MONSTER.getMaxNumberOfCreature() && rand.nextInt(64) < mult) {
        Biome.SpawnListEntry spawn = worldServ.getSpawnListEntryForTypeAt(EnumCreatureType.MONSTER, pos);
        if (spawn != null) {
            EntityLiving ent = null;
            try {
                ent = spawn.entityClass.getConstructor(new Class[] { World.class }).newInstance(new Object[] { worldServ });
            } catch (Exception e) {
                e.printStackTrace();
            }
            ent.setPosition(pos.getX(), pos.getY(), pos.getZ());
            worldServ.spawnEntity(ent);
        }
    }
}
Also used : Biome(net.minecraft.world.biome.Biome) EntityLiving(net.minecraft.entity.EntityLiving) TileEntitySkull(net.minecraft.tileentity.TileEntitySkull) WorldServer(net.minecraft.world.WorldServer) EntityShulker(net.minecraft.entity.monster.EntityShulker)

Example 2 with EntityShulker

use of net.minecraft.entity.monster.EntityShulker in project CumServerPro by MCUmbrella.

the class CraftWorld method createEntity.

@SuppressWarnings("unchecked")
public net.minecraft.entity.Entity createEntity(Location location, Class<? extends Entity> clazz) throws IllegalArgumentException {
    if (location == null || clazz == null) {
        throw new IllegalArgumentException("Location or entity class cannot be null");
    }
    net.minecraft.entity.Entity entity = null;
    double x = location.getX();
    double y = location.getY();
    double z = location.getZ();
    float pitch = location.getPitch();
    float yaw = location.getYaw();
    // order is important for some of these
    if (Boat.class.isAssignableFrom(clazz)) {
        entity = new EntityBoat(world, x, y, z);
        entity.setLocationAndAngles(x, y, z, yaw, pitch);
    } else if (FallingBlock.class.isAssignableFrom(clazz)) {
        entity = new EntityFallingBlock(world, x, y, z, world.getBlockState(new BlockPos(x, y, z)));
    } else if (Projectile.class.isAssignableFrom(clazz)) {
        if (Snowball.class.isAssignableFrom(clazz)) {
            entity = new EntitySnowball(world, x, y, z);
        } else if (Egg.class.isAssignableFrom(clazz)) {
            entity = new EntityEgg(world, x, y, z);
        } else if (Arrow.class.isAssignableFrom(clazz)) {
            if (TippedArrow.class.isAssignableFrom(clazz)) {
                entity = new EntityTippedArrow(world);
                ((EntityTippedArrow) entity).setType(CraftPotionUtil.fromBukkit(new PotionData(PotionType.WATER, false, false)));
            } else if (SpectralArrow.class.isAssignableFrom(clazz)) {
                entity = new EntitySpectralArrow(world);
            } else {
                entity = new EntityTippedArrow(world);
            }
            entity.setLocationAndAngles(x, y, z, 0, 0);
        } else if (ThrownExpBottle.class.isAssignableFrom(clazz)) {
            entity = new EntityExpBottle(world);
            entity.setLocationAndAngles(x, y, z, 0, 0);
        } else if (EnderPearl.class.isAssignableFrom(clazz)) {
            entity = new EntityEnderPearl(world);
            entity.setLocationAndAngles(x, y, z, 0, 0);
        } else if (ThrownPotion.class.isAssignableFrom(clazz)) {
            if (LingeringPotion.class.isAssignableFrom(clazz)) {
                entity = new EntityPotion(world, x, y, z, CraftItemStack.asNMSCopy(new ItemStack(org.bukkit.Material.LINGERING_POTION, 1)));
            } else {
                entity = new EntityPotion(world, x, y, z, CraftItemStack.asNMSCopy(new ItemStack(org.bukkit.Material.SPLASH_POTION, 1)));
            }
        } else if (Fireball.class.isAssignableFrom(clazz)) {
            if (SmallFireball.class.isAssignableFrom(clazz)) {
                entity = new EntitySmallFireball(world);
            } else if (WitherSkull.class.isAssignableFrom(clazz)) {
                entity = new EntityWitherSkull(world);
            } else if (DragonFireball.class.isAssignableFrom(clazz)) {
                entity = new EntityDragonFireball(world);
            } else {
                entity = new EntityLargeFireball(world);
            }
            entity.setLocationAndAngles(x, y, z, yaw, pitch);
            Vector direction = location.getDirection().multiply(10);
            ((EntityFireball) entity).setDirection(direction.getX(), direction.getY(), direction.getZ());
        } else if (ShulkerBullet.class.isAssignableFrom(clazz)) {
            entity = new EntityShulkerBullet(world);
            entity.setLocationAndAngles(x, y, z, yaw, pitch);
        } else if (LlamaSpit.class.isAssignableFrom(clazz)) {
            entity = new EntityLlamaSpit(world);
            entity.setLocationAndAngles(x, y, z, yaw, pitch);
        }
    } else if (Minecart.class.isAssignableFrom(clazz)) {
        if (PoweredMinecart.class.isAssignableFrom(clazz)) {
            entity = new EntityMinecartFurnace(world, x, y, z);
        } else if (StorageMinecart.class.isAssignableFrom(clazz)) {
            entity = new EntityMinecartChest(world, x, y, z);
        } else if (ExplosiveMinecart.class.isAssignableFrom(clazz)) {
            entity = new EntityMinecartTNT(world, x, y, z);
        } else if (HopperMinecart.class.isAssignableFrom(clazz)) {
            entity = new EntityMinecartHopper(world, x, y, z);
        } else if (SpawnerMinecart.class.isAssignableFrom(clazz)) {
            entity = new EntityMinecartMobSpawner(world, x, y, z);
        } else if (CommandMinecart.class.isAssignableFrom(clazz)) {
            entity = new EntityMinecartCommandBlock(world, x, y, z);
        } else {
            // Default to rideable minecart for pre-rideable compatibility
            entity = new EntityMinecartEmpty(world, x, y, z);
        }
    } else if (EnderSignal.class.isAssignableFrom(clazz)) {
        entity = new EntityEnderEye(world, x, y, z);
    } else if (EnderCrystal.class.isAssignableFrom(clazz)) {
        entity = new EntityEnderCrystal(world);
        entity.setLocationAndAngles(x, y, z, 0, 0);
    } else if (LivingEntity.class.isAssignableFrom(clazz)) {
        if (Chicken.class.isAssignableFrom(clazz)) {
            entity = new EntityChicken(world);
        } else if (Cow.class.isAssignableFrom(clazz)) {
            if (MushroomCow.class.isAssignableFrom(clazz)) {
                entity = new EntityMooshroom(world);
            } else {
                entity = new EntityCow(world);
            }
        } else if (Golem.class.isAssignableFrom(clazz)) {
            if (Snowman.class.isAssignableFrom(clazz)) {
                entity = new EntitySnowman(world);
            } else if (IronGolem.class.isAssignableFrom(clazz)) {
                entity = new EntityIronGolem(world);
            } else if (Shulker.class.isAssignableFrom(clazz)) {
                entity = new EntityShulker(world);
            }
        } else if (Creeper.class.isAssignableFrom(clazz)) {
            entity = new EntityCreeper(world);
        } else if (Ghast.class.isAssignableFrom(clazz)) {
            entity = new EntityGhast(world);
        } else if (Pig.class.isAssignableFrom(clazz)) {
            entity = new EntityPig(world);
        } else if (Player.class.isAssignableFrom(clazz)) {
        // need a net server handler for this one
        } else if (Sheep.class.isAssignableFrom(clazz)) {
            entity = new EntitySheep(world);
        } else if (AbstractHorse.class.isAssignableFrom(clazz)) {
            if (ChestedHorse.class.isAssignableFrom(clazz)) {
                if (Donkey.class.isAssignableFrom(clazz)) {
                    entity = new EntityDonkey(world);
                } else if (Mule.class.isAssignableFrom(clazz)) {
                    entity = new EntityMule(world);
                } else if (Llama.class.isAssignableFrom(clazz)) {
                    entity = new EntityLlama(world);
                }
            } else if (SkeletonHorse.class.isAssignableFrom(clazz)) {
                entity = new EntitySkeletonHorse(world);
            } else if (ZombieHorse.class.isAssignableFrom(clazz)) {
                entity = new EntityZombieHorse(world);
            } else {
                entity = new EntityHorse(world);
            }
        } else if (Skeleton.class.isAssignableFrom(clazz)) {
            if (Stray.class.isAssignableFrom(clazz)) {
                entity = new EntityStray(world);
            } else if (WitherSkeleton.class.isAssignableFrom(clazz)) {
                entity = new EntityWitherSkeleton(world);
            } else {
                entity = new EntitySkeleton(world);
            }
        } else if (Slime.class.isAssignableFrom(clazz)) {
            if (MagmaCube.class.isAssignableFrom(clazz)) {
                entity = new EntityMagmaCube(world);
            } else {
                entity = new EntitySlime(world);
            }
        } else if (Spider.class.isAssignableFrom(clazz)) {
            if (CaveSpider.class.isAssignableFrom(clazz)) {
                entity = new EntityCaveSpider(world);
            } else {
                entity = new EntitySpider(world);
            }
        } else if (Squid.class.isAssignableFrom(clazz)) {
            entity = new EntitySquid(world);
        } else if (Tameable.class.isAssignableFrom(clazz)) {
            if (Wolf.class.isAssignableFrom(clazz)) {
                entity = new EntityWolf(world);
            } else if (Ocelot.class.isAssignableFrom(clazz)) {
                entity = new EntityOcelot(world);
            } else if (Parrot.class.isAssignableFrom(clazz)) {
                entity = new EntityParrot(world);
            }
        } else if (PigZombie.class.isAssignableFrom(clazz)) {
            entity = new EntityPigZombie(world);
        } else if (Zombie.class.isAssignableFrom(clazz)) {
            if (Husk.class.isAssignableFrom(clazz)) {
                entity = new EntityHusk(world);
            } else if (ZombieVillager.class.isAssignableFrom(clazz)) {
                entity = new EntityZombieVillager(world);
            } else {
                entity = new EntityZombie(world);
            }
        } else if (Giant.class.isAssignableFrom(clazz)) {
            entity = new EntityGiantZombie(world);
        } else if (Silverfish.class.isAssignableFrom(clazz)) {
            entity = new EntitySilverfish(world);
        } else if (Enderman.class.isAssignableFrom(clazz)) {
            entity = new EntityEnderman(world);
        } else if (Blaze.class.isAssignableFrom(clazz)) {
            entity = new EntityBlaze(world);
        } else if (Villager.class.isAssignableFrom(clazz)) {
            entity = new EntityVillager(world);
        } else if (Witch.class.isAssignableFrom(clazz)) {
            entity = new EntityWitch(world);
        } else if (Wither.class.isAssignableFrom(clazz)) {
            entity = new EntityWither(world);
        } else if (ComplexLivingEntity.class.isAssignableFrom(clazz)) {
            if (EnderDragon.class.isAssignableFrom(clazz)) {
                entity = new EntityDragon(world);
            }
        } else if (Ambient.class.isAssignableFrom(clazz)) {
            if (Bat.class.isAssignableFrom(clazz)) {
                entity = new EntityBat(world);
            }
        } else if (Rabbit.class.isAssignableFrom(clazz)) {
            entity = new EntityRabbit(world);
        } else if (Endermite.class.isAssignableFrom(clazz)) {
            entity = new EntityEndermite(world);
        } else if (Guardian.class.isAssignableFrom(clazz)) {
            if (ElderGuardian.class.isAssignableFrom(clazz)) {
                entity = new EntityElderGuardian(world);
            } else {
                entity = new EntityGuardian(world);
            }
        } else if (ArmorStand.class.isAssignableFrom(clazz)) {
            entity = new EntityArmorStand(world, x, y, z);
        } else if (PolarBear.class.isAssignableFrom(clazz)) {
            entity = new EntityPolarBear(world);
        } else if (Vex.class.isAssignableFrom(clazz)) {
            entity = new EntityVex(world);
        } else if (Illager.class.isAssignableFrom(clazz)) {
            if (Spellcaster.class.isAssignableFrom(clazz)) {
                if (Evoker.class.isAssignableFrom(clazz)) {
                    entity = new EntityEvoker(world);
                } else if (Illusioner.class.isAssignableFrom(clazz)) {
                    entity = new EntityIllusionIllager(world);
                }
            } else if (Vindicator.class.isAssignableFrom(clazz)) {
                entity = new EntityVindicator(world);
            }
        }
        if (entity != null) {
            entity.setPositionAndRotation(x, y, z, yaw, pitch);
            // SPIGOT-3587
            entity.setRotationYawHead(yaw);
        }
    } else if (Hanging.class.isAssignableFrom(clazz)) {
        Block block = getBlockAt(location);
        BlockFace face = BlockFace.SELF;
        // 1 full block, also painting smallest size.
        int width = 16;
        // 1 full block, also painting smallest size.
        int height = 16;
        if (ItemFrame.class.isAssignableFrom(clazz)) {
            width = 12;
            height = 12;
        } else if (LeashHitch.class.isAssignableFrom(clazz)) {
            width = 9;
            height = 9;
        }
        BlockFace[] faces = new BlockFace[] { BlockFace.EAST, BlockFace.NORTH, BlockFace.WEST, BlockFace.SOUTH };
        final BlockPos pos = new BlockPos((int) x, (int) y, (int) z);
        for (BlockFace dir : faces) {
            net.minecraft.block.Block nmsBlock = CraftMagicNumbers.getBlock(block.getRelative(dir));
            if (nmsBlock.getDefaultState().getMaterial().isSolid() || BlockRedstoneDiode.isDiode(nmsBlock.getDefaultState())) {
                boolean taken = false;
                AxisAlignedBB bb = EntityHanging.calculateBoundingBox(null, pos, CraftBlock.blockFaceToNotch(dir).getOpposite(), width, height);
                List<net.minecraft.entity.Entity> list = (List<net.minecraft.entity.Entity>) world.getEntitiesWithinAABBExcludingEntity(null, bb);
                for (Iterator<net.minecraft.entity.Entity> it = list.iterator(); !taken && it.hasNext(); ) {
                    net.minecraft.entity.Entity e = it.next();
                    if (e instanceof EntityHanging) {
                        // Hanging entities do not like hanging entities which intersect them.
                        taken = true;
                    }
                }
                if (!taken) {
                    face = dir;
                    break;
                }
            }
        }
        if (LeashHitch.class.isAssignableFrom(clazz)) {
            entity = new EntityLeashKnot(world, new BlockPos((int) x, (int) y, (int) z));
            entity.forceSpawn = true;
        } else {
            // No valid face found
            Preconditions.checkArgument(face != BlockFace.SELF, "Cannot spawn hanging entity for %s at %s (no free face)", clazz.getName(), location);
            EnumFacing dir = CraftBlock.blockFaceToNotch(face).getOpposite();
            if (Painting.class.isAssignableFrom(clazz)) {
                entity = new EntityPainting(world, new BlockPos((int) x, (int) y, (int) z), dir);
            } else if (ItemFrame.class.isAssignableFrom(clazz)) {
                entity = new EntityItemFrame(world, new BlockPos((int) x, (int) y, (int) z), dir);
            }
        }
        if (entity != null && !((EntityHanging) entity).onValidSurface()) {
            throw new IllegalArgumentException("Cannot spawn hanging entity for " + clazz.getName() + " at " + location);
        }
    } else if (TNTPrimed.class.isAssignableFrom(clazz)) {
        entity = new EntityTNTPrimed(world, x, y, z, null);
    } else if (ExperienceOrb.class.isAssignableFrom(clazz)) {
        entity = new EntityXPOrb(world, x, y, z, 0);
    } else if (Weather.class.isAssignableFrom(clazz)) {
        // not sure what this can do
        if (LightningStrike.class.isAssignableFrom(clazz)) {
            entity = new EntityLightningBolt(world, x, y, z, false);
        // what is this, I don't even
        }
    } else if (Firework.class.isAssignableFrom(clazz)) {
        entity = new EntityFireworkRocket(world, x, y, z, net.minecraft.item.ItemStack.EMPTY);
    } else if (AreaEffectCloud.class.isAssignableFrom(clazz)) {
        entity = new EntityAreaEffectCloud(world, x, y, z);
    } else if (EvokerFangs.class.isAssignableFrom(clazz)) {
        entity = new EntityEvokerFangs(world, x, y, z, (float) Math.toRadians(yaw), 0, null);
    }
    if (entity != null) {
        return entity;
    }
    throw new IllegalArgumentException("Cannot spawn an entity for " + clazz.getName());
}
Also used : EntityShulkerBullet(net.minecraft.entity.projectile.EntityShulkerBullet) EntityMooshroom(net.minecraft.entity.passive.EntityMooshroom) Entity(org.bukkit.entity.Entity) TileEntity(net.minecraft.tileentity.TileEntity) EntityCaveSpider(net.minecraft.entity.monster.EntityCaveSpider) BlockFace(org.bukkit.block.BlockFace) EntityParrot(net.minecraft.entity.passive.EntityParrot) EntityHorse(net.minecraft.entity.passive.EntityHorse) EntityVindicator(net.minecraft.entity.monster.EntityVindicator) EntityVillager(net.minecraft.entity.passive.EntityVillager) EntitySkeletonHorse(net.minecraft.entity.passive.EntitySkeletonHorse) EntityElderGuardian(net.minecraft.entity.monster.EntityElderGuardian) EntityGuardian(net.minecraft.entity.monster.EntityGuardian) EntityWither(net.minecraft.entity.boss.EntityWither) EntityGuardian(net.minecraft.entity.monster.EntityGuardian) Vector(org.bukkit.util.Vector) EntityFireball(net.minecraft.entity.projectile.EntityFireball) EntityDragon(net.minecraft.entity.boss.EntityDragon) EntityFallingBlock(net.minecraft.entity.item.EntityFallingBlock) EntityItemFrame(net.minecraft.entity.item.EntityItemFrame) EntityElderGuardian(net.minecraft.entity.monster.EntityElderGuardian) EntityMinecartTNT(net.minecraft.entity.item.EntityMinecartTNT) EntityElderGuardian(net.minecraft.entity.monster.EntityElderGuardian) EntityEvokerFangs(net.minecraft.entity.projectile.EntityEvokerFangs) EntityExpBottle(net.minecraft.entity.item.EntityExpBottle) EntityZombie(net.minecraft.entity.monster.EntityZombie) EntitySnowball(net.minecraft.entity.projectile.EntitySnowball) EntityCaveSpider(net.minecraft.entity.monster.EntityCaveSpider) EntityRabbit(net.minecraft.entity.passive.EntityRabbit) EntityMinecartCommandBlock(net.minecraft.entity.item.EntityMinecartCommandBlock) EntitySheep(net.minecraft.entity.passive.EntitySheep) ItemStack(org.bukkit.inventory.ItemStack) CraftItemStack(org.bukkit.craftbukkit.inventory.CraftItemStack) EntityMagmaCube(net.minecraft.entity.monster.EntityMagmaCube) EntityShulker(net.minecraft.entity.monster.EntityShulker) ExplosiveMinecart(org.bukkit.entity.minecart.ExplosiveMinecart) EntityLeashKnot(net.minecraft.entity.EntityLeashKnot) EntityTNTPrimed(net.minecraft.entity.item.EntityTNTPrimed) EnumFacing(net.minecraft.util.EnumFacing) EntityRabbit(net.minecraft.entity.passive.EntityRabbit) EntityOcelot(net.minecraft.entity.passive.EntityOcelot) EntityEnderPearl(net.minecraft.entity.item.EntityEnderPearl) EntityIronGolem(net.minecraft.entity.monster.EntityIronGolem) EntityShulkerBullet(net.minecraft.entity.projectile.EntityShulkerBullet) EntityLlama(net.minecraft.entity.passive.EntityLlama) EntityBlaze(net.minecraft.entity.monster.EntityBlaze) EntityIllusionIllager(net.minecraft.entity.monster.EntityIllusionIllager) EntityEgg(net.minecraft.entity.projectile.EntityEgg) PotionData(org.bukkit.potion.PotionData) EntityLlamaSpit(net.minecraft.entity.projectile.EntityLlamaSpit) EntityEvoker(net.minecraft.entity.monster.EntityEvoker) EntityPotion(net.minecraft.entity.projectile.EntityPotion) EntityPolarBear(net.minecraft.entity.monster.EntityPolarBear) EntityWitherSkeleton(net.minecraft.entity.monster.EntityWitherSkeleton) EntityWolf(net.minecraft.entity.passive.EntityWolf) EntityWitch(net.minecraft.entity.monster.EntityWitch) EntityBat(net.minecraft.entity.passive.EntityBat) EntityMule(net.minecraft.entity.passive.EntityMule) EntityHusk(net.minecraft.entity.monster.EntityHusk) EntityEnderCrystal(net.minecraft.entity.item.EntityEnderCrystal) EntityCow(net.minecraft.entity.passive.EntityCow) EntityEnderEye(net.minecraft.entity.item.EntityEnderEye) EntityMinecartHopper(net.minecraft.entity.item.EntityMinecartHopper) EntityPig(net.minecraft.entity.passive.EntityPig) EntitySilverfish(net.minecraft.entity.monster.EntitySilverfish) EntityFireworkRocket(net.minecraft.entity.item.EntityFireworkRocket) EntityBlaze(net.minecraft.entity.monster.EntityBlaze) EntityWitherSkull(net.minecraft.entity.projectile.EntityWitherSkull) EntityEvokerFangs(net.minecraft.entity.projectile.EntityEvokerFangs) org.bukkit.craftbukkit.entity(org.bukkit.craftbukkit.entity) org.bukkit.entity(org.bukkit.entity) EntityWitherSkull(net.minecraft.entity.projectile.EntityWitherSkull) EntityBoat(net.minecraft.entity.item.EntityBoat) StorageMinecart(org.bukkit.entity.minecart.StorageMinecart) ExplosiveMinecart(org.bukkit.entity.minecart.ExplosiveMinecart) PoweredMinecart(org.bukkit.entity.minecart.PoweredMinecart) HopperMinecart(org.bukkit.entity.minecart.HopperMinecart) CommandMinecart(org.bukkit.entity.minecart.CommandMinecart) SpawnerMinecart(org.bukkit.entity.minecart.SpawnerMinecart) EntitySpectralArrow(net.minecraft.entity.projectile.EntitySpectralArrow) EntityItemFrame(net.minecraft.entity.item.EntityItemFrame) EntityMinecartFurnace(net.minecraft.entity.item.EntityMinecartFurnace) EntityFallingBlock(net.minecraft.entity.item.EntityFallingBlock) EntityZombieVillager(net.minecraft.entity.monster.EntityZombieVillager) EntityHanging(net.minecraft.entity.EntityHanging) EntitySmallFireball(net.minecraft.entity.projectile.EntitySmallFireball) BlockPos(net.minecraft.util.math.BlockPos) ArrayList(java.util.ArrayList) List(java.util.List) EntityWolf(net.minecraft.entity.passive.EntityWolf) EntitySpider(net.minecraft.entity.monster.EntitySpider) EntityGiantZombie(net.minecraft.entity.monster.EntityGiantZombie) EntityZombie(net.minecraft.entity.monster.EntityZombie) EntityPigZombie(net.minecraft.entity.monster.EntityPigZombie) EntityParrot(net.minecraft.entity.passive.EntityParrot) EntitySlime(net.minecraft.entity.monster.EntitySlime) EntityArmorStand(net.minecraft.entity.item.EntityArmorStand) EntityEnderCrystal(net.minecraft.entity.item.EntityEnderCrystal) EntityEvoker(net.minecraft.entity.monster.EntityEvoker) EntityDonkey(net.minecraft.entity.passive.EntityDonkey) EntityMule(net.minecraft.entity.passive.EntityMule) EntityHusk(net.minecraft.entity.monster.EntityHusk) EntityChicken(net.minecraft.entity.passive.EntityChicken) EntityCreeper(net.minecraft.entity.monster.EntityCreeper) PoweredMinecart(org.bukkit.entity.minecart.PoweredMinecart) EntityIllusionIllager(net.minecraft.entity.monster.EntityIllusionIllager) EntityFallingBlock(net.minecraft.entity.item.EntityFallingBlock) EntityMinecartCommandBlock(net.minecraft.entity.item.EntityMinecartCommandBlock) Block(org.bukkit.block.Block) CraftBlock(org.bukkit.craftbukkit.block.CraftBlock) EntityMinecartEmpty(net.minecraft.entity.item.EntityMinecartEmpty) EntityEnderman(net.minecraft.entity.monster.EntityEnderman) AxisAlignedBB(net.minecraft.util.math.AxisAlignedBB) EntityStray(net.minecraft.entity.monster.EntityStray) EntityTippedArrow(net.minecraft.entity.projectile.EntityTippedArrow) EntityStray(net.minecraft.entity.monster.EntityStray) EntityMinecartChest(net.minecraft.entity.item.EntityMinecartChest) EntityLargeFireball(net.minecraft.entity.projectile.EntityLargeFireball) EntityCow(net.minecraft.entity.passive.EntityCow) EntityCreeper(net.minecraft.entity.monster.EntityCreeper) EntityPig(net.minecraft.entity.passive.EntityPig) EntitySkeleton(net.minecraft.entity.monster.EntitySkeleton) EntityAreaEffectCloud(net.minecraft.entity.EntityAreaEffectCloud) EntityGhast(net.minecraft.entity.monster.EntityGhast) EntitySilverfish(net.minecraft.entity.monster.EntitySilverfish) EntitySquid(net.minecraft.entity.passive.EntitySquid) EntityLightningBolt(net.minecraft.entity.effect.EntityLightningBolt) EntityDragonFireball(net.minecraft.entity.projectile.EntityDragonFireball) EntitySpectralArrow(net.minecraft.entity.projectile.EntitySpectralArrow) EntityMinecartMobSpawner(net.minecraft.entity.item.EntityMinecartMobSpawner) EntityPigZombie(net.minecraft.entity.monster.EntityPigZombie) Iterator(java.util.Iterator) EntitySkeleton(net.minecraft.entity.monster.EntitySkeleton) EntityWitherSkeleton(net.minecraft.entity.monster.EntityWitherSkeleton) EntitySkeletonHorse(net.minecraft.entity.passive.EntitySkeletonHorse) EntityWitch(net.minecraft.entity.monster.EntityWitch) EntityPolarBear(net.minecraft.entity.monster.EntityPolarBear) SpawnerMinecart(org.bukkit.entity.minecart.SpawnerMinecart) EntityEgg(net.minecraft.entity.projectile.EntityEgg) EntityGiantZombie(net.minecraft.entity.monster.EntityGiantZombie) EntityEndermite(net.minecraft.entity.monster.EntityEndermite) EntityVex(net.minecraft.entity.monster.EntityVex) EntityZombieHorse(net.minecraft.entity.passive.EntityZombieHorse) EntityPainting(net.minecraft.entity.item.EntityPainting) EntityPainting(net.minecraft.entity.item.EntityPainting) EntitySnowman(net.minecraft.entity.monster.EntitySnowman) EntityIronGolem(net.minecraft.entity.monster.EntityIronGolem) EntityHanging(net.minecraft.entity.EntityHanging) EntityCaveSpider(net.minecraft.entity.monster.EntityCaveSpider) EntitySpider(net.minecraft.entity.monster.EntitySpider) EntitySheep(net.minecraft.entity.passive.EntitySheep) EntityXPOrb(net.minecraft.entity.item.EntityXPOrb)

Example 3 with EntityShulker

use of net.minecraft.entity.monster.EntityShulker in project Minecraft-SlientClient-Hack by YouNeverKnow00.

the class ModelShulker method setRotationAngles.

/**
 * Sets the model's various rotation angles. For bipeds, par1 and par2 are used for animating the movement of arms
 * and legs, where par1 represents the time(so that arms and legs swing back and forth) and par2 represents how
 * "far" arms and legs can swing at most.
 */
public void setRotationAngles(float limbSwing, float limbSwingAmount, float ageInTicks, float netHeadYaw, float headPitch, float scaleFactor, Entity entityIn) {
    EntityShulker entityshulker = (EntityShulker) entityIn;
    float f = ageInTicks - (float) entityshulker.ticksExisted;
    float f1 = (0.5F + entityshulker.getClientPeekAmount(f)) * (float) Math.PI;
    float f2 = -1.0F + MathHelper.sin(f1);
    float f3 = 0.0F;
    if (f1 > (float) Math.PI) {
        f3 = MathHelper.sin(ageInTicks * 0.1F) * 0.7F;
    }
    this.lid.setRotationPoint(0.0F, 16.0F + MathHelper.sin(f1) * 8.0F + f3, 0.0F);
    if (entityshulker.getClientPeekAmount(f) > 0.3F) {
        this.lid.rotateAngleY = f2 * f2 * f2 * f2 * (float) Math.PI * 0.125F;
    } else {
        this.lid.rotateAngleY = 0.0F;
    }
    this.head.rotateAngleX = headPitch * 0.017453292F;
    this.head.rotateAngleY = netHeadYaw * 0.017453292F;
}
Also used : EntityShulker(net.minecraft.entity.monster.EntityShulker)

Example 4 with EntityShulker

use of net.minecraft.entity.monster.EntityShulker in project BetterWithAddons by DaedalusGame.

the class AssortedHandler method onEntityDrop.

@SubscribeEvent
public void onEntityDrop(LivingDropsEvent event) {
    EntityLivingBase living = event.getEntityLiving();
    if (living == null || living.world == null)
        return;
    Random rand = living.world.rand;
    if (living instanceof EntityShulker) {
        if (rand.nextFloat() < 1.0f) {
            event.getEntityLiving().entityDropItem(ModItems.material.getMaterial("ender_cream", 1 + rand.nextInt(2)), 0);
        }
    }
}
Also used : Random(java.util.Random) EntityLivingBase(net.minecraft.entity.EntityLivingBase) EntityShulker(net.minecraft.entity.monster.EntityShulker) SubscribeEvent(net.minecraftforge.fml.common.eventhandler.SubscribeEvent)

Example 5 with EntityShulker

use of net.minecraft.entity.monster.EntityShulker in project ProgressiveBosses by Insane96.

the class Dragon method SpawnShulkers.

private static void SpawnShulkers(EntityDragon dragon, World world) {
    if (ModConfig.config.dragon.minions.difficultyToSpawn <= 0)
        return;
    NBTTagCompound tags = dragon.getEntityData();
    // Mobs Properties Randomness
    tags.setBoolean("mobsrandomizzation:preventProcessing", true);
    float difficulty = tags.getFloat("progressivebosses:difficulty");
    if (difficulty < ModConfig.config.dragon.minions.difficultyToSpawn)
        return;
    int cooldown = tags.getInteger("progressivebosses:shulkers_cooldown");
    if (cooldown > 0) {
        tags.setInteger("progressivebosses:shulkers_cooldown", cooldown - 1);
    } else {
        int cooldownReduction = (int) (difficulty * ModConfig.config.dragon.minions.spawnCooldownReduction);
        cooldown = MathHelper.getInt(world.rand, ModConfig.config.dragon.minions.minCooldown - cooldownReduction, ModConfig.config.dragon.minions.maxCooldown - cooldownReduction);
        tags.setInteger("progressivebosses:shulkers_cooldown", cooldown);
        EntityShulker shulker = new EntityShulker(world);
        NBTTagCompound shulkerTags = shulker.getEntityData();
        // Scaling Health
        shulkerTags.setShort("scalinghealth:difficulty", (short) -1);
        float angle = world.rand.nextFloat() * (float) Math.PI * 2f;
        float x = (float) (Math.cos(angle) * (Utils.Math.getFloat(world.rand, 15f, 40f)));
        float z = (float) (Math.sin(angle) * (Utils.Math.getFloat(world.rand, 15f, 40f)));
        float y = world.getTopSolidOrLiquidBlock(new BlockPos(x, 255, z)).getY();
        IAttributeInstance followRange = shulker.getEntityAttribute(SharedMonsterAttributes.FOLLOW_RANGE);
        followRange.setBaseValue(64f);
        shulker.setPosition(x, y, z);
        NBTTagCompound compound = new NBTTagCompound();
        shulker.writeEntityToNBT(compound);
        compound.setByte("Color", (byte) 15);
        shulker.readEntityFromNBT(compound);
        // shulker.setCustomNameTag(I18n.format("dragon.minion"));
        shulker.setCustomNameTag("Dragon's Minion");
        ArrayList<EntityAITaskEntry> toRemove = new ArrayList<EntityAITaskEntry>();
        for (EntityAITaskEntry task : shulker.tasks.taskEntries) {
            if (task.action instanceof EntityAIWatchClosest)
                toRemove.add(task);
            if (Reflection.EntityShulker_AIAttack.isInstance(task.action))
                toRemove.add(task);
        }
        for (EntityAITaskEntry entityAITaskEntry : toRemove) {
            shulker.tasks.taskEntries.remove(entityAITaskEntry);
        }
        toRemove.clear();
        for (EntityAITaskEntry targetTask : shulker.targetTasks.taskEntries) {
            if (targetTask.action instanceof EntityAINearestAttackableTarget)
                toRemove.add(targetTask);
        }
        for (EntityAITaskEntry entityAITaskEntry : toRemove) {
            shulker.targetTasks.taskEntries.remove(entityAITaskEntry);
        }
        toRemove.clear();
        shulker.tasks.addTask(1, new EntityAIWatchClosest(shulker, EntityPlayer.class, 64f));
        shulker.tasks.addTask(1, new DragonMinionAIAttack(shulker));
        shulker.targetTasks.addTask(2, new DragonMinionAIAttackNearest(shulker));
        Reflection.Set(Reflection.EntityLiving_deathLootTable, shulker, LootTables.dragonMinion);
        Reflection.Set(Reflection.EntityLiving_experienceValue, shulker, 2);
        world.spawnEntity(shulker);
    }
}
Also used : DragonMinionAIAttackNearest(net.insane96mcp.progressivebosses.events.entities.ai.DragonMinionAIAttackNearest) EntityAIWatchClosest(net.minecraft.entity.ai.EntityAIWatchClosest) NBTTagCompound(net.minecraft.nbt.NBTTagCompound) IAttributeInstance(net.minecraft.entity.ai.attributes.IAttributeInstance) ArrayList(java.util.ArrayList) EntityAINearestAttackableTarget(net.minecraft.entity.ai.EntityAINearestAttackableTarget) DragonMinionAIAttack(net.insane96mcp.progressivebosses.events.entities.ai.DragonMinionAIAttack) EntityPlayer(net.minecraft.entity.player.EntityPlayer) BlockPos(net.minecraft.util.math.BlockPos) EntityShulker(net.minecraft.entity.monster.EntityShulker) EntityAITaskEntry(net.minecraft.entity.ai.EntityAITasks.EntityAITaskEntry)

Aggregations

EntityShulker (net.minecraft.entity.monster.EntityShulker)8 ArrayList (java.util.ArrayList)4 BlockPos (net.minecraft.util.math.BlockPos)3 Iterator (java.util.Iterator)2 List (java.util.List)2 EntityAreaEffectCloud (net.minecraft.entity.EntityAreaEffectCloud)2 EntityHanging (net.minecraft.entity.EntityHanging)2 EntityLeashKnot (net.minecraft.entity.EntityLeashKnot)2 EntityDragon (net.minecraft.entity.boss.EntityDragon)2 EntityWither (net.minecraft.entity.boss.EntityWither)2 EntityLightningBolt (net.minecraft.entity.effect.EntityLightningBolt)2 EntityArmorStand (net.minecraft.entity.item.EntityArmorStand)2 EntityBoat (net.minecraft.entity.item.EntityBoat)2 EntityEnderCrystal (net.minecraft.entity.item.EntityEnderCrystal)2 EntityEnderEye (net.minecraft.entity.item.EntityEnderEye)2 EntityEnderPearl (net.minecraft.entity.item.EntityEnderPearl)2 EntityExpBottle (net.minecraft.entity.item.EntityExpBottle)2 EntityFallingBlock (net.minecraft.entity.item.EntityFallingBlock)2 EntityFireworkRocket (net.minecraft.entity.item.EntityFireworkRocket)2 EntityItemFrame (net.minecraft.entity.item.EntityItemFrame)2