From 03c43cf3dad493a9d209bca4e1c7aa75a7d5faaf Mon Sep 17 00:00:00 2001 From: Brennan Ward Date: Tue, 31 May 2022 14:07:22 -0400 Subject: [PATCH] Fix attack cooldown bar showing when out of reach of target. Closes #8639 (#8640) --- .../net/minecraft/client/gui/Gui.java.patch | 8 ++++++++ .../java/net/minecraftforge/common/ForgeMod.java | 12 ++++++++++++ 2 files changed, 20 insertions(+) diff --git a/patches/minecraft/net/minecraft/client/gui/Gui.java.patch b/patches/minecraft/net/minecraft/client/gui/Gui.java.patch index 6f93da8658..0eaaad81ce 100644 --- a/patches/minecraft/net/minecraft/client/gui/Gui.java.patch +++ b/patches/minecraft/net/minecraft/client/gui/Gui.java.patch @@ -1,5 +1,13 @@ --- a/net/minecraft/client/gui/Gui.java +++ b/net/minecraft/client/gui/Gui.java +@@ -411,6 +_,7 @@ + if (this.f_92986_.f_91076_ != null && this.f_92986_.f_91076_ instanceof LivingEntity && f >= 1.0F) { + flag = this.f_92986_.f_91074_.m_36333_() > 5.0F; + flag &= this.f_92986_.f_91076_.m_6084_(); ++ flag &= this.f_92986_.f_91074_.canHit(this.f_92986_.f_91076_, 0); + } + + int j = this.f_92978_ / 2 - 7 + 16; @@ -463,6 +_,10 @@ for(MobEffectInstance mobeffectinstance : Ordering.natural().reverse().sortedCopy(collection)) { diff --git a/src/main/java/net/minecraftforge/common/ForgeMod.java b/src/main/java/net/minecraftforge/common/ForgeMod.java index e9bae6d1b9..c1968191b6 100644 --- a/src/main/java/net/minecraftforge/common/ForgeMod.java +++ b/src/main/java/net/minecraftforge/common/ForgeMod.java @@ -23,6 +23,8 @@ import net.minecraftforge.common.crafting.DifferenceIngredient; import net.minecraftforge.common.crafting.IntersectionIngredient; import net.minecraftforge.common.data.ExistingFileHelper; import net.minecraftforge.common.data.ForgeFluidTagsProvider; +import net.minecraftforge.common.extensions.IForgeEntity; +import net.minecraftforge.common.extensions.IForgePlayer; import net.minecraftforge.common.loot.CanToolPerformAction; import net.minecraftforge.common.loot.GlobalLootModifierSerializer; import net.minecraftforge.common.loot.LootTableIdCondition; @@ -94,13 +96,23 @@ public class ForgeMod /** * Reach Distance represents the distance at which a player may interact with the world. The default is 4.5 blocks. Players in creative mode have an additional 0.5 blocks of reach distance. + * @see IForgePlayer#getReachDistance() + * @see IForgePlayer#canInteractWith(BlockPos, double) + * @see IForgePlayer#canInteractWith(Entity, double) */ public static final RegistryObject REACH_DISTANCE = ATTRIBUTES.register("reach_distance", () -> new RangedAttribute("generic.reachDistance", 4.5D, 0.0D, 1024.0D).setSyncable(true)); /** * Attack Range represents the distance at which a player may attack an entity. The default is 3 blocks. Players in creative mode have an additional 3 blocks of attack reach. + * @see IForgePlayer#getAttackRange() + * @see IForgePlayer#canHit(Entity, double) */ public static final RegistryObject ATTACK_RANGE = ATTRIBUTES.register("attack_range", () -> new RangedAttribute("generic.attack_range", 3.0D, 0.0D, 1024.0D).setSyncable(true)); + + /** + * Step Height Addition modifies the amount of blocks an entity may walk up without jumping. + * @see IForgeEntity#getStepHeight() + */ public static final RegistryObject STEP_HEIGHT_ADDITION = ATTRIBUTES.register("step_height_addition", () -> new RangedAttribute("forge.stepHeight", 0.0D, -512.0D, 512.0D).setSyncable(true));