From 16863c8d3bf955b7d54a6db0f6dac631e2b527ed Mon Sep 17 00:00:00 2001 From: LexManos Date: Sat, 15 Jul 2023 10:45:21 -0700 Subject: [PATCH] Fix Entity eye height for multipart entities. --- .../screens/advancements/AdvancementsScreen.java.patch | 2 +- .../net/minecraft/world/entity/Entity.java.patch | 10 +++++++++- .../minecraftforge/common/extensions/IForgeEntity.java | 8 -------- 3 files changed, 10 insertions(+), 10 deletions(-) diff --git a/patches/minecraft/net/minecraft/client/gui/screens/advancements/AdvancementsScreen.java.patch b/patches/minecraft/net/minecraft/client/gui/screens/advancements/AdvancementsScreen.java.patch index 402f2c90c7..05336765b7 100644 --- a/patches/minecraft/net/minecraft/client/gui/screens/advancements/AdvancementsScreen.java.patch +++ b/patches/minecraft/net/minecraft/client/gui/screens/advancements/AdvancementsScreen.java.patch @@ -21,7 +21,7 @@ + m_142416_(net.minecraft.client.gui.components.Button.m_253074_(Component.m_237113_(">"), b -> tabPage = Math.min(tabPage + 1, maxPages)) + .m_252794_(guiLeft + f_169556_ - 20, guiTop - 50).m_253046_(20, 20).m_253136_()); + maxPages = this.f_97335_.size() / AdvancementTabType.MAX_TABS; -+ } ++ } } public void m_7861_() { diff --git a/patches/minecraft/net/minecraft/world/entity/Entity.java.patch b/patches/minecraft/net/minecraft/world/entity/Entity.java.patch index 439f05fc92..f6c8110cc7 100644 --- a/patches/minecraft/net/minecraft/world/entity/Entity.java.patch +++ b/patches/minecraft/net/minecraft/world/entity/Entity.java.patch @@ -604,7 +604,7 @@ public float m_274421_() { return this.f_19793_; } -@@ -3319,6 +_,103 @@ +@@ -3319,6 +_,111 @@ public boolean m_142265_(Level p_146843_, BlockPos p_146844_) { return true; } @@ -703,6 +703,14 @@ + return this.forgeFluidTypeHeight.object2DoubleEntrySet().stream().max(java.util.Comparator.comparingDouble(Object2DoubleMap.Entry::getDoubleValue)).map(Object2DoubleMap.Entry::getKey).orElseGet(net.minecraftforge.common.ForgeMod.EMPTY_TYPE); + } + ++ public EntityDimensions getDimensionsForge(Pose pose) { ++ EntityDimensions size = m_6972_(pose); ++ if (size == null) size = this.f_19815_; // this is called in the entity constructor so it is possible that subclasses are not initalized and dont return anything here. Souse the default. ++ var evt = new net.minecraftforge.event.entity.EntityEvent.Size(this, pose, size); ++ net.minecraftforge.common.MinecraftForge.EVENT_BUS.post(evt); ++ return evt.getNewSize(); ++ } ++ + /* ================================== Forge End =====================================*/ + diff --git a/src/main/java/net/minecraftforge/common/extensions/IForgeEntity.java b/src/main/java/net/minecraftforge/common/extensions/IForgeEntity.java index 3c11235e47..1205ae37d8 100644 --- a/src/main/java/net/minecraftforge/common/extensions/IForgeEntity.java +++ b/src/main/java/net/minecraftforge/common/extensions/IForgeEntity.java @@ -430,14 +430,6 @@ public interface IForgeEntity extends ICapabilitySerializable return false; } - default EntityDimensions getDimensionsForge(Pose pose) - { - EntityDimensions size = self().getDimensions(pose); - EntityEvent.Size evt = new EntityEvent.Size(self(), pose, size); - MinecraftForge.EVENT_BUS.post(evt); - return evt.getNewSize(); - } - default float getEyeHeightForge(Pose pose, EntityDimensions size) { float eyeHeight = self().getEyeHeightAccess(pose, size);