Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package net.railsofwar.row.track.block;
- import net.minecraft.block.Block;
- import net.minecraft.block.material.Material;
- import net.minecraft.block.state.IBlockState;
- import net.minecraft.creativetab.CreativeTabs;
- import net.minecraft.entity.EntityLivingBase;
- import net.minecraft.entity.player.EntityPlayer;
- import net.minecraft.item.ItemStack;
- import net.minecraft.tileentity.TileEntity;
- import net.minecraft.util.BlockRenderLayer;
- import net.minecraft.util.EnumBlockRenderType;
- import net.minecraft.util.EnumFacing;
- import net.minecraft.util.EnumHand;
- import net.minecraft.util.math.BlockPos;
- import net.minecraft.world.IBlockAccess;
- import net.minecraft.world.World;
- import net.minecraftforge.fml.relauncher.Side;
- import net.minecraftforge.fml.relauncher.SideOnly;
- import net.railsofwar.row.RoW;
- import net.railsofwar.row.track.enumeration.EnumTrackDirectionSWNE;
- import net.railsofwar.row.track.tileentity.TilePointer;
- import javax.annotation.Nullable;
- public class BlockPointer extends Block{
- public BlockPointer(){
- super(Material.IRON);
- setRegistryName("blockPointer");
- setUnlocalizedName(RoW.modID + "." + "blockPointer");
- setCreativeTab(CreativeTabs.TRANSPORTATION);
- }
- @Override
- public boolean onBlockActivated(World world, BlockPos pos, IBlockState state, EntityPlayer player, EnumHand hand, @Nullable ItemStack heldItem, EnumFacing side, float hitX, float hitY, float hitZ){
- if(!world.isRemote){
- TilePointer tile = (TilePointer) world.getTileEntity(pos);
- if(tile != null){
- tile.activated = !tile.activated;
- world.notifyBlockUpdate(pos, state, world.getBlockState(pos), 3);
- return true;
- }
- }
- return false;
- }
- @Override
- public void onBlockPlacedBy(World world, BlockPos pos, IBlockState state, EntityLivingBase placer, ItemStack stack){
- if(world.isRemote) return;
- TilePointer tile = (TilePointer) world.getTileEntity(pos);
- if(tile != null){
- tile.direction = EnumTrackDirectionSWNE.fromAngle(placer.rotationYaw);
- if(tile.direction == null) tile.direction = EnumTrackDirectionSWNE.SOUTH;
- world.notifyBlockUpdate(pos, state, state, 3);
- }
- }
- @Override
- public boolean hasTileEntity(IBlockState state){
- return true;
- }
- @Override
- public TileEntity createTileEntity(World world, IBlockState state){
- return new TilePointer();
- }
- /*----- RENDERING STUFF -----*/
- @Override
- @SideOnly(Side.CLIENT)
- public BlockRenderLayer getBlockLayer(){
- return BlockRenderLayer.CUTOUT;
- }
- @Override
- @SideOnly(Side.CLIENT)
- public boolean shouldSideBeRendered(IBlockState blockState, IBlockAccess worldIn, BlockPos pos, EnumFacing side){
- return true;
- }
- @Override
- public boolean isBlockNormalCube(IBlockState blockState){
- return false;
- }
- @Override
- public boolean isFullBlock(IBlockState state){
- return false;
- }
- @Override
- public boolean isFullCube(IBlockState state){
- return false;
- }
- @Override
- public boolean isOpaqueCube(IBlockState blockState){
- return false;
- }
- @Override
- public EnumBlockRenderType getRenderType(IBlockState state){
- return EnumBlockRenderType.ENTITYBLOCK_ANIMATED;
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement