Skip to content

Commit 3949449

Browse files
committed
1.0.1 - Added "blocking damage" tooltip on Shields
1 parent 8c7324f commit 3949449

File tree

7 files changed

+43
-4
lines changed

7 files changed

+43
-4
lines changed

changelog.md

+4
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,8 @@
11
# Changelog
22

3+
## 1.0.1
4+
* Added "blocking damage" tooltip on Shields
5+
* Raised mixin priority, should prevent IguanaTweaks from messing with the blocking delay (0.25 secs)
6+
37
## 1.0.0
48
* First Release with shields and a few small features

gradle.properties

+1-1
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
org.gradle.jvmargs=-Xmx3G
44
org.gradle.daemon=false
55
mc_version=1.18.2
6-
mod_version=1.0.0
6+
mod_version=1.0.1
77
lib_version=1.5.1
88
mixin_version=0.8.5
99
forge_version=40.1.60

src/main/java/com/insane96mcp/shieldsplus/item/SPShieldItem.java

+20
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,21 @@
11
package com.insane96mcp.shieldsplus.item;
22

33
import com.insane96mcp.shieldsplus.render.ShieldBlockEntityWithoutLevelRenderer;
4+
import com.insane96mcp.shieldsplus.setup.Strings;
5+
import net.minecraft.ChatFormatting;
46
import net.minecraft.client.renderer.BlockEntityWithoutLevelRenderer;
7+
import net.minecraft.network.chat.Component;
8+
import net.minecraft.network.chat.TranslatableComponent;
59
import net.minecraft.resources.ResourceLocation;
10+
import net.minecraft.world.item.ItemStack;
611
import net.minecraft.world.item.ShieldItem;
12+
import net.minecraft.world.item.TooltipFlag;
13+
import net.minecraft.world.level.Level;
714
import net.minecraftforge.client.IItemRenderProperties;
15+
import org.jetbrains.annotations.Nullable;
816

17+
import java.text.DecimalFormat;
18+
import java.util.List;
919
import java.util.function.Consumer;
1020

1121
public class SPShieldItem extends ShieldItem {
@@ -32,4 +42,14 @@ public BlockEntityWithoutLevelRenderer getItemStackRenderer() {
3242
}
3343
});
3444
}
45+
46+
@Override
47+
public void appendHoverText(ItemStack itemStack, @Nullable Level level, List<Component> components, TooltipFlag tooltipFlag) {
48+
super.appendHoverText(itemStack, level, components, tooltipFlag);
49+
addDamageBlockedText(components, this.getBlockedDamage());
50+
}
51+
52+
public static void addDamageBlockedText(List<Component> components, double blockedDamage) {
53+
components.add(new TranslatableComponent(Strings.Translatable.DAMAGE_BLOCKED, new DecimalFormat("#.#").format(blockedDamage)).withStyle(ChatFormatting.BLUE));
54+
}
3555
}

src/main/java/com/insane96mcp/shieldsplus/mixin/LivingEntityMixin.java

+1-1
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@
99
import org.spongepowered.asm.mixin.injection.Constant;
1010
import org.spongepowered.asm.mixin.injection.ModifyConstant;
1111

12-
@Mixin(LivingEntity.class)
12+
@Mixin(value = LivingEntity.class, priority = 1001)
1313
public abstract class LivingEntityMixin extends Entity {
1414

1515
public LivingEntityMixin(EntityType<?> p_19870_, Level p_19871_) {

src/main/java/com/insane96mcp/shieldsplus/module/base/feature/BaseFeature.java

+12
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@
88
import net.minecraft.world.item.Items;
99
import net.minecraftforge.common.ForgeConfigSpec;
1010
import net.minecraftforge.event.entity.living.ShieldBlockEvent;
11+
import net.minecraftforge.event.entity.player.ItemTooltipEvent;
1112
import net.minecraftforge.eventbus.api.SubscribeEvent;
1213

1314
@Label(name = "Shields+")
@@ -63,6 +64,17 @@ else if (event.getEntityLiving().getUseItem().getItem() instanceof SPShieldItem)
6364
event.setBlockedDamage((float) blockedDamage);
6465
}
6566

67+
@SubscribeEvent
68+
public void onTooltip(ItemTooltipEvent event) {
69+
if (!this.isEnabled()
70+
|| !this.shieldBlockFixedDamageAmount)
71+
return;
72+
73+
if (event.getItemStack().is(Items.SHIELD)) {
74+
SPShieldItem.addDamageBlockedText(event.getToolTip(), 5d);
75+
}
76+
}
77+
6678
public boolean shouldRemoveShieldWindup() {
6779
return this.isEnabled() && this.removeShieldWindup;
6880
}

src/main/java/com/insane96mcp/shieldsplus/setup/Strings.java

+3-1
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,7 @@
11
package com.insane96mcp.shieldsplus.setup;
22

3+
import com.insane96mcp.shieldsplus.ShieldsPlus;
4+
35
public class Strings {
46
public static class Items {
57
public static final String WOODEN_SHIELD = "wooden_shield";
@@ -14,6 +16,6 @@ public static class Tags {
1416
}
1517

1618
public static class Translatable {
17-
19+
public static final String DAMAGE_BLOCKED = ShieldsPlus.RESOURCE_PREFIX + "damage_blocked";
1820
}
1921
}

src/main/resources/assets/shieldsplus/lang/en_us.json

+2-1
Original file line numberDiff line numberDiff line change
@@ -4,5 +4,6 @@
44
"item.shieldsplus.golden_shield": "Golden shield",
55
"item.minecraft.shield": "Iron shield",
66
"item.shieldsplus.diamond_shield": "Diamond shield",
7-
"item.shieldsplus.netherite_shield": "Netherite shield"
7+
"item.shieldsplus.netherite_shield": "Netherite shield",
8+
"shieldsplus:damage_blocked": "%s damage blocked"
89
}

0 commit comments

Comments
 (0)