Advertisement
Naitenne

BlockPointer

Jan 25th, 2017
219
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 3.11 KB | None | 0 0
  1. package net.railsofwar.row.track.block;
  2.  
  3. import net.minecraft.block.Block;
  4. import net.minecraft.block.material.Material;
  5. import net.minecraft.block.state.IBlockState;
  6. import net.minecraft.creativetab.CreativeTabs;
  7. import net.minecraft.entity.EntityLivingBase;
  8. import net.minecraft.entity.player.EntityPlayer;
  9. import net.minecraft.item.ItemStack;
  10. import net.minecraft.tileentity.TileEntity;
  11. import net.minecraft.util.BlockRenderLayer;
  12. import net.minecraft.util.EnumBlockRenderType;
  13. import net.minecraft.util.EnumFacing;
  14. import net.minecraft.util.EnumHand;
  15. import net.minecraft.util.math.BlockPos;
  16. import net.minecraft.world.IBlockAccess;
  17. import net.minecraft.world.World;
  18. import net.minecraftforge.fml.relauncher.Side;
  19. import net.minecraftforge.fml.relauncher.SideOnly;
  20. import net.railsofwar.row.RoW;
  21. import net.railsofwar.row.track.enumeration.EnumTrackDirectionSWNE;
  22. import net.railsofwar.row.track.tileentity.TilePointer;
  23.  
  24. import javax.annotation.Nullable;
  25.  
  26. public class BlockPointer extends Block{
  27.  
  28.     public BlockPointer(){
  29.         super(Material.IRON);
  30.         setRegistryName("blockPointer");
  31.         setUnlocalizedName(RoW.modID + "." + "blockPointer");
  32.         setCreativeTab(CreativeTabs.TRANSPORTATION);
  33.     }
  34.  
  35.     @Override
  36.     public boolean onBlockActivated(World world, BlockPos pos, IBlockState state, EntityPlayer player, EnumHand hand, @Nullable ItemStack heldItem, EnumFacing side, float hitX, float hitY, float hitZ){
  37.         if(!world.isRemote){
  38.             TilePointer tile = (TilePointer) world.getTileEntity(pos);
  39.             if(tile != null){
  40.                 tile.activated = !tile.activated;
  41.                 world.notifyBlockUpdate(pos, state, world.getBlockState(pos), 3);
  42.                 return true;
  43.             }
  44.         }
  45.         return false;
  46.     }
  47.  
  48.     @Override
  49.     public void onBlockPlacedBy(World world, BlockPos pos, IBlockState state, EntityLivingBase placer, ItemStack stack){
  50.         if(world.isRemote) return;
  51.         TilePointer tile = (TilePointer) world.getTileEntity(pos);
  52.         if(tile != null){
  53.             tile.direction = EnumTrackDirectionSWNE.fromAngle(placer.rotationYaw);
  54.             if(tile.direction == null) tile.direction = EnumTrackDirectionSWNE.SOUTH;
  55.             world.notifyBlockUpdate(pos, state, state, 3);
  56.         }
  57.     }
  58.  
  59.     @Override
  60.     public boolean hasTileEntity(IBlockState state){
  61.         return true;
  62.     }
  63.  
  64.     @Override
  65.     public TileEntity createTileEntity(World world, IBlockState state){
  66.         return new TilePointer();
  67.     }
  68.  
  69.     /*----- RENDERING STUFF -----*/
  70.  
  71.     @Override
  72.     @SideOnly(Side.CLIENT)
  73.     public BlockRenderLayer getBlockLayer(){
  74.         return BlockRenderLayer.CUTOUT;
  75.     }
  76.  
  77.     @Override
  78.     @SideOnly(Side.CLIENT)
  79.     public boolean shouldSideBeRendered(IBlockState blockState, IBlockAccess worldIn, BlockPos pos, EnumFacing side){
  80.         return true;
  81.     }
  82.  
  83.     @Override
  84.     public boolean isBlockNormalCube(IBlockState blockState){
  85.         return false;
  86.     }
  87.  
  88.     @Override
  89.     public boolean isFullBlock(IBlockState state){
  90.         return false;
  91.     }
  92.  
  93.     @Override
  94.     public boolean isFullCube(IBlockState state){
  95.         return false;
  96.     }
  97.  
  98.     @Override
  99.     public boolean isOpaqueCube(IBlockState blockState){
  100.         return false;
  101.     }
  102.  
  103.     @Override
  104.     public EnumBlockRenderType getRenderType(IBlockState state){
  105.         return EnumBlockRenderType.ENTITYBLOCK_ANIMATED;
  106.     }
  107. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement