Class MissileBaseEntity

java.lang.Object
net.minecraftforge.common.capabilities.CapabilityProvider<net.minecraft.world.entity.Entity>
net.minecraft.world.entity.Entity
net.minecraft.world.entity.projectile.Projectile
com.hbm_m.entity.missile.MissileBaseEntity
All Implemented Interfaces:
IRadarDetectable, net.minecraft.commands.CommandSource, net.minecraft.world.entity.TraceableEntity, net.minecraft.world.level.entity.EntityAccess, net.minecraft.world.Nameable, net.minecraftforge.common.capabilities.ICapabilityProvider, net.minecraftforge.common.capabilities.ICapabilityProviderImpl<net.minecraft.world.entity.Entity>, net.minecraftforge.common.capabilities.ICapabilitySerializable<net.minecraft.nbt.CompoundTag>, net.minecraftforge.common.extensions.IForgeEntity, net.minecraftforge.common.util.INBTSerializable<net.minecraft.nbt.CompoundTag>
Direct Known Subclasses:
MissileABMEntity, MissileShuttleEntity, MissileStealthEntity, MissileTestEntity, MissileTier0, MissileTier1, MissileTier2, MissileTier3, MissileTier4

public abstract class MissileBaseEntity extends net.minecraft.world.entity.projectile.Projectile implements IRadarDetectable
Базовая сущность баллистической ракеты. Управляет собственной баллистикой без гравитации и сопротивления среды, как в оригинале EntityMissileBaseNT: вертикальная подача с torsion-замедлением и горизонтальный разгон к точке цели. Дополнительно держит чанк‑тикет на текущем чанке, чтобы ракета не выгружалась на больших дистанциях полёта.
  • Nested Class Summary

    Nested classes/interfaces inherited from class net.minecraft.world.entity.Entity

    net.minecraft.world.entity.Entity.MoveFunction, net.minecraft.world.entity.Entity.MovementEmission, net.minecraft.world.entity.Entity.RemovalReason

    Nested classes/interfaces inherited from class net.minecraftforge.common.capabilities.CapabilityProvider

    net.minecraftforge.common.capabilities.CapabilityProvider.AsField<B extends net.minecraftforge.common.capabilities.ICapabilityProviderImpl<B>>

    Nested classes/interfaces inherited from interface api.hbm.entity.IRadarDetectable

    IRadarDetectable.RadarTargetType
  • Field Summary

    Fields
    Modifier and Type
    Field
    Description
    protected double
     
    protected double
     
    protected boolean
     
    protected int
     
    protected boolean
     
    protected int
     
    protected int
     
    protected int
     
    protected int
     
    protected double
     

    Fields inherited from class net.minecraft.world.entity.Entity

    BASE_TICKS_REQUIRED_TO_FREEZE, blocksBuilding, BOARDING_COOLDOWN, boardingCooldown, BREATHING_DISTANCE_BELOW_EYES, 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, isInsidePortal, mainSupportingBlockPos, MAX_ENTITY_TAG_COUNT, minorHorizontalCollision, moveDist, noCulling, noPhysics, PASSENGERS_TAG, portalEntrancePos, portalTime, 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, zOld

    Fields inherited from interface net.minecraft.commands.CommandSource

    NULL
  • Constructor Summary

    Constructors
    Modifier
    Constructor
    Description
    protected
    MissileBaseEntity(net.minecraft.world.entity.EntityType<? extends MissileBaseEntity> type, net.minecraft.world.level.Level level)
     
  • Method Summary

    Modifier and Type
    Method
    Description
    void
    addAdditionalSaveData(net.minecraft.nbt.CompoundTag tag)
     
    boolean
     
    protected boolean
    canHitEntity(net.minecraft.world.entity.Entity entity)
     
    protected void
     
    protected int
     
    protected void
     
    net.minecraft.network.protocol.Packet<net.minecraft.network.protocol.game.ClientGamePacketListener>
     
    protected float
     
    float
     
    protected List<net.minecraft.world.item.ItemStack>
     
    protected net.minecraft.world.item.ItemStack
     
    net.minecraft.core.Direction
     
    double
    Множитель смещения за тик (1.7.10 motionMult()).
     
    protected boolean
     
    boolean
    hurt(net.minecraft.world.damagesource.DamageSource source, float amount)
     
    void
    initLaunch(double x, double y, double z, int targetX, int targetZ)
    Инициализация полёта при старте с пусковой площадки.
    protected void
     
    void
    lerpTo(double x, double y, double z, float yRot, float xRot, int steps, boolean teleport)
     
    void
     
    protected void
    onHit(net.minecraft.world.phys.HitResult result)
     
    protected abstract void
    onMissileImpact(net.minecraft.core.BlockPos pos)
     
    void
     
    void
    readAdditionalSaveData(net.minecraft.nbt.CompoundTag tag)
     
    void
    recreateFromPacket(net.minecraft.network.protocol.game.ClientboundAddEntityPacket packet)
     
    protected void
     
    void
    setLaunchFacing(net.minecraft.core.Direction facing)
     
    boolean
    shouldRenderAtSqrDistance(double distance)
     
    protected void
     
    protected void
    spawnContrailWithOffset(double offsetX, double offsetY, double offsetZ)
     
    protected void
     
    void
    Полностью кастомный тик: мы не наследуем поведение от ThrowableProjectile, поэтому здесь нет ни гравитации, ни сопротивления воздуха.

    Methods inherited from class net.minecraft.world.entity.projectile.Projectile

    getEffectSource, getOwner, lerpMotion, lerpRotation, mayInteract, onHitBlock, onHitEntity, ownedBy, setOwner, shoot, shootFromRotation, updateRotation

    Methods inherited from class net.minecraft.world.entity.Entity

    absMoveTo, absMoveTo, acceptsFailure, acceptsSuccess, addDeltaMovement, addPassenger, addTag, animateHurt, awardKillScore, baseTick, blockPosition, broadcastToPlayer, calculateUpVector, calculateViewVector, canAddPassenger, canBeCollidedWith, canBeHitByProjectile, canChangeDimensions, canCollideWith, canEnterPose, canFreeze, canRide, canSpawnSprintParticle, canSprint, canTrample, canUpdate, canUpdate, captureDrops, captureDrops, causeFallDamage, changeDimension, changeDimension, checkBelowWorld, checkDespawn, checkFallDamage, checkInsideBlocks, checkSlowFallDistance, checkSupportingBlock, chunkPosition, clearFire, closerThan, closerThan, collideBoundingBox, copyPosition, couldAcceptPassenger, createCommandSourceStack, createHoverEvent, damageSources, dampensVibrations, discard, dismountsUnderwater, dismountTo, displayFireAnimation, distanceTo, distanceToSqr, distanceToSqr, distanceToSqr, doEnchantDamageEffects, doWaterSplashEffect, ejectPassengers, equals, extinguishFire, fillCrashReportCategory, findDimensionEntryPoint, fireImmune, fixupDimensions, gameEvent, gameEvent, getAirSupply, getAllSlots, getArmorSlots, getBbHeight, getBbWidth, getBlockExplosionResistance, getBlockJumpFactor, getBlockPosBelowThatAffectsMyMovement, getBlockSpeedFactor, getBlockStateOn, getBlockStateOnLegacy, getBlockX, getBlockY, getBlockZ, getBoundingBox, getBoundingBoxForCulling, getBoundingBoxForPose, getCollisionHorizontalEscapeVector, getCommandSenderWorld, getControlledVehicle, getControllingPassenger, getCustomName, getDeltaMovement, getDimensionChangingDelay, getDimensions, getDimensionsForge, getDirection, getDismountLocationForPassenger, getDisplayName, getEncodeId, getEntityData, getExitPortal, getEyeHeight, getEyeHeight, getEyeHeight, getEyeHeightAccess, getEyeInFluidType, getEyePosition, getEyePosition, getEyeY, getFeetBlockState, getFireImmuneTicks, getFirstPassenger, getFluidHeight, getFluidJumpThreshold, getFluidTypeHeight, getForward, getHandHoldingItemAngle, getHandSlots, getId, getIndirectPassengers, getLeashOffset, getLeashOffset, getLightLevelDependentMagicValue, getLightProbePosition, getLookAngle, getMaxAirSupply, getMaxFallDistance, getMaxHeightFluidType, getMotionDirection, getMovementEmission, getMyRidingOffset, getName, getNameTagOffsetY, getOnPos, getOnPos, getOnPosLegacy, getPassengers, getPassengersAndSelf, getPassengersRidingOffset, getPercentFrozen, getPermissionLevel, getPersistentData, getPickRadius, getPickResult, getPistonPushReaction, getPortalCooldown, getPortalWaitTime, getPose, getPosition, getPositionCodec, getPrimaryStepSoundBlockPos, 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, getViewScale, getViewVector, getViewXRot, getViewYRot, getVisualRotationYInDegrees, getX, getX, getXRot, getY, getY, getYHeadRot, getYRot, getZ, getZ, handleDamageEvent, handleEntityEvent, handleInsidePortal, handleNetherPortal, hasControllingPassenger, hasCustomName, hasExactlyOnePlayerPassenger, hasGlowingTag, hashCode, hasIndirectPassenger, hasPassenger, hasPassenger, hasPermissions, hasPose, ignoreExplosion, interact, interactAt, is, isAddedToWorld, isAlive, isAlliedTo, isAlliedTo, isAlwaysTicking, isAttackable, isColliding, isControlledByLocalInstance, isCrouching, isCurrentlyGlowing, isCustomNameVisible, isDescending, isDiscrete, isEffectiveAi, isEyeInFluid, isFlapping, isFree, isFreezing, isFullyFrozen, isHorizontalCollisionMinor, isIgnoringBlockTriggers, isInFluidType, isInFluidType, isInLava, isInvisible, isInvisibleTo, isInvulnerable, isInvulnerableTo, isInWall, isInWater, isInWaterOrBubble, isInWaterOrRain, isInWaterRainOrBubble, isNoGravity, isOnFire, isOnPortalCooldown, isOnRails, isPassenger, isPassengerOfSameVehicle, isPickable, isPushable, isPushedByFluid, isRemoved, isShiftKeyDown, isSilent, isSpectator, isSprinting, isSteppingCarefully, isSupportedBy, isSuppressingBounce, isSwimming, isUnderWater, isVehicle, isVisuallyCrawling, isVisuallySwimming, kill, killedEntity, lavaHurt, lerpHeadTo, level, limitPistonMovement, load, lookAt, makeBoundingBox, makeStuckInBlock, markHurt, maxUpStep, maybeBackOffFromEdge, mirror, move, moveRelative, moveTo, moveTo, moveTo, moveTo, moveTowardsClosestSpace, newDoubleList, newFloatList, nextStep, onAboveBubbleCol, onBelowWorld, onClientRemoval, onFlap, onGround, onInsideBlock, onInsideBubbleColumn, onlyOpCanSetNbt, onPassengerTurned, onSyncedDataUpdated, onSyncedDataUpdated, pick, playCombinationStepSounds, playEntityOnFireExtinguishedSound, playerTouch, playMuffledStepSound, playSound, playSound, playStepSound, playSwimSound, position, positionRider, positionRider, processFlappingMovement, processPortalCooldown, push, push, reapplyPosition, refreshDimensions, remove, removeAfterChangingDimensions, removePassenger, removeTag, removeVehicle, repositionEntityAfterLoad, resetFallDistance, restoreFrom, revive, rideTick, rotate, save, saveAsPassenger, saveWithoutId, sendSystemMessage, setAirSupply, setBoundingBox, setCustomName, setCustomNameVisible, setDeltaMovement, setDeltaMovement, setFluidTypeHeight, setGlowingTag, setId, setInvisible, setInvulnerable, setIsInPowderSnow, setItemSlot, setLevel, setLevelCallback, setMaxUpStep, setNoGravity, setOldPosAndRot, setOnGround, setOnGroundWithKnownMovement, setPortalCooldown, setPortalCooldown, setPos, setPos, setPose, setPosRaw, setRemainingFireTicks, setRemoved, setRot, setSecondsOnFire, 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, teleportToWithTicket, thunderHit, toString, touchingUnloadedChunk, trackingPosition, tryCheckInsideBlocks, turn, unRide, unsetRemoved, updateDynamicGameEventListener, updateFluidHeightAndDoFluidPushing, updateFluidHeightAndDoFluidPushing, updateFluidHeightAndDoFluidPushing, updateInWaterStateAndDoFluidPushing, updateSwimming, waterSwimSound

    Methods inherited from class net.minecraftforge.common.capabilities.CapabilityProvider

    areCapsCompatible, areCapsCompatible, deserializeCaps, gatherCapabilities, gatherCapabilities, gatherCapabilities, getCapabilities, getCapability, invalidateCaps, reviveCaps, serializeCaps

    Methods inherited from class java.lang.Object

    clone, finalize, getClass, notify, notifyAll, wait, wait, wait

    Methods inherited from interface net.minecraft.commands.CommandSource

    alwaysAccepts

    Methods inherited from interface net.minecraftforge.common.capabilities.ICapabilityProvider

    getCapability, getCapability

    Methods inherited from interface net.minecraftforge.common.extensions.IForgeEntity

    canBeRiddenUnderFluidType, canFluidExtinguish, canHydrateInFluidType, canRiderInteract, canStartSwimming, canSwimInFluidType, deserializeNBT, getClassification, getEyeHeightForge, getFluidFallDistanceModifier, getFluidMotionScale, getParts, getPickedResult, getSoundFromFluidType, getStepHeight, hasCustomOutlineRendering, isEyeInFluidType, isInFluidType, isInFluidType, isInFluidType, isMultipartEntity, isPushedByFluid, serializeNBT, shouldRiderSit, shouldUpdateFluidWhileBoating
  • Field Details

    • startX

      protected int startX
    • startZ

      protected int startZ
    • targetX

      protected int targetX
    • targetZ

      protected int targetZ
    • velocity

      protected double velocity
    • decelY

      protected double decelY
    • accelXZ

      protected double accelXZ
    • isCluster

      protected boolean isCluster
    • health

      protected int health
    • exploded

      protected boolean exploded
  • Constructor Details

    • MissileBaseEntity

      protected MissileBaseEntity(net.minecraft.world.entity.EntityType<? extends MissileBaseEntity> type, net.minecraft.world.level.Level level)
  • Method Details

    • initLaunch

      public void initLaunch(double x, double y, double z, int targetX, int targetZ)
      Инициализация полёта при старте с пусковой площадки.
    • setLaunchFacing

      public void setLaunchFacing(net.minecraft.core.Direction facing)
    • getLaunchFacing

      public net.minecraft.core.Direction getLaunchFacing()
    • getMotionMultiplier

      public double getMotionMultiplier()
      Множитель смещения за тик (1.7.10 motionMult()).
    • getDebris

      protected List<net.minecraft.world.item.ItemStack> getDebris()
    • getDebrisRareDrop

      @Nullable protected net.minecraft.world.item.ItemStack getDebrisRareDrop()
    • debrisTierIndex

      protected int debrisTierIndex()
    • getTargetType

      public IRadarDetectable.RadarTargetType getTargetType()
      Specified by:
      getTargetType in interface IRadarDetectable
    • lerpTo

      public void lerpTo(double x, double y, double z, float yRot, float xRot, int steps, boolean teleport)
      Overrides:
      lerpTo in class net.minecraft.world.entity.Entity
    • recreateFromPacket

      public void recreateFromPacket(net.minecraft.network.protocol.game.ClientboundAddEntityPacket packet)
      Overrides:
      recreateFromPacket in class net.minecraft.world.entity.projectile.Projectile
    • tick

      public void tick()
      Полностью кастомный тик: мы не наследуем поведение от ThrowableProjectile, поэтому здесь нет ни гравитации, ни сопротивления воздуха.
      Overrides:
      tick in class net.minecraft.world.entity.projectile.Projectile
    • hasPropulsion

      protected boolean hasPropulsion()
    • getContrailScale

      protected float getContrailScale()
    • getContrailScaleForSync

      public float getContrailScaleForSync()
    • spawnContrail

      protected void spawnContrail()
    • spawnNozzleFlare

      protected void spawnNozzleFlare()
    • spawnContrailWithOffset

      protected void spawnContrailWithOffset(double offsetX, double offsetY, double offsetZ)
    • onHit

      protected void onHit(net.minecraft.world.phys.HitResult result)
      Overrides:
      onHit in class net.minecraft.world.entity.projectile.Projectile
    • canHitEntity

      protected boolean canHitEntity(net.minecraft.world.entity.Entity entity)
      Overrides:
      canHitEntity in class net.minecraft.world.entity.projectile.Projectile
    • onMissileImpact

      protected abstract void onMissileImpact(net.minecraft.core.BlockPos pos)
    • canBeDetectedByRadar

      public boolean canBeDetectedByRadar()
    • defineSynchedData

      protected void defineSynchedData()
      Specified by:
      defineSynchedData in class net.minecraft.world.entity.Entity
    • addAdditionalSaveData

      public void addAdditionalSaveData(net.minecraft.nbt.CompoundTag tag)
      Overrides:
      addAdditionalSaveData in class net.minecraft.world.entity.projectile.Projectile
    • readAdditionalSaveData

      public void readAdditionalSaveData(net.minecraft.nbt.CompoundTag tag)
      Overrides:
      readAdditionalSaveData in class net.minecraft.world.entity.projectile.Projectile
    • hurt

      public boolean hurt(net.minecraft.world.damagesource.DamageSource source, float amount)
      Overrides:
      hurt in class net.minecraft.world.entity.Entity
    • killMissile

      protected void killMissile()
    • cluster

      protected void cluster()
    • releaseChunkTicket

      protected void releaseChunkTicket()
    • onAddedToWorld

      public void onAddedToWorld()
      Specified by:
      onAddedToWorld in interface net.minecraftforge.common.extensions.IForgeEntity
      Overrides:
      onAddedToWorld in class net.minecraft.world.entity.Entity
    • onRemovedFromWorld

      public void onRemovedFromWorld()
      Specified by:
      onRemovedFromWorld in interface net.minecraftforge.common.extensions.IForgeEntity
      Overrides:
      onRemovedFromWorld in class net.minecraft.world.entity.Entity
    • shouldRenderAtSqrDistance

      public boolean shouldRenderAtSqrDistance(double distance)
      Overrides:
      shouldRenderAtSqrDistance in class net.minecraft.world.entity.Entity
    • getAddEntityPacket

      public net.minecraft.network.protocol.Packet<net.minecraft.network.protocol.game.ClientGamePacketListener> getAddEntityPacket()
      Overrides:
      getAddEntityPacket in class net.minecraft.world.entity.projectile.Projectile