NaturesAura/src/main/java/de/ellpeck/naturesaura/items/tools/ItemHoeNA.java

93 lines
3.2 KiB
Java
Raw Normal View History

2018-10-19 18:32:20 +02:00
package de.ellpeck.naturesaura.items.tools;
2018-10-20 21:19:08 +02:00
import de.ellpeck.naturesaura.Helper;
2018-10-19 23:11:50 +02:00
import de.ellpeck.naturesaura.items.ModItems;
2018-11-29 17:58:47 +01:00
import de.ellpeck.naturesaura.reg.ICreativeItem;
2018-10-19 18:32:20 +02:00
import de.ellpeck.naturesaura.reg.IModItem;
import de.ellpeck.naturesaura.reg.IModelProvider;
import de.ellpeck.naturesaura.reg.ModRegistry;
2018-10-19 23:11:50 +02:00
import net.minecraft.entity.item.EntityItem;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.init.Items;
2018-10-19 18:32:20 +02:00
import net.minecraft.item.ItemHoe;
2018-10-19 23:11:50 +02:00
import net.minecraft.item.ItemStack;
2018-10-20 21:19:08 +02:00
import net.minecraft.nbt.NBTTagCompound;
2018-10-19 23:11:50 +02:00
import net.minecraft.util.EnumActionResult;
import net.minecraft.util.EnumFacing;
import net.minecraft.util.EnumHand;
import net.minecraft.util.math.BlockPos;
import net.minecraft.world.World;
import net.minecraftforge.common.ForgeHooks;
2018-10-20 21:19:08 +02:00
import net.minecraftforge.common.capabilities.ICapabilityProvider;
2018-10-19 18:32:20 +02:00
import net.minecraftforge.fml.common.event.FMLInitializationEvent;
import net.minecraftforge.fml.common.event.FMLPostInitializationEvent;
import net.minecraftforge.fml.common.event.FMLPreInitializationEvent;
2018-10-20 21:19:08 +02:00
import javax.annotation.Nullable;
2018-11-29 17:58:47 +01:00
public class ItemHoeNA extends ItemHoe implements IModItem, ICreativeItem, IModelProvider {
2018-10-19 18:32:20 +02:00
private final String baseName;
public ItemHoeNA(String baseName, ToolMaterial material) {
super(material);
this.baseName = baseName;
2018-11-29 17:58:47 +01:00
ModRegistry.add(this);
2018-10-19 18:32:20 +02:00
}
2018-10-19 23:11:50 +02:00
@Override
public EnumActionResult onItemUse(EntityPlayer player, World worldIn, BlockPos pos, EnumHand hand, EnumFacing facing, float hitX, float hitY, float hitZ) {
EnumActionResult result = super.onItemUse(player, worldIn, pos, hand, facing, hitX, hitY, hitZ);
if (!worldIn.isRemote && result == EnumActionResult.SUCCESS && this == ModItems.INFUSED_HOE) {
ItemStack seed = ItemStack.EMPTY;
if (worldIn.rand.nextInt(5) == 0) {
seed = ForgeHooks.getGrassSeed(worldIn.rand, 0);
} else if (worldIn.rand.nextInt(10) == 0) {
int rand = worldIn.rand.nextInt(3);
if (rand == 0) {
seed = new ItemStack(Items.MELON_SEEDS);
} else if (rand == 1) {
seed = new ItemStack(Items.PUMPKIN_SEEDS);
} else if (rand == 2) {
seed = new ItemStack(Items.BEETROOT_SEEDS);
}
}
if (!seed.isEmpty()) {
EntityItem item = new EntityItem(worldIn, pos.getX() + worldIn.rand.nextFloat(), pos.getY() + 1F, pos.getZ() + worldIn.rand.nextFloat(), seed);
worldIn.spawnEntity(item);
}
}
return result;
}
2018-10-19 18:32:20 +02:00
@Override
public String getBaseName() {
return this.baseName;
}
@Override
public void onPreInit(FMLPreInitializationEvent event) {
}
@Override
public void onInit(FMLInitializationEvent event) {
}
@Override
public void onPostInit(FMLPostInitializationEvent event) {
}
2018-10-20 21:19:08 +02:00
@Nullable
@Override
public ICapabilityProvider initCapabilities(ItemStack stack, @Nullable NBTTagCompound nbt) {
if (this == ModItems.INFUSED_HOE)
2018-12-01 18:56:05 +01:00
return Helper.makeRechargeProvider(stack, true);
2018-10-20 21:19:08 +02:00
else return null;
}
2018-10-19 18:32:20 +02:00
}