Class AbstractArrow
java.lang.Object
net.neoforged.neoforge.attachment.AttachmentHolder
net.minecraft.world.entity.Entity
net.minecraft.world.entity.projectile.Projectile
net.minecraft.world.entity.projectile.AbstractArrow
- All Implemented Interfaces:
CommandSource,SyncedDataHolder,TraceableEntity,EntityAccess,Nameable,ScoreHolder,IAttachmentHolder,IEntityExtension,INBTSerializable<CompoundTag>
- Direct Known Subclasses:
Arrow,SpectralArrow,ThrownTrident
-
Nested Class Summary
Nested ClassesNested classes/interfaces inherited from class net.minecraft.world.entity.Entity
Entity.MoveFunction, Entity.MovementEmission, Entity.RemovalReasonNested classes/interfaces inherited from class net.neoforged.neoforge.attachment.AttachmentHolder
AttachmentHolder.AsField -
Field Summary
FieldsModifier and TypeFieldDescriptionprivate static final doubleprivate doubleprivate ItemStackprivate static final intprivate static final intprivate static final EntityDataAccessor<Byte> protected booleanprotected intprivate BlockStateprivate intprivate ItemStackprivate static final EntityDataAccessor<Byte> private it.unimi.dsi.fastutil.ints.IntOpenHashSetintprivate SoundEventFields inherited from class net.minecraft.world.entity.Entity
BASE_SAFE_FALL_DISTANCE, BASE_TICKS_REQUIRED_TO_FREEZE, blocksBuilding, BOARDING_COOLDOWN, boardingCooldown, CONTENTS_SLOT_INDEX, DATA_POSE, DATA_SHARED_FLAGS_ID, DEFAULT_BB_HEIGHT, DEFAULT_BB_WIDTH, DELTA_AFFECTED_BY_BLOCKS_BELOW_0_2, DELTA_AFFECTED_BY_BLOCKS_BELOW_0_5, DELTA_AFFECTED_BY_BLOCKS_BELOW_1_0, ENTITY_COUNTER, entityData, fallDistance, firstTick, FLAG_FALL_FLYING, FLAG_GLOWING, FLAG_ONFIRE, fluidHeight, flyDist, forgeFluidTypeHeight, FREEZE_HURT_FREQUENCY, hasImpulse, horizontalCollision, hurtMarked, ID_TAG, invulnerableTime, isInPowderSnow, mainSupportingBlockPos, MAX_ENTITY_TAG_COUNT, minorHorizontalCollision, moveDist, noCulling, noPhysics, PASSENGERS_TAG, portalProcess, random, stringUUID, stuckSpeedMultiplier, tickCount, TOTAL_AIR_SUPPLY, uuid, UUID_TAG, verticalCollision, verticalCollisionBelow, walkDist, walkDistO, wasEyeInWater, wasInPowderSnow, wasOnFire, wasTouchingWater, xo, xOld, xRotO, yo, yOld, yRotO, zo, zOldFields inherited from class net.neoforged.neoforge.attachment.AttachmentHolder
ATTACHMENTS_NBT_KEYFields inherited from interface net.minecraft.commands.CommandSource
NULLFields inherited from interface net.minecraft.world.scores.ScoreHolder
WILDCARD, WILDCARD_NAME -
Constructor Summary
ConstructorsModifierConstructorDescriptionprotectedAbstractArrow(EntityType<? extends AbstractArrow> entityType, double x, double y, double z, Level level, ItemStack pickupItemStack, ItemStack firedFromWeapon) protectedAbstractArrow(EntityType<? extends AbstractArrow> entityType, LivingEntity owner, Level level, ItemStack pickupItemStack, ItemStack firedFromWeapon) protectedAbstractArrow(EntityType<? extends AbstractArrow> entityType, Level level) -
Method Summary
Modifier and TypeMethodDescriptionvoidaddAdditionalSaveData(CompoundTag compound) protected booleancanHitEntity(Entity target) protected voidprotected voiddoKnockback(LivingEntity entity, DamageSource damageSource) protected voiddoPostHurtEffects(LivingEntity target) protected EntityHitResultfindHitEntity(Vec3 startVec, Vec3 endVec) Gets the EntityRayTraceResult representing the entity hitdoubleprotected doubleprotected SoundEventprotected abstract ItemStackprotected final SoundEventprotected Entity.MovementEmissionprotected ItemStackbytegetSlot(int slot) protected floatprotected voidhitBlockEnchantmentEffects(ServerLevel level, BlockHitResult hitResult, ItemStack stack) booleanbooleanbooleanbooleanvoidlerpMotion(double x, double y, double z) Updates the entity motion clientside, called by packets from the servervoidlerpTo(double x, double y, double z, float yRot, float xRot, int steps) voidprotected voidonHitBlock(BlockHitResult result) protected voidonHitEntity(EntityHitResult result) Called when the arrow hits an entityvoidplayerTouch(Player entity) Called by a player entity when they collide with an entityvoidreadAdditionalSaveData(CompoundTag compound) (abstract) Protected helper method to read subclass entity data from NBT.private voidvoidsetBaseDamage(double baseDamage) voidsetBaseDamageFromMob(float velocity) voidsetCritArrow(boolean critArrow) Whether the arrow has a stream of critical hit particles flying behind it.private voidsetFlag(int id, boolean value) voidsetNoPhysics(boolean noPhysics) Sets if this arrow can noClipvoidprotected voidsetPickupItemStack(ItemStack pickupItemStack) private voidsetPierceLevel(byte pierceLevel) voidsetSoundEvent(SoundEvent soundEvent) voidshoot(double x, double y, double z, float velocity, float inaccuracy) Similar to setArrowHeading, it's point the throwable entity to a x, y, z direction.booleanprivate booleanbooleanshouldRenderAtSqrDistance(double distance) Checks if the entity is in range to render.private voidvoidtick()protected voidprotected booleanMethods inherited from class net.minecraft.world.entity.projectile.Projectile
calculateHorizontalHurtKnockbackDirection, deflect, getAddEntityPacket, getEffectSource, getMovementToShoot, getOwner, getPickRadius, hitTargetOrDeflectSelf, lerpRotation, mayBreak, mayInteract, onDeflection, onHit, ownedBy, recreateFromPacket, restoreFrom, shootFromRotation, updateRotationMethods inherited from class net.minecraft.world.entity.Entity
absMoveTo, absMoveTo, absRotateTo, acceptsFailure, acceptsSuccess, addDeltaMovement, addPassenger, addTag, adjustSpawnLocation, animateHurt, applyGravity, awardKillScore, baseTick, blockPosition, broadcastToPlayer, calculateUpVector, calculateViewVector, canAddPassenger, canBeCollidedWith, canBeHitByProjectile, canChangeDimensions, canCollideWith, canControlVehicle, canFreeze, canRide, canSpawnSprintParticle, canSprint, canTrample, canUsePortal, captureDrops, captureDrops, causeFallDamage, changeDimension, checkBelowWorld, checkDespawn, checkFallDamage, checkInsideBlocks, checkSlowFallDistance, checkSupportingBlock, chunkPosition, clearFire, closerThan, closerThan, collideBoundingBox, copyPosition, couldAcceptPassenger, countPlayerPassengers, createCommandSourceStack, createHoverEvent, damageSources, dampensVibrations, deflection, discard, dismountsUnderwater, dismountTo, displayFireAnimation, distanceTo, distanceToSqr, distanceToSqr, distanceToSqr, doWaterSplashEffect, ejectPassengers, equals, extinguishFire, fillCrashReportCategory, fireImmune, fixupDimensions, fudgePositionAfterSizeChange, gameEvent, gameEvent, getAirSupply, getAttachments, getBbHeight, getBbWidth, getBlockExplosionResistance, getBlockJumpFactor, getBlockPosBelowThatAffectsMyMovement, getBlockSpeedFactor, getBlockStateOn, getBlockStateOnLegacy, getBlockX, getBlockY, getBlockZ, getBoundingBox, getBoundingBoxForCulling, getCapability, getCapability, getCollisionHorizontalEscapeVector, getCommandSenderWorld, getControlledVehicle, getControllingPassenger, getCustomName, getDefaultPassengerAttachmentPoint, getDeltaMovement, getDimensionChangingDelay, getDimensions, getDirection, getDismountLocationForPassenger, getDisplayName, getEncodeId, getEntityData, getEyeHeight, getEyeHeight, getEyeInFluidType, getEyePosition, getEyePosition, getEyeY, getFireImmuneTicks, getFirstPassenger, getFluidHeight, getFluidJumpThreshold, getFluidTypeHeight, getForward, getGravity, getHandHoldingItemAngle, getId, getInBlockState, getIndirectPassengers, getKnownMovement, getLeashOffset, getLeashOffset, getLightLevelDependentMagicValue, getLightProbePosition, getLookAngle, getMaxAirSupply, getMaxFallDistance, getMaxHeightFluidType, getMotionDirection, getName, getNearestViewDirection, getOnPos, getOnPos, getOnPosLegacy, getPassengerAttachmentPoint, getPassengerRidingPosition, getPassengers, getPassengersAndSelf, getPercentFrozen, getPermissionLevel, getPersistentData, getPickResult, getPistonPushReaction, getPortalCooldown, getPose, getPosition, getPositionCodec, getPreciseBodyRotation, getPrimaryStepSoundBlockPos, getRandom, getRandomX, getRandomY, getRandomZ, getRelativePortalPosition, getRemainingFireTicks, getRemovalReason, getRootVehicle, getRopeHoldPosition, getRotationVector, getScoreboardName, getSelfAndPassengers, getServer, getSharedFlag, getSoundSource, getStringUUID, getSwimHighSpeedSplashSound, getSwimSound, getSwimSplashSound, getTags, getTeam, getTeamColor, getTicksFrozen, getTicksRequiredToFreeze, getType, getTypeName, getUpVector, getUUID, getVehicle, getVehicleAttachmentPoint, getViewScale, getViewVector, getViewXRot, getViewYRot, getVisualRotationYInDegrees, getX, getX, getXRot, getY, getY, getYHeadRot, getYRot, getZ, getZ, handleDamageEvent, handleEntityEvent, handlePortal, hasControllingPassenger, hasCustomName, hasExactlyOnePlayerPassenger, hasGlowingTag, hashCode, hasIndirectPassenger, hasPassenger, hasPassenger, hasPermissions, hasPose, hurt, igniteForSeconds, igniteForTicks, ignoreExplosion, interact, interactAt, is, isAddedToLevel, isAlive, isAlliedTo, isAlliedTo, isAlwaysTicking, isColliding, isControlledByLocalInstance, isCrouching, isCurrentlyGlowing, isCustomNameVisible, isDescending, isDiscrete, isEffectiveAi, isEyeInFluid, isFlapping, isFree, isFreezing, isFullyFrozen, isHorizontalCollisionMinor, isIgnoringBlockTriggers, isInFluidType, isInFluidType, isInLava, isInLiquid, isInvisible, isInvisibleTo, isInvulnerable, isInvulnerableTo, isInWall, isInWater, isInWaterOrBubble, isInWaterOrRain, isInWaterRainOrBubble, isNoGravity, isOnFire, isOnPortalCooldown, isOnRails, isPassenger, isPassengerOfSameVehicle, isPushable, isPushedByFluid, isRemoved, isShiftKeyDown, isSilent, isSpectator, isSprinting, isSteppingCarefully, isSupportedBy, isSuppressingBounce, isSwimming, isUnderWater, isVehicle, isVisuallyCrawling, isVisuallySwimming, kill, killedEntity, lavaHurt, lerpHeadTo, lerpPositionAndRotationStep, lerpTargetX, lerpTargetXRot, lerpTargetY, lerpTargetYRot, lerpTargetZ, level, limitPistonMovement, load, lookAt, makeBoundingBox, makeStuckInBlock, markHurt, maxUpStep, maybeBackOffFromEdge, mirror, moveRelative, moveTo, moveTo, moveTo, moveTo, moveTo, moveTowardsClosestSpace, newDoubleList, newFloatList, nextStep, onAboveBubbleCol, onAddedToLevel, onBelowWorld, onClientRemoval, onExplosionHit, onFlap, onGround, onInsideBlock, onInsideBubbleColumn, onlyOpCanSetNbt, onPassengerTurned, onRemovedFromLevel, onSyncedDataUpdated, onSyncedDataUpdated, pick, placePortalTicket, playCombinationStepSounds, playEntityOnFireExtinguishedSound, playMuffledStepSound, playSound, playSound, playStepSound, playSwimSound, position, positionRider, positionRider, processFlappingMovement, processPortalCooldown, push, push, push, reapplyPosition, refreshDimensions, registryAccess, remove, removeAfterChangingDimensions, removePassenger, removeTag, removeVehicle, repositionEntityAfterLoad, resetFallDistance, revive, rideTick, rotate, save, saveAsPassenger, saveWithoutId, sendSystemMessage, setAirSupply, setAsInsidePortal, setBoundingBox, setCustomName, setCustomNameVisible, setData, setDeltaMovement, setDeltaMovement, setFluidTypeHeight, setGlowingTag, setId, setInvisible, setInvulnerable, setIsInPowderSnow, setLevel, setLevelCallback, setNoGravity, setOldPosAndRot, setOnGround, setOnGroundWithMovement, setPortalCooldown, setPortalCooldown, setPos, setPos, setPose, setPosRaw, setRemainingFireTicks, setRemoved, setRot, setSharedFlag, setSharedFlagOnFire, setShiftKeyDown, setSilent, setSprinting, setSwimming, setTicksFrozen, setUUID, setViewScale, setXRot, setYBodyRot, setYHeadRot, setYRot, shouldBeSaved, shouldBlockExplode, shouldInformAdmins, shouldRender, shouldShowName, showVehicleHealth, skipAttackInteraction, spawnAtLocation, spawnAtLocation, spawnAtLocation, spawnAtLocation, spawnSprintParticle, startRiding, startRiding, startSeenByPlayer, stopRiding, stopSeenByPlayer, syncPacketPositionCodec, teleportRelative, teleportTo, teleportTo, thunderHit, toString, touchingUnloadedChunk, trackingPosition, tryCheckInsideBlocks, turn, unRide, unsetRemoved, updateDynamicGameEventListener, updateFluidHeightAndDoFluidPushing, updateFluidHeightAndDoFluidPushing, updateInWaterStateAndDoFluidPushing, updateSwimming, waterSwimSoundMethods inherited from class net.neoforged.neoforge.attachment.AttachmentHolder
deserializeAttachments, getData, getExistingDataOrNull, hasAttachments, hasData, removeData, serializeAttachmentsMethods inherited from class java.lang.Object
clone, finalize, getClass, notify, notifyAll, wait, wait, waitMethods inherited from interface net.minecraft.commands.CommandSource
alwaysAcceptsMethods inherited from interface net.neoforged.neoforge.attachment.IAttachmentHolder
getData, getExistingData, getExistingData, getExistingDataOrNull, hasData, removeData, setDataMethods inherited from interface net.neoforged.neoforge.common.extensions.IEntityExtension
canBeRiddenUnderFluidType, canFluidExtinguish, canHydrateInFluidType, canRiderInteract, canStartSwimming, canSwimInFluidType, copyAttachmentsFrom, deserializeNBT, getClassification, getFluidFallDistanceModifier, getFluidMotionScale, getParts, getPickedResult, getSoundFromFluidType, hasCustomOutlineRendering, isEyeInFluidType, isInFluidType, isInFluidType, isInFluidType, isMultipartEntity, isPushedByFluid, sendPairingData, serializeNBT, shouldRiderSitMethods inherited from interface net.minecraft.world.scores.ScoreHolder
getFeedbackDisplayName
-
Field Details
-
ARROW_BASE_DAMAGE
private static final double ARROW_BASE_DAMAGE- See Also:
-
ID_FLAGS
-
PIERCE_LEVEL
-
FLAG_CRIT
private static final int FLAG_CRIT- See Also:
-
FLAG_NOPHYSICS
private static final int FLAG_NOPHYSICS- See Also:
-
lastState
-
inGround
protected boolean inGround -
inGroundTime
protected int inGroundTime -
pickup
-
shakeTime
public int shakeTime -
life
private int life -
baseDamage
private double baseDamage -
soundEvent
-
piercingIgnoreEntityIds
@Nullable private it.unimi.dsi.fastutil.ints.IntOpenHashSet piercingIgnoreEntityIds -
piercedAndKilledEntities
-
pickupItemStack
-
firedFromWeapon
-
-
Constructor Details
-
AbstractArrow
-
AbstractArrow
protected AbstractArrow(EntityType<? extends AbstractArrow> entityType, double x, double y, double z, Level level, ItemStack pickupItemStack, @Nullable ItemStack firedFromWeapon) -
AbstractArrow
protected AbstractArrow(EntityType<? extends AbstractArrow> entityType, LivingEntity owner, Level level, ItemStack pickupItemStack, @Nullable ItemStack firedFromWeapon)
-
-
Method Details
-
setSoundEvent
-
shouldRenderAtSqrDistance
public boolean shouldRenderAtSqrDistance(double distance) Checks if the entity is in range to render.- Overrides:
shouldRenderAtSqrDistancein classEntity
-
defineSynchedData
- Specified by:
defineSynchedDatain classEntity
-
shoot
public void shoot(double x, double y, double z, float velocity, float inaccuracy) Similar to setArrowHeading, it's point the throwable entity to a x, y, z direction.- Overrides:
shootin classProjectile
-
lerpTo
public void lerpTo(double x, double y, double z, float yRot, float xRot, int steps) -
lerpMotion
public void lerpMotion(double x, double y, double z) Updates the entity motion clientside, called by packets from the server- Overrides:
lerpMotionin classProjectile
-
tick
public void tick()- Overrides:
tickin classProjectile
-
getDefaultGravity
protected double getDefaultGravity()- Overrides:
getDefaultGravityin classEntity
-
shouldFall
private boolean shouldFall() -
startFalling
private void startFalling() -
move
-
tickDespawn
protected void tickDespawn() -
resetPiercedEntities
private void resetPiercedEntities() -
onHitEntity
Called when the arrow hits an entity- Overrides:
onHitEntityin classProjectile
-
doKnockback
-
onHitBlock
- Overrides:
onHitBlockin classProjectile
-
hitBlockEnchantmentEffects
protected void hitBlockEnchantmentEffects(ServerLevel level, BlockHitResult hitResult, ItemStack stack) -
getWeaponItem
- Overrides:
getWeaponItemin classEntity
-
getDefaultHitGroundSoundEvent
-
getHitGroundSoundEvent
-
doPostHurtEffects
-
findHitEntity
Gets the EntityRayTraceResult representing the entity hit -
canHitEntity
- Overrides:
canHitEntityin classProjectile
-
addAdditionalSaveData
- Overrides:
addAdditionalSaveDatain classProjectile
-
readAdditionalSaveData
(abstract) Protected helper method to read subclass entity data from NBT.- Overrides:
readAdditionalSaveDatain classProjectile
-
setOwner
- Overrides:
setOwnerin classProjectile
-
playerTouch
Called by a player entity when they collide with an entity- Overrides:
playerTouchin classEntity
-
tryPickup
-
getPickupItem
-
getDefaultPickupItem
-
getMovementEmission
- Overrides:
getMovementEmissionin classEntity
-
getPickupItemStackOrigin
-
setBaseDamage
public void setBaseDamage(double baseDamage) -
getBaseDamage
public double getBaseDamage() -
isAttackable
public boolean isAttackable()- Overrides:
isAttackablein classEntity
-
setCritArrow
public void setCritArrow(boolean critArrow) Whether the arrow has a stream of critical hit particles flying behind it. -
setPierceLevel
private void setPierceLevel(byte pierceLevel) -
setFlag
private void setFlag(int id, boolean value) -
setPickupItemStack
-
isCritArrow
public boolean isCritArrow() -
shotFromCrossbow
public boolean shotFromCrossbow() -
getPierceLevel
public byte getPierceLevel() -
setBaseDamageFromMob
public void setBaseDamageFromMob(float velocity) -
getWaterInertia
protected float getWaterInertia() -
setNoPhysics
public void setNoPhysics(boolean noPhysics) Sets if this arrow can noClip -
isNoPhysics
public boolean isNoPhysics() -
isPickable
public boolean isPickable()- Overrides:
isPickablein classProjectile
-
getSlot
-