net.minecraft.entity.boss

## Class EntityDragon

- java.lang.Object
- - net.minecraft.entity.Entity
  - - net.minecraft.entity.EntityLivingBase
    - - net.minecraft.entity.EntityLiving
      - - net.minecraft.entity.boss.EntityDragon

- All Implemented Interfaces:
    IBossDisplayData, IEntityMultiPart, IMob, IAnimals

      public class EntityDragon
      extends EntityLiving
      implements IBossDisplayData, IEntityMultiPart, IMob

- - ### Field Summary

    Fields
    Modifier and Type | Field and Description
    --- | ---
    `float` | `animTime` Animation time, used to control the speed of the animation cycles (wings flapping, jaw opening, etc.)
    `int` | `deathTicks`
    `EntityDragonPart[]` | `dragonPartArray` An array containing all body parts of this dragon
    `EntityDragonPart` | `dragonPartBody` The body bounding box of a dragon
    `EntityDragonPart` | `dragonPartHead` The head bounding box of a dragon
    `EntityDragonPart` | `dragonPartTail1`
    `EntityDragonPart` | `dragonPartTail2`
    `EntityDragonPart` | `dragonPartTail3`
    `EntityDragonPart` | `dragonPartWing1`
    `EntityDragonPart` | `dragonPartWing2`
    `boolean` | `forceNewTarget` Force selecting a new flight target at next tick if set to true.
    `EntityEnderCrystal` | `healingEnderCrystal` The current endercrystal that is healing this dragon
    `float` | `prevAnimTime` Animation time at previous tick.
    `double[][]` | `ringBuffer` Ring buffer array for the last 64 Y-positions and yaw rotations.
    `int` | `ringBufferIndex` Index into the ring buffer.
    `boolean` | `slowed` Activated if the dragon is flying though obsidian, white stone or bedrock.
    `double` | `targetX`
    `double` | `targetY`
    `double` | `targetZ`

    - ### Fields inherited from class net.minecraft.entity.EntityLiving

      `experienceValue, livingSoundTime, targetTasks, tasks`

    - ### Fields inherited from class net.minecraft.entity.EntityLivingBase

      `arrowHitTimer, attackedAtYaw, attackTime, cameraPitch, deathTime, field_70769_ao, field_70770_ap, hurtTime, isSwingInProgress, jumpMovementFactor, limbSwing, limbSwingAmount, maxHurtResistantTime, maxHurtTime, moveForward, moveStrafing, prevCameraPitch, prevHealth, prevLimbSwingAmount, prevRenderYawOffset, prevRotationYawHead, prevSwingProgress, renderYawOffset, rotationYawHead, swingProgress, swingProgressInt`

    - ### Fields inherited from class net.minecraft.entity.Entity

      `addedToChunk, boundingBox, capturedDrops, captureDrops, chunkCoordX, chunkCoordY, chunkCoordZ, dimension, distanceWalkedModified, distanceWalkedOnStepModified, entityCollisionReduction, entityId, fallDistance, field_70135_K, fireResistance, forceSpawn, height, hurtResistantTime, ignoreFrustumCheck, isAirBorne, isCollided, isCollidedHorizontally, isCollidedVertically, isDead, lastTickPosX, lastTickPosY, lastTickPosZ, motionX, motionY, motionZ, myEntitySize, noClip, onGround, posX, posY, posZ, prevDistanceWalkedModified, preventEntitySpawning, prevPosX, prevPosY, prevPosZ, prevRotationPitch, prevRotationYaw, renderDistanceWeight, riddenByEntity, ridingEntity, rotationPitch, rotationYaw, serverPosX, serverPosY, serverPosZ, stepHeight, ticksExisted, timeUntilPortal, velocityChanged, width, worldObj, yOffset, ySize`

    - ### Fields inherited from interface net.minecraft.entity.monster.IMob

      `mobSelector`

  - ### Constructor Summary

    Constructors
    Constructor and Description
    `EntityDragon(World par1World)`

  - ### Method Summary

    Methods
    Modifier and Type | Method and Description
    --- | ---
    `boolean` | `attackEntityFrom(DamageSource par1DamageSource, float par2)` Called when the entity is attacked.
    `boolean` | `attackEntityFromPart(EntityDragonPart par1EntityDragonPart, DamageSource par2DamageSource, float par3)`
    `boolean` | `canBeCollidedWith()` Returns true if other Entities should be prevented from moving through this Entity.
    `World` | `func_82194_d()`
    `double[]` | `getMovementOffsets(int par1, float par2)` Returns a double[3] array with movement offsets, used to calculate trailing tail/neck positions.
    `Entity[]` | `getParts()` Return the Entity parts making up this Entity (currently only for dragons)
    `void` | `onLivingUpdate()` Called frequently so the entity can update its state every tick as required.

    - ### Methods inherited from class net.minecraft.entity.EntityLiving

      `allowLeashing, canAttackClass, canBeSteered, canPickUpLoot, clearLeashed, eatGrassBonus, faceEntity, func_110163_bv, func_130225_q, getAlwaysRenderNameTag, getAlwaysRenderNameTagForRender, getArmorItemForSlot, getArmorPosition, getAttackTarget, getCanSpawnHere, getCurrentItemOrArmor, getCustomNameTag, getEntityName, getEntitySenses, getHeldItem, getJumpHelper, getLastActiveItems, getLeashed, getLeashedToEntity, getLookHelper, getMaxSafePointTries, getMaxSpawnedInChunk, getMoveHelper, getNavigator, getRenderSizeModifier, getTalkInterval, getVerticalFaceSpeed, hasCustomNameTag, interactFirst, isNoDespawnRequired, onEntityUpdate, onSpawnWithEgg, onUpdate, playLivingSound, readEntityFromNBT, setAIMoveSpeed, setAlwaysRenderNameTag, setAttackTarget, setCanPickUpLoot, setCurrentItemOrArmor, setCustomNameTag, setEquipmentDropChance, setLeashedToEntity, setMoveForward, spawnExplosionParticle, writeEntityToNBT`

    - ### Methods inherited from class net.minecraft.entity.EntityLivingBase

      `addPotionEffect, attackEntityAsMob, canBePushed, canBreatheUnderwater, canEntityBeSeen, clearActivePotions, curePotionEffects, dismountEntity, func_110142_aN, func_142015_aE, func_94060_bK, getAbsorptionAmount, getActivePotionEffect, getActivePotionEffects, getAge, getAIMoveSpeed, getAITarget, getArrowCountInEntity, getAttributeMap, getCreatureAttribute, getEntityAttribute, getEyeHeight, getHealth, getItemIcon, getLastAttacker, getLastAttackerTime, getLook, getLookVec, getMaxHealth, getPosition, getRNG, getRotationYawHead, getSwingProgress, getTeam, getTotalArmorValue, handleHealthUpdate, heal, isChild, isClientWorld, isEntityAlive, isEntityUndead, isOnLadder, isOnSameTeam, isOnTeam, isPlayerSleeping, isPotionActive, isPotionActive, isPotionApplicable, knockBack, moveEntityWithHeading, onDeath, onItemPickup, performHurtAnimation, rayTrace, removePotionEffect, removePotionEffectClient, renderBrokenItemStack, setAbsorptionAmount, setArrowCountInEntity, setHealth, setJumping, setLastAttacker, setPositionAndRotation2, setPositionAndUpdate, setRevengeTarget, setRotationYawHead, setSprinting, shouldRiderFaceForward, swingItem, updateRidden`

    - ### Methods inherited from class net.minecraft.entity.Entity

      `addEntityCrashInfo, addToPlayerScore, addVelocity, applyEntityCollision, canAttackWithItem, canRenderOnFire, canRiderInteract, copyDataFrom, copyLocationAndAnglesFrom, doesEntityNotTriggerPressurePlate, dropItem, dropItemWithOffset, entityDropItem, equals, extinguish, getAir, getBlockExplosionResistance, getBoundingBox, getBrightness, getBrightnessForRender, getCollisionBorderSize, getCollisionBox, getDataWatcher, getDistance, getDistanceSq, getDistanceSqToEntity, getDistanceToEntity, getEntityData, getExtendedProperties, getMaxInPortalTime, getMountedYOffset, getPersistentID, getPickedResult, getPortalCooldown, getShadowSize, getTeleportDirection, getTranslatedEntityName, getUniqueID, getYOffset, handleLavaMovement, handleWaterMovement, hashCode, hitByEntity, isBurning, isCreatureType, isEating, isEntityEqual, isEntityInsideOpaqueBlock, isEntityInvulnerable, isImmuneToFire, isInRangeToRenderDist, isInRangeToRenderVec3D, isInsideOfMaterial, isInvisible, isInvisibleToPlayer, isInWater, isOffsetPositionInLiquid, isPushedByWater, isRiding, isSneaking, isSprinting, isWet, mountEntity, moveEntity, moveFlying, onChunkLoad, onCollideWithPlayer, onKillEntity, onStruckByLightning, playSound, readFromNBT, registerExtendedProperties, resetEntityId, setAir, setAngles, setDead, setEating, setFire, setInPortal, setInvisible, setInWeb, setLocationAndAngles, setPosition, setPositionAndRotation, setSneaking, setVelocity, setWorld, shouldDismountInWater, shouldExplodeBlock, shouldRenderInPass, shouldRiderSit, toString, travelToDimension, updateRiderPosition, writeMountToNBT, writeToNBT, writeToNBTOptional`

    - ### Methods inherited from class java.lang.Object

      `getClass, notify, notifyAll, wait, wait, wait`

    - ### Methods inherited from interface net.minecraft.entity.boss.IBossDisplayData

      `getEntityName, getHealth, getMaxHealth`

- - ### Field Detail

    - #### targetX

          public double targetX

    - #### targetY

          public double targetY

    - #### targetZ

          public double targetZ

    - #### ringBuffer

          public double[][] ringBuffer

      Ring buffer array for the last 64 Y-positions and yaw rotations. Used to calculate offsets for the animations.

    - #### ringBufferIndex

          public int ringBufferIndex

      Index into the ring buffer. Incremented once per tick and restarts at 0 once it reaches the end of the buffer.

    - #### dragonPartArray

          public EntityDragonPart[] dragonPartArray

      An array containing all body parts of this dragon

    - #### dragonPartHead

          public EntityDragonPart dragonPartHead

      The head bounding box of a dragon

    - #### dragonPartBody

          public EntityDragonPart dragonPartBody

      The body bounding box of a dragon

    - #### dragonPartTail1

          public EntityDragonPart dragonPartTail1

    - #### dragonPartTail2

          public EntityDragonPart dragonPartTail2

    - #### dragonPartTail3

          public EntityDragonPart dragonPartTail3

    - #### dragonPartWing1

          public EntityDragonPart dragonPartWing1

    - #### dragonPartWing2

          public EntityDragonPart dragonPartWing2

    - #### prevAnimTime

          public float prevAnimTime

      Animation time at previous tick.

    - #### animTime

          public float animTime

      Animation time, used to control the speed of the animation cycles (wings flapping, jaw opening, etc.)

    - #### forceNewTarget

          public boolean forceNewTarget

      Force selecting a new flight target at next tick if set to true.

    - #### slowed

          public boolean slowed

      Activated if the dragon is flying though obsidian, white stone or bedrock. Slows movement and animation speed.

    - #### deathTicks

          public int deathTicks

    - #### healingEnderCrystal

          public EntityEnderCrystal healingEnderCrystal

      The current endercrystal that is healing this dragon

  - ### Constructor Detail

    - #### EntityDragon

          public EntityDragon(World par1World)

  - ### Method Detail

    - #### getMovementOffsets

          public double[] getMovementOffsets(int par1,
                                    float par2)

      Returns a double[3] array with movement offsets, used to calculate trailing tail/neck positions. [0] = yaw offset, [1] = y offset, [2] = unused, always 0. Parameters: buffer index offset, partial ticks.

    - #### onLivingUpdate

          public void onLivingUpdate()

      Called frequently so the entity can update its state every tick as required. For example, zombies and skeletons use this to react to sunlight and start to burn.
      Overrides:
        `onLivingUpdate` in class `EntityLiving`

    - #### attackEntityFromPart

          public boolean attackEntityFromPart(EntityDragonPart par1EntityDragonPart,
                                     DamageSource par2DamageSource,
                                     float par3)

      Specified by:
        `attackEntityFromPart` in interface `IEntityMultiPart`

    - #### attackEntityFrom

          public boolean attackEntityFrom(DamageSource par1DamageSource,
                                 float par2)

      Called when the entity is attacked.
      Overrides:
        `attackEntityFrom` in class `EntityLivingBase`

    - #### getParts

          public Entity[] getParts()

      Return the Entity parts making up this Entity (currently only for dragons)
      Overrides:
        `getParts` in class `Entity`

    - #### canBeCollidedWith

          public boolean canBeCollidedWith()

      Returns true if other Entities should be prevented from moving through this Entity.
      Overrides:
        `canBeCollidedWith` in class `EntityLivingBase`

    - #### func_82194_d

          public World func_82194_d()

      Specified by:
        `func_82194_d` in interface `IEntityMultiPart`