Advertisement
Guest User

BlockNetherrackFurnace.java

a guest
Jul 1st, 2017
83
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 3.85 KB | None | 0 0
  1. package qwertyasdef.alchemtrans.block;
  2.  
  3. import net.minecraft.block.Block;
  4. import net.minecraft.block.ITileEntityProvider;
  5. import net.minecraft.block.material.Material;
  6. import net.minecraft.block.properties.PropertyDirection;
  7. import net.minecraft.block.state.BlockStateContainer;
  8. import net.minecraft.block.state.IBlockState;
  9. import net.minecraft.client.renderer.block.model.ModelResourceLocation;
  10. import net.minecraft.entity.EntityLivingBase;
  11. import net.minecraft.entity.player.EntityPlayer;
  12. import net.minecraft.inventory.InventoryHelper;
  13. import net.minecraft.item.Item;
  14. import net.minecraft.item.ItemStack;
  15. import net.minecraft.tileentity.TileEntity;
  16. import net.minecraft.util.EnumFacing;
  17. import net.minecraft.util.EnumHand;
  18. import net.minecraft.util.math.BlockPos;
  19. import net.minecraft.world.World;
  20. import net.minecraftforge.client.model.ModelLoader;
  21. import net.minecraftforge.fml.relauncher.Side;
  22. import net.minecraftforge.fml.relauncher.SideOnly;
  23. import qwertyasdef.alchemtrans.AlchemTrans;
  24. import qwertyasdef.alchemtrans.Tile.TileNetherrackFurnace;
  25.  
  26. public class BlockNetherrackFurnace extends Block implements ITileEntityProvider {
  27.  
  28.     public static final int GUI_ID = 0;
  29.     public static final PropertyDirection FACING = PropertyDirection.create("facing", EnumFacing.Plane.HORIZONTAL);
  30.  
  31.    
  32.     private String name = "netherrack_furnace";
  33.  
  34.     public BlockNetherrackFurnace() {
  35.         super(Material.ROCK);
  36.         this.setRegistryName(name);
  37.         this.setUnlocalizedName(AlchemTrans.MODID + "." + name);
  38.  
  39.         this.setHarvestLevel("pickaxe", 0);
  40.         this.setHardness(5F);
  41.         this.setResistance(25F);
  42.         this.setLightLevel(1F);
  43.  
  44.         this.setDefaultState(this.blockState.getBaseState().withProperty(FACING, EnumFacing.NORTH));
  45.         this.isBlockContainer = true;
  46.     }
  47.  
  48.     @SideOnly(Side.CLIENT)
  49.     public void initModel() {
  50.         ModelLoader.setCustomModelResourceLocation(Item.getItemFromBlock(this), 0, new ModelResourceLocation(getRegistryName(), "inventory"));
  51.     }
  52.  
  53.     // Tile Entity
  54.     @Override
  55.     public TileEntity createNewTileEntity(World worldIn, int meta) {
  56.         return new TileNetherrackFurnace();
  57.     }
  58.  
  59.     @Override
  60.     public void breakBlock(World world, BlockPos pos, IBlockState state) {
  61.         TileNetherrackFurnace tileEntity = (TileNetherrackFurnace) world.getTileEntity(pos);
  62.         InventoryHelper.dropInventoryItems(world, pos, tileEntity);
  63.  
  64.         super.breakBlock(world, pos, state);
  65.         world.removeTileEntity(pos);
  66.     }
  67.  
  68.     @Override
  69.     public void onBlockPlacedBy( World worldIn,  BlockPos pos,  IBlockState state,  EntityLivingBase placer,  ItemStack stack) {
  70.         worldIn.setBlockState(pos, state.withProperty(FACING, placer.getHorizontalFacing().getOpposite()), 2);
  71.  
  72.         if (stack.hasDisplayName()) {
  73.             ((TileNetherrackFurnace) worldIn.getTileEntity(pos)).setCustomName(stack.getDisplayName());
  74.         }
  75.     }
  76.  
  77.     @Override
  78.     public boolean onBlockActivated( World world,  BlockPos pos, IBlockState state,  EntityPlayer player, EnumHand hand, EnumFacing side, float hitX, float hitY, float hitZ) {
  79.         if (world.isRemote) {
  80.             return true;
  81.         }
  82.  
  83.         TileEntity tileEntity = world.getTileEntity(pos);
  84.         if (tileEntity != null) {
  85.             player.openGui(AlchemTrans.instance, GUI_ID, world, pos.getX(), pos.getY(), pos.getZ());
  86.         }
  87.  
  88.         return true;
  89.     }
  90.  
  91.    
  92.     @Override
  93.     public IBlockState getStateFromMeta(int meta) {
  94.         return getDefaultState().withProperty(FACING, EnumFacing.getHorizontal(meta));
  95.     }
  96.  
  97.     @Override
  98.     public int getMetaFromState(IBlockState state) {
  99.         return state.getValue(FACING).getIndex();
  100.     }
  101.  
  102.    
  103.     @Override
  104.     protected BlockStateContainer createBlockState() {
  105.         return new BlockStateContainer(this, FACING);
  106.     }
  107. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement