public class EnderDragonEntity extends MobEntity implements Monster
Entity.PositionUpdaterambientSoundChance, armorDropChances, experiencePoints, goalSelector, handDropChances, jumpControl, lookControl, moveControl, navigation, targetSelectoractiveItemStack, attackingPlayer, bodyTrackingIncrements, bodyYaw, brain, dead, deathTime, defaultMaxHealth, despawnCounter, field_6215, flyingSpeed, forwardSpeed, handSwinging, handSwingProgress, handSwingTicks, headTrackingIncrements, headYaw, hurtTime, itemUseTimeLeft, jumping, knockbackVelocity, lastAttackedTicks, lastDamageTaken, lastHandSwingProgress, lastLimbDistance, limbAngle, limbDistance, LIVING_FLAGS, lookDirection, maxHurtTime, playerHitTimer, preferredHand, prevBodyYaw, prevHeadYaw, prevLookDirection, prevStepBobbingAmount, randomLargeSeed, randomSmallSeed, riptideTicks, roll, scoreAmount, serverHeadYaw, serverPitch, serverX, serverY, serverYaw, serverZ, sidewaysSpeed, SLEEPING_DIMENSIONS, stepBobbingAmount, stuckArrowTimer, stuckStingerTimer, upwardSpeedage, chunkX, chunkY, chunkZ, dataTracker, distanceTraveled, fallDistance, field_25599, firstUpdate, FLAGS, fluidHeight, glowing, horizontalCollision, horizontalSpeed, ignoreCameraFrustum, inanimate, inNetherPortal, lastNetherPortalPosition, lastRenderX, lastRenderY, lastRenderZ, movementMultiplier, netherPortalTime, noClip, onGround, pitch, POSE, prevHorizontalSpeed, prevPitch, prevX, prevY, prevYaw, prevZ, pushSpeedReduction, random, removed, ridingCooldown, stepHeight, submergedInWater, teleporting, timeUntilRegen, touchingWater, updateNeeded, uuid, uuidString, velocityDirty, velocityModified, verticalCollision, world, yawDUMMY| Constructor and Description |
|---|
EnderDragonEntity(EntityType<? extends EnderDragonEntity> type,
World world) |
| Modifier and Type | Method and Description |
|---|---|
boolean |
addStatusEffect(StatusEffectInstance effect) |
private void |
awardExperience(int amount) |
protected boolean |
canStartRiding(Entity entity) |
boolean |
canUsePortals() |
void |
checkDespawn() |
boolean |
collides() |
static DefaultAttributeContainer.Builder |
createEnderDragonAttributes() |
void |
crystalDestroyed(EndCrystalEntity crystal,
BlockPos pos,
DamageSource source) |
boolean |
damage(DamageSource source,
float amount) |
private void |
damageLivingEntities(List<Entity> entities) |
boolean |
damagePart(EnderDragonPart part,
DamageSource source,
float amount) |
private boolean |
destroyBlocks(Box box) |
Path |
findPath(int from,
int to,
PathNode pathNode) |
protected SoundEvent |
getAmbientSound() |
EnderDragonPart[] |
getBodyParts() |
EnderDragonFight |
getFight() |
protected SoundEvent |
getHurtSound(DamageSource source) |
int |
getNearestPathNodeIndex() |
int |
getNearestPathNodeIndex(double x,
double y,
double z) |
private Path |
getPathOfAllPredecessors(PathNode unused,
PathNode node) |
PhaseManager |
getPhaseManager() |
double[] |
getSegmentProperties(int segmentNumber,
float tickDelta) |
SoundCategory |
getSoundCategory() |
protected float |
getSoundVolume() |
protected void |
initDataTracker() |
void |
kill() |
private void |
launchLivingEntities(List<Entity> entities) |
private float |
method_6820() |
float |
method_6823(int segmentOffset,
double[] segment1,
double[] segment2) |
Vec3d |
method_6834(float tickDelta) |
private void |
movePart(EnderDragonPart enderDragonPart,
double dx,
double dy,
double dz) |
void |
onTrackedDataSet(TrackedData<?> data) |
protected boolean |
parentDamage(DamageSource source,
float amount) |
void |
readCustomDataFromTag(CompoundTag tag) |
void |
tickMovement() |
private void |
tickWithEndCrystals()
Things to do every tick related to end crystals.
|
protected void |
updatePostDeath() |
private float |
wrapYawChange(double yawDegrees) |
void |
writeCustomDataToTag(CompoundTag tag) |
attachLeash, baseTick, canBeControlledByRider, canBeLeashedBy, canEquip, canEquipmentSlotContain, canGather, canImmediatelyDespawn, canMobSpawn, canMoveVoluntarily, cannotDespawn, canPickupItem, canPickUpLoot, canSpawn, canSpawn, canTarget, canTarget, canUseRangedWeapon, createBodyControl, createMobAttributes, createNavigation, detachLeash, dropEquipment, dropLoot, equip, equipLootStack, equipStack, getArmorItems, getBodyYawSpeed, getCurrentExperience, getDropChance, getEquipmentForSlot, getEquippedStack, getHoldingEntity, getItemsHand, getJumpControl, getLimitPerChunk, getLookControl, getLookPitchSpeed, getLookYawSpeed, getLootContextBuilder, getLootTable, getLootTableId, getMainArm, getMinAmbientSoundDelay, getMoveControl, getNavigation, getPathfindingPenalty, getPositionTarget, getPositionTargetRange, getPreferredEquipmentSlot, getSafeFallDistance, getTarget, getVisibilityCache, handleStatus, hasPositionTarget, initEquipment, initGoals, initialize, interact, interactMob, isAffectedByDaylight, isAiDisabled, isAttacking, isDisallowedInPeaceful, isInWalkTargetRange, isInWalkTargetRange, isLeashed, isLeftHanded, isLogicalSideForUpdatingMovement, isPersistent, lookAtEntity, loot, method_29243, method_29244, method_30076, method_30758, method_30759, mobTick, movesIndependently, onEatingGrass, onPlayerSpawnedChild, playAmbientSound, playHurtSound, playSpawnEffects, prefersNewDamageableItem, prefersNewEquipment, sendAiDebugData, setAiDisabled, setAttacking, setBaby, setCanPickUpLoot, setEquipmentDropChance, setForwardSpeed, setHoldingEntityId, setLeftHanded, setMovementSpeed, setPathfindingPenalty, setPersistent, setPositionTarget, setSidewaysSpeed, setTarget, setUpwardSpeed, spawnsTooManyForEachTry, startRiding, swimUpward, tick, tickNewAi, tryAttack, tryEquip, turnHead, updateDropChances, updateEnchantments, updateGoalControls, updateLeashaddSoulSpeedBoostIfNeeded, animateDamage, applyArmorToDamage, applyDamage, applyEnchantmentsToDamage, applyMovementEffects, applyStatusEffect, attackLivingEntity, canBeRiddenInWater, canBreatheInWater, canDropLootAndXp, canHaveStatusEffect, canSee, canWalkOnFluid, clearActiveItem, clearPotionSwirls, clearSleepingPosition, clearStatusEffects, computeFallDamage, consumeItem, containsOnlyAmbientEffects, createBrainProfile, createLivingAttributes, createSpawnPacket, damageArmor, damageShield, deserializeBrain, destroy, displaySoulSpeedEffects, drop, dropInventory, dropXp, eatFood, endCombat, enterCombat, fall, getAbsorptionAmount, getActiveEyeHeight, getActiveHand, getActiveItem, getActiveStatusEffects, getArmor, getArmorVisibility, getArrowType, getAttackDistanceScalingFactor, getAttacker, getAttacking, getAttributeBaseValue, getAttributeInstance, getAttributes, getAttributeValue, getBaseMovementSpeedMultiplier, getBlockState, getBoundingBox, getBrain, getClimbingPos, getDamageTracker, getDeathSound, getDespawnCounter, getDimensions, getDrinkSound, getEatSound, getEyeHeight, getFallSound, getGroup, getHandSwingProgress, getHeadYaw, getHealth, getItemUseTime, getItemUseTimeLeft, getJumpVelocity, getLastAttackedTime, getLastAttackTime, getLeaningPitch, getMainHandStack, getMaxHealth, getMovementSpeed, getNextAirOnLand, getNextAirUnderwater, getOffHandStack, getPoses, getPrimeAdversary, getRandom, getRecentDamageSource, getRoll, getScaleFactor, getSleepingDirection, getSleepingPosition, getSoundPitch, getStackInHand, getStatusEffect, getStatusEffects, getStingerCount, getStuckArrowCount, getVelocityMultiplier, getVisibilityBoundingBox, getYaw, handleFallDamage, hasStackEquipped, hasStatusEffect, heal, hurtByWater, isAffectedBySplashPotions, isAlive, isBaby, isBlocking, isClimbing, isDead, isFallFlying, isHolding, isHolding, isHoldingOntoLadder, isImmobile, isInsideWall, isInSwimmingPose, isMobOrPlayer, isOnSoulSpeedBlock, isPushable, isSleeping, isTarget, isUndead, isUsingItem, isUsingRiptide, jump, knockback, knockDownwards, lookAt, markEffectsDirty, method_26317, method_26318, method_29242, method_29499, method_29500, method_29920, method_30633, method_31079, onAttacking, onDeath, onEquipStack, onKilledBy, onStatusEffectApplied, onStatusEffectRemoved, onStatusEffectUpgraded, playBlockFallSound, pushAway, pushAwayFrom, removeSoulSpeedBoost, removeStatusEffect, removeStatusEffectInternal, scheduleVelocityUpdate, sendEquipmentBreakStatus, sendPickup, sendToolBreakStatus, setAbsorptionAmount, setAttacker, setAttacking, setCurrentHand, setDespawnCounter, setHeadYaw, setHealth, setJumping, setLivingFlag, setNearbySongPlaying, setOnGround, setRiptideTicks, setSleepingPosition, setSprinting, setStackInHand, setStingerCount, setStuckArrowCount, setYaw, shouldAlwaysDropXp, shouldDisplaySoulSpeedEffects, shouldDropLoot, shouldRenderName, sleep, spawnConsumptionEffects, stopRiding, stopUsingItem, swingHand, swingHand, takeKnockback, takeShieldHit, teleport, tickCramming, tickHandSwing, tickRiding, tickRiptide, tickStatusEffects, travel, updatePotionVisibility, updateTrackedHeadRotation, updateTrackedPositionAndAngles, wakeUpaddPassenger, addScoreboardTag, addVelocity, adjustMovementForCollisions, adjustMovementForCollisions, adjustMovementForPiston, adjustMovementForSneaking, adjustSingleAxisMovementForCollisions, afterSpawn, applyMirror, applyRotation, bypassesLandingEffects, bypassesSteppingEffects, calculateBoundsForPose, calculateDimensions, calculateNextStepSoundDistance, canAddPassenger, canAvoidTraps, canBeSpectated, canClimb, canExplosionDestroyBlock, canFly, changeLookDirection, checkBlockCollision, collidesWith, copyFrom, copyPositionAndRotation, dealDamage, detach, distanceTo, doesNotCollide, doesRenderOnFire, dropItem, dropItem, dropStack, dropStack, entityDataRequiresOperator, equals, extinguish, fromTag, getAir, getBlockPos, getBodyY, getBoundingBox, getBrightnessAtEyes, getBurningDuration, getCameraPosVec, getCommandSource, getCustomName, getDataTracker, getDefaultName, getDefaultNetherPortalCooldown, getDisplayName, getEffectiveExplosionResistance, getEntityId, getEntityName, getEntityWorld, getEyeHeight, getEyeY, getFireTicks, getFlag, getFluidHeight, getHeight, getHeightOffset, getHighSpeedSplashSound, getHorizontalFacing, getHoverEvent, getItemsEquipped, getJumpVelocityMultiplier, getLandingBlockState, getLandingPos, getMaxAir, getMaxNetherPortalTime, getMountedHeightOffset, getMovementDirection, getName, getOppositeRotationVector, getOppositeRotationVector, getParticleX, getParticleZ, getPassengerDismountOffset, getPassengerList, getPassengersDeep, getPermissionLevel, getPistonBehavior, getPitch, getPos, getPose, getPrimaryPassenger, getRandomBodyY, getRenderDistanceMultiplier, getRootVehicle, getRotationClient, getRotationVec, getRotationVecClient, getRotationVector, getRotationVector, getSavedEntityId, getScoreboardTags, getScoreboardTeam, getServer, getSplashSound, getStandingEyeHeight, getSwimSound, getTargetingMargin, getTeamColorValue, getTeleportTarget, getTrackedPosition, getType, getUuid, getUuidAsString, getVehicle, getVelocity, getVelocityAffectingPos, getWidth, getX, getY, getZ, handleAttack, hasCustomName, hashCode, hasNetherPortalCooldown, hasNoGravity, hasPassenger, hasPassengerDeep, hasPassengers, hasPassengerType, hasPermissionLevel, hasPlayerRider, hasVehicle, hasWings, interactAt, isAttackable, isChunkPosUpdateRequested, isCollidable, isConnectedThroughVehicle, isCustomNameVisible, isDescending, isFireImmune, isGlowing, isImmuneToExplosion, isInLava, isInRange, isInsideWaterOrBubbleColumn, isInSneakingPose, isInvisible, isInvisibleTo, isInvulnerable, isInvulnerableTo, isLiving, isOnFire, isOnGround, isPartOf, isSilent, isSneaking, isSneaky, isSpectator, isSprinting, isSubmergedIn, isSubmergedInWater, isSwimming, isTeammate, isTeamPlayer, isTouchingWater, isTouchingWaterOrRain, isWet, method_29239, method_29241, method_29919, method_30330, method_30632, method_30634, method_30950, method_30951, method_31166, move, moveToBoundingBoxCenter, moveToWorld, offsetX, offsetZ, onBlockCollision, onBubbleColumnCollision, onBubbleColumnSurfaceCollision, onKilledOther, onPassengerLookAround, onPlayerCollision, onStartedTrackingBy, onStoppedTrackingBy, onStruckByLightning, onSwimmingStart, playFlySound, playSound, playStepSound, playSwimSound, populateCrashReport, pushOutOfBlocks, raycast, refreshPosition, refreshPositionAfterTeleport, refreshPositionAfterTeleport, refreshPositionAndAngles, refreshPositionAndAngles, remove, removeAllPassengers, removePassenger, removeScoreboardTag, requestTeleport, resetNetherPortalCooldown, resetPosition, saveSelfToTag, saveToTag, sendSystemMessage, setAir, setBoundingBox, setCustomName, setCustomNameVisible, setEntityId, setFireTicks, setFlag, setGlowing, setInNetherPortal, setInvisible, setInvulnerable, setNoGravity, setOnFireFor, setOnFireFromLava, setPos, setPose, setRenderDistanceMultiplier, setRotation, setSilent, setSneaking, setSwimming, setUuid, setVelocity, setVelocity, setVelocityClient, setWorld, shouldBroadcastConsoleToOps, shouldLeaveSwimmingPose, shouldReceiveFeedback, shouldRender, shouldRender, shouldSetPositionOnLoad, shouldSpawnSprintingParticles, shouldTrackOutput, slowMovement, spawnSprintingParticles, squaredDistanceTo, squaredDistanceTo, squaredDistanceTo, squaredHorizontalLength, startRiding, streamPassengersRecursively, teleport, teleportRequested, tickNetherPortal, tickNetherPortalCooldown, toListTag, toListTag, toString, toTag, updateKilledAdvancementCriterion, updateMovementInFluid, updatePassengerForDismount, updatePassengerPosition, updatePosition, updatePositionAndAngles, updateSwimming, updateTrackedPosition, updateTrackedPosition, updateVelocity, updateWaterState, wouldPoseNotCollideprivate static final Logger LOGGER
public static final TrackedData<Integer> PHASE_TYPE
private static final TargetPredicate CLOSE_PLAYER_PREDICATE
public final double[][] segmentCircularBuffer
public int latestSegment
private final EnderDragonPart[] parts
public final EnderDragonPart partHead
private final EnderDragonPart partNeck
private final EnderDragonPart partBody
private final EnderDragonPart partTail1
private final EnderDragonPart partTail2
private final EnderDragonPart partTail3
private final EnderDragonPart partWingRight
private final EnderDragonPart partWingLeft
public float prevWingPosition
public float wingPosition
public boolean slowedDownByBlock
public int ticksSinceDeath
public float field_20865
@Nullable public EndCrystalEntity connectedCrystal
@Nullable private final EnderDragonFight fight
private final PhaseManager phaseManager
private int ticksUntilNextGrowl
private int field_7029
private final PathNode[] pathNodes
private final int[] pathNodeConnections
(pathNodeConnections[i] & (1 << j)) != 0.private final PathMinHeap pathHeap
public EnderDragonEntity(EntityType<? extends EnderDragonEntity> type, World world)
public static DefaultAttributeContainer.Builder createEnderDragonAttributes()
protected void initDataTracker()
initDataTracker in class MobEntitypublic double[] getSegmentProperties(int segmentNumber,
float tickDelta)
public void tickMovement()
tickMovement in class MobEntityprivate void movePart(EnderDragonPart enderDragonPart, double dx, double dy, double dz)
private float method_6820()
private void tickWithEndCrystals()
private float wrapYawChange(double yawDegrees)
private boolean destroyBlocks(Box box)
public boolean damagePart(EnderDragonPart part, DamageSource source, float amount)
public boolean damage(DamageSource source, float amount)
damage in class LivingEntityprotected boolean parentDamage(DamageSource source, float amount)
public void kill()
kill in class LivingEntityprotected void updatePostDeath()
updatePostDeath in class LivingEntityprivate void awardExperience(int amount)
public int getNearestPathNodeIndex()
public int getNearestPathNodeIndex(double x,
double y,
double z)
public void writeCustomDataToTag(CompoundTag tag)
writeCustomDataToTag in class MobEntitypublic void readCustomDataFromTag(CompoundTag tag)
readCustomDataFromTag in class MobEntitypublic void checkDespawn()
checkDespawn in class MobEntitypublic EnderDragonPart[] getBodyParts()
public boolean collides()
collides in class LivingEntitypublic SoundCategory getSoundCategory()
getSoundCategory in class Entityprotected SoundEvent getAmbientSound()
getAmbientSound in class MobEntityprotected SoundEvent getHurtSound(DamageSource source)
getHurtSound in class LivingEntityprotected float getSoundVolume()
getSoundVolume in class LivingEntity@Environment(value=CLIENT)
public float method_6823(int segmentOffset,
double[] segment1,
double[] segment2)
public Vec3d method_6834(float tickDelta)
public void crystalDestroyed(EndCrystalEntity crystal, BlockPos pos, DamageSource source)
public void onTrackedDataSet(TrackedData<?> data)
onTrackedDataSet in class LivingEntitypublic PhaseManager getPhaseManager()
@Nullable public EnderDragonFight getFight()
public boolean addStatusEffect(StatusEffectInstance effect)
addStatusEffect in class LivingEntityprotected boolean canStartRiding(Entity entity)
canStartRiding in class Entitypublic boolean canUsePortals()
canUsePortals in class Entity