Class Projectile
java.lang.Object
net.neoforged.neoforge.attachment.AttachmentHolder
net.minecraft.world.entity.Entity
net.minecraft.world.entity.projectile.Projectile
- All Implemented Interfaces:
DataComponentGetter,SyncedDataHolder,TraceableEntity,EntityAccess,UniquelyIdentifyable,Nameable,ScoreHolder,IAttachmentHolder,IEntityExtension
- Direct Known Subclasses:
AbstractArrow,AbstractHurtingProjectile,FireworkRocketEntity,FishingHook,LlamaSpit,ShulkerBullet,ThrowableProjectile
-
Nested Class Summary
Nested ClassesModifier and TypeClassDescriptionstatic interfaceProjectile.ProjectileFactory<T extends Projectile>Nested 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 Entityprivate static final booleanprivate static final booleanprivate booleanprivate Entityprivate booleanprivate UUIDFields 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, noPhysics, PASSENGERS_TAG, portalProcess, random, stringUUID, stuckSpeedMultiplier, tickCount, TOTAL_AIR_SUPPLY, uuid, UUID_TAG, verticalCollision, verticalCollisionBelow, wasEyeInWater, wasInPowderSnow, 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.world.scores.ScoreHolder
WILDCARD, WILDCARD_NAME -
Constructor Summary
ConstructorsModifierConstructorDescriptionprotectedProjectile(EntityType<? extends Projectile> p_37248_, Level p_37249_) -
Method Summary
Modifier and TypeMethodDescriptionprotected voidaddAdditionalSaveData(CompoundTag compound) voidapplyOnProjectileSpawned(ServerLevel level, ItemStack spawnedFrom) it.unimi.dsi.fastutil.doubles.DoubleDoubleImmutablePaircalculateHorizontalHurtKnockbackDirection(LivingEntity entity, DamageSource damageSource) protected booleancanHitEntity(Entity target) private booleanbooleandeflect(ProjectileDeflection deflection, Entity entity, Entity owner, boolean deflectedByPlayer) protected EntitygetAddEntityPacket(ServerEntity p_352459_) intgetMovementToShoot(double x, double y, double z, float velocity, float inaccuracy) getOwner()floatprotected ProjectileDeflectionhitTargetOrDeflectSelf(HitResult hitResult) booleanhurtServer(ServerLevel p_376191_, DamageSource p_376581_, float p_376638_) booleanprotected static floatlerpRotation(float currentRotation, float targetRotation) booleanmayBreak(ServerLevel level) booleanmayInteract(ServerLevel p_376318_, BlockPos p_150168_) voidonAboveBubbleColumn(boolean p_400117_, BlockPos p_400267_) protected voidonDeflection(Entity entity, boolean deflectedByPlayer) protected voidCalled when this EntityFireball hits a block or entity.protected voidonHitBlock(BlockHitResult result) protected voidonHitEntity(EntityHitResult result) Called when the arrow hits an entityvoidonInsideBubbleColumn(boolean p_399932_) protected voidonItemBreak(Item item) protected booleanprotected voidreadAdditionalSaveData(CompoundTag compound) (abstract) Protected helper method to read subclass entity data from NBT.voidrecreateFromPacket(ClientboundAddEntityPacket p_150170_) voidrestoreFrom(Entity p_305838_) Prepares this entity in new dimension by copying NBT data from entity in old dimensionvoidprotected voidsetOwnerThroughUUID(UUID uuid) 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.voidshootFromRotation(Entity shooter, float x, float y, float z, float velocity, float inaccuracy) protected booleanstatic <T extends Projectile>
TspawnProjectile(T projectile, ServerLevel level, ItemStack spawnedFrom) static <T extends Projectile>
TspawnProjectile(T projectile, ServerLevel level, ItemStack stack, Consumer<T> adapter) static <T extends Projectile>
TspawnProjectileFromRotation(Projectile.ProjectileFactory<T> factory, ServerLevel level, ItemStack spawnedFrom, LivingEntity owner, float z, float velocity, float innaccuracy) static <T extends Projectile>
TspawnProjectileUsingShoot(Projectile.ProjectileFactory<T> factory, ServerLevel level, ItemStack spawnedFrom, LivingEntity owner, double x, double y, double z, float velocity, float inaccuracy) static <T extends Projectile>
TspawnProjectileUsingShoot(T projectile, ServerLevel level, ItemStack spawnedFrom, double x, double y, double z, float velocity, float inaccuracy) voidtick()protected voidMethods inherited from class net.minecraft.world.entity.Entity
absSnapRotationTo, absSnapTo, absSnapTo, addDeltaMovement, addPassenger, addTag, adjustSpawnLocation, animateHurt, applyComponentsFromItemStack, applyEffectsFromBlocks, applyEffectsFromBlocks, applyGravity, applyImplicitComponent, applyImplicitComponentIfPresent, applyImplicitComponents, awardKillScore, baseTick, blockPosition, broadcastToPlayer, calculateUpVector, calculateViewVector, canAddPassenger, canBeCollidedWith, canBeHitByProjectile, canCollideWith, canControlVehicle, canFreeze, canRide, canSimulateMovement, canSpawnSprintParticle, canSprint, canTeleport, canTrample, canUsePortal, captureDrops, captureDrops, castComponentValue, causeFallDamage, checkBelowWorld, checkDespawn, checkFallDamage, checkSlowFallDistance, checkSupportingBlock, chunkPosition, clearFire, clearFreeze, closerThan, closerThan, collideBoundingBox, considersEntityAsAlly, copyPosition, couldAcceptPassenger, countPlayerPassengers, createCommandSourceStackForNameResolution, createHoverEvent, damageSources, dampensVibrations, defineSynchedData, deflection, discard, dismountsUnderwater, dismountTo, displayFireAnimation, distanceTo, distanceToSqr, distanceToSqr, distanceToSqr, doCheckFallDamage, doWaterSplashEffect, ejectPassengers, equals, extinguishFire, fillCrashReportCategory, fireImmune, fixupDimensions, forceSetRotation, fudgePositionAfterSizeChange, gameEvent, gameEvent, get, getAirSupply, getAttachments, getBbHeight, getBbWidth, getBlockExplosionResistance, getBlockJumpFactor, getBlockPosBelowThatAffectsMyMovement, getBlockSpeedFactor, getBlockStateOn, getBlockStateOnLegacy, getBlockX, getBlockY, getBlockZ, getBoundingBox, getCapability, getCapability, getCollisionHorizontalEscapeVector, getCommandSenderWorld, getControlledVehicle, getControllingPassenger, getCustomName, getDefaultGravity, getDefaultPassengerAttachmentPoint, getDeltaMovement, getDimensions, getDirection, getDismountLocationForPassenger, getDisplayName, getEncodeId, getEntityData, getEyeHeight, getEyeHeight, getEyeInFluidType, getEyePosition, getEyePosition, getEyeY, getFireImmuneTicks, getFirstPassenger, getFluidHeight, getFluidJumpThreshold, getFluidTypeHeight, getForward, getGravity, getHandHoldingItemAngle, getId, getInBlockState, getIndirectPassengers, getInputVector, getInterpolation, getKnownMovement, getLeashOffset, getLeashOffset, getLightLevelDependentMagicValue, getLightProbePosition, getLookAngle, getLootTable, getMaxAirSupply, getMaxFallDistance, getMaxHeightFluidType, getMotionDirection, getMovementEmission, getName, getNearestViewDirection, getOnPos, getOnPos, getOnPosLegacy, getPassengerAttachmentPoint, getPassengerRidingPosition, getPassengers, getPassengersAndSelf, getPercentFrozen, getPersistentData, getPickResult, getPistonPushReaction, getPortalCooldown, getPose, getPosition, getPositionCodec, getPreciseBodyRotation, getPrimaryStepSoundBlockPos, getRandom, getRandomX, getRandomY, getRandomZ, getRelativePortalPosition, getRemainingFireTicks, getRemovalReason, getRootVehicle, getRopeHoldPosition, getRotationVector, getScoreboardName, getSelfAndPassengers, getServer, getSharedFlag, getSlot, getSoundSource, getStringUUID, getSwimHighSpeedSplashSound, getSwimSound, getSwimSplashSound, getTags, getTeam, getTeamColor, getTicksFrozen, getTicksRequiredToFreeze, getType, getTypeName, getUpVector, getUUID, getVehicle, getVehicleAttachmentPoint, getViewScale, getViewVector, getViewXRot, getViewYRot, getVisualRotationYInDegrees, getWeaponItem, getX, getX, getXRot, getXRot, getY, getY, getYHeadRot, getYRot, getYRot, getZ, getZ, handleDamageEvent, handleEntityEvent, handleOnAboveBubbleColumn, handleOnInsideBubbleColumn, handlePortal, hasControllingPassenger, hasCustomName, hasExactlyOnePlayerPassenger, hasGlowingTag, hashCode, hasIndirectPassenger, hasPassenger, hasPassenger, hasPose, hurt, hurtClient, hurtOrSimulate, igniteForSeconds, igniteForTicks, ignoreExplosion, interact, interactAt, is, isAddedToLevel, isAffectedByBlocks, isAlive, isAlliedTo, isAlliedTo, isAlwaysTicking, isAttackable, isClientAuthoritative, isColliding, isCrouching, isCurrentlyGlowing, isCustomNameVisible, isDescending, isDiscrete, isEffectiveAi, isEyeInFluid, isFlapping, isFree, isFreezing, isFullyFrozen, isHorizontalCollisionMinor, isIgnoringBlockTriggers, isInFluidType, isInFluidType, isInLava, isInLiquid, isInterpolating, isInvisible, isInvisibleTo, isInvulnerable, isInvulnerableToBase, isInWall, isInWater, isInWaterOrRain, isLocalClientAuthoritative, isLocalInstanceAuthoritative, isNoGravity, isOnFire, isOnPortalCooldown, isOnRails, isPassenger, isPassengerOfSameVehicle, isPushable, isPushedByFluid, isRemoved, isShiftKeyDown, isSilent, isSpectator, isSprinting, isSteppingCarefully, isSupportedBy, isSuppressingBounce, isSwimming, isUnderWater, isVehicle, isVisuallyCrawling, isVisuallySwimming, kill, killedEntity, lavaHurt, lavaIgnite, lerpHeadTo, lerpMotion, lerpPositionAndRotationStep, level, limitPistonMovement, load, lookAt, makeBoundingBox, makeBoundingBox, makeStuckInBlock, markHurt, maxUpStep, maybeBackOffFromEdge, mirror, move, moveOrInterpolateTo, moveRelative, moveTowardsClosestSpace, nextStep, oldPosition, onAddedToLevel, onBelowWorld, onClientRemoval, onExplosionHit, onFlap, onGround, onInsideBlock, onPassengerTurned, onRemoval, onRemovedFromLevel, onSyncedDataUpdated, onSyncedDataUpdated, pick, placePortalTicket, playCombinationStepSounds, playEntityOnFireExtinguishedSound, playerTouch, playMuffledStepSound, playSound, playSound, playStepSound, playSwimSound, position, positionRider, positionRider, processFlappingMovement, processPortalCooldown, propagateFallToPassengers, push, push, push, reapplyPosition, refreshDimensions, registryAccess, remove, removeAfterChangingDimensions, removeLatestMovementRecordingBatch, removePassenger, removeTag, removeVehicle, repositionEntityAfterLoad, resetFallDistance, revive, rideTick, rotate, save, saveAsPassenger, saveWithoutId, sendBubbleColumnParticles, setAirSupply, setAsInsidePortal, setBoundingBox, setComponent, setCustomName, setCustomNameVisible, setData, setDeltaMovement, setDeltaMovement, setFluidTypeHeight, setGlowingTag, setId, setInvisible, setInvulnerable, setIsInPowderSnow, setLevel, setLevelCallback, setNoGravity, setOldPos, setOldPosAndRot, setOldPosAndRot, setOldRot, setOnGround, setOnGroundWithMovement, 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, shouldPlayLavaHurtSound, shouldRender, shouldRenderAtSqrDistance, shouldShowName, showVehicleHealth, skipAttackInteraction, snapTo, snapTo, snapTo, snapTo, snapTo, spawnAtLocation, spawnAtLocation, spawnAtLocation, spawnAtLocation, spawnSprintParticle, startRiding, startRiding, startSeenByPlayer, stopRiding, stopSeenByPlayer, syncPacketPositionCodec, teleport, teleportRelative, teleportSetPosition, teleportTo, teleportTo, thunderHit, toString, touchingUnloadedChunk, trackingPosition, 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.core.component.DataComponentGetter
get, getOrDefault, getOrDefault, getTyped, has, hasMethods 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, getClassification, getFluidFallDistanceModifier, getFluidMotionScale, getParts, getSoundFromFluidType, hasCustomOutlineRendering, isEyeInFluidType, isInFluidType, isInFluidType, isInFluidType, isMultipartEntity, isPushedByFluid, sendPairingData, shouldRiderSitMethods inherited from interface net.minecraft.world.scores.ScoreHolder
getFeedbackDisplayName
-
Field Details
-
DEFAULT_LEFT_OWNER
private static final boolean DEFAULT_LEFT_OWNER- See Also:
-
DEFAULT_HAS_BEEN_SHOT
private static final boolean DEFAULT_HAS_BEEN_SHOT- See Also:
-
ownerUUID
-
cachedOwner
-
leftOwner
private boolean leftOwner -
hasBeenShot
private boolean hasBeenShot -
lastDeflectedBy
-
-
Constructor Details
-
Projectile
-
-
Method Details
-
setOwner
-
getOwner
- Specified by:
getOwnerin interfaceTraceableEntity
-
findOwner
-
getEffectSource
-
addAdditionalSaveData
- Specified by:
addAdditionalSaveDatain classEntity
-
ownedBy
-
readAdditionalSaveData
(abstract) Protected helper method to read subclass entity data from NBT.- Specified by:
readAdditionalSaveDatain classEntity
-
setOwnerThroughUUID
-
restoreFrom
Description copied from class:EntityPrepares this entity in new dimension by copying NBT data from entity in old dimension- Overrides:
restoreFromin classEntity
-
tick
public void tick() -
checkLeftOwner
private boolean checkLeftOwner() -
getMovementToShoot
-
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. -
shootFromRotation
public void shootFromRotation(Entity shooter, float x, float y, float z, float velocity, float inaccuracy) -
onAboveBubbleColumn
- Overrides:
onAboveBubbleColumnin classEntity
-
onInsideBubbleColumn
public void onInsideBubbleColumn(boolean p_399932_) - Overrides:
onInsideBubbleColumnin classEntity
-
spawnProjectileFromRotation
public static <T extends Projectile> T spawnProjectileFromRotation(Projectile.ProjectileFactory<T> factory, ServerLevel level, ItemStack spawnedFrom, LivingEntity owner, float z, float velocity, float innaccuracy) -
spawnProjectileUsingShoot
public static <T extends Projectile> T spawnProjectileUsingShoot(Projectile.ProjectileFactory<T> factory, ServerLevel level, ItemStack spawnedFrom, LivingEntity owner, double x, double y, double z, float velocity, float inaccuracy) -
spawnProjectileUsingShoot
public static <T extends Projectile> T spawnProjectileUsingShoot(T projectile, ServerLevel level, ItemStack spawnedFrom, double x, double y, double z, float velocity, float inaccuracy) -
spawnProjectile
public static <T extends Projectile> T spawnProjectile(T projectile, ServerLevel level, ItemStack spawnedFrom) -
spawnProjectile
public static <T extends Projectile> T spawnProjectile(T projectile, ServerLevel level, ItemStack stack, Consumer<T> adapter) -
applyOnProjectileSpawned
-
hitTargetOrDeflectSelf
-
shouldBounceOnWorldBorder
protected boolean shouldBounceOnWorldBorder() -
deflect
public boolean deflect(ProjectileDeflection deflection, @Nullable Entity entity, @Nullable Entity owner, boolean deflectedByPlayer) -
onDeflection
-
onItemBreak
-
onHit
Called when this EntityFireball hits a block or entity. -
onHitEntity
Called when the arrow hits an entity -
onHitBlock
-
canHitEntity
-
updateRotation
protected void updateRotation() -
lerpRotation
protected static float lerpRotation(float currentRotation, float targetRotation) -
getAddEntityPacket
- Overrides:
getAddEntityPacketin classEntity
-
recreateFromPacket
- Overrides:
recreateFromPacketin classEntity
-
mayInteract
- Overrides:
mayInteractin classEntity
-
mayBreak
-
isPickable
public boolean isPickable()- Overrides:
isPickablein classEntity
-
getPickRadius
public float getPickRadius()- Overrides:
getPickRadiusin classEntity
-
calculateHorizontalHurtKnockbackDirection
public it.unimi.dsi.fastutil.doubles.DoubleDoubleImmutablePair calculateHorizontalHurtKnockbackDirection(LivingEntity entity, DamageSource damageSource) -
getDimensionChangingDelay
public int getDimensionChangingDelay()- Overrides:
getDimensionChangingDelayin classEntity
-
hurtServer
- Specified by:
hurtServerin classEntity
-