Advertisement
Guest User

GemBlocksForGreg 1.2

a guest
Feb 25th, 2015
106
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 13.34 KB | None | 0 0
  1. // GemBlocksForGregMod.java
  2. package de.ultrapeeks.gemblocksforgreg;
  3.  
  4. import net.minecraft.block.Block;
  5. import net.minecraft.creativetab.CreativeTabs;
  6. import net.minecraft.init.Blocks;
  7. import net.minecraft.init.Items;
  8. import net.minecraft.item.Item;
  9. import net.minecraft.item.ItemStack;
  10. import net.minecraftforge.common.MinecraftForge;
  11. import net.minecraftforge.oredict.OreDictionary;
  12. import net.minecraftforge.oredict.ShapedOreRecipe;
  13. import cpw.mods.fml.common.Mod;
  14. import cpw.mods.fml.common.Mod.EventHandler;
  15. import cpw.mods.fml.common.Mod.Instance;
  16. import cpw.mods.fml.common.event.FMLInitializationEvent;
  17. import cpw.mods.fml.common.registry.GameRegistry;
  18. import cpw.mods.fml.common.registry.LanguageRegistry;
  19. import cpw.mods.fml.relauncher.Side;
  20. import cpw.mods.fml.relauncher.SideOnly;
  21. import de.ultrapeeks.gemblocksforgreg.BasicGemBlock.GemType;
  22.  
  23. @Mod(modid = GemBlocksForGregMod.MODID, name = GemBlocksForGregMod.NAME, version = GemBlocksForGregMod.VERSION)
  24. public class GemBlocksForGregMod {
  25.     public static final String MODID = "GemBlocksForGreg";
  26.     public static final String NAME = "GemBlocksForGreg";
  27.     public static final String VERSION = "1.2";
  28.    
  29.     @Instance(value = MODID)
  30.     public static GemBlocksForGregMod instance;
  31.    
  32.     public static CreativeTabs tabCustom = new CreativeTabs(MODID) {
  33.         @Override
  34.         @SideOnly(Side.CLIENT)
  35.         public Item getTabIconItem() {
  36.             return Item.getItemFromBlock(GameRegistry.findBlock(MODID, "rubyBlock"));
  37.         }
  38.     };
  39.    
  40.     @EventHandler
  41.     public void preInit(FMLInitializationEvent event) {
  42.         for (GemType type: GemType.values()) {
  43.             Block block = new BasicGemBlock(type);
  44.             GameRegistry.registerBlock(block, type.getName());
  45.             for(String oreName: type.getOreNames()) {
  46.                 OreDictionary.registerOre(oreName, block);
  47.             }
  48.             GameRegistry.addRecipe(new ShapedOreRecipe(
  49.                     new ItemStack(block), "xxx", "xxx", "xxx", Character.valueOf('x'), type.getGemOreName()));
  50.         }
  51.        
  52.         Block block = null;
  53.         for (int i = 0; i < MetalType.values().length; i++) {
  54.             MetalType type = MetalType.values()[i];
  55.             if (i % 16 == 0) {
  56.                 block = new BasicMetalBlock(i / 16);
  57.                 GameRegistry.registerBlock(block, MetalBlockItem.class, block.getUnlocalizedName(), block);
  58.             }
  59.            
  60.             ItemStack stack = new ItemStack(block, 1, i % 16);
  61.             for(String oreName: type.getOreNames()) {
  62.                 OreDictionary.registerOre(oreName, stack.copy());
  63.             }
  64.             GameRegistry.addRecipe(new ShapedOreRecipe(
  65.                     stack.copy(), "xxx", "xxx", "xxx", Character.valueOf('x'), type.getIngotOreName()));
  66.         }
  67.     }
  68.    
  69.     @EventHandler
  70.     public void postInit(FMLInitializationEvent event) {
  71.         for(ItemStack item: OreDictionary.getOres("ironwood")) {
  72.             OreDictionary.registerOre("ingotIronWood", item);
  73.         }
  74.     }
  75. }
  76.  
  77. //----------------------------------------------------------------------------------------
  78. // BasicGemBlock.java
  79.  
  80. package de.ultrapeeks.gemblocksforgreg;
  81.  
  82. import cpw.mods.fml.relauncher.Side;
  83. import cpw.mods.fml.relauncher.SideOnly;
  84. import net.minecraft.block.Block;
  85. import net.minecraft.block.material.Material;
  86. import net.minecraft.creativetab.CreativeTabs;
  87. import net.minecraft.util.IIcon;
  88.  
  89. public class BasicGemBlock extends Block {
  90.    
  91.     public enum GemType {
  92.        
  93.         RUBY("rubyBlock", "gemRuby", "blockRuby", "blockGemRuby"),
  94.         SAPPHIRE("sapphireBlock", "gemSapphire", "blockSapphire", "blockGemSapphire"),
  95.         GREEN_SAPPHIRE("greenSapphireBlock", "gemGreenSapphire", "blockGreenSapphire", "blockGemGreenSapphire"),
  96.         OLIVINE("olivineBlock", "gemOlivine", "blockOlivine", "blockGemOlivine"),
  97.         TOPAZ("topazBlock", "gemTopaz", "blockTopaz", "blockGemTopaz"),
  98.         TANZANITE("tanzaniteBlock", "gemTanzanite", "blockTanzanite", "blockGemTanzanite"),
  99.         AMETHYST("amethystBlock", "gemAmethyst", "blockAmethyst", "blockGemAmethyst"),
  100.         OPAL("opalBlock", "gemOpal", "blockOpal", "blockGemOpal"),
  101.         JASPER("jasperBlock", "gemJasper", "blockJasper", "blockGemJasper"),
  102.         BLUE_TOPAZ("blueTopazBlock", "gemBlueTopaz", "blockBlueTopaz", "blockGemBlueTopaz"),
  103.         FOOLS_RUBY("foolsRubyBlock", "gemFoolsRuby", "blockFoolsRuby", "blockGemFoolsRuby"),
  104.         AMBER("amberBlock", "gemAmber", "blockAmber", "blockGemAmber"),
  105.         DILITHIUM("dilithiumBlock", "gemDilithium", "blockDilithium", "blockGemDilithium"),
  106.         FORCICIUM("forciciumBlock", "gemForcicium", "blockForcicium", "blockGemForcicium"),
  107.         FORCILLIUM("forcilliumBlock", "gemForcillium", "blockForcillium", "blockGemForcillium"),
  108.         FORCE("forceBlock", "gemForce", "blockForce", "blockGemForce"),
  109.         RED_GARNET("redGarnetBlock", "gemGarnetRed", "blockGarnetRed", "blockGemGarnetRed"),
  110.         YELLOW_GARNET("yellowGarnetBlock", "gemGarnetYellow", "blockGarnetYellow", "blockGemGarnetYellow"),
  111.         VINTEUM("vinteumBlock", "gemVinteum", "blockVinteum", "blockGemVinteum"),
  112.         ENDERPEARL("enderPearlBlock", "gemEnderPearl", "blockEnderPearl", "blockGemEnderPearl"),
  113.         ENDEREYE("enderEyeBlock", "gemEnderEye", "blockEnderEye", "blockGemEnderEye"),
  114.         AER("aerCrystalBlock", "gemInfusedAir", "blockInfusedAir", "blockGemInfusedAir"),
  115.         IGNIS("ignisCrystalBlock", "gemInfusedFire", "blockInfusedFire", "blockGemInfusedFire"),
  116.         TERRA("terraCrystalBlock", "gemInfusedEarth", "blockInfusedEarth", "blockGemInfusedEarth"),
  117.         AQUA("aquaCrystalBlock", "gemInfusedWater", "blockInfusedWater", "blockGemInfusedWater"),
  118.         PERDITIO("perditioCrystalBlock", "gemInfusedEntropy", "blockInfusedEntropy", "blockGemInfusedEntropy"),
  119.         ORDO("ordoCrystalBlock", "gemInfusedOrder", "blockInfusedOrder", "blockGemInfusedOrder");
  120.  
  121.         private String name;
  122.         private String gemOreName;
  123.         private String[] oreNames;
  124.        
  125.         private GemType(String name, String gemOreName, String... oreNames) {
  126.             this.name = name;
  127.             this.gemOreName = gemOreName;
  128.             this.oreNames = oreNames;
  129.         }
  130.        
  131.         public String getName() {
  132.             return name;
  133.         }
  134.        
  135.         public String[] getOreNames() {
  136.             return oreNames;
  137.         }
  138.        
  139.         public String getGemOreName() {
  140.             return gemOreName;
  141.         }
  142.     }
  143.    
  144.     private static final String TEXTURE_PREFIX = "gemblocksforgreg:gems/";
  145.    
  146.     private GemType type;
  147.  
  148.     protected BasicGemBlock(GemType type) {
  149.         super(Material.iron);
  150.         this.type = type;
  151.         setBlockName(type.getName());
  152.         setHardness(3.0f);
  153.         setStepSound(Block.soundTypeMetal);
  154.         setCreativeTab(GemBlocksForGregMod.tabCustom);
  155.         setHarvestLevel("pickaxe", 2);
  156.         setBlockTextureName(TEXTURE_PREFIX + type.getName());
  157.     }
  158. }
  159.  
  160. //----------------------------------------------------------------------------------------------
  161. // BasicMetalBlock.java
  162.  
  163. package de.ultrapeeks.gemblocksforgreg;
  164.  
  165. import java.util.List;
  166.  
  167. import cpw.mods.fml.relauncher.Side;
  168. import cpw.mods.fml.relauncher.SideOnly;
  169. import net.minecraft.block.Block;
  170. import net.minecraft.block.material.Material;
  171. import net.minecraft.client.renderer.texture.IIconRegister;
  172. import net.minecraft.client.renderer.texture.TextureMap;
  173. import net.minecraft.client.settings.GameSettings;
  174. import net.minecraft.creativetab.CreativeTabs;
  175. import net.minecraft.item.Item;
  176. import net.minecraft.item.ItemStack;
  177. import net.minecraft.util.IIcon;
  178.  
  179. public class BasicMetalBlock extends Block{
  180.    
  181.     private static final String TEXTURE_PREFIX = "gemblocksforgreg:metals/";
  182.    
  183.     private final int offset;
  184.    
  185.     private IIcon[] iconBuffer;
  186.    
  187.     @Override
  188.     public int damageDropped(int damage) {
  189.         return damage;
  190.     }
  191.    
  192.     @Override
  193.     @SideOnly(Side.CLIENT)
  194.     public void getSubBlocks(Item item, CreativeTabs tab, List list) {
  195.         int enumLength = MetalType.values().length;
  196.         for (int i = 0; i < 16 && i + this.offset * 16 < enumLength; i++) {
  197.             list.add(new ItemStack(item, 1, i));
  198.         }
  199.     }
  200.    
  201.     @Override
  202.     @SideOnly(Side.CLIENT)
  203.     public void registerBlockIcons(IIconRegister icons) {
  204.         int enumLength = MetalType.values().length;
  205.         int offset = this.offset * 16;
  206.         this.iconBuffer = new IIcon[Math.min(enumLength - offset, 16)];
  207.         IIcon defaultIcon = icons.registerIcon(TEXTURE_PREFIX + "defaultBlock");
  208.        
  209.         for(int i = 0; i < this.iconBuffer.length; i++) {
  210.             this.iconBuffer[i] = icons.registerIcon(TEXTURE_PREFIX + MetalType.values()[i + offset].getName());
  211.         }
  212.     }
  213.    
  214.     @Override
  215.     @SideOnly(Side.CLIENT)
  216.     public IIcon getIcon(int side, int meta) {
  217.         if (meta >= this.iconBuffer.length) {
  218.             System.out.println("Warning: unknown meta data " + meta + " for block " + getUnlocalizedName() + ". Prevented Overflow.");
  219.             return this.iconBuffer[0];
  220.         }
  221.         return this.iconBuffer[meta];
  222.     }
  223.    
  224.     public int getOffset() {
  225.         return offset;
  226.     }
  227.  
  228.     protected BasicMetalBlock(int offset) {
  229.         super(Material.iron);
  230.         this.offset = offset;
  231.        
  232.         setBlockName("metalBlock" + offset);
  233.         setHardness(3.0f);
  234.         setStepSound(Block.soundTypeMetal);
  235.         setCreativeTab(GemBlocksForGregMod.tabCustom);
  236.         setHarvestLevel("pickaxe", 2);
  237.     }
  238. }
  239.  
  240. // -----------------------------------------------------------------------------------------
  241. // MetalBlockItem.java
  242.  
  243. package de.ultrapeeks.gemblocksforgreg;
  244.  
  245. import net.minecraft.block.Block;
  246. import net.minecraft.item.ItemBlock;
  247. import net.minecraft.item.ItemStack;
  248.  
  249. public class MetalBlockItem extends ItemBlock{
  250.  
  251.     private BasicMetalBlock block;
  252.    
  253.     public MetalBlockItem(Block block, BasicMetalBlock metalBlock) {
  254.         super(block);
  255.         this.block = metalBlock;
  256.         setHasSubtypes(true);
  257.     }
  258.    
  259.     @Override
  260.     public int getMetadata(int damage) {
  261.         return damage;
  262.     }
  263.    
  264.     @Override
  265.     public String getUnlocalizedName(ItemStack itemStack) {
  266.         MetalType type = MetalType.values()[block.getOffset() * 16 + itemStack.getItemDamage()];
  267.         return "tile." + type.getName();
  268.     }
  269. }
  270.  
  271. // --------------------------------------------------------------------------------------------------------------------
  272. // MetalType.java
  273.  
  274. package de.ultrapeeks.gemblocksforgreg;
  275.  
  276. public enum MetalType {
  277.    
  278.     BERYLLIUM("Beryllium"),
  279.     MAGNESIUM("Magnesium"),
  280.     ALUMINIUM("Aluminium"),
  281.     SILICON("Silicon"),
  282.     SCANDIUM("Scandium"),
  283.     TITANIUM("Titanium"),
  284.     VANADIUM("Vanadium"),
  285.     CHROME("Chrome"),
  286.     MANGANESE("Manganese"),
  287.     COBALT("Cobalt"),
  288.     NICKEL("Nickel"),
  289.     COPPER("Copper"),
  290.     ZINC("Zinc"),
  291.     GALLIUM("Gallium"),
  292.     ARSENIC("Arsenic"),
  293.     RUBIDIUM("Rubidium"),
  294.     YTTRIUM("Yttrium"),
  295.     NIOBIUM("Niobium"),
  296.     MOLYBDENUM("Molybdenum"),
  297.     PALLADIUM("Palladium"),
  298.     SILVER("Silver"),
  299.     INDIUM("Indium"),
  300.     TIN("Tin"),
  301.     ANTIMONY("Antimony"),
  302.     TELLURIUM("Tellurium"),
  303.     CAESIUM("Caesium"),
  304.     LANTHANUM("Lanthanum"),
  305.     CERIUM("Cerium"),
  306.     PRASEODYMIUM("Praseodymium"),
  307.     NEODYMIUM("Neodymium"),
  308.     SAMARIUM("Samarium"),
  309.     EUROPIUM("Europium"),
  310.     GADOLINIUM("Gadolinium"),
  311.     TERBIUM("Terbium"),
  312.     DYSPROSIUM("Dysprosium"),
  313.     HOLMIUM("Holmium"),
  314.     ERBIUM("Erbium"),
  315.     THULIUM("Thulium"),
  316.     YTTERBIUM("Ytterbium"),
  317.     LUTETIUM("Lutetium"),
  318.     TANTALUM("Tantalum"),
  319.     TUNGSTEN("Tungsten"),
  320.     OSMIUM("Osmium"),
  321.     IRIDIUM("Iridium"),
  322.     PLATINUM("Platinum"),
  323.     LEAD("Lead"),
  324.     BISMUTH("Bismuth"),
  325.     THORIUM("Thorium"),
  326.     URANIUM235("Uranium235"),
  327.     URANIUM("Uranium"),
  328.     PLUTONIUM("Plutonium"),
  329.     PLUTONIUM241("Plutonium241"),
  330.     AMERICIUM("Americium"),
  331.     NEUTRONIUM("Neutronium"),
  332.     BRONZE("Bronze"),
  333.     BRASS("Brass"),
  334.     INVAR("Invar"),
  335.     ELECTRUM("Electrum"),
  336.     WROUGHT_IRON("WroughtIron"),
  337.     STEEL("Steel"),
  338.     STAINLESS_STEEL("StainlessSteel"),
  339.     PIG_IRON("PigIron"),
  340.     RED_ALLOY("RedAlloy"),
  341.     BLUE_ALLOY("BlueAlloy"),
  342.     CUPRONICKEL("Cupronickel"),
  343.     NICHROME("Nichrome"),
  344.     KANTHAL("Kanthal"),
  345.     MAGNALIUM("Magnalium"),
  346.     SOLDERING_ALLOY("SolderingAlloy"),
  347.     BATTERY_ALLOY("BatteryAlloy"),
  348.     TUNGSTEN_STEEL("TungstenSteel"),
  349.     OSMIRIDIUM("Osmiridium"),
  350.     SUNNARIUM("Sunnarium"),
  351.     ADAMANTIUM("Adamantium"),
  352.     FLUXED_ELECTRUM("ElectrumFlux"),
  353.     ENDERIUM("Enderium"),
  354.     HSLA_STEEL("HSLA"),
  355.     INFUSED_GOLD("InfusedGold"),
  356.     NAQUADAH("Naquadah"),
  357.     NAQUADAH_ALLOY("NaquadahAlloy"),
  358.     ENRICHED_NAQUADAH("NaquadahEnriched"),
  359.     NAQUADRIA("Naquadria"),
  360.     DURANIUM("Duranium"),
  361.     TRITANIUM("Tritanium"),
  362.     THAUMIUM("Thaumium"),
  363.     MITHRIL("Mithril"),
  364.     MIDASIUM("Midasium"),
  365.     ASTRAL_SILVER("AstralSilver"),
  366.     BLACK_STEEL("BlackSteel"),
  367.     DAMASCUS_STEEL("DamascusSteel"),
  368.     SHADOW_IRON("ShadowIron"),
  369.     SHADOW_STEEL("ShadowSteel"),
  370.     IRON_WOOD("IronWood"),
  371.     METEORIC_IRON("MeteoricIron"),
  372.     METEORIC_STEEL("MeteoricSteel"),
  373.     DARK_IRON("DarkIron"),
  374.     COBALT_BRASS("CobaltBrass"),
  375.     ULTIMET("Ultimet"),
  376.     ANNEALED_COPPER("AnnealedCopper"),
  377.     FIERY_STEEL("FierySteel"),
  378.     RED_STEEL("RedSteel"),
  379.     BLUE_STEEL("BlueSteel"),
  380.     STERLING_SILVER("SterlingSilver"),
  381.     ROSE_GOLD("RoseGold"),
  382.     BLACK_BRONZE("BlackBronze"),
  383.     BISMUTH_BRONZE("BismuthBronze"),
  384.     MAGNETIC_IRON("IronMagnetic"),
  385.     MAGNETIC_STEEL("SteelMagnetic"),
  386.     MAGNETIC_NEODYMIUM("NeodymiumMagnetic"),
  387.     VANADIUM_GALLIUM("VanadiumGallium"),
  388.     YTTRIUM_BARIUM_CUPRATE("YttriumBariumCuprate"),
  389.     NIOBIUM_NITRIDE("NiobiumNitride"),
  390.     NIOBIUM_TITANIUM("NiobiumTitanium"),
  391.     CHROMIUM_DIOXIDE("ChromiumDioxide"),
  392.     KNIGHTMETAL("Knightmetal"),
  393.     TIN_ALLOY("TinAlloy"),
  394.     DEEP_IRON("DeepIron"),
  395.     DESH("Desh");
  396.    
  397.     private String name;
  398.     private String ingotOreName;
  399.     private String[] oreNames;
  400.    
  401.     private MetalType(String material) {
  402.         this.name = material.substring(0, 1).toLowerCase() + material.substring(1) + "Block";
  403.         this.ingotOreName = "ingot" + material;
  404.         this.oreNames = new String[]{"block" + material, "blockMetal" + material};
  405.     }
  406.    
  407.     public String getName() {
  408.         return name;
  409.     }
  410.    
  411.     public String[] getOreNames() {
  412.         return oreNames;
  413.     }
  414.    
  415.     public String getIngotOreName() {
  416.         return ingotOreName;
  417.     }
  418. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement