/*
* Copyright (c) CovertJaguar, 2014 http://railcraft.info
*
* This code is the property of CovertJaguar
* and may only be used with explicit written
* permission unless otherwise specified on the
* license page at http://railcraft.info/wiki/info:license.
*/
package mods.railcraft.common.blocks.anvil;
import mods.railcraft.common.core.RailcraftConfig;
import mods.railcraft.common.gui.EnumGui;
import mods.railcraft.common.gui.GuiHandler;
import mods.railcraft.common.plugins.forestry.ForestryPlugin;
import mods.railcraft.common.plugins.forge.CreativePlugin;
import mods.railcraft.common.plugins.forge.HarvestPlugin;
import mods.railcraft.common.plugins.forge.RailcraftRegistry;
import net.minecraft.block.Block;
import net.minecraft.block.BlockAnvil;
import net.minecraft.client.renderer.texture.IIconRegister;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.item.ItemStack;
import net.minecraft.util.IIcon;
import net.minecraft.world.World;
/**
*
* @author CovertJaguar <http://www.railcraft.info/>
*/
public class BlockRCAnvil extends BlockAnvil {
private static final String[] anvilIconNames = new String[]{"anvil_top_damaged_0", "anvil_top_damaged_1", "anvil_top_damaged_2"};
private static Block block;
public static Block getBlock() {
return block;
}
public static void registerBlock() {
if (block == null) {
String tag = "railcraft.anvil";
if (RailcraftConfig.isBlockEnabled(tag)) {
block = new BlockRCAnvil().setBlockName(tag);
RailcraftRegistry.register(block, ItemAnvilBlock.class);
ForestryPlugin.addBackpackItem("builder", block);
HarvestPlugin.setHarvestLevel(block, "pickaxe", 2);
}
}
}
public static ItemStack getStack() {
return new ItemStack(block);
}
private IIcon[] iconArray;
public BlockRCAnvil() {
setCreativeTab(CreativePlugin.RAILCRAFT_TAB);
setHardness(5.0F);
setStepSound(Block.soundTypeAnvil);
setResistance(2000.0F);
}
@Override
public IIcon getIcon(int par1, int par2) {
if (this.anvilRenderSide == 3 && par1 == 1) {
int k = (par2 >> 2) % this.iconArray.length;
return this.iconArray[k];
} else
return this.blockIcon;
}
@Override
public void registerBlockIcons(IIconRegister iconRegister) {
this.blockIcon = iconRegister.registerIcon("railcraft:anvil_base");
this.iconArray = new IIcon[anvilIconNames.length];
for (int i = 0; i < this.iconArray.length; ++i) {
this.iconArray[i] = iconRegister.registerIcon("railcraft:" + anvilIconNames[i]);
}
}
@Override
public boolean onBlockActivated(World world, int x, int y, int z, EntityPlayer player, int side, float hitX, float hitY, float hitZ) {
if (world.isRemote)
return true;
else {
GuiHandler.openGui(EnumGui.ANVIL, player, world, x, y, z);
return true;
}
}
}