package net.minecraftforge.debug;
import net.minecraft.block.Block;
import net.minecraft.block.state.IBlockState;
import net.minecraft.client.renderer.ItemMeshDefinition;
import net.minecraft.client.renderer.block.model.ModelBakery;
import net.minecraft.client.renderer.block.model.ModelResourceLocation;
import net.minecraft.creativetab.CreativeTabs;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.item.Item;
import net.minecraft.item.ItemStack;
import net.minecraft.util.EnumActionResult;
import net.minecraft.util.EnumFacing;
import net.minecraft.util.EnumHand;
import net.minecraft.util.ResourceLocation;
import net.minecraft.util.math.BlockPos;
import net.minecraft.world.World;
import net.minecraftforge.client.model.ModelLoader;
import net.minecraftforge.fml.common.Mod;
import net.minecraftforge.fml.common.SidedProxy;
import net.minecraftforge.fml.common.event.FMLPreInitializationEvent;
import net.minecraftforge.fml.common.registry.GameRegistry;
@Mod(modid = WrenchRotateDebug.modID, name = "Wrench Rotate Debug", version = "0.0.0")
public class WrenchRotateDebug
{
public static final String modID = "wrenchrotatedebug";
private static final ResourceLocation testWrenchName = new ResourceLocation(modID, "test_wrench");
@SidedProxy
public static CommonProxy proxy;
@Mod.EventHandler
public void preInit(FMLPreInitializationEvent event)
{
TestWrench wrench = new TestWrench();
wrench.setRegistryName(testWrenchName);
GameRegistry.register(wrench);
proxy.setupModel(wrench);
}
public static class CommonProxy
{
void setupModel(TestWrench wrench)
{
}
}
public static class ServerProxy extends CommonProxy
{
}
public static class ClientProxy extends CommonProxy
{
@SuppressWarnings("unused")
@Override
void setupModel(TestWrench wrench)
{
final ModelResourceLocation wrenchName = new ModelResourceLocation(testWrenchName, "inventory");
ModelBakery.registerItemVariants(wrench, wrenchName);
ModelLoader.setCustomMeshDefinition(wrench, new ItemMeshDefinition()
{
@Override
public ModelResourceLocation getModelLocation(ItemStack stack)
{
return wrenchName;
}
});
}
}
public static class TestWrench extends Item
{
public TestWrench()
{
setCreativeTab(CreativeTabs.TOOLS);
setMaxStackSize(1);
setHarvestLevel("wrench", 0);
}
@Override
public EnumActionResult onItemUse(EntityPlayer player, World worldIn, BlockPos pos, EnumHand hand, EnumFacing facing, float hitX, float hitY, float hitZ)
{
ItemStack wrench = player.getHeldItem(hand);
if (player.canPlayerEdit(pos, facing, wrench) && worldIn.isBlockModifiable(player, pos))
{
IBlockState blockState = worldIn.getBlockState(pos);
Block block = blockState.getBlock();
if (block.rotateBlock(worldIn, pos, facing))
{
player.swingArm(hand);
worldIn.notifyNeighborsOfStateChange(pos, block, false);
return EnumActionResult.SUCCESS;
}
}
return EnumActionResult.FAIL;
}
@Override
public String getItemStackDisplayName(ItemStack stack)
{
return "Forge Test Wrench";
}
}
}