Search in sources :

Example 6 with EntityLlama

use of net.minecraft.entity.passive.EntityLlama in project Magma by magmafoundation.

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) {
        // Spigot start
        if (entity instanceof EntityOcelot) {
            ((EntityOcelot) entity).spawnBonus = false;
        }
        // Spigot end
        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) CraftEntity(org.bukkit.craftbukkit.v1_12_R1.entity.CraftEntity) 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) CraftItemStack(org.bukkit.craftbukkit.v1_12_R1.inventory.CraftItemStack) ItemStack(org.bukkit.inventory.ItemStack) 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.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.v1_12_R1.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 7 with EntityLlama

use of net.minecraft.entity.passive.EntityLlama in project Minecraft-SlientClient-Hack by YouNeverKnow00.

the class EntityAILlamaFollowCaravan method shouldExecute.

/**
 * Returns whether the EntityAIBase should begin execution.
 */
public boolean shouldExecute() {
    if (!this.field_190859_a.getLeashed() && !this.field_190859_a.func_190718_dR()) {
        List<EntityLlama> list = this.field_190859_a.world.<EntityLlama>getEntitiesWithinAABB(this.field_190859_a.getClass(), this.field_190859_a.getEntityBoundingBox().expand(9.0D, 4.0D, 9.0D));
        EntityLlama entityllama = null;
        double d0 = Double.MAX_VALUE;
        for (EntityLlama entityllama1 : list) {
            if (entityllama1.func_190718_dR() && !entityllama1.func_190712_dQ()) {
                double d1 = this.field_190859_a.getDistanceSqToEntity(entityllama1);
                if (d1 <= d0) {
                    d0 = d1;
                    entityllama = entityllama1;
                }
            }
        }
        if (entityllama == null) {
            for (EntityLlama entityllama2 : list) {
                if (entityllama2.getLeashed() && !entityllama2.func_190712_dQ()) {
                    double d2 = this.field_190859_a.getDistanceSqToEntity(entityllama2);
                    if (d2 <= d0) {
                        d0 = d2;
                        entityllama = entityllama2;
                    }
                }
            }
        }
        if (entityllama == null) {
            return false;
        } else if (d0 < 4.0D) {
            return false;
        } else if (!entityllama.getLeashed() && !this.func_190858_a(entityllama, 1)) {
            return false;
        } else {
            this.field_190859_a.func_190715_a(entityllama);
            return true;
        }
    } else {
        return false;
    }
}
Also used : EntityLlama(net.minecraft.entity.passive.EntityLlama)

Example 8 with EntityLlama

use of net.minecraft.entity.passive.EntityLlama in project Minecraft-SlientClient-Hack by YouNeverKnow00.

the class EntityAILlamaFollowCaravan method updateTask.

/**
 * Updates the task
 */
public void updateTask() {
    if (this.field_190859_a.func_190718_dR()) {
        EntityLlama entityllama = this.field_190859_a.func_190716_dS();
        double d0 = (double) this.field_190859_a.getDistanceToEntity(entityllama);
        float f = 2.0F;
        Vec3d vec3d = (new Vec3d(entityllama.posX - this.field_190859_a.posX, entityllama.posY - this.field_190859_a.posY, entityllama.posZ - this.field_190859_a.posZ)).normalize().scale(Math.max(d0 - 2.0D, 0.0D));
        this.field_190859_a.getNavigator().tryMoveToXYZ(this.field_190859_a.posX + vec3d.xCoord, this.field_190859_a.posY + vec3d.yCoord, this.field_190859_a.posZ + vec3d.zCoord, this.field_190860_b);
    }
}
Also used : EntityLlama(net.minecraft.entity.passive.EntityLlama) Vec3d(net.minecraft.util.math.Vec3d)

Example 9 with EntityLlama

use of net.minecraft.entity.passive.EntityLlama in project CumServerPro by MCUmbrella.

the class GuiScreenHorseInventory method drawGuiContainerBackgroundLayer.

protected void drawGuiContainerBackgroundLayer(float partialTicks, int mouseX, int mouseY) {
    GlStateManager.color(1.0F, 1.0F, 1.0F, 1.0F);
    this.mc.getTextureManager().bindTexture(HORSE_GUI_TEXTURES);
    int i = (this.width - this.xSize) / 2;
    int j = (this.height - this.ySize) / 2;
    this.drawTexturedModalRect(i, j, 0, 0, this.xSize, this.ySize);
    if (this.horseEntity instanceof AbstractChestHorse) {
        AbstractChestHorse abstractchesthorse = (AbstractChestHorse) this.horseEntity;
        if (abstractchesthorse.hasChest()) {
            this.drawTexturedModalRect(i + 79, j + 17, 0, this.ySize, abstractchesthorse.getInventoryColumns() * 18, 54);
        }
    }
    if (this.horseEntity.canBeSaddled()) {
        this.drawTexturedModalRect(i + 7, j + 35 - 18, 18, this.ySize + 54, 18, 18);
    }
    if (this.horseEntity.wearsArmor()) {
        if (this.horseEntity instanceof EntityLlama) {
            this.drawTexturedModalRect(i + 7, j + 35, 36, this.ySize + 54, 18, 18);
        } else {
            this.drawTexturedModalRect(i + 7, j + 35, 0, this.ySize + 54, 18, 18);
        }
    }
    GuiInventory.drawEntityOnScreen(i + 51, j + 60, 17, (float) (i + 51) - this.mousePosx, (float) (j + 75 - 50) - this.mousePosY, this.horseEntity);
}
Also used : AbstractChestHorse(net.minecraft.entity.passive.AbstractChestHorse) EntityLlama(net.minecraft.entity.passive.EntityLlama)

Example 10 with EntityLlama

use of net.minecraft.entity.passive.EntityLlama in project CumServerPro by MCUmbrella.

the class EntityAILlamaFollowCaravan method shouldExecute.

public boolean shouldExecute() {
    if (!this.llama.getLeashed() && !this.llama.inCaravan()) {
        List<EntityLlama> list = this.llama.world.<EntityLlama>getEntitiesWithinAABB(this.llama.getClass(), this.llama.getEntityBoundingBox().grow(9.0D, 4.0D, 9.0D));
        EntityLlama entityllama = null;
        double d0 = Double.MAX_VALUE;
        for (EntityLlama entityllama1 : list) {
            if (entityllama1.inCaravan() && !entityllama1.hasCaravanTrail()) {
                double d1 = this.llama.getDistanceSq(entityllama1);
                if (d1 <= d0) {
                    d0 = d1;
                    entityllama = entityllama1;
                }
            }
        }
        if (entityllama == null) {
            for (EntityLlama entityllama2 : list) {
                if (entityllama2.getLeashed() && !entityllama2.hasCaravanTrail()) {
                    double d2 = this.llama.getDistanceSq(entityllama2);
                    if (d2 <= d0) {
                        d0 = d2;
                        entityllama = entityllama2;
                    }
                }
            }
        }
        if (entityllama == null) {
            return false;
        } else if (d0 < 4.0D) {
            return false;
        } else if (!entityllama.getLeashed() && !this.firstIsLeashed(entityllama, 1)) {
            return false;
        } else {
            this.llama.joinCaravan(entityllama);
            return true;
        }
    } else {
        return false;
    }
}
Also used : EntityLlama(net.minecraft.entity.passive.EntityLlama)

Aggregations

EntityLlama (net.minecraft.entity.passive.EntityLlama)10 EntityGhast (net.minecraft.entity.monster.EntityGhast)3 ArrayList (java.util.ArrayList)2 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