Advertisement
Guest User

Blockores help

a guest
May 9th, 2018
132
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 6.23 KB | None | 0 0
  1. package com.hobos.objects.blocks;
  2.  
  3. import java.util.Random;
  4.  
  5. import com.hobos.Main;
  6. import com.hobos.init.BlockInit;
  7. import com.hobos.init.ItemInit;
  8. import com.hobos.objects.blocks.item.ItemBlockVariants;
  9. import com.hobos.util.handlers.EnumHandler;
  10. import com.hobos.util.handlers.EnumHandler.EnumType;
  11. import com.hobos.util.interfaces.IHasModel;
  12. import com.hobos.util.interfaces.IMetaName;
  13.  
  14. import net.minecraft.block.Block;
  15. import net.minecraft.block.material.Material;
  16. import net.minecraft.block.properties.IProperty;
  17. import net.minecraft.block.properties.PropertyEnum;
  18. import net.minecraft.block.state.BlockStateContainer;
  19. import net.minecraft.block.state.IBlockState;
  20. import net.minecraft.creativetab.CreativeTabs;
  21. import net.minecraft.entity.player.EntityPlayer;
  22. import net.minecraft.item.Item;
  23. import net.minecraft.item.ItemStack;
  24. import net.minecraft.util.NonNullList;
  25. import net.minecraft.util.math.BlockPos;
  26. import net.minecraft.util.math.RayTraceResult;
  27. import net.minecraft.world.World;
  28.  
  29.  
  30. public class BlockOres extends Block implements IHasModel, IMetaName{
  31.    
  32.     public static final PropertyEnum<EnumHandler.EnumType> VARIANT = PropertyEnum.<EnumHandler.EnumType>create("variant", EnumHandler.EnumType.class);
  33.    
  34.    
  35.     private String name, dimension;
  36.    
  37.     public BlockOres(String name, String dimension) {
  38.        
  39.         super(Material.ROCK);
  40.         setUnlocalizedName(name);
  41.         setRegistryName(name);
  42.         setCreativeTab(CreativeTabs.BUILDING_BLOCKS);
  43.         setDefaultState(this.blockState.getBaseState().withProperty(VARIANT, EnumHandler.EnumType.WATER));
  44.         setDefaultState(this.blockState.getBaseState().withProperty(VARIANT, EnumHandler.EnumType.FIRE));
  45.         setDefaultState(this.blockState.getBaseState().withProperty(VARIANT, EnumHandler.EnumType.ICE));
  46.         setDefaultState(this.blockState.getBaseState().withProperty(VARIANT, EnumHandler.EnumType.NATURE));
  47.         setDefaultState(this.blockState.getBaseState().withProperty(VARIANT, EnumHandler.EnumType.EARTH));
  48.         setDefaultState(this.blockState.getBaseState().withProperty(VARIANT, EnumHandler.EnumType.METAL));
  49.        
  50.         this.name = name;
  51.         this.dimension = dimension;
  52.        
  53.         BlockInit.BLOCKS.add(this);
  54.         ItemInit.ITEMS.add(new ItemBlockVariants(this).setRegistryName(this.getRegistryName()));
  55.        
  56.     }
  57.    
  58.     @Override
  59.     public int damageDropped(IBlockState state) {
  60.        
  61.         return ((EnumHandler.EnumType)state.getValue(VARIANT)).getMeta();
  62.     }
  63.    
  64.     @Override
  65.     public int getMetaFromState(IBlockState state) {
  66.        
  67.         return ((EnumHandler.EnumType)state.getValue(VARIANT)).getMeta();
  68.     }
  69.    
  70.     @Override
  71.     public IBlockState getStateFromMeta(int meta) {
  72.        
  73.         return this.getDefaultState().withProperty(VARIANT, EnumHandler.EnumType.byMetaData(meta));
  74.     }
  75.    
  76.     @Override
  77.     public ItemStack getPickBlock(IBlockState state, RayTraceResult target, World world, BlockPos pos,
  78.             EntityPlayer player) {
  79.        
  80.         return new ItemStack(Item.getItemFromBlock(this), 1, getMetaFromState(world.getBlockState(pos)));
  81.     }
  82.    
  83.     @Override
  84.     public void getSubBlocks(CreativeTabs itemIn, NonNullList<ItemStack> items) {
  85.        
  86.         for(EnumHandler.EnumType variant : EnumHandler.EnumType.values()){
  87.            
  88.             items.add(new ItemStack(this, 1, variant.getMeta()));
  89.            
  90.         }
  91.     }
  92.    
  93.    
  94.     @Override
  95.     protected BlockStateContainer createBlockState() {
  96.        
  97.         return new BlockStateContainer(this, new IProperty[] {VARIANT} );
  98.        
  99.     }
  100.    
  101.     @Override
  102.     public String getSpecialName(ItemStack stack) {
  103.        
  104.         return EnumHandler.EnumType.values()[stack.getItemDamage()].getName();
  105.     }
  106.  
  107.     @Override
  108.     public void registerModels() {
  109.        
  110.         for(int i = 0; i < EnumHandler.EnumType.values().length; i++){
  111.            
  112.             Main.proxy.registerVariantRenderer(Item.getItemFromBlock(this), i, "ore_" + this.dimension + "_" + EnumHandler.EnumType.values()[i].getName(), "inventory");
  113.         }
  114.        
  115.     }
  116.    
  117.     @Override
  118.     public Item getItemDropped(IBlockState state, Random rand, int fortune){
  119.        
  120.         if(state == this.getDefaultState().withProperty(VARIANT, EnumHandler.EnumType.FIRE)){
  121.             return ItemInit.FIRE_MANA_NUGGET;
  122.         }
  123.        
  124.         if(state == this.getDefaultState().withProperty(VARIANT, EnumHandler.EnumType.WATER)){
  125.             return ItemInit.WATER_MANA_NUGGET;
  126.         }
  127.        
  128.         if(state == this.getDefaultState().withProperty(VARIANT, EnumHandler.EnumType.ICE)){
  129.             return ItemInit.ICE_MANA_NUGGET;
  130.         }
  131.        
  132.         if(state == this.getDefaultState().withProperty(VARIANT, EnumHandler.EnumType.METAL)){
  133.             return ItemInit.METAL_MANA_NUGGET;
  134.         }
  135.        
  136.         if(state == this.getDefaultState().withProperty(VARIANT, EnumHandler.EnumType.NATURE)){
  137.             return ItemInit.NATURE_MANA_NUGGET;
  138.         }
  139.        
  140.         if(state == this.getDefaultState().withProperty(VARIANT, EnumHandler.EnumType.EARTH)){
  141.             return ItemInit.EARTH_MANA_NUGGET;
  142.         }
  143.        
  144.         return Item.getItemFromBlock(this);
  145.        
  146.     }
  147.    
  148.     @Override
  149.     public int quantityDropped(IBlockState state, int fortune, Random random)
  150.     {
  151.         if(state.getValue(VARIANT) == EnumType.FIRE)
  152.         {
  153.             return 2 + random.nextInt(4 - 2 + fortune + 1);
  154.         }
  155.         if(state.getValue(VARIANT) == EnumType.WATER)
  156.         {
  157.             return 2 + random.nextInt(4 - 2 + fortune + 1);
  158.         }
  159.         if(state.getValue(VARIANT) == EnumType.ICE)
  160.         {
  161.             return 2 + random.nextInt(4 - 2 + fortune + 1);
  162.         }
  163.         if(state.getValue(VARIANT) == EnumType.EARTH)
  164.         {
  165.             return 2 + random.nextInt(4 - 2 + fortune + 1);
  166.         }
  167.         if(state.getValue(VARIANT) == EnumType.METAL)
  168.         {
  169.             return 2 + random.nextInt(4 - 2 + fortune + 1);
  170.         }
  171.         if(state.getValue(VARIANT) == EnumType.NATURE)
  172.         {
  173.             return 2 + random.nextInt(4 - 2 + fortune + 1);
  174.         }
  175.        
  176.         return fortune + 1;
  177.     }
  178.  
  179. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement