package com.vapourdrive.harderstart.events;
import net.minecraft.block.Block;
import net.minecraft.block.material.Material;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.init.Items;
import net.minecraft.item.ItemStack;
import net.minecraft.util.DamageSource;
import net.minecraftforge.event.entity.player.PlayerEvent;
import net.minecraftforge.oredict.OreDictionary;
import cpw.mods.fml.common.eventhandler.EventPriority;
import cpw.mods.fml.common.eventhandler.SubscribeEvent;
public class HS_BreakSpeed
{
/**
* Damages the player if they try to punch certain blocks Slow then down
* while punching other TODO consider moving from block materials to block
* hardnesses
*
* @param event
*/
@SubscribeEvent(priority = EventPriority.HIGHEST)
public void playerPunchPain(PlayerEvent.BreakSpeed event)
{
EntityPlayer player = event.entityPlayer;
Block block = event.block;
Material material = block.getMaterial();
ItemStack itemstack = player.getCurrentEquippedItem();
if (material == Material.wood || material == Material.anvil || material == Material.rock || material == Material.iron)
{
if (itemstack == null)
{
player.attackEntityFrom(DamageSource.generic, 1.5F);
event.newSpeed = 0.0F;
}
if (itemstack != null && itemstack.getItem().getToolClasses(itemstack).isEmpty())
{
event.newSpeed = 0.0F;
}
}
else
{
if (itemstack == null || itemstack.getItem().getToolClasses(itemstack).isEmpty())
{
event.newSpeed = 0.25F;
}
/**
* A stick is your first tool, like real life survival
*/
if (OreDictionary.itemMatches(new ItemStack(Items.stick), itemstack, true))
{
event.newSpeed = 0.5F;
}
}
return;
}
}