package mekanism.common.block;
import static mekanism.common.block.states.BlockStatePlastic.colorProperty;
import java.util.List;
import mekanism.api.EnumColor;
import mekanism.common.Mekanism;
import net.minecraft.block.BlockFence;
import net.minecraft.block.material.Material;
import net.minecraft.block.properties.IProperty;
import net.minecraft.block.state.BlockStateContainer;
import net.minecraft.block.state.IBlockState;
import net.minecraft.client.renderer.block.model.ModelResourceLocation;
import net.minecraft.client.renderer.block.statemap.StateMapperBase;
import net.minecraft.creativetab.CreativeTabs;
import net.minecraft.item.EnumDyeColor;
import net.minecraft.item.Item;
import net.minecraft.item.ItemStack;
import net.minecraft.util.ResourceLocation;
import net.minecraftforge.fml.relauncher.Side;
import net.minecraftforge.fml.relauncher.SideOnly;
public class BlockPlasticFence extends BlockFence
{
public BlockPlasticFence()
{
super(Material.CLAY, Material.CLAY.getMaterialMapColor());
setCreativeTab(Mekanism.tabMekanism);
}
@Override
protected BlockStateContainer createBlockState()
{
return new BlockStateContainer(this, new IProperty[] {NORTH, EAST, WEST, SOUTH, colorProperty});
}
@Override
public IBlockState getStateFromMeta(int meta)
{
return this.getDefaultState().withProperty(colorProperty, EnumDyeColor.byDyeDamage(meta));
}
@Override
public int getMetaFromState(IBlockState state)
{
return state.getValue(colorProperty).getDyeDamage();
}
@Override
@SideOnly(Side.CLIENT)
public void getSubBlocks(Item item, CreativeTabs creativetabs, List<ItemStack> list)
{
for(int i = 0; i < EnumColor.DYES.length; i++)
{
list.add(new ItemStack(item, 1, i));
}
}
@Override
public int damageDropped(IBlockState state)
{
return getMetaFromState(state);
}
public static class PlasticFenceStateMapper extends StateMapperBase
{
@Override
protected ModelResourceLocation getModelResourceLocation(IBlockState state)
{
String properties = "east=" + state.getValue(EAST) + ",";
properties += "north=" + state.getValue(NORTH) + ",";
properties += "south=" + state.getValue(SOUTH) + ",";
properties += "west=" + state.getValue(WEST);
ResourceLocation baseLocation = new ResourceLocation("mekanism", "PlasticFence");
return new ModelResourceLocation(baseLocation, properties);
}
}
}