版本信息
你使用的系统:win10 2004 x64
你是用的JDK: 8u251
你使用的IDE:IntelliJ IDEA
你使用的IDE版本:2020.2
Forge版本: 31.2.36
Minecraft版本: 1.15.2
简述
我创建了一个实体是ProjectileItemEntity
的子类。我想让它能够被攻击(近战/远程)然后remove掉。(有一点像画和展示框的效果)。翻了翻HangingEntity
和PaintingEntity
,只找到了下面两个在被攻击时调用的方法,但是不知道是怎么让它能被攻击的。。。
来自HangingEntity.java
/**
* Called when a player attacks an entity. If this returns true the attack will not happen.
*/
public boolean hitByEntity(Entity entityIn) {
if (entityIn instanceof PlayerEntity) {
PlayerEntity playerentity = (PlayerEntity)entityIn;
return !this.world.isBlockModifiable(playerentity, this.hangingPosition) ? true : this.attackEntityFrom(DamageSource.causePlayerDamage(playerentity), 0.0F);
} else {
return false;
}
}
/**
* Called when the entity is attacked.
*/
public boolean attackEntityFrom(DamageSource source, float amount) {
if (this.isInvulnerableTo(source)) {
return false;
} else {
if (!this.removed && !this.world.isRemote) {
this.remove();
this.markVelocityChanged();
this.onBroken(source.getTrueSource());
}
return true;
}
}