Advertisement
Guest User

Untitled

a guest
Dec 26th, 2016
122
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 6.72 KB | None | 0 0
  1. package Shane2482.DeadPlanet.enums;
  2.  
  3. import net.minecraft.util.IStringSerializable;
  4.  
  5. public class block_enums
  6. {
  7. public enum basalt_enums implements IStringSerializable
  8. {
  9.  
  10. Rough("rough", 0),
  11. Smooth("smooth", 1),
  12. Brick("brick", 2),
  13. Chisel("chisel", 3);
  14.  
  15. private String name;
  16. private int meta;
  17.  
  18. private basalt_enums(String name, int meta)
  19. {
  20. this.name = name;
  21. this.meta = meta;
  22.  
  23. }
  24.  
  25. public String getName()
  26. {
  27. return name;
  28. }
  29.  
  30. public int getMeta()
  31. {
  32. return meta;
  33. }
  34.  
  35. @Override
  36. public String toString()
  37. {
  38. return getName();
  39. }
  40.  
  41. }
  42. }
  43.  
  44.  
  45.  
  46. ///////////////////////////////////////////////////////////////////////////////////////////
  47.  
  48.  
  49. package Shane2482.DeadPlanet.blocks;
  50.  
  51. import java.util.List;
  52.  
  53. import Shane2482.DeadPlanet.Reference;
  54. import Shane2482.DeadPlanet.enums.block_enums;
  55. import net.minecraft.block.Block;
  56. import net.minecraft.block.material.Material;
  57. import net.minecraft.block.properties.IProperty;
  58. import net.minecraft.block.properties.PropertyEnum;
  59. import net.minecraft.block.state.BlockStateContainer;
  60. import net.minecraft.block.state.IBlockState;
  61. import net.minecraft.creativetab.CreativeTabs;
  62. import net.minecraft.entity.player.EntityPlayer;
  63. import net.minecraft.item.Item;
  64. import net.minecraft.item.ItemStack;
  65. import net.minecraft.util.math.BlockPos;
  66. import net.minecraft.util.math.RayTraceResult;
  67. import net.minecraft.world.World;
  68.  
  69. public class basalt extends Block implements IMetaBlockName
  70. {
  71. public static final PropertyEnum<block_enums.basalt_enums> TYPE = PropertyEnum.<block_enums.basalt_enums> create("type", block_enums.basalt_enums.class);
  72.  
  73. public basalt()
  74. {
  75. super(Material.ROCK);
  76. setUnlocalizedName(Reference.DeadPlanetBlocks.Basalt.getUnlocalizedName());
  77. setRegistryName(Reference.DeadPlanetBlocks.Basalt.getRegistryName());
  78. setHarvestLevel("pickaxe", 1);
  79. setHardness(5.0f);
  80. setResistance(25.0f);
  81. //setCreativeTab();
  82. setDefaultState(this.blockState.getBaseState().withProperty(TYPE, block_enums.basalt_enums.Rough));
  83. }
  84.  
  85. @Override
  86. protected BlockStateContainer createBlockState()
  87. {
  88. return new BlockStateContainer(this, new IProperty[] {TYPE});
  89. }
  90.  
  91.  
  92. @Override
  93. public int getMetaFromState(IBlockState state)
  94. {
  95. block_enums.basalt_enums type = (block_enums.basalt_enums) state.getValue(TYPE);
  96. return type.getMeta();
  97. }
  98.  
  99. @Override
  100. public IBlockState getStateFromMeta(int meta)
  101. {
  102. return this.getDefaultState().withProperty(TYPE, block_enums.basalt_enums.values()[meta]);
  103. }
  104.  
  105.  
  106.  
  107. @Override
  108. public void getSubBlocks(Item item, CreativeTabs tab, List<ItemStack> list)
  109. {
  110. for (int i = 0; i < block_enums.basalt_enums.values().length; i++)
  111. {
  112. list.add(new ItemStack(item, 1, i));
  113. }
  114. }
  115.  
  116. @Override
  117. public int damageDropped(IBlockState state) {
  118. return getMetaFromState(state);
  119. }
  120.  
  121. @Override
  122. public ItemStack getPickBlock(IBlockState state, RayTraceResult target, World world, BlockPos pos,
  123. EntityPlayer player) {
  124.  
  125. return new ItemStack(Item.getItemFromBlock(this), 1, this.getMetaFromState(world.getBlockState(pos)));
  126. }
  127.  
  128. @Override
  129. public String getSpecialName(ItemStack stack)
  130. {
  131. return block_enums.basalt_enums.values()[stack.getItemDamage()].getName();
  132.  
  133. }
  134.  
  135.  
  136.  
  137. }
  138.  
  139. /////////////////////////////////////////////////////////////////////////////////////////
  140.  
  141.  
  142. package Shane2482.DeadPlanet.init;
  143.  
  144. import Shane2482.DeadPlanet.Reference;
  145. import Shane2482.DeadPlanet.blocks.basalt;
  146. import Shane2482.DeadPlanet.blocks.cracked_dirt;
  147. import Shane2482.DeadPlanet.blocks.item_blocks;
  148. import Shane2482.DeadPlanet.utils.Utils;
  149. import net.minecraft.block.Block;
  150. import net.minecraft.client.renderer.block.model.ModelResourceLocation;
  151. import net.minecraft.item.Item;
  152. import net.minecraft.item.ItemBlock;
  153. import net.minecraft.util.ResourceLocation;
  154. import net.minecraftforge.client.model.ModelLoader;
  155. import net.minecraftforge.fml.common.registry.GameRegistry;
  156.  
  157. public class ModBlocks
  158.  
  159. {
  160. public static Block Basalt;
  161. public static Block Cracked_Dirt;
  162.  
  163.  
  164.  
  165. public static void init()
  166. {
  167. Cracked_Dirt = new cracked_dirt();
  168. Basalt = new basalt();
  169. }
  170.  
  171. public static void register()
  172. {
  173. registerBlock(Cracked_Dirt);
  174. registerMetaBlock(Basalt);
  175.  
  176.  
  177. }
  178.  
  179. public static void registerRenders()
  180. {
  181. registerRender(Cracked_Dirt);
  182. registerRender(Basalt);
  183.  
  184. }
  185.  
  186. public static void registerBlock(Block block)
  187. {
  188. GameRegistry.register(block);
  189. GameRegistry.register(new ItemBlock(block).setRegistryName(block.getRegistryName()));
  190. Utils.getLogger().info("Registered block: " + block.getUnlocalizedName().substring(5));
  191. }
  192.  
  193. public static void registerMetaBlock(Block block)
  194. {
  195. GameRegistry.register(block);
  196. item_blocks item = new item_blocks(block);
  197. item.setRegistryName(block.getRegistryName());
  198. GameRegistry.register(item);
  199. Utils.getLogger().info("Registered block: " + block.getRegistryName());
  200. }
  201.  
  202. public static void registerRender(Block block)
  203. {
  204. Item item = Item.getItemFromBlock(block);
  205. ModelLoader.setCustomModelResourceLocation(Item.getItemFromBlock(block), 0, new ModelResourceLocation(new ResourceLocation(Reference.MOD_ID, block.getUnlocalizedName().substring(5)), "inventory"));
  206. }
  207.  
  208. public static void registerRender(Block block, int meta, String filename)
  209. {
  210. ModelLoader.setCustomModelResourceLocation(Item.getItemFromBlock(block), meta, new ModelResourceLocation(new ResourceLocation(Reference.MOD_ID, filename), "inventory"));
  211. }
  212. }
  213.  
  214. ///////////////////////////////////////////////////////////////////////////////////
  215.  
  216. package Shane2482.DeadPlanet.blocks;
  217.  
  218. import net.minecraft.block.Block;
  219. import net.minecraft.item.ItemBlock;
  220. import net.minecraft.item.ItemStack;
  221. import scala.reflect.internal.Trees.If;
  222.  
  223. public class item_blocks extends ItemBlock
  224. {
  225.  
  226. public item_blocks(Block block)
  227. {
  228. super(block);
  229. if (!(block instanceof IMetaBlockName))
  230. {
  231. throw new IllegalArgumentException(String.format("The given Block %s is not an instance of IMetaBlockName", block.getUnlocalizedName()));
  232. }
  233. setHasSubtypes(true);
  234. setMaxDamage(0);
  235. }
  236.  
  237. @Override
  238. public String getUnlocalizedName(ItemStack stack) {
  239.  
  240. return super.getUnlocalizedName(stack) + "." + ((IMetaBlockName) this.block).getSpecialName(stack);
  241. }
  242.  
  243.  
  244. public int getMeta(int damage) {
  245.  
  246. return damage;
  247. }
  248.  
  249. }
  250.  
  251.  
  252.  
  253. ///////////////////////////////////////////////////////////////////////
  254.  
  255.  
  256. package Shane2482.DeadPlanet.blocks;
  257.  
  258. import net.minecraft.item.ItemStack;
  259.  
  260. public interface IMetaBlockName
  261. {
  262. String getSpecialName(ItemStack stack);
  263. }
  264.  
  265.  
  266. ////////////////////////////////////////////////////////////////////////////////////////
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement