Class ExplosiveProjectileEntity

java.lang.Object
net.minecraft.entity.Entity
net.minecraft.entity.projectile.ProjectileEntity
net.minecraft.entity.projectile.ExplosiveProjectileEntity
All Implemented Interfaces:
DataTracked, Ownable, ScoreHolder, CommandOutput, Nameable, EntityLike
Direct Known Subclasses:
AbstractFireballEntity, AbstractWindChargeEntity, DragonFireballEntity, WitherSkullEntity

public abstract class ExplosiveProjectileEntity extends ProjectileEntity
Mappings:
Namespace Name
named net/minecraft/entity/projectile/ExplosiveProjectileEntity
intermediary net/minecraft/class_1668
official cmd
  • Field Details

    • powerX

      public double powerX
      Mappings:
      Namespace Name Mixin selector
      named powerX Lnet/minecraft/entity/projectile/ExplosiveProjectileEntity;powerX:D
      intermediary field_7601 Lnet/minecraft/class_1668;field_7601:D
      official b Lcmd;b:D
    • powerY

      public double powerY
      Mappings:
      Namespace Name Mixin selector
      named powerY Lnet/minecraft/entity/projectile/ExplosiveProjectileEntity;powerY:D
      intermediary field_7600 Lnet/minecraft/class_1668;field_7600:D
      official c Lcmd;c:D
    • powerZ

      public double powerZ
      Mappings:
      Namespace Name Mixin selector
      named powerZ Lnet/minecraft/entity/projectile/ExplosiveProjectileEntity;powerZ:D
      intermediary field_7599 Lnet/minecraft/class_1668;field_7599:D
      official d Lcmd;d:D
  • Constructor Details

    • ExplosiveProjectileEntity

      protected ExplosiveProjectileEntity(EntityType<? extends ExplosiveProjectileEntity> type, World world)
      Mappings:
      Namespace Name Mixin selector
      named <init> Lnet/minecraft/entity/Entity;<init>(Lnet/minecraft/entity/EntityType;Lnet/minecraft/world/World;)V
      intermediary <init> Lnet/minecraft/class_1297;<init>(Lnet/minecraft/class_1299;Lnet/minecraft/class_1937;)V
      official <init> Lbru;<init>(Lbsa;Ldax;)V
    • ExplosiveProjectileEntity

      protected ExplosiveProjectileEntity(EntityType<? extends ExplosiveProjectileEntity> type, double x, double y, double z, World world)
      Mappings:
      Namespace Name Mixin selector
      named <init> Lnet/minecraft/entity/projectile/ExplosiveProjectileEntity;<init>(Lnet/minecraft/entity/EntityType;DDDLnet/minecraft/world/World;)V
      intermediary <init> Lnet/minecraft/class_1668;<init>(Lnet/minecraft/class_1299;DDDLnet/minecraft/class_1937;)V
      official <init> Lcmd;<init>(Lbsa;DDDLdax;)V
    • ExplosiveProjectileEntity

      public ExplosiveProjectileEntity(EntityType<? extends ExplosiveProjectileEntity> type, double x, double y, double z, double directionX, double directionY, double directionZ, World world)
      Mappings:
      Namespace Name Mixin selector
      named <init> Lnet/minecraft/entity/projectile/ExplosiveProjectileEntity;<init>(Lnet/minecraft/entity/EntityType;DDDDDDLnet/minecraft/world/World;)V
      intermediary <init> Lnet/minecraft/class_1668;<init>(Lnet/minecraft/class_1299;DDDDDDLnet/minecraft/class_1937;)V
      official <init> Lcmd;<init>(Lbsa;DDDDDDLdax;)V
    • ExplosiveProjectileEntity

      public ExplosiveProjectileEntity(EntityType<? extends ExplosiveProjectileEntity> type, LivingEntity owner, double directionX, double directionY, double directionZ, World world)
      Mappings:
      Namespace Name Mixin selector
      named <init> Lnet/minecraft/entity/projectile/ExplosiveProjectileEntity;<init>(Lnet/minecraft/entity/EntityType;Lnet/minecraft/entity/LivingEntity;DDDLnet/minecraft/world/World;)V
      intermediary <init> Lnet/minecraft/class_1668;<init>(Lnet/minecraft/class_1299;Lnet/minecraft/class_1309;DDDLnet/minecraft/class_1937;)V
      official <init> Lcmd;<init>(Lbsa;Lbso;DDDLdax;)V
  • Method Details

    • initDataTracker

      protected void initDataTracker(DataTracker.Builder builder)
      Initializes data tracker.
      Specified by:
      initDataTracker in class Entity
      API Note:
      Subclasses should override this and add to the builder any data that needs to be tracked.
      Mappings:
      Namespace Name Mixin selector
      named initDataTracker Lnet/minecraft/entity/Entity;initDataTracker(Lnet/minecraft/entity/data/DataTracker$Builder;)V
      intermediary method_5693 Lnet/minecraft/class_1297;method_5693(Lnet/minecraft/class_2945$class_9222;)V
      official a Lbru;a(Lajv$a;)V
    • shouldRender

      public boolean shouldRender(double distance)
      Overrides:
      shouldRender in class Entity
      Mappings:
      Namespace Name Mixin selector
      named shouldRender Lnet/minecraft/entity/Entity;shouldRender(D)Z
      intermediary method_5640 Lnet/minecraft/class_1297;method_5640(D)Z
      official a Lbru;a(D)Z
    • getRaycastShapeType

      protected RaycastContext.ShapeType getRaycastShapeType()
      Mappings:
      Namespace Name Mixin selector
      named getRaycastShapeType Lnet/minecraft/entity/projectile/ExplosiveProjectileEntity;getRaycastShapeType()Lnet/minecraft/world/RaycastContext$ShapeType;
      intermediary method_55053 Lnet/minecraft/class_1668;method_55053()Lnet/minecraft/class_3959$class_3960;
      official af_ Lcmd;af_()Ldag$a;
    • tick

      public void tick()
      Ticks this entity.
      Overrides:
      tick in class ProjectileEntity
      See Also:
      API Note:
      This can be overridden to add additional logics. super.tick(); should be called in those cases.
      Implementation Note:
      By default, this delegates all logics to Entity.baseTick().
      Mappings:
      Namespace Name Mixin selector
      named tick Lnet/minecraft/entity/Entity;tick()V
      intermediary method_5773 Lnet/minecraft/class_1297;method_5773()V
      official l Lbru;l()V
    • canHit

      protected boolean canHit(Entity entity)
      Overrides:
      canHit in class ProjectileEntity
      Mappings:
      Namespace Name Mixin selector
      named canHit Lnet/minecraft/entity/projectile/ProjectileEntity;canHit(Lnet/minecraft/entity/Entity;)Z
      intermediary method_26958 Lnet/minecraft/class_1676;method_26958(Lnet/minecraft/class_1297;)Z
      official b Lcmo;b(Lbru;)Z
    • isBurning

      protected boolean isBurning()
      Mappings:
      Namespace Name Mixin selector
      named isBurning Lnet/minecraft/entity/projectile/ExplosiveProjectileEntity;isBurning()Z
      intermediary method_7468 Lnet/minecraft/class_1668;method_7468()Z
      official u Lcmd;u()Z
    • getParticleType

      @Nullable protected @Nullable ParticleEffect getParticleType()
      Mappings:
      Namespace Name Mixin selector
      named getParticleType Lnet/minecraft/entity/projectile/ExplosiveProjectileEntity;getParticleType()Lnet/minecraft/particle/ParticleEffect;
      intermediary method_7467 Lnet/minecraft/class_1668;method_7467()Lnet/minecraft/class_2394;
      official v Lcmd;v()Lkw;
    • getDrag

      protected float getDrag()
      Mappings:
      Namespace Name Mixin selector
      named getDrag Lnet/minecraft/entity/projectile/ExplosiveProjectileEntity;getDrag()F
      intermediary method_7466 Lnet/minecraft/class_1668;method_7466()F
      official w Lcmd;w()F
    • getDragInWater

      protected float getDragInWater()
      Mappings:
      Namespace Name Mixin selector
      named getDragInWater Lnet/minecraft/entity/projectile/ExplosiveProjectileEntity;getDragInWater()F
      intermediary method_55583 Lnet/minecraft/class_1668;method_55583()F
      official x Lcmd;x()F
    • writeCustomDataToNbt

      public void writeCustomDataToNbt(NbtCompound nbt)
      Writes custom data to nbt. Subclasses have to implement this.

      NBT is a storage format; therefore, a data from NBT is loaded to an entity instance's fields, which are used for other operations instead of the NBT. The data is written back to NBT when saving the entity.

      Overrides:
      writeCustomDataToNbt in class ProjectileEntity
      See Also:
      Mappings:
      Namespace Name Mixin selector
      named writeCustomDataToNbt Lnet/minecraft/entity/Entity;writeCustomDataToNbt(Lnet/minecraft/nbt/NbtCompound;)V
      intermediary method_5652 Lnet/minecraft/class_1297;method_5652(Lnet/minecraft/class_2487;)V
      official b Lbru;b(Lud;)V
    • readCustomDataFromNbt

      public void readCustomDataFromNbt(NbtCompound nbt)
      Reads custom data from nbt. Subclasses have to implement this.

      NBT is a storage format; therefore, a data from NBT is loaded to an entity instance's fields, which are used for other operations instead of the NBT. The data is written back to NBT when saving the entity.

      nbt might not have all expected keys, or might have a key whose value does not meet the requirement (such as the type or the range). This method should fall back to a reasonable default value instead of throwing an exception.

      Overrides:
      readCustomDataFromNbt in class ProjectileEntity
      See Also:
      Mappings:
      Namespace Name Mixin selector
      named readCustomDataFromNbt Lnet/minecraft/entity/Entity;readCustomDataFromNbt(Lnet/minecraft/nbt/NbtCompound;)V
      intermediary method_5749 Lnet/minecraft/class_1297;method_5749(Lnet/minecraft/class_2487;)V
      official a Lbru;a(Lud;)V
    • canHit

      public boolean canHit()
      Returns whether the entity can be hit with a projectile or be targeted by the player crosshair.
      Overrides:
      canHit in class Entity
      Returns:
      whether the entity can be hit with a projectile or be targeted by the player crosshair
      Mappings:
      Namespace Name Mixin selector
      named canHit Lnet/minecraft/entity/Entity;canHit()Z
      intermediary method_5863 Lnet/minecraft/class_1297;method_5863()Z
      official bz Lbru;bz()Z
    • getTargetingMargin

      public float getTargetingMargin()
      Returns the margin around the entity's bounding box where the entity targeting is still successful.
      Overrides:
      getTargetingMargin in class Entity
      Returns:
      the margin around the entity's bounding box where the entity targeting is still successful
      API Note:
      ExplosiveProjectileEntity overrides this method to return 1.0f, which expands the ghast fireball's effective hitbox.
      Mappings:
      Namespace Name Mixin selector
      named getTargetingMargin Lnet/minecraft/entity/Entity;getTargetingMargin()F
      intermediary method_5871 Lnet/minecraft/class_1297;method_5871()F
      official bK Lbru;bK()F
    • damage

      public boolean damage(DamageSource source, float amount)
      Applies a damage to this entity. The exact implementation differs between subclasses.

      LivingEntity has health value, and damaging the entity decreases it. This also handles shields, extra damage to helmets for falling blocks, setting the attacker, playing hurt sound, etc.

      Some entities like

      invalid reference
      ItemEntity
      also have health value, which the overridden method decrements. There also exist several entities, like EndCrystalEntity, where any damage discards the entity (perhaps with an explosion).

      If this is overridden, it must check the result of Entity.isInvulnerableTo(net.minecraft.entity.damage.DamageSource) and return early.

      Overrides:
      damage in class Entity
      Returns:
      whether the entity was actually damaged
      See Also:
      Mappings:
      Namespace Name Mixin selector
      named damage Lnet/minecraft/entity/Entity;damage(Lnet/minecraft/entity/damage/DamageSource;F)Z
      intermediary method_5643 Lnet/minecraft/class_1297;method_5643(Lnet/minecraft/class_1282;F)Z
      official a Lbru;a(Lbqn;F)Z
    • getBrightnessAtEyes

      public float getBrightnessAtEyes()
      Overrides:
      getBrightnessAtEyes in class Entity
      Mappings:
      Namespace Name Mixin selector
      named getBrightnessAtEyes Lnet/minecraft/entity/Entity;getBrightnessAtEyes()F
      intermediary method_5718 Lnet/minecraft/class_1297;method_5718()F
      official bt Lbru;bt()F
    • createSpawnPacket

      public Packet<ClientPlayPacketListener> createSpawnPacket()
      Returns a packet to notify the clients of the entity's spawning.
      Overrides:
      createSpawnPacket in class ProjectileEntity
      Returns:
      a packet to notify the clients of the entity's spawning
      API Note:
      Subclasses should return new EntitySpawnS2CPacket(this), unless they use a custom spawning packet.
      Mappings:
      Namespace Name Mixin selector
      named createSpawnPacket Lnet/minecraft/entity/Entity;createSpawnPacket()Lnet/minecraft/network/packet/Packet;
      intermediary method_18002 Lnet/minecraft/class_1297;method_18002()Lnet/minecraft/class_2596;
      official dl Lbru;dl()Lze;
    • onSpawnPacket

      public void onSpawnPacket(EntitySpawnS2CPacket packet)
      Called on the client when the entity receives a spawn packet.

      This sets the entity's position, angles, ID, and UUID. Subclasses can override this to initialize additional fields.

      Overrides:
      onSpawnPacket in class ProjectileEntity
      Mappings:
      Namespace Name Mixin selector
      named onSpawnPacket Lnet/minecraft/entity/Entity;onSpawnPacket(Lnet/minecraft/network/packet/s2c/play/EntitySpawnS2CPacket;)V
      intermediary method_31471 Lnet/minecraft/class_1297;method_31471(Lnet/minecraft/class_2604;)V
      official a Lbru;a(Labr;)V
    • setPower

      private void setPower(double velocityX, double velocityY, double velocityZ)
      Mappings:
      Namespace Name Mixin selector
      named setPower Lnet/minecraft/entity/projectile/ExplosiveProjectileEntity;setPower(DDD)V
      intermediary method_58184 Lnet/minecraft/class_1668;method_58184(DDD)V
      official q Lcmd;q(DDD)V