Files
mc/mods/pala/legacy-src-backup/net/paladrill/paladrillmod/item/ItemPickaxeOfTheGodLevel1.java
T

116 lines
3.9 KiB
Java

package net.paladrill.paladrillmod.item;
import net.paladrill.paladrillmod.procedure.ProcedurePickaxeOfTheGodBlockDestroyedWithTool;
import net.paladrill.paladrillmod.creativetab.TabPalaDrillMod;
import net.paladrill.paladrillmod.ElementsPaladrillmodMod;
import net.minecraftforge.fml.relauncher.SideOnly;
import net.minecraftforge.fml.relauncher.Side;
import net.minecraftforge.fml.common.registry.GameRegistry;
import net.minecraftforge.client.model.ModelLoader;
import net.minecraftforge.client.event.ModelRegistryEvent;
import net.minecraft.world.World;
import net.minecraft.util.math.BlockPos;
import net.minecraft.item.ItemStack;
import net.minecraft.item.Item;
import net.minecraft.inventory.EntityEquipmentSlot;
import net.minecraft.entity.ai.attributes.AttributeModifier;
import net.minecraft.entity.SharedMonsterAttributes;
import net.minecraft.entity.EntityLivingBase;
import net.minecraft.client.renderer.block.model.ModelResourceLocation;
import net.minecraft.block.state.IBlockState;
import java.util.Map;
import java.util.HashMap;
import com.google.common.collect.Multimap;
@ElementsPaladrillmodMod.ModElement.Tag
public class ItemPickaxeOfTheGodLevel1 extends ElementsPaladrillmodMod.ModElement {
@GameRegistry.ObjectHolder("paladrillmod:pickaxeofthegodlevel1")
public static final Item block = null;
public ItemPickaxeOfTheGodLevel1(ElementsPaladrillmodMod instance) {
super(instance, 77);
}
@Override
public void initElements() {
elements.items.add(() -> new ItemToolCustom() {
@Override
public boolean onBlockDestroyed(ItemStack itemstack, World world, IBlockState bl, BlockPos pos, EntityLivingBase entity) {
boolean retval = super.onBlockDestroyed(itemstack, world, bl, pos, entity);
int x = pos.getX();
int y = pos.getY();
int z = pos.getZ();
{
Map<String, Object> $_dependencies = new HashMap<>();
$_dependencies.put("entity", entity);
$_dependencies.put("itemstack", itemstack);
$_dependencies.put("x", x);
$_dependencies.put("y", y);
$_dependencies.put("z", z);
$_dependencies.put("world", world);
ProcedurePickaxeOfTheGodBlockDestroyedWithTool.executeProcedure($_dependencies);
}
return retval;
}
}.setUnlocalizedName("pickaxeofthegodlevel1").setRegistryName("pickaxeofthegodlevel1").setCreativeTab(TabPalaDrillMod.tab));
}
@SideOnly(Side.CLIENT)
@Override
public void registerModels(ModelRegistryEvent event) {
ModelLoader.setCustomModelResourceLocation(block, 0, new ModelResourceLocation("paladrillmod:pickaxeofthegodlevel1", "inventory"));
}
private static class ItemToolCustom extends Item {
protected ItemToolCustom() {
setMaxDamage(0);
setMaxStackSize(1);
}
@Override
public Multimap<String, AttributeModifier> getItemAttributeModifiers(EntityEquipmentSlot equipmentSlot) {
Multimap<String, AttributeModifier> multimap = super.getItemAttributeModifiers(equipmentSlot);
if (equipmentSlot == EntityEquipmentSlot.MAINHAND) {
multimap.put(SharedMonsterAttributes.ATTACK_DAMAGE.getName(), new AttributeModifier(ATTACK_DAMAGE_MODIFIER, "Tool modifier", -3f, 0));
multimap.put(SharedMonsterAttributes.ATTACK_SPEED.getName(), new AttributeModifier(ATTACK_SPEED_MODIFIER, "Tool modifier", -3, 0));
}
return multimap;
}
@Override
public boolean canHarvestBlock(IBlockState blockIn) {
return true;
}
@Override
public float getDestroySpeed(ItemStack par1ItemStack, IBlockState par2Block) {
return 0.7f;
}
@Override
public boolean hitEntity(ItemStack stack, EntityLivingBase target, EntityLivingBase attacker) {
stack.damageItem(1, attacker);
return true;
}
@Override
public boolean onBlockDestroyed(ItemStack stack, World worldIn, IBlockState state, BlockPos pos, EntityLivingBase entityLiving) {
stack.damageItem(1, entityLiving);
return true;
}
@Override
public boolean isFull3D() {
return true;
}
@Override
public int getItemEnchantability() {
return 1;
}
}
}