minecraft-src/net/minecraft/world/entity/boss/EnderDragonPart.java
2025-09-18 12:27:44 +00:00

78 lines
2.2 KiB
Java

package net.minecraft.world.entity.boss;
import net.minecraft.network.protocol.Packet;
import net.minecraft.network.protocol.game.ClientGamePacketListener;
import net.minecraft.network.syncher.SynchedEntityData;
import net.minecraft.server.level.ServerEntity;
import net.minecraft.server.level.ServerLevel;
import net.minecraft.world.damagesource.DamageSource;
import net.minecraft.world.entity.Entity;
import net.minecraft.world.entity.EntityDimensions;
import net.minecraft.world.entity.Pose;
import net.minecraft.world.entity.boss.enderdragon.EnderDragon;
import net.minecraft.world.item.ItemStack;
import net.minecraft.world.level.storage.ValueInput;
import net.minecraft.world.level.storage.ValueOutput;
import org.jetbrains.annotations.Nullable;
public class EnderDragonPart extends Entity {
public final EnderDragon parentMob;
public final String name;
private final EntityDimensions size;
public EnderDragonPart(EnderDragon parentMob, String name, float width, float height) {
super(parentMob.getType(), parentMob.level());
this.size = EntityDimensions.scalable(width, height);
this.refreshDimensions();
this.parentMob = parentMob;
this.name = name;
}
@Override
protected void defineSynchedData(SynchedEntityData.Builder builder) {
}
@Override
protected void readAdditionalSaveData(ValueInput input) {
}
@Override
protected void addAdditionalSaveData(ValueOutput output) {
}
@Override
public boolean isPickable() {
return true;
}
@Nullable
@Override
public ItemStack getPickResult() {
return this.parentMob.getPickResult();
}
@Override
public final boolean hurtServer(ServerLevel level, DamageSource damageSource, float amount) {
return this.isInvulnerableToBase(damageSource) ? false : this.parentMob.hurt(level, this, damageSource, amount);
}
@Override
public boolean is(Entity entity) {
return this == entity || this.parentMob == entity;
}
@Override
public Packet<ClientGamePacketListener> getAddEntityPacket(ServerEntity entity) {
throw new UnsupportedOperationException();
}
@Override
public EntityDimensions getDimensions(Pose pose) {
return this.size;
}
@Override
public boolean shouldBeSaved() {
return false;
}
}