Class EnderDragonEntity

All Implemented Interfaces:
Monster, CommandOutput, Nameable

public class EnderDragonEntity
extends MobEntity
implements Monster
  • Field Details

    • LOGGER

      private static final Logger LOGGER
    • PHASE_TYPE

      public static final TrackedData<Integer> PHASE_TYPE
    • CLOSE_PLAYER_PREDICATE

      private static final TargetPredicate CLOSE_PLAYER_PREDICATE
    • segmentCircularBuffer

      public final double[][] segmentCircularBuffer
      (yaw, y, ?)
    • latestSegment

      public int latestSegment
    • parts

      private final EnderDragonPart[] parts
    • partHead

      public final EnderDragonPart partHead
    • partNeck

      private final EnderDragonPart partNeck
    • partBody

      private final EnderDragonPart partBody
    • partTail1

      private final EnderDragonPart partTail1
    • partTail2

      private final EnderDragonPart partTail2
    • partTail3

      private final EnderDragonPart partTail3
    • partWingRight

      private final EnderDragonPart partWingRight
    • partWingLeft

      private final EnderDragonPart partWingLeft
    • prevWingPosition

      public float prevWingPosition
    • wingPosition

      public float wingPosition
    • slowedDownByBlock

      public boolean slowedDownByBlock
    • ticksSinceDeath

      public int ticksSinceDeath
    • field_20865

      public float field_20865
    • connectedCrystal

      @Nullable public EndCrystalEntity connectedCrystal
    • fight

      @Nullable private final EnderDragonFight fight
    • phaseManager

      private final PhaseManager phaseManager
    • ticksUntilNextGrowl

      private int ticksUntilNextGrowl
    • field_7029

      private int field_7029
    • pathNodes

      private final PathNode[] pathNodes
      The first 12 path nodes are used for end crystals; the others are not tied to them.
    • pathNodeConnections

      private final int[] pathNodeConnections
      An array of 24 bitflags, where node #i leads to #j if and only if (pathNodeConnections[i] & (1 << j)) != 0.
    • pathHeap

      private final PathMinHeap pathHeap
  • Constructor Details

  • Method Details

    • createEnderDragonAttributes

      public static DefaultAttributeContainer.Builder createEnderDragonAttributes()
    • initDataTracker

      protected void initDataTracker()
      Overrides:
      initDataTracker in class MobEntity
    • getSegmentProperties

      public double[] getSegmentProperties​(int segmentNumber, float tickDelta)
    • tickMovement

      public void tickMovement()
      Overrides:
      tickMovement in class MobEntity
    • movePart

      private void movePart​(EnderDragonPart enderDragonPart, double dx, double dy, double dz)
    • method_6820

      private float method_6820()
    • tickWithEndCrystals

      private void tickWithEndCrystals()
      Things to do every tick related to end crystals. The Ender Dragon: * Disconnects from its crystal if it is removed * If it is connected to a crystal, then heals every 10 ticks * With a 1 in 10 chance each tick, searches for the nearest crystal and connects to it if present
    • launchLivingEntities

      private void launchLivingEntities​(List<Entity> entities)
    • damageLivingEntities

      private void damageLivingEntities​(List<Entity> entities)
    • wrapYawChange

      private float wrapYawChange​(double yawDegrees)
    • destroyBlocks

      private boolean destroyBlocks​(Box box)
    • damagePart

      public boolean damagePart​(EnderDragonPart part, DamageSource source, float amount)
    • damage

      public boolean damage​(DamageSource source, float amount)
      Overrides:
      damage in class LivingEntity
    • parentDamage

      protected boolean parentDamage​(DamageSource source, float amount)
    • kill

      public void kill()
      Overrides:
      kill in class LivingEntity
    • updatePostDeath

      protected void updatePostDeath()
      Overrides:
      updatePostDeath in class LivingEntity
    • awardExperience

      private void awardExperience​(int amount)
    • getNearestPathNodeIndex

      public int getNearestPathNodeIndex()
    • getNearestPathNodeIndex

      public int getNearestPathNodeIndex​(double x, double y, double z)
    • findPath

      @Nullable public Path findPath​(int from, int to, @Nullable PathNode pathNode)
    • getPathOfAllPredecessors

      private Path getPathOfAllPredecessors​(PathNode unused, PathNode node)
    • writeCustomDataToTag

      public void writeCustomDataToTag​(CompoundTag tag)
      Overrides:
      writeCustomDataToTag in class MobEntity
    • readCustomDataFromTag

      public void readCustomDataFromTag​(CompoundTag tag)
      Overrides:
      readCustomDataFromTag in class MobEntity
    • checkDespawn

      public void checkDespawn()
      Overrides:
      checkDespawn in class MobEntity
    • getBodyParts

      public EnderDragonPart[] getBodyParts()
    • collides

      public boolean collides()
      Overrides:
      collides in class LivingEntity
    • getSoundCategory

      public SoundCategory getSoundCategory()
      Overrides:
      getSoundCategory in class Entity
    • getAmbientSound

      protected SoundEvent getAmbientSound()
      Overrides:
      getAmbientSound in class MobEntity
    • getHurtSound

      protected SoundEvent getHurtSound​(DamageSource source)
      Overrides:
      getHurtSound in class LivingEntity
    • getSoundVolume

      protected float getSoundVolume()
      Overrides:
      getSoundVolume in class LivingEntity
    • method_6823

      @Environment(CLIENT) public float method_6823​(int segmentOffset, double[] segment1, double[] segment2)
    • method_6834

      public Vec3d method_6834​(float tickDelta)
    • crystalDestroyed

      public void crystalDestroyed​(EndCrystalEntity crystal, BlockPos pos, DamageSource source)
    • onTrackedDataSet

      public void onTrackedDataSet​(TrackedData<?> data)
      Overrides:
      onTrackedDataSet in class LivingEntity
    • getPhaseManager

      public PhaseManager getPhaseManager()
    • getFight

      @Nullable public EnderDragonFight getFight()
    • addStatusEffect

      public boolean addStatusEffect​(StatusEffectInstance effect)
      Overrides:
      addStatusEffect in class LivingEntity
    • canStartRiding

      protected boolean canStartRiding​(Entity entity)
      Overrides:
      canStartRiding in class Entity
    • canUsePortals

      public boolean canUsePortals()
      Overrides:
      canUsePortals in class Entity