Mirror von
https://github.com/PaperMC/Paper.git
synchronisiert 2024-12-18 12:30:06 +01:00
Add files from mc-dev for diff visibility.
Dieser Commit ist enthalten in:
Ursprung
7df7778ccb
Commit
3abba82315
42
src/main/java/net/minecraft/server/PathfinderGoalHurtByTarget.java
Normale Datei
42
src/main/java/net/minecraft/server/PathfinderGoalHurtByTarget.java
Normale Datei
@ -0,0 +1,42 @@
|
||||
package net.minecraft.server;
|
||||
|
||||
import java.util.Iterator;
|
||||
import java.util.List;
|
||||
|
||||
public class PathfinderGoalHurtByTarget extends PathfinderGoalTarget {
|
||||
|
||||
boolean a;
|
||||
private int b;
|
||||
|
||||
public PathfinderGoalHurtByTarget(EntityCreature entitycreature, boolean flag) {
|
||||
super(entitycreature, false);
|
||||
this.a = flag;
|
||||
this.a(1);
|
||||
}
|
||||
|
||||
public boolean a() {
|
||||
int i = this.c.aJ();
|
||||
|
||||
return i != this.b && this.a(this.c.getLastDamager(), false);
|
||||
}
|
||||
|
||||
public void c() {
|
||||
this.c.setGoalTarget(this.c.getLastDamager());
|
||||
this.b = this.c.aJ();
|
||||
if (this.a) {
|
||||
double d0 = this.f();
|
||||
List list = this.c.world.a(this.c.getClass(), AxisAlignedBB.a(this.c.locX, this.c.locY, this.c.locZ, this.c.locX + 1.0D, this.c.locY + 1.0D, this.c.locZ + 1.0D).grow(d0, 10.0D, d0));
|
||||
Iterator iterator = list.iterator();
|
||||
|
||||
while (iterator.hasNext()) {
|
||||
EntityCreature entitycreature = (EntityCreature) iterator.next();
|
||||
|
||||
if (this.c != entitycreature && entitycreature.getGoalTarget() == null && !entitycreature.c(this.c.getLastDamager())) {
|
||||
entitycreature.setGoalTarget(this.c.getLastDamager());
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
super.c();
|
||||
}
|
||||
}
|
57
src/main/java/net/minecraft/server/PathfinderGoalOcelotAttack.java
Normale Datei
57
src/main/java/net/minecraft/server/PathfinderGoalOcelotAttack.java
Normale Datei
@ -0,0 +1,57 @@
|
||||
package net.minecraft.server;
|
||||
|
||||
public class PathfinderGoalOcelotAttack extends PathfinderGoal {
|
||||
|
||||
World a;
|
||||
EntityInsentient b;
|
||||
EntityLiving c;
|
||||
int d;
|
||||
|
||||
public PathfinderGoalOcelotAttack(EntityInsentient entityinsentient) {
|
||||
this.b = entityinsentient;
|
||||
this.a = entityinsentient.world;
|
||||
this.a(3);
|
||||
}
|
||||
|
||||
public boolean a() {
|
||||
EntityLiving entityliving = this.b.getGoalTarget();
|
||||
|
||||
if (entityliving == null) {
|
||||
return false;
|
||||
} else {
|
||||
this.c = entityliving;
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
||||
public boolean b() {
|
||||
return !this.c.isAlive() ? false : (this.b.f(this.c) > 225.0D ? false : !this.b.getNavigation().g() || this.a());
|
||||
}
|
||||
|
||||
public void d() {
|
||||
this.c = null;
|
||||
this.b.getNavigation().h();
|
||||
}
|
||||
|
||||
public void e() {
|
||||
this.b.getControllerLook().a(this.c, 30.0F, 30.0F);
|
||||
double d0 = (double) (this.b.width * 2.0F * this.b.width * 2.0F);
|
||||
double d1 = this.b.e(this.c.locX, this.c.boundingBox.b, this.c.locZ);
|
||||
double d2 = 0.8D;
|
||||
|
||||
if (d1 > d0 && d1 < 16.0D) {
|
||||
d2 = 1.33D;
|
||||
} else if (d1 < 225.0D) {
|
||||
d2 = 0.6D;
|
||||
}
|
||||
|
||||
this.b.getNavigation().a((Entity) this.c, d2);
|
||||
this.d = Math.max(this.d - 1, 0);
|
||||
if (d1 <= d0) {
|
||||
if (this.d <= 0) {
|
||||
this.d = 20;
|
||||
this.b.n(this.c);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
Laden…
In neuem Issue referenzieren
Einen Benutzer sperren