Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[1.16] Replace EntityHeight event with EntitySize event #6858

Merged
merged 2 commits into from Aug 21, 2020
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Jump to
Jump to file
Failed to load files.
Diff view
Diff view
68 changes: 34 additions & 34 deletions patches/minecraft/net/minecraft/entity/Entity.java.patch
Expand Up @@ -31,18 +31,20 @@
this.field_200606_g = p_i48580_1_;
this.field_70170_p = p_i48580_2_;
this.field_213325_aI = p_i48580_1_.func_220334_j();
@@ -211,7 +214,9 @@
@@ -211,7 +214,11 @@
this.field_70180_af.func_187214_a(field_189655_aD, false);
this.field_70180_af.func_187214_a(field_213330_X, Pose.STANDING);
this.func_70088_a();
- this.field_213326_aJ = this.func_213316_a(Pose.STANDING, this.field_213325_aI);
+ this.field_213326_aJ = getEyeHeightForge(Pose.STANDING, this.field_213325_aI);
+ net.minecraftforge.event.entity.EntityEvent.Size sizeEvent = net.minecraftforge.event.ForgeEventFactory.getEntitySizeForge(this, Pose.STANDING, this.field_213325_aI, this.func_213316_a(Pose.STANDING, this.field_213325_aI));
+ this.field_213325_aI = sizeEvent.getNewSize();
+ this.field_213326_aJ = sizeEvent.getNewEyeHeight();
+ net.minecraftforge.common.MinecraftForge.EVENT_BUS.post(new net.minecraftforge.event.entity.EntityEvent.EntityConstructing(this));
+ this.gatherCapabilities();
}

@OnlyIn(Dist.CLIENT)
@@ -317,7 +322,13 @@
@@ -317,7 +324,13 @@
}

public void func_70106_y() {
Expand All @@ -56,15 +58,15 @@
}

public void func_213301_b(Pose p_213301_1_) {
@@ -330,6 +341,7 @@
@@ -330,6 +343,7 @@

public boolean func_233562_a_(Entity p_233562_1_, double p_233562_2_) {
double d0 = p_233562_1_.field_233557_ao_.field_72450_a - this.field_233557_ao_.field_72450_a;
+ if (this.isAddedToWorld() && !this.field_70170_p.field_72995_K && field_70170_p instanceof ServerWorld) ((ServerWorld)this.field_70170_p).func_217464_b(this); // Forge - Process chunk registration after moving.
double d1 = p_233562_1_.field_233557_ao_.field_72448_b - this.field_233557_ao_.field_72448_b;
double d2 = p_233562_1_.field_233557_ao_.field_72449_c - this.field_233557_ao_.field_72449_c;
return d0 * d0 + d1 * d1 + d2 * d2 < p_233562_2_ * p_233562_2_;
@@ -560,7 +572,7 @@
@@ -560,7 +574,7 @@

this.field_70140_Q = (float)((double)this.field_70140_Q + (double)MathHelper.func_76133_a(func_213296_b(vector3d)) * 0.6D);
this.field_82151_R = (float)((double)this.field_82151_R + (double)MathHelper.func_76133_a(d0 * d0 + d1 * d1 + d2 * d2) * 0.6D);
Expand All @@ -73,7 +75,7 @@
this.field_70150_b = this.func_203009_ad();
if (this.func_70090_H()) {
Entity entity = this.func_184207_aI() && this.func_184179_bs() != null ? this.func_184179_bs() : this;
@@ -575,7 +587,7 @@
@@ -575,7 +589,7 @@
} else {
this.func_180429_a(blockpos, blockstate);
}
Expand All @@ -82,7 +84,7 @@
this.field_191959_ay = this.func_191954_d(this.field_82151_R);
}
}
@@ -591,8 +603,9 @@
@@ -591,8 +605,9 @@

float f2 = this.func_225515_ai_();
this.func_213317_d(this.func_213322_ci().func_216372_d((double)f2, 1.0D, (double)f2));
Expand All @@ -94,7 +96,7 @@
}) && this.field_190534_ay <= 0) {
this.func_241209_g_(-this.func_190531_bD());
}
@@ -611,11 +624,10 @@
@@ -611,11 +626,10 @@
int j = MathHelper.func_76128_c(this.field_233557_ao_.field_72448_b - (double)0.2F);
int k = MathHelper.func_76128_c(this.field_233557_ao_.field_72449_c);
BlockPos blockpos = new BlockPos(i, j, k);
Expand All @@ -108,15 +110,15 @@
return blockpos1;
}
}
@@ -801,6 +813,7 @@
@@ -801,6 +815,7 @@
public void func_174829_m() {
AxisAlignedBB axisalignedbb = this.func_174813_aQ();
this.func_226288_n_((axisalignedbb.field_72340_a + axisalignedbb.field_72336_d) / 2.0D, axisalignedbb.field_72338_b, (axisalignedbb.field_72339_c + axisalignedbb.field_72334_f) / 2.0D);
+ if (this.isAddedToWorld() && !this.field_70170_p.field_72995_K && field_70170_p instanceof ServerWorld) ((ServerWorld)this.field_70170_p).func_217464_b(this); // Forge - Process chunk registration after moving.
}

protected SoundEvent func_184184_Z() {
@@ -849,7 +862,7 @@
@@ -849,7 +864,7 @@
protected void func_180429_a(BlockPos p_180429_1_, BlockState p_180429_2_) {
if (!p_180429_2_.func_185904_a().func_76224_d()) {
BlockState blockstate = this.field_70170_p.func_180495_p(p_180429_1_.func_177984_a());
Expand All @@ -125,7 +127,7 @@
this.func_184185_a(soundtype.func_185844_d(), soundtype.func_185843_a() * 0.15F, soundtype.func_185847_b());
}
}
@@ -1056,9 +1069,10 @@
@@ -1056,9 +1071,10 @@
int k = MathHelper.func_76128_c(this.func_226281_cx_());
BlockPos blockpos = new BlockPos(i, j, k);
BlockState blockstate = this.field_70170_p.func_180495_p(blockpos);
Expand All @@ -137,15 +139,15 @@
}

}
@@ -1377,6 +1391,7 @@
@@ -1377,6 +1393,7 @@
if (this.field_184238_ar) {
p_189511_1_.func_74757_a("Glowing", this.field_184238_ar);
}
+ p_189511_1_.func_74757_a("CanUpdate", canUpdate);

if (!this.field_184236_aF.isEmpty()) {
ListNBT listnbt = new ListNBT();
@@ -1388,6 +1403,10 @@
@@ -1388,6 +1405,10 @@
p_189511_1_.func_218657_a("Tags", listnbt);
}

Expand All @@ -156,7 +158,7 @@
this.func_213281_b(p_189511_1_);
if (this.func_184207_aI()) {
ListNBT listnbt1 = new ListNBT();
@@ -1458,6 +1477,9 @@
@@ -1458,6 +1479,9 @@
this.func_174810_b(p_70020_1_.func_74767_n("Silent"));
this.func_189654_d(p_70020_1_.func_74767_n("NoGravity"));
this.func_184195_f(p_70020_1_.func_74767_n("Glowing"));
Expand All @@ -166,7 +168,7 @@
if (p_70020_1_.func_150297_b("Tags", 9)) {
this.field_184236_aF.clear();
ListNBT listnbt3 = p_70020_1_.func_150295_c("Tags", 8);
@@ -1546,6 +1568,8 @@
@@ -1546,6 +1570,8 @@
} else {
ItemEntity itementity = new ItemEntity(this.field_70170_p, this.func_226277_ct_(), this.func_226278_cu_() + (double)p_70099_2_, this.func_226281_cx_(), p_70099_1_);
itementity.func_174869_p();
Expand All @@ -175,39 +177,39 @@
this.field_70170_p.func_217376_c(itementity);
return itementity;
}
@@ -1582,6 +1606,7 @@
@@ -1582,6 +1608,7 @@

public void func_70098_U() {
this.func_213317_d(Vector3d.field_186680_a);
+ if (canUpdate())
this.func_70071_h_();
if (this.func_184218_aH()) {
this.func_184187_bx().func_184232_k(this);
@@ -1627,6 +1652,7 @@
@@ -1627,6 +1654,7 @@
}
}

+ if (!net.minecraftforge.event.ForgeEventFactory.canMountEntity(this, p_184205_1_, true)) return false;
if (p_184205_2_ || this.func_184228_n(p_184205_1_) && p_184205_1_.func_184219_q(this)) {
if (this.func_184218_aH()) {
this.func_184210_p();
@@ -1659,6 +1685,7 @@
@@ -1659,6 +1687,7 @@
public void func_233575_bb_() {
if (this.field_184239_as != null) {
Entity entity = this.field_184239_as;
+ if (!net.minecraftforge.event.ForgeEventFactory.canMountEntity(this, entity, false)) return;
this.field_184239_as = null;
entity.func_184225_p(this);
}
@@ -1816,6 +1843,7 @@
@@ -1816,6 +1845,7 @@
return !this.func_184188_bt().isEmpty();
}

+ @Deprecated //Forge: Use rider sensitive version
public boolean func_205710_ba() {
return true;
}
@@ -2032,7 +2060,7 @@
@@ -2032,7 +2062,7 @@
}

protected ITextComponent func_225513_by_() {
Expand All @@ -216,7 +218,7 @@
}

public boolean func_70028_i(Entity p_70028_1_) {
@@ -2087,6 +2115,10 @@
@@ -2087,6 +2117,10 @@

@Nullable
public Entity func_241206_a_(ServerWorld p_241206_1_) {
Expand All @@ -227,15 +229,15 @@
if (this.field_70170_p instanceof ServerWorld && !this.field_70128_L) {
this.field_70170_p.func_217381_Z().func_76320_a("changeDimension");
this.func_213319_R();
@@ -2095,6 +2127,7 @@
@@ -2095,6 +2129,7 @@
if (portalinfo == null) {
return null;
} else {
+ Entity transportedEntity = teleporter.placeEntity(this, (ServerWorld) this.field_70170_p, p_241206_1_, this.field_70177_z, spawnPortal -> { //Forge: Start vanilla logic
this.field_70170_p.func_217381_Z().func_219895_b("reloading");
Entity entity = this.func_200600_R().func_200721_a(p_241206_1_);
if (entity != null) {
@@ -2102,17 +2135,19 @@
@@ -2102,17 +2137,19 @@
entity.func_70012_b(portalinfo.field_222505_a.field_72450_a, portalinfo.field_222505_a.field_72448_b, portalinfo.field_222505_a.field_72449_c, portalinfo.field_242960_c, entity.field_70125_A);
entity.func_213317_d(portalinfo.field_222506_b);
p_241206_1_.func_217460_e(entity);
Expand All @@ -257,24 +259,28 @@
}
} else {
return null;
@@ -2322,7 +2357,7 @@
@@ -2320,9 +2357,10 @@
public void func_213323_x_() {
EntitySize entitysize = this.field_213325_aI;
Pose pose = this.func_213283_Z();
EntitySize entitysize1 = this.func_213305_a(pose);
- EntitySize entitysize1 = this.func_213305_a(pose);
+ net.minecraftforge.event.entity.EntityEvent.Size sizeEvent = net.minecraftforge.event.ForgeEventFactory.getEntitySizeForge(this, pose, this.func_213305_a(pose), this.func_213316_a(pose, entitysize));
+ EntitySize entitysize1 = sizeEvent.getNewSize();
this.field_213325_aI = entitysize1;
- this.field_213326_aJ = this.func_213316_a(pose, entitysize1);
+ this.field_213326_aJ = getEyeHeightForge(pose, entitysize1);
+ this.field_213326_aJ = sizeEvent.getNewEyeHeight();
if (entitysize1.field_220315_a < entitysize.field_220315_a) {
double d0 = (double)entitysize1.field_220315_a / 2.0D;
this.func_174826_a(new AxisAlignedBB(this.func_226277_ct_() - d0, this.func_226278_cu_(), this.func_226281_cx_() - d0, this.func_226277_ct_() + d0, this.func_226278_cu_() + (double)entitysize1.field_220316_b, this.func_226281_cx_() + d0));
@@ -2796,6 +2831,7 @@
@@ -2796,6 +2834,7 @@

this.field_233555_aA_ = true;
}
+ if (this.isAddedToWorld() && !this.field_70170_p.field_72995_K && !this.field_70128_L) this.field_70170_p.func_212866_a_((int) Math.floor(p_226288_1_) >> 4, (int) Math.floor(p_226288_5_) >> 4); // Forge - ensure target chunk is loaded.

}

@@ -2811,4 +2847,69 @@
@@ -2811,4 +2850,63 @@
public interface IMoveCallback {
void accept(Entity p_accept_1_, double p_accept_2_, double p_accept_4_, double p_accept_6_);
}
Expand Down Expand Up @@ -336,11 +342,5 @@
+ public void revive() {
+ this.field_70128_L = false;
+ this.reviveCaps();
+ }
+
+ private float getEyeHeightForge(Pose pose, EntitySize size) {
+ net.minecraftforge.event.entity.EntityEvent.EyeHeight evt = new net.minecraftforge.event.entity.EntityEvent.EyeHeight(this, pose, size, this.func_213316_a(pose, size));
+ net.minecraftforge.common.MinecraftForge.EVENT_BUS.post(evt);
+ return evt.getNewHeight();
+ }
}