diff options
| author | Benjamin Culkin <scorpress@gmail.com> | 2024-08-12 17:08:54 -0400 |
|---|---|---|
| committer | Benjamin Culkin <scorpress@gmail.com> | 2024-08-12 17:08:54 -0400 |
| commit | b8b41aa5846dae5a9bbf4fee82020f1d9e2b2a48 (patch) | |
| tree | 9bce3e85926cfb68b3ebbc5d89f13ce10736e32d /src/main/java/fyresmodjam/blessings/standard/LumberjackBlessing.java | |
Diffstat (limited to 'src/main/java/fyresmodjam/blessings/standard/LumberjackBlessing.java')
| -rw-r--r-- | src/main/java/fyresmodjam/blessings/standard/LumberjackBlessing.java | 59 |
1 files changed, 59 insertions, 0 deletions
diff --git a/src/main/java/fyresmodjam/blessings/standard/LumberjackBlessing.java b/src/main/java/fyresmodjam/blessings/standard/LumberjackBlessing.java new file mode 100644 index 0000000..6ef337e --- /dev/null +++ b/src/main/java/fyresmodjam/blessings/standard/LumberjackBlessing.java @@ -0,0 +1,59 @@ +package fyresmodjam.blessings.standard; + +import fyresmodjam.blessings.Blessing; +import net.minecraft.block.material.Material; +import net.minecraft.entity.EntityLivingBase; +import net.minecraft.item.ItemStack; +import net.minecraft.item.ItemTool; +import net.minecraft.util.EnumHand; +import net.minecraftforge.event.entity.living.LivingHurtEvent; +import net.minecraftforge.event.entity.player.PlayerEvent.BreakSpeed; + +public class LumberjackBlessing extends Blessing { + @Override + public String name() { + return "Lumberjack"; + } + + @Override + public String description() { + return "Increased breaking speed on wooden blocks, and increased damage with axes"; + } + + @Override + public void checkBreakSpeed(BreakSpeed pebsev) { + if (pebsev.getState().getMaterial() == Material.WOOD) { + pebsev.setNewSpeed( + pebsev.getOriginalSpeed() * 1.25F); + } + } + + @Override + public float onOutgoingDamage(LivingHurtEvent event, + float damageMultiplier) { + ItemStack held = null; + + if (event.getSource() + .getTrueSource() instanceof EntityLivingBase) { + held = ((EntityLivingBase) event.getSource() + .getTrueSource()).getHeldItem( + EnumHand.MAIN_HAND); + } + + if (held != null && itemIsAxe(held)) { + return damageMultiplier + 0.15F; + } + + return damageMultiplier; + } + + private boolean itemIsAxe(ItemStack held) { + if (held.getItem() instanceof ItemTool) { + return ((ItemTool) held.getItem()) + .getToolClasses(held) + .contains("axe"); + } + + return false; + } +} |
