package com.jaquadro.minecraft.gardencontainers.item;
import com.jaquadro.minecraft.gardencontainers.GardenContainers;
import com.jaquadro.minecraft.gardencontainers.config.PatternConfig;
import com.jaquadro.minecraft.gardencontainers.core.ModItems;
import com.jaquadro.minecraft.gardencore.core.ModCreativeTabs;
import cpw.mods.fml.relauncher.Side;
import cpw.mods.fml.relauncher.SideOnly;
import net.minecraft.block.Block;
import net.minecraft.block.BlockCauldron;
import net.minecraft.entity.item.EntityItem;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.item.Item;
import net.minecraft.item.ItemStack;
import net.minecraft.util.StatCollector;
import net.minecraft.world.World;
import java.util.List;
public class ItemPotteryPatternDirty extends Item
{
public ItemPotteryPatternDirty (String unlocalizedName) {
setUnlocalizedName(unlocalizedName);
setMaxStackSize(64);
setHasSubtypes(false);
setTextureName(GardenContainers.MOD_ID + ":pottery_pattern_dirt");
setCreativeTab(ModCreativeTabs.tabGardenCore);
}
@SideOnly(Side.CLIENT)
@Override
public void addInformation (ItemStack itemStack, EntityPlayer player, List list, boolean par4) {
for (String s : StatCollector.translateToLocal("item.gardencontainers.potteryPatternDirty.description").split("\\\\n"))
list.add(s);
}
@Override
public boolean onItemUse (ItemStack itemStack, EntityPlayer player, World world, int x, int y, int z, int side, float hitX, float hitY, float hitZ) {
if (side != 1)
return false;
Block block = world.getBlock(x, y, z);
int meta = world.getBlockMetadata(x, y, z);
if (block instanceof BlockCauldron) {
int waterLevel = BlockCauldron.func_150027_b(meta);
if (waterLevel == 0)
return false;
int index = getPatternIndex(world);
if (index == -1)
return false;
PatternConfig pattern = GardenContainers.config.getPattern(index);
if (pattern == null)
return false;
ItemStack stamp = new ItemStack(ModItems.potteryPattern, 1, pattern.getId());
itemStack.stackSize--;
world.spawnEntityInWorld(new EntityItem(world, x + .5, y + 1.5, z + .5, stamp));
return true;
}
return false;
}
private int getPatternIndex (World world) {
int count = GardenContainers.config.getPatternCount();
int[] accumWeights = new int[count + 1];
if (count == 0)
return -1;
for (int i = 1; i <= count; i++) {
PatternConfig pattern = GardenContainers.config.getPattern(i);
accumWeights[i] = accumWeights[i - 1] + pattern.getWeight();
}
int maxWeight = accumWeights[accumWeights.length - 1];
if (maxWeight == 0)
return -1;
int pick = world.rand.nextInt(maxWeight);
int index = 1;
for (int i = 1; i <= count; i++) {
if (pick >= accumWeights[i - 1])
index = i;
}
return index;
}
}