Advertisement
Guest User

Untitled

a guest
Jul 8th, 2015
221
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 3.76 KB | None | 0 0
  1. package com.wuppy.samsmod;
  2.  
  3. import java.util.List;
  4. import java.util.Random;
  5.  
  6. import net.minecraft.block.Block;
  7. import net.minecraft.block.material.Material;
  8. import net.minecraft.block.properties.PropertyEnum;
  9. import net.minecraft.block.state.BlockState;
  10. import net.minecraft.block.state.IBlockState;
  11. import net.minecraft.client.Minecraft;
  12. import net.minecraft.client.renderer.entity.RenderItem;
  13. import net.minecraft.client.resources.model.ModelBakery;
  14. import net.minecraft.client.resources.model.ModelResourceLocation;
  15. import net.minecraft.creativetab.CreativeTabs;
  16. import net.minecraft.item.Item;
  17. import net.minecraft.item.ItemStack;
  18. import net.minecraft.util.IStringSerializable;
  19. import net.minecraftforge.fml.common.registry.GameRegistry;
  20. import net.minecraftforge.fml.relauncher.Side;
  21. import net.minecraftforge.fml.relauncher.SideOnly;
  22.  
  23. public class BlockSamStone extends Block
  24. {
  25.     public static final PropertyEnum VARIANT = PropertyEnum.create("variant", BlockSamStone.BlockType.class);
  26.  
  27.     String name = "samStone";
  28.  
  29.     public BlockSamStone()
  30.     {
  31.         super(Material.rock);
  32.         GameRegistry.registerBlock(this, ItemSamStoneBlock.class, name);
  33.         setUnlocalizedName(SamsMod.MODID + "_" + name);
  34.  
  35.         setHardness(2F);
  36.         setResistance(5F);
  37.         setStepSound(soundTypeStone);
  38.         setHarvestLevel("pickaxe", 2);
  39.  
  40.         setCreativeTab(CreativeTabs.tabBlock);
  41.     }
  42.  
  43.     @Override
  44.     public Item getItemDropped(IBlockState state, Random rand, int fortune)
  45.     {
  46.         if(state.getValue(VARIANT) == BlockType.SAMORE)
  47.             return SamsMod.samdust;
  48.         else
  49.             return super.getItemDropped(state, rand, fortune);
  50.     }
  51.    
  52.     @SuppressWarnings({ "unchecked", "rawtypes" })
  53.     @SideOnly(Side.CLIENT)
  54.     @Override
  55.     public void getSubBlocks(Item par1, CreativeTabs par2CreativeTabs, List par3List)
  56.     {
  57.         for (int var4 = 0; var4 < BlockSamStone.BlockType.values().length; ++var4)
  58.         {
  59.             par3List.add(new ItemStack(par1, 1, var4));
  60.         }
  61.     }
  62.  
  63.     public String getName()
  64.     {
  65.         return name;
  66.     }
  67.  
  68.     @Override
  69.     public IBlockState getStateFromMeta(int meta)
  70.     {
  71.         return this.getDefaultState().withProperty(VARIANT, BlockSamStone.BlockType.byID(meta));
  72.     }
  73.  
  74.     @Override
  75.     public int getMetaFromState(IBlockState state)
  76.     {
  77.         return ((BlockSamStone.BlockType) state.getValue(VARIANT)).getID();
  78.     }
  79.  
  80.     @Override
  81.     protected BlockState createBlockState()
  82.     {
  83.         return new BlockState(this, VARIANT);
  84.     }
  85.    
  86.     public static enum BlockType implements IStringSerializable
  87.     {
  88.         SAMORE(0, "ore"),
  89.         SAMWALL(1, "wall");
  90.  
  91.         private final int id;
  92.         private final String name;
  93.  
  94.         private BlockType(int id, String name)
  95.         {
  96.             this.id = id;
  97.             this.name = name;
  98.         }
  99.  
  100.         static
  101.         {
  102.             BlockSamStone.BlockType[] values = values();
  103.  
  104.             for (BlockType type : values)
  105.             {
  106.                 values()[type.getID()] = type;
  107.             }
  108.         }
  109.        
  110.         @Override
  111.         public String getName()
  112.         {
  113.             return name;
  114.         }
  115.        
  116.         public int getID()
  117.         {
  118.             return id;
  119.         }
  120.        
  121.         public static BlockSamStone.BlockType byID(int id)
  122.         {
  123.             if (id < 0 || id >= values().length)
  124.             {
  125.                 id = 0;
  126.             }
  127.  
  128.             return values()[id];
  129.         }
  130.        
  131.         private String getResouceLocation()
  132.         {
  133.             return SamsMod.MODID + ":" + name;
  134.         }
  135.  
  136.         public static void registerVariants()
  137.         {
  138.             String[] variants = new String[values().length];
  139.  
  140.             for (int i = 0; i < values().length; i++)
  141.             {
  142.                 variants[i] = values()[i].getResouceLocation();
  143.             }
  144.  
  145.             ModelBakery.addVariantName(Item.getItemFromBlock(SamsMod.samStone), variants);
  146.         }
  147.        
  148.         public static void registerRenders()
  149.         {
  150.             RenderItem renderItem = Minecraft.getMinecraft().getRenderItem();
  151.  
  152.             for (int i = 0; i < values().length; i++)
  153.             {
  154.                 renderItem.getItemModelMesher().register(Item.getItemFromBlock(SamsMod.samStone), i, new ModelResourceLocation(values()[i].getResouceLocation(), "inventory"));
  155.             }
  156.         }
  157.     }
  158. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement