Camellias_

BlockTimeAnomaly.class

Feb 17th, 2018
191
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 4.70 KB | None | 0 0
  1. package com.camellias.temporalmod.blocks;
  2.  
  3. import java.util.List;
  4. import java.util.Random;
  5.  
  6. import javax.annotation.Nullable;
  7.  
  8. import com.camellias.temporalmod.init.ModBlocks;
  9. import com.camellias.temporalmod.init.ModItems;
  10. import com.camellias.temporalmod.tileentities.TileEntityTimeAnomaly;
  11. import com.camellias.temporalmod.util.IHasModel;
  12.  
  13. import ca.weblite.objc.Client;
  14. import net.minecraft.block.Block;
  15. import net.minecraft.block.material.Material;
  16. import net.minecraft.block.state.IBlockState;
  17. import net.minecraft.entity.Entity;
  18. import net.minecraft.entity.EntityLivingBase;
  19. import net.minecraft.entity.player.EntityPlayer;
  20. import net.minecraft.init.MobEffects;
  21. import net.minecraft.item.ItemBlock;
  22. import net.minecraft.item.ItemStack;
  23. import net.minecraft.potion.Potion;
  24. import net.minecraft.potion.PotionEffect;
  25. import net.minecraft.tileentity.TileEntity;
  26. import net.minecraft.tileentity.TileEntityBanner;
  27. import net.minecraft.tileentity.TileEntityBeacon;
  28. import net.minecraft.util.EnumBlockRenderType;
  29. import net.minecraft.util.EnumParticleTypes;
  30. import net.minecraft.util.math.AxisAlignedBB;
  31. import net.minecraft.util.math.BlockPos;
  32. import net.minecraft.world.IBlockAccess;
  33. import net.minecraft.world.World;
  34. import net.minecraftforge.client.event.ClientChatEvent;
  35. import net.minecraftforge.fml.relauncher.Side;
  36. import net.minecraftforge.fml.relauncher.SideOnly;
  37.  
  38. public class BlockTimeAnomaly extends Block implements IHasModel
  39. {
  40.  
  41.     public BlockTimeAnomaly(Material materialIn, String name)
  42.     {
  43.         super(materialIn);
  44.        
  45.         this.setUnlocalizedName(name);
  46.         this.setRegistryName(name);
  47.        
  48.         ModBlocks.BLOCKS.add(this);
  49.         ModItems.ITEMS.add(new ItemBlock(this).setRegistryName(this.getUnlocalizedName()));
  50.     }
  51.    
  52.     @Nullable
  53.     public AxisAlignedBB getCollisionBoundingBox(IBlockState blockState, IBlockAccess worldIn, BlockPos pos)
  54.     {
  55.         return NULL_AABB;
  56.     }
  57.    
  58.     @Override
  59.     public boolean isPassable(IBlockAccess worldIn, BlockPos pos)
  60.     {
  61.         return true;
  62.     }
  63.    
  64.     @SideOnly(Side.CLIENT)
  65.     public void randomDisplayTick(IBlockState stateIn, World worldIn, BlockPos pos, Random rand)
  66.     {
  67.         for (int i = 0; i < 4; ++i)
  68.         {
  69.             double d0 = (double)((float)pos.getX() + rand.nextFloat());
  70.             double d1 = (double)((float)pos.getY() + rand.nextFloat());
  71.             double d2 = (double)((float)pos.getZ() + rand.nextFloat());
  72.             double d3 = ((double)rand.nextFloat() - 0.5D) * 0.5D;
  73.             double d4 = ((double)rand.nextFloat() - 0.5D) * 0.5D;
  74.             double d5 = ((double)rand.nextFloat() - 0.5D) * 0.5D;
  75.             int j = rand.nextInt(2) * 2 - 1;
  76.  
  77.             if (worldIn.getBlockState(pos.west()).getBlock() != this && worldIn.getBlockState(pos.east()).getBlock() != this)
  78.             {
  79.                 d0 = (double)pos.getX() + 0.5D + 0.25D * (double)j;
  80.                 d3 = (double)(rand.nextFloat() * 2.0F * (float)j);
  81.             }
  82.             else
  83.             {
  84.                 d2 = (double)pos.getZ() + 0.5D + 0.25D * (double)j;
  85.                 d5 = (double)(rand.nextFloat() * 2.0F * (float)j);
  86.             }
  87.  
  88.             worldIn.spawnParticle(EnumParticleTypes.END_ROD, d0, d1, d2, d3, d4, d5);
  89.         }
  90.     }
  91.    
  92.     @Override
  93.     public int quantityDropped(Random random)
  94.     {
  95.         return 0;
  96.     }
  97.    
  98.     @Override
  99.     public TileEntity createNewTileEntity(World worldIn, int meta)
  100.     {
  101.         return new TileEntityTimeAnomaly();
  102.     }
  103.    
  104.     @Override
  105.     public void onBlockPlacedBy(World worldIn, BlockPos pos, IBlockState state, EntityLivingBase placer, ItemStack stack)
  106.     {
  107.         super.onBlockPlacedBy(worldIn, pos, state, placer, stack);
  108.  
  109.         if (stack.hasDisplayName())
  110.         {
  111.             TileEntity tileentity = worldIn.getTileEntity(pos);
  112.  
  113.             if (tileentity instanceof TileEntityTimeAnomaly)
  114.             {
  115.                 ((TileEntityTimeAnomaly)tileentity).setName(stack.getDisplayName());
  116.             }
  117.         }
  118.     }
  119.    
  120.     @Override
  121.     public boolean isOpaqueCube(IBlockState state)
  122.     {
  123.         return false;
  124.     }
  125.    
  126.     @Override
  127.     public boolean isFullCube(IBlockState state)
  128.     {
  129.         return false;
  130.     }
  131.    
  132.     @Override
  133.     public EnumBlockRenderType getRenderType(IBlockState state)
  134.     {
  135.         return EnumBlockRenderType.INVISIBLE;
  136.     }
  137.    
  138.     /*public void addCollisionBoxToList(IBlockState state, World world, BlockPos pos, AxisAlignedBB entityBox, List<AxisAlignedBB> collidingBoxes, Entity entity)
  139.     {
  140.         if(entity instanceof EntityPlayer)
  141.         {  
  142.             ((EntityPlayer) entity).addPotionEffect(new PotionEffect(MobEffects.SPEED, 2, 20));
  143.         }
  144.        
  145.         super.addCollisionBoxToList(pos, entityBox, collidingBoxes, entityBox);
  146.     }*/
  147.    
  148.     @Override
  149.     public void registerModels()
  150.     {
  151.        
  152.     }
  153. }
Advertisement
Add Comment
Please, Sign In to add comment