Mirror von
https://github.com/PaperMC/Paper.git
synchronisiert 2024-12-18 20:40:08 +01:00
Fixed Silverfish having a base damage of 0.
Dieser Commit ist enthalten in:
Ursprung
9177c205b4
Commit
1f4e671af9
128
src/main/java/net/minecraft/server/EntitySilverfish.java
Normale Datei
128
src/main/java/net/minecraft/server/EntitySilverfish.java
Normale Datei
@ -0,0 +1,128 @@
|
||||
package net.minecraft.server;
|
||||
|
||||
public class EntitySilverfish extends EntityMonster {
|
||||
|
||||
private int a;
|
||||
|
||||
public EntitySilverfish(World world) {
|
||||
super(world);
|
||||
this.texture = "/mob/silverfish.png";
|
||||
this.b(0.3F, 0.7F);
|
||||
this.aU = 0.6F;
|
||||
this.damage = 1; // CraftBukkit - 0 -> 1, temporary fix for Silverfish base damage.
|
||||
}
|
||||
|
||||
protected boolean e_() {
|
||||
return false;
|
||||
}
|
||||
|
||||
protected Entity findTarget() {
|
||||
double d0 = 8.0D;
|
||||
|
||||
return this.world.findNearbyPlayer(this, d0);
|
||||
}
|
||||
|
||||
protected String h() {
|
||||
return "mob.spider";
|
||||
}
|
||||
|
||||
protected String i() {
|
||||
return "mob.spider";
|
||||
}
|
||||
|
||||
protected String j() {
|
||||
return "mob.spiderdeath";
|
||||
}
|
||||
|
||||
public boolean damageEntity(DamageSource damagesource, int i) {
|
||||
if (this.a <= 0 && damagesource instanceof EntityDamageSource) {
|
||||
this.a = 20;
|
||||
}
|
||||
|
||||
return super.damageEntity(damagesource, i);
|
||||
}
|
||||
|
||||
protected void a(Entity entity, float f) {
|
||||
if (this.attackTicks <= 0 && f < 1.2F && entity.boundingBox.e > this.boundingBox.b && entity.boundingBox.b < this.boundingBox.e) {
|
||||
this.attackTicks = 20;
|
||||
entity.damageEntity(DamageSource.mobAttack(this), this.damage);
|
||||
}
|
||||
}
|
||||
|
||||
public void b(NBTTagCompound nbttagcompound) {
|
||||
super.b(nbttagcompound);
|
||||
}
|
||||
|
||||
public void a(NBTTagCompound nbttagcompound) {
|
||||
super.a(nbttagcompound);
|
||||
}
|
||||
|
||||
protected int k() {
|
||||
return 0;
|
||||
}
|
||||
|
||||
public void s_() {
|
||||
this.U = this.yaw;
|
||||
super.s_();
|
||||
}
|
||||
|
||||
protected void c_() {
|
||||
super.c_();
|
||||
if (!this.world.isStatic) {
|
||||
int i;
|
||||
int j;
|
||||
int k;
|
||||
int l;
|
||||
|
||||
if (this.a > 0) {
|
||||
--this.a;
|
||||
if (this.a == 0) {
|
||||
i = MathHelper.floor(this.locX);
|
||||
j = MathHelper.floor(this.locY);
|
||||
k = MathHelper.floor(this.locZ);
|
||||
boolean flag = false;
|
||||
|
||||
for (l = 0; !flag && l <= 5 && l >= -5; l = l <= 0 ? 1 - l : 0 - l) {
|
||||
for (int i1 = 0; !flag && i1 <= 10 && i1 >= -10; i1 = i1 <= 0 ? 1 - i1 : 0 - i1) {
|
||||
for (int j1 = 0; !flag && j1 <= 10 && j1 >= -10; j1 = j1 <= 0 ? 1 - j1 : 0 - j1) {
|
||||
int k1 = this.world.getTypeId(i + i1, j + l, k + j1);
|
||||
|
||||
if (k1 == Block.MONSTER_EGGS.id) {
|
||||
this.world.e(2001, i + i1, j + l, k + j1, Block.MONSTER_EGGS.id + this.world.getData(i + i1, j + l, k + j1) * 256);
|
||||
this.world.setTypeId(i + i1, j + l, k + j1, 0);
|
||||
Block.MONSTER_EGGS.postBreak(this.world, i + i1, j + l, k + j1, 0);
|
||||
if (this.random.nextBoolean()) {
|
||||
flag = true;
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (this.target == null && !this.B()) {
|
||||
i = MathHelper.floor(this.locX);
|
||||
j = MathHelper.floor(this.locY + 0.5D);
|
||||
k = MathHelper.floor(this.locZ);
|
||||
int l1 = this.random.nextInt(6);
|
||||
|
||||
l = this.world.getTypeId(i + PistonBlockTextures.b[l1], j + PistonBlockTextures.c[l1], k + PistonBlockTextures.d[l1]);
|
||||
if (BlockMonsterEggs.c(l)) {
|
||||
this.world.setTypeIdAndData(i + PistonBlockTextures.b[l1], j + PistonBlockTextures.c[l1], k + PistonBlockTextures.d[l1], Block.MONSTER_EGGS.id, BlockMonsterEggs.d(l));
|
||||
this.ab();
|
||||
this.die();
|
||||
} else {
|
||||
this.A();
|
||||
}
|
||||
} else if (this.target != null && !this.B()) {
|
||||
this.target = null;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
protected float a(int i, int j, int k) {
|
||||
return this.world.getTypeId(i, j - 1, k) == Block.STONE.id ? 10.0F : super.a(i, j, k);
|
||||
}
|
||||
}
|
Laden…
In neuem Issue referenzieren
Einen Benutzer sperren