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-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-10-19 18:32:20 +02:00
|
|
|
public class ItemHoeNA extends ItemHoe implements IModItem, IModelProvider {
|
|
|
|
|
|
|
|
private final String baseName;
|
|
|
|
|
|
|
|
public ItemHoeNA(String baseName, ToolMaterial material) {
|
|
|
|
super(material);
|
|
|
|
this.baseName = baseName;
|
|
|
|
ModRegistry.addItemOrBlock(this);
|
|
|
|
}
|
|
|
|
|
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 boolean shouldAddCreative() {
|
|
|
|
return true;
|
|
|
|
}
|
|
|
|
|
|
|
|
@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)
|
|
|
|
return Helper.makeRechargeProvider(stack);
|
|
|
|
else return null;
|
|
|
|
}
|
2018-10-19 18:32:20 +02:00
|
|
|
}
|