gmen712

Mardiff's Mod

Feb 28th, 2013
122
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 72.81 KB | None | 0 0
  1. MardiffBase:
  2.  
  3. package net.minecraft.mardiff;
  4.  
  5. import net.minecraft.block.Block;
  6. import net.minecraft.block.BlockFlowing;
  7. import net.minecraft.block.BlockStationary;
  8. import net.minecraft.block.material.Material;
  9. import net.minecraft.creativetab.CreativeTabs;
  10. import net.minecraft.item.EnumArmorMaterial;
  11. import net.minecraft.item.EnumToolMaterial;
  12. import net.minecraft.item.Item;
  13. import net.minecraft.item.ItemBucket;
  14. import net.minecraft.item.ItemStack;
  15. import net.minecraft.src.ModLoader;
  16. import net.minecraftforge.client.MinecraftForgeClient;
  17. import net.minecraftforge.common.DungeonHooks;
  18. import net.minecraftforge.common.EnumHelper;
  19. import net.minecraftforge.common.MinecraftForge;
  20. import net.minecraftforge.oredict.OreDictionary;
  21. import cpw.mods.fml.common.Mod;
  22. import cpw.mods.fml.common.Mod.Init;
  23. import cpw.mods.fml.common.Mod.Instance;
  24. import cpw.mods.fml.common.Mod.PreInit;
  25. import cpw.mods.fml.common.event.FMLInitializationEvent;
  26. import cpw.mods.fml.common.event.FMLPreInitializationEvent;
  27. import cpw.mods.fml.common.network.NetworkMod;
  28. import cpw.mods.fml.common.network.NetworkMod.SidedPacketHandler;
  29. import cpw.mods.fml.common.network.NetworkRegistry;
  30. import cpw.mods.fml.common.registry.GameRegistry;
  31. import cpw.mods.fml.common.registry.LanguageRegistry;
  32.  
  33. @Mod(modid="mardiffMod", name="Mardiff's Mod version 0.0.3", version="0.0.3")
  34.  
  35. public class MardiffBase
  36. {
  37.  
  38.     public static final CreativeTabs MardiffTab = new MardiffTab("MardiffTab");
  39.  
  40.     public static final Block rubyBlock = new MardiffBlock(3001, 0).setHardness(3.0F).setBlockName("rubyBlock");
  41.     public static final Block sapphireBlock = new MardiffBlock(3002, 1).setHardness(3.0F).setBlockName("sapphireBlock");
  42.  
  43.     public static final Item ruby = new MardiffItem(3003).setCreativeTab(MardiffTab).setItemName("ruby").setIconCoord(0, 0);
  44.     public static final Item sapphire = new MardiffItem(3004).setCreativeTab(MardiffTab).setItemName("sapphire").setIconCoord(1, 0);
  45.     public static final Item lignite = new MardiffItem(3005).setCreativeTab(MardiffTab).setItemName("lignite").setIconCoord(0, 1);
  46.  
  47.     public static final Item tin = new MardiffItem(3006).setCreativeTab(MardiffTab).setItemName("tin").setIconCoord(3, 0);
  48.     public static final Item copper = new MardiffItem(3007).setCreativeTab(MardiffTab).setItemName("copper").setIconCoord(5, 0);
  49.     public static final Item silver = new MardiffItem(3008).setCreativeTab(MardiffTab).setItemName("silver").setIconCoord(2, 0);
  50.     public static final Item bronze = new MardiffItem(3009).setCreativeTab(MardiffTab).setItemName("bronze").setIconCoord(4, 0);
  51.  
  52.     public static final Block tinBlock = new MardiffBlock(3011, 5).setHardness(3.0F).setBlockName("tinBlock");
  53.     public static final Block copperBlock = new MardiffBlock(3012, 7).setHardness(3.0F).setBlockName("copperBlock");
  54.     public static final Block silverBlock = new MardiffBlock(3010, 4).setHardness(3.0F).setBlockName("silverBlock");
  55.     public static final Block bronzeBlock = new MardiffBlock(3013, 6).setHardness(3.0F).setBlockName("bronzeBlock");
  56.  
  57.     public static final Block rubyOre = new MardiffOreItem(3014, 16).setBlockName("rubyOre");
  58.     public static final Block sapphireOre = new MardiffOreItem(3015, 17).setBlockName("sapphireOre");
  59.     public static final Block silverOre = new MardiffOre(3016, 20).setBlockName("silverOre");
  60.     public static final Block tinOre = new MardiffOre(3017, 21).setBlockName("tinOre");
  61.     public static final Block copperOre = new MardiffOre(3018, 22).setBlockName("copperOre");
  62.     public static final Block ligniteOre = new MardiffOreItem(3019, 23).setBlockName("ligniteOre");
  63.  
  64.     public static final EnumToolMaterial EnumToolMaterialGem = EnumHelper.addToolMaterial("Gem", 3, 750, 6.0F, 3, 22);
  65.     public static final EnumToolMaterial EnumToolMaterialSilver = EnumHelper.addToolMaterial("Silver", 2, 250, 12.0F, 2, 22);
  66.     public static final EnumToolMaterial EnumToolMaterialBronze = EnumHelper.addToolMaterial("Bronze", 2, 100, 5.0F, 2, 14);
  67.     public static final EnumToolMaterial EnumToolMaterialPaxel = EnumHelper.addToolMaterial("Paxel", 2, 1500, 6.0F, 0, 14);
  68.    
  69.     public static final EnumArmorMaterial EnumArmorMaterialGem = EnumHelper.addArmorMaterial("Gem", 20, new int[] { 3, 7, 5, 2 }, 10);
  70.     public static final EnumArmorMaterial EnumArmorMaterialSilver = EnumHelper.addArmorMaterial("Silver", 15, new int[] { 2, 6, 5, 2 }, 25);
  71.     public static final EnumArmorMaterial EnumArmorMaterialBronze = EnumHelper.addArmorMaterial("Bronze", 15, new int[] { 2, 5, 4, 1 }, 12);
  72.    
  73.     public static final Item rubySword = new MardiffSword(3020, EnumToolMaterialGem).setCreativeTab(MardiffTab).setIconCoord(6, 0).setItemName("rubySword");
  74.     public static final Item sapphireSword = new MardiffSword(3021, EnumToolMaterialGem).setCreativeTab(MardiffTab).setIconCoord(7, 0).setItemName("sapphireSword");
  75.     public static final Item silverSword = new MardiffSword(3022, EnumToolMaterialSilver).setCreativeTab(MardiffTab).setIconCoord(8, 0).setItemName("silverSword");
  76.     public static final Item bronzeSword = new MardiffSword(3023, EnumToolMaterialBronze).setCreativeTab(MardiffTab).setIconCoord(9, 0).setItemName("bronzeSword");
  77.    
  78.     public static final Item rubyShovel = new MardiffShovel(3024, EnumToolMaterialGem).setCreativeTab(MardiffTab).setIconCoord(6, 1).setItemName("rubyShovel");
  79.     public static final Item sapphireShovel = new MardiffShovel(3028, EnumToolMaterialGem).setCreativeTab(MardiffTab).setIconCoord(7, 1).setItemName("sapphireShovel");
  80.     public static final Item silverShovel = new MardiffShovel(3032, EnumToolMaterialSilver).setCreativeTab(MardiffTab).setIconCoord(8, 1).setItemName("silverShovel");
  81.     public static final Item bronzeShovel = new MardiffShovel(3036, EnumToolMaterialBronze).setCreativeTab(MardiffTab).setIconCoord(9, 1).setItemName("bronzeShovel");
  82.  
  83.     public static final Item rubyPick = new MardiffPick(3025, EnumToolMaterialGem).setCreativeTab(MardiffTab).setIconCoord(6, 2).setItemName("rubyPickaxe");
  84.     public static final Item sapphirePick = new MardiffPick(3029, EnumToolMaterialGem).setCreativeTab(MardiffTab).setIconCoord(7, 2).setItemName("sapphirePickaxe");
  85.     public static final Item silverPick = new MardiffPick(3033, EnumToolMaterialSilver).setCreativeTab(MardiffTab).setIconCoord(8, 2).setItemName("silverPickaxe");
  86.     public static final Item bronzePick = new MardiffPick(3037, EnumToolMaterialBronze).setCreativeTab(MardiffTab).setIconCoord(9, 2).setItemName("bronzePickaxe");
  87.  
  88.     public static final Item rubyAxe = new MardiffAxe(3026, EnumToolMaterialGem).setCreativeTab(MardiffTab).setIconCoord(6, 3).setItemName("rubyAxe");
  89.     public static final Item sapphireAxe = new MardiffAxe(3030, EnumToolMaterialGem).setCreativeTab(MardiffTab).setIconCoord(7, 3).setItemName("sapphireAxe");
  90.     public static final Item silverAxe = new MardiffAxe(3034, EnumToolMaterialSilver).setCreativeTab(MardiffTab).setIconCoord(8, 3).setItemName("silverAxe");
  91.     public static final Item bronzeAxe = new MardiffAxe(3038, EnumToolMaterialBronze).setCreativeTab(MardiffTab).setIconCoord(9, 3).setItemName("bronzeAxe");
  92.  
  93.     public static final Item rubyHoe = new MardiffHoe(3027, EnumToolMaterialGem).setCreativeTab(MardiffTab).setIconCoord(6, 4).setItemName("rubyHoe");
  94.     public static final Item sapphireHoe = new MardiffHoe(3031, EnumToolMaterialGem).setCreativeTab(MardiffTab).setIconCoord(7, 4).setItemName("sapphireHoe");
  95.     public static final Item silverHoe = new MardiffHoe(3035, EnumToolMaterialSilver).setCreativeTab(MardiffTab).setIconCoord(8, 4).setItemName("silverHoe");
  96.     public static final Item bronzeHoe = new MardiffHoe(3039, EnumToolMaterialBronze).setCreativeTab(MardiffTab).setIconCoord(9, 4).setItemName("bronzeHoe");
  97.  
  98.     public static final Item rubyHelm = new MardiffArmor(3040, EnumArmorMaterialGem, ModLoader.addArmor("ruby"), 0).setCreativeTab(MardiffTab).setIconCoord(10, 0).setItemName("rubyHelm");
  99.     public static final Item sapphireHelm = new MardiffArmor(3044, EnumArmorMaterialGem, ModLoader.addArmor("sapphire"), 0).setCreativeTab(MardiffTab).setIconCoord(11, 0).setItemName("sapphireHelm");
  100.     public static final Item silverHelm = new MardiffArmor(3048, EnumArmorMaterialSilver, ModLoader.addArmor("silver"), 0).setCreativeTab(MardiffTab).setIconCoord(12, 0).setItemName("silverHelm");
  101.     public static final Item bronzeHelm = new MardiffArmor(3052, EnumArmorMaterialBronze, ModLoader.addArmor("bronze"), 0).setCreativeTab(MardiffTab).setIconCoord(13, 0).setItemName("bronzeHelm");
  102.  
  103.     public static final Item rubyChest = new MardiffArmor(3041, EnumArmorMaterialGem, ModLoader.addArmor("ruby"), 1).setCreativeTab(MardiffTab).setIconCoord(10, 1).setItemName("rubyChest");
  104.     public static final Item sapphireChest = new MardiffArmor(3045, EnumArmorMaterialGem, ModLoader.addArmor("sapphire"), 1).setCreativeTab(MardiffTab).setIconCoord(11, 1).setItemName("sapphireChest");
  105.     public static final Item silverChest = new MardiffArmor(3049, EnumArmorMaterialSilver, ModLoader.addArmor("silver"), 1).setCreativeTab(MardiffTab).setIconCoord(12, 1).setItemName("silverChest");
  106.     public static final Item bronzeChest = new MardiffArmor(3053, EnumArmorMaterialBronze, ModLoader.addArmor("bronze"), 1).setCreativeTab(MardiffTab).setIconCoord(13, 1).setItemName("bronzeChest");
  107.  
  108.     public static final Item rubyLegs = new MardiffArmor(3042, EnumArmorMaterialGem, ModLoader.addArmor("ruby"), 2).setCreativeTab(MardiffTab).setIconCoord(10, 2).setItemName("rubyLegs");
  109.     public static final Item sapphireLegs = new MardiffArmor(3046, EnumArmorMaterialGem, ModLoader.addArmor("sapphire"), 2).setCreativeTab(MardiffTab).setIconCoord(11, 2).setItemName("sapphireLegs");
  110.     public static final Item silverLegs = new MardiffArmor(3050, EnumArmorMaterialSilver, ModLoader.addArmor("silver"), 2).setCreativeTab(MardiffTab).setIconCoord(12, 2).setItemName("silverLegs");
  111.     public static final Item bronzeLegs = new MardiffArmor(3054, EnumArmorMaterialBronze, ModLoader.addArmor("bronze"), 2).setCreativeTab(MardiffTab).setIconCoord(13, 2).setItemName("bronzeLegs");
  112.  
  113.     public static final Item rubyBoots = new MardiffArmor(3043, EnumArmorMaterialGem, ModLoader.addArmor("ruby"), 3).setCreativeTab(MardiffTab).setIconCoord(10, 3).setItemName("rubyBoots");
  114.     public static final Item sapphireBoots = new MardiffArmor(3047, EnumArmorMaterialGem, ModLoader.addArmor("sapphire"), 3).setCreativeTab(MardiffTab).setIconCoord(11, 3).setItemName("sapphireBoots");
  115.     public static final Item silverBoots = new MardiffArmor(3051, EnumArmorMaterialSilver, ModLoader.addArmor("silver"), 3).setCreativeTab(MardiffTab).setIconCoord(12, 3).setItemName("silverBoots");
  116.     public static final Item bronzeBoots = new MardiffArmor(3055, EnumArmorMaterialBronze, ModLoader.addArmor("bronze"), 3).setCreativeTab(MardiffTab).setIconCoord(13, 3).setItemName("bronzeBoots");
  117.  
  118.     public static final Block cornCrop = new MardiffCrop(3057, 80).setHardness(0.0F).setBlockName("cornCrop");
  119.     public static final Item cornKernel = new MardiffSeeds(3058, cornCrop.blockID, Block.tilledField.blockID).setIconCoord(1, 4).setCreativeTab(MardiffTab).setItemName("cornKernel");
  120.     public static final Item corn = new MardiffFood(3059, 4, false).setIconCoord(0, 4).setCreativeTab(MardiffTab).setItemName("corn");
  121.     public static final Block tomatoCrop = new MardiffCrop(3060, 88).setHardness(0.0F).setBlockName("tomatoCrop");
  122.     public static final Item tomatoSeeds = new MardiffSeeds(3061, tomatoCrop.blockID, Block.tilledField.blockID).setIconCoord(3, 4).setCreativeTab(MardiffTab).setItemName("tomatoSeeds");
  123.     public static final Item tomato = new MardiffFood(3062, 4, false).setIconCoord(2, 4).setCreativeTab(MardiffTab).setItemName("tomato");
  124.     public static final Block beetCrop = new MardiffCrop(3063, 96).setHardness(0F).setBlockName("beetCrop");
  125.     public static final Item beetSeeds = new MardiffSeeds(3061, beetCrop.blockID, Block.tilledField.blockID).setIconCoord(4, 2).setCreativeTab(MardiffTab).setItemName("beetSeeds");
  126.     public static final Item beet = new MardiffFood(3062, 4, false).setIconCoord(4, 3).setCreativeTab(MardiffTab).setItemName("beet");
  127.     public static final Item cornOTC = new MardiffFood(3069, 8, false).setIconCoord(4, 4).setCreativeTab(MardiffTab).setItemName("cornOTC");
  128.     public static final Item cornPop = new MardiffFood(3070, 10, false).setIconCoord(5, 4).setCreativeTab(MardiffTab).setItemName("pCorn");
  129.     public static final Item carrotCake = new MardiffFood(3071, 12, false).setIconCoord(0, 3).setCreativeTab(MardiffTab).setItemName("carrotCake");
  130.     public static final Item choc = new MardiffFood(3072, 5, false).setIconCoord(2, 3).setCreativeTab(MardiffTab).setItemName("choc");
  131.     public static final Item chocWhite = new MardiffFood(3073, 5, false).setIconCoord(3, 3).setCreativeTab(MardiffTab).setItemName("chocWhite");
  132.     public static final Item chocButter = new MardiffItem(3074).setCreativeTab(MardiffTab).setIconCoord(4, 3).setItemName("chocButter");
  133.     public static final Item chocCake = new MardiffFood(3075, 12, false).setCreativeTab(MardiffTab).setIconCoord(5, 3).setItemName("chocCake");
  134.    
  135.     public static final Item rubyStaff = new MardiffRubyStaff(3076).setCreativeTab(MardiffTab).setIconCoord(10, 4).setItemName("rubyStaff");
  136.     public static final Item sapphireStaff = new MardiffSapphireStaff(3077).setCreativeTab(MardiffTab).setIconCoord(11, 4).setItemName("sapphireStaff");
  137.     public static final Item silverStaff = new MardiffSilverStaff(3078).setCreativeTab(MardiffTab).setIconCoord(12, 4).setItemName("silverStaff");
  138.     public static final Item bronzePaxel = new MardiffPaxel(3079, EnumToolMaterialPaxel).setCreativeTab(MardiffTab).setIconCoord(13, 4).setItemName("bronzePaxel");
  139.    
  140.     @PreInit
  141.     public void init(FMLPreInitializationEvent event) {}
  142.     @Init
  143.     public void load(FMLInitializationEvent event)
  144.     {
  145.         MinecraftForgeClient.preloadTexture("/textures/blocks/blocks.png");
  146.         MinecraftForgeClient.preloadTexture("/textures/items/items.png");
  147.         MinecraftForgeClient.preloadTexture("/textures/armor/ruby_1.png");
  148.         MinecraftForgeClient.preloadTexture("/textures/armor/ruby_2.png");
  149.         MinecraftForgeClient.preloadTexture("/textures/armor/sapphire_1.png");
  150.         MinecraftForgeClient.preloadTexture("/textures/armor/sapphire_2.png");
  151.         MinecraftForgeClient.preloadTexture("/textures/armor/silver_1.png");
  152.         MinecraftForgeClient.preloadTexture("/textures/armor/silver_2.png");
  153.         MinecraftForgeClient.preloadTexture("/textures/armor/bronze_1.png");
  154.         MinecraftForgeClient.preloadTexture("/textures/armor/bronze_2.png");
  155.  
  156.         MinecraftForge.EVENT_BUS.register(new MardiffFertilizerEventClass());
  157.  
  158.         GameRegistry.registerBlock(rubyBlock);
  159.         LanguageRegistry.addName(rubyBlock, "Block of Ruby");
  160.         GameRegistry.addRecipe(new ItemStack(rubyBlock), new Object[] { "xxx", "xxx", "xxx", Character.valueOf('x'), ruby });
  161.         GameRegistry.registerBlock(sapphireBlock);
  162.         LanguageRegistry.addName(sapphireBlock, "Block of Sapphire");
  163.         GameRegistry.addRecipe(new ItemStack(sapphireBlock), new Object[] { "xxx", "xxx", "xxx", Character.valueOf('x'), sapphire });
  164.         GameRegistry.registerBlock(sapphireBlock);
  165.  
  166.         GameRegistry.registerBlock(tinBlock);
  167.         LanguageRegistry.addName(tinBlock, "Tin Block");
  168.         GameRegistry.addRecipe(new ItemStack(tinBlock), new Object[] { "xxx", "xxx", "xxx", Character.valueOf('x'), tin });
  169.         GameRegistry.registerBlock(copperBlock);
  170.         LanguageRegistry.addName(copperBlock, "Copper Block");
  171.         GameRegistry.addRecipe(new ItemStack(copperBlock), new Object[] { "xxx", "xxx", "xxx", Character.valueOf('x'), copper });
  172.         GameRegistry.registerBlock(silverBlock);
  173.         LanguageRegistry.addName(silverBlock, "Silver Block");
  174.         GameRegistry.addRecipe(new ItemStack(silverBlock), new Object[] { "xxx", "xxx", "xxx", Character.valueOf('x'), silver });
  175.         GameRegistry.registerBlock(bronzeBlock);
  176.         LanguageRegistry.addName(bronzeBlock, "Bronze Block");
  177.         GameRegistry.addRecipe(new ItemStack(bronzeBlock), new Object[] { "xxx", "xxx", "xxx", Character.valueOf('x'), bronze });
  178.  
  179.         GameRegistry.registerWorldGenerator(new MardiffWorldGenerator());
  180.  
  181.         GameRegistry.registerBlock(rubyOre);
  182.         LanguageRegistry.addName(rubyOre, "Ruby Ore");
  183.         GameRegistry.registerBlock(sapphireOre);
  184.         LanguageRegistry.addName(sapphireOre, "Sapphire Ore");
  185.         GameRegistry.registerBlock(silverOre);
  186.         LanguageRegistry.addName(silverOre, "Silver Ore");
  187.         GameRegistry.registerBlock(tinOre);
  188.         LanguageRegistry.addName(tinOre, "Tin Ore");
  189.         GameRegistry.registerBlock(copperOre);
  190.         LanguageRegistry.addName(copperOre, "Copper Ore");
  191.         GameRegistry.registerBlock(ligniteOre);
  192.         LanguageRegistry.addName(ligniteOre, "Lignite Ore");
  193.  
  194.         LanguageRegistry.addName(ruby, "Ruby");
  195.         GameRegistry.addRecipe(new ItemStack(ruby, 9), new Object[] { "x", Character.valueOf('x'), rubyBlock });
  196.         GameRegistry.addSmelting(rubyOre.blockID, new ItemStack(ruby), 0.1F);
  197.         LanguageRegistry.addName(sapphire, "Sapphire");
  198.         GameRegistry.addSmelting(sapphireOre.blockID, new ItemStack(sapphire), 0.1F);
  199.         GameRegistry.addRecipe(new ItemStack(sapphire, 9), new Object[] { "x", Character.valueOf('x'), sapphireBlock });
  200.         LanguageRegistry.addName(lignite, "Lignite");
  201.         GameRegistry.addSmelting(ligniteOre.blockID, new ItemStack(lignite), 0.1F);
  202.  
  203.         LanguageRegistry.addName(tin, "Tin Ingot");
  204.         GameRegistry.addSmelting(tinOre.blockID, new ItemStack(tin), 0.1F);
  205.         GameRegistry.addRecipe(new ItemStack(tin, 9), new Object[] { "x", Character.valueOf('x'), tinBlock });
  206.         LanguageRegistry.addName(copper, "Copper Ingot");
  207.         GameRegistry.addSmelting(copperOre.blockID, new ItemStack(copper), 0.1F);
  208.         GameRegistry.addRecipe(new ItemStack(copper, 9), new Object[] { "x", Character.valueOf('x'), copperBlock });
  209.         LanguageRegistry.addName(silver, "Silver Ingot");
  210.         GameRegistry.addSmelting(silverOre.blockID, new ItemStack(silver), 0.1F);
  211.         GameRegistry.addRecipe(new ItemStack(silver, 9), new Object[] { "x", Character.valueOf('x'), silverBlock });
  212.         LanguageRegistry.addName(bronze, "Bronze Ingot");
  213.         GameRegistry.addRecipe(new ItemStack(bronze, 9), new Object[] { "x", Character.valueOf('x'), bronzeBlock });
  214.         GameRegistry.addRecipe(new ItemStack(bronze, 4), new Object[] { "xx", "xy", Character.valueOf('x'), copper, Character.valueOf('y'), tin });
  215.  
  216.         LanguageRegistry.addName(rubySword, "Ruby Sword");
  217.         GameRegistry.addRecipe(new ItemStack(rubySword), new Object[] { "x", "x", "y", Character.valueOf('x'), ruby, Character.valueOf('y'), Item.stick });
  218.         LanguageRegistry.addName(sapphireSword, "Sapphire Sword");
  219.         GameRegistry.addRecipe(new ItemStack(sapphireSword), new Object[] { "x", "x", "y", Character.valueOf('x'), sapphire, Character.valueOf('y'), Item.stick });
  220.         LanguageRegistry.addName(silverSword, "Silver Sword");
  221.         GameRegistry.addRecipe(new ItemStack(silverSword), new Object[] { "x", "x", "y", Character.valueOf('x'), silver, Character.valueOf('y'), Item.stick });
  222.         LanguageRegistry.addName(bronzeSword, "Bronze Sword");
  223.         GameRegistry.addRecipe(new ItemStack(bronzeSword), new Object[] { "x", "x", "y", Character.valueOf('x'), bronze, Character.valueOf('y'), Item.stick });
  224.  
  225.         LanguageRegistry.addName(rubyShovel, "Ruby Shovel");
  226.         GameRegistry.addRecipe(new ItemStack(rubyShovel), new Object[] { "x", "y", "y", Character.valueOf('x'), ruby, Character.valueOf('y'), Item.stick });
  227.         LanguageRegistry.addName(sapphireShovel, "Sapphire Shovel");
  228.         GameRegistry.addRecipe(new ItemStack(sapphireShovel), new Object[] { "x", "y", "y", Character.valueOf('x'), sapphire, Character.valueOf('y'), Item.stick });
  229.         LanguageRegistry.addName(silverShovel, "Silver Shovel");
  230.         GameRegistry.addRecipe(new ItemStack(silverShovel), new Object[] { "x", "y", "y", Character.valueOf('x'), silver, Character.valueOf('y'), Item.stick });
  231.         LanguageRegistry.addName(bronzeShovel, "Bronze Shovel");
  232.         GameRegistry.addRecipe(new ItemStack(bronzeShovel), new Object[] { "x", "y", "y", Character.valueOf('x'), bronze, Character.valueOf('y'), Item.stick });
  233.  
  234.         LanguageRegistry.addName(rubyPick, "Ruby Pickaxe");
  235.         GameRegistry.addRecipe(new ItemStack(rubyPick), new Object[] { "xxx", " y ", " y ", Character.valueOf('x'), ruby, Character.valueOf('y'), Item.stick });
  236.         LanguageRegistry.addName(sapphirePick, "Sapphire Pickaxe");
  237.         GameRegistry.addRecipe(new ItemStack(sapphirePick), new Object[] { "xxx", " y ", " y ", Character.valueOf('x'), sapphire, Character.valueOf('y'), Item.stick });
  238.         LanguageRegistry.addName(silverPick, "Silver Pickaxe");
  239.         GameRegistry.addRecipe(new ItemStack(silverPick), new Object[] { "xxx", " y ", " y ", Character.valueOf('x'), silver, Character.valueOf('y'), Item.stick });
  240.         LanguageRegistry.addName(bronzePick, "Bronze Pickaxe");
  241.         GameRegistry.addRecipe(new ItemStack(bronzePick), new Object[] { "xxx", " y ", " y ", Character.valueOf('x'), bronze, Character.valueOf('y'), Item.stick });
  242.  
  243.         LanguageRegistry.addName(rubyAxe, "Ruby Axe");
  244.         GameRegistry.addRecipe(new ItemStack(rubyAxe), new Object[] { "xx ", "xy ", " y ", Character.valueOf('x'), ruby, Character.valueOf('y'), Item.stick });
  245.         GameRegistry.addRecipe(new ItemStack(rubyAxe), new Object[] { " xx", " yx", " y ", Character.valueOf('x'), ruby, Character.valueOf('y'), Item.stick });
  246.         LanguageRegistry.addName(sapphireAxe, "Sapphire Axe");
  247.         GameRegistry.addRecipe(new ItemStack(sapphireAxe), new Object[] { "xx ", "xy ", " y ", Character.valueOf('x'), sapphire, Character.valueOf('y'), Item.stick });
  248.         GameRegistry.addRecipe(new ItemStack(sapphireAxe), new Object[] { " xx", " yx", " y ", Character.valueOf('x'), ruby, Character.valueOf('y'), Item.stick });
  249.         LanguageRegistry.addName(silverAxe, "Silver Axe");
  250.         GameRegistry.addRecipe(new ItemStack(silverAxe), new Object[] { "xx ", "xy ", " y ", Character.valueOf('x'), silver, Character.valueOf('y'), Item.stick });
  251.         GameRegistry.addRecipe(new ItemStack(silverAxe), new Object[] { " xx", " yx", " y ", Character.valueOf('x'), ruby, Character.valueOf('y'), Item.stick });
  252.         LanguageRegistry.addName(bronzeAxe, "Bronze Axe");
  253.         GameRegistry.addRecipe(new ItemStack(bronzeAxe), new Object[] { "xx ", "xy ", " y ", Character.valueOf('x'), bronze, Character.valueOf('y'), Item.stick });
  254.         GameRegistry.addRecipe(new ItemStack(bronzeAxe), new Object[] { " xx", " yx", " y ", Character.valueOf('x'), ruby, Character.valueOf('y'), Item.stick });
  255.  
  256.         LanguageRegistry.addName(rubyHoe, "Ruby Hoe");
  257.         GameRegistry.addRecipe(new ItemStack(rubyHoe), new Object[] { "xx ", " y ", " y ", Character.valueOf('x'), ruby, Character.valueOf('y'), Item.stick });
  258.         GameRegistry.addRecipe(new ItemStack(rubyHoe), new Object[] { " xx", " y ", " y ", Character.valueOf('x'), ruby, Character.valueOf('y'), Item.stick });
  259.         LanguageRegistry.addName(sapphireHoe, "Sapphire Hoe");
  260.         GameRegistry.addRecipe(new ItemStack(sapphireHoe), new Object[] { "xx ", " y ", " y ", Character.valueOf('x'), sapphire, Character.valueOf('y'), Item.stick });
  261.         GameRegistry.addRecipe(new ItemStack(sapphireHoe), new Object[] { " xx", " y ", " y ", Character.valueOf('x'), sapphire, Character.valueOf('y'), Item.stick });
  262.         LanguageRegistry.addName(silverHoe, "Silver Hoe");
  263.         GameRegistry.addRecipe(new ItemStack(silverHoe), new Object[] { " xx", " y ", " y ", Character.valueOf('x'), silver, Character.valueOf('y'), Item.stick });
  264.         GameRegistry.addRecipe(new ItemStack(silverHoe), new Object[] { "xx ", " y ", " y ", Character.valueOf('x'), silver, Character.valueOf('y'), Item.stick });
  265.         LanguageRegistry.addName(bronzeHoe, "Bronze Hoe");
  266.         GameRegistry.addRecipe(new ItemStack(bronzeHoe), new Object[] { " xx", " y ", " y ", Character.valueOf('x'), bronze, Character.valueOf('y'), Item.stick });
  267.         GameRegistry.addRecipe(new ItemStack(bronzeHoe), new Object[] { "xx ", " y ", " y ", Character.valueOf('x'), bronze, Character.valueOf('y'), Item.stick });
  268.  
  269.         LanguageRegistry.addName(rubyHelm, "Ruby Helmet");
  270.         GameRegistry.addRecipe(new ItemStack(rubyHelm), new Object[] { "xxx", "x x", Character.valueOf('x'), ruby });
  271.         LanguageRegistry.addName(sapphireHelm, "Sapphire Helmet");
  272.         GameRegistry.addRecipe(new ItemStack(sapphireHelm), new Object[] { "xxx", "x x", Character.valueOf('x'), sapphire });
  273.         LanguageRegistry.addName(silverHelm, "Silver Helmet");
  274.         GameRegistry.addRecipe(new ItemStack(silverHelm), new Object[] { "xxx", "x x", Character.valueOf('x'), silver });
  275.         LanguageRegistry.addName(bronzeHelm, "Bronze Helmet");
  276.         GameRegistry.addRecipe(new ItemStack(bronzeHelm), new Object[] { "xxx", "x x", Character.valueOf('x'), bronze });
  277.  
  278.         LanguageRegistry.addName(rubyChest, "Ruby Chestplate");
  279.         GameRegistry.addRecipe(new ItemStack(rubyChest), new Object[] { "x x", "xxx", "xxx", Character.valueOf('x'), ruby });
  280.         LanguageRegistry.addName(sapphireChest, "Sapphire Chestplate");
  281.         GameRegistry.addRecipe(new ItemStack(sapphireChest), new Object[] { "x x", "xxx", "xxx", Character.valueOf('x'), sapphire });
  282.         LanguageRegistry.addName(silverChest, "Silver Chestplate");
  283.         GameRegistry.addRecipe(new ItemStack(silverChest), new Object[] { "x x", "xxx", "xxx", Character.valueOf('x'), silver });
  284.         LanguageRegistry.addName(bronzeChest, "Bronze Chestplate");
  285.         GameRegistry.addRecipe(new ItemStack(bronzeChest), new Object[] { "x x", "xxx", "xxx", Character.valueOf('x'), bronze });
  286.  
  287.         LanguageRegistry.addName(rubyLegs, "Ruby Leggings");
  288.         GameRegistry.addRecipe(new ItemStack(rubyLegs), new Object[] { "xxx", "x x", "x x", Character.valueOf('x'), ruby });
  289.         LanguageRegistry.addName(sapphireLegs, "Sapphire Leggings");
  290.         GameRegistry.addRecipe(new ItemStack(sapphireLegs), new Object[] { "xxx", "x x", "x x", Character.valueOf('x'), sapphire });
  291.         LanguageRegistry.addName(silverLegs, "Silver Leggings");
  292.         GameRegistry.addRecipe(new ItemStack(silverLegs), new Object[] { "xxx", "x x", "x x", Character.valueOf('x'), silver });
  293.         LanguageRegistry.addName(bronzeLegs, "Bronze Leggings");
  294.         GameRegistry.addRecipe(new ItemStack(bronzeLegs), new Object[] { "xxx", "x x", "x x", Character.valueOf('x'), bronze });
  295.  
  296.         LanguageRegistry.addName(rubyBoots, "Ruby Boots");
  297.         GameRegistry.addRecipe(new ItemStack(rubyBoots), new Object[] { "x x", "x x", Character.valueOf('x'), ruby });
  298.         LanguageRegistry.addName(sapphireBoots, "Sapphire Boots");
  299.         GameRegistry.addRecipe(new ItemStack(sapphireBoots), new Object[] { "x x", "x x", Character.valueOf('x'), sapphire });
  300.         LanguageRegistry.addName(silverBoots, "Silver Boots");
  301.         GameRegistry.addRecipe(new ItemStack(silverBoots), new Object[] { "x x", "x x", Character.valueOf('x'), silver });
  302.         LanguageRegistry.addName(bronzeBoots, "Bronze Boots");
  303.         GameRegistry.addRecipe(new ItemStack(bronzeBoots), new Object[] { "x x", "x x", Character.valueOf('x'), bronze });
  304.  
  305.         GameRegistry.registerBlock(cornCrop);
  306.         LanguageRegistry.addName(cornCrop, "Corn Crop");
  307.         LanguageRegistry.addName(corn, "Corn");
  308.         LanguageRegistry.addName(cornKernel, "Kernel of Corn");
  309.         GameRegistry.registerBlock(tomatoCrop);
  310.         LanguageRegistry.addName(tomatoCrop, "Tomato Crop");
  311.         LanguageRegistry.addName(tomato, "Tomato");
  312.         LanguageRegistry.addName(tomatoSeeds, "Tomato Seeds");
  313.         GameRegistry.registerBlock(beetCrop);
  314.         LanguageRegistry.addName(beetCrop, "Sugar Beet Crop");
  315.         LanguageRegistry.addName(beet, "Sugar Beets");
  316.         LanguageRegistry.addName(beetSeeds, "Beet Seeds");
  317.        
  318.         LanguageRegistry.addName(cornOTC, "Corn on the Cob");
  319.         GameRegistry.addRecipe(new ItemStack(cornOTC), new Object[] { "xyx", Character.valueOf('x'), Item.stick, Character.valueOf('y'), corn });
  320.         LanguageRegistry.addName(cornPop, "Popcorn");
  321.         GameRegistry.addSmelting(corn.itemID, new ItemStack(cornPop), 0.1F);
  322.         LanguageRegistry.addName(carrotCake, "Carrot Cake");
  323.         GameRegistry.addRecipe(new ItemStack(carrotCake), new Object[] { "www", "xyx", "zzz", Character.valueOf('w'), Item.bucketMilk, Character.valueOf('x'), Item.carrot, Character.valueOf('y'), Item.egg, Character.valueOf('z'), Item.wheat });
  324.         GameRegistry.addShapelessRecipe(new ItemStack(carrotCake), new Object[] { Item.cake, Item.carrot, Item.carrot });
  325.         LanguageRegistry.addName(choc, "Chocolate");
  326.         GameRegistry.addShapelessRecipe(new ItemStack(choc), new Object[] { new ItemStack(Item.dyePowder, 1, 3), new ItemStack(Item.dyePowder, 1, 3), Item.sugar, Item.bucketMilk });
  327.         LanguageRegistry.addName(chocWhite, "White Chocolate");
  328.         GameRegistry.addShapelessRecipe(new ItemStack(chocWhite), new Object[] { chocButter, chocButter, Item.sugar, Item.bucketMilk });
  329.         LanguageRegistry.addName(chocButter, "Cocoa Butter");
  330.         GameRegistry.addShapelessRecipe(new ItemStack(chocButter, 2), new Object[] { new ItemStack(Item.dyePowder, 1, 3), new ItemStack(Item.dyePowder, 1, 3) });
  331.         LanguageRegistry.addName(chocCake, "Chocolate Cake");
  332.         GameRegistry.addRecipe(new ItemStack(chocCake), new Object[] { "www", "xyx", "zzz", Character.valueOf('w'), Item.bucketMilk, Character.valueOf('x'), new ItemStack(Item.dyePowder, 1, 3), Character.valueOf('y'), Item.egg, Character.valueOf('z'), Item.wheat });
  333.        
  334.         LanguageRegistry.addName(rubyStaff, "Ruby Staff");
  335.         LanguageRegistry.addName(sapphireStaff, "Sapphire Staff");
  336.         LanguageRegistry.addName(silverStaff, "Silver Staff");
  337.         LanguageRegistry.addName(bronzePaxel, "Bronze Paxel");
  338.        
  339.         DungeonHooks.addDungeonLoot(new ItemStack(cornKernel), 75, 1, 4);
  340.         DungeonHooks.addDungeonLoot(new ItemStack(tomatoSeeds), 75, 1, 4);
  341.  
  342.         OreDictionary.registerOre("gemRuby", new ItemStack(ruby));
  343.         OreDictionary.registerOre("gemSapphire", new ItemStack(sapphire));
  344.         OreDictionary.registerOre("ingotSilver", new ItemStack(silver));
  345.         OreDictionary.registerOre("ingotTin", new ItemStack(tin));
  346.         OreDictionary.registerOre("ingotCopper", new ItemStack(copper));
  347.         OreDictionary.registerOre("ingotBronze", new ItemStack(bronze));
  348.  
  349.         GameRegistry.registerFuelHandler(new MardiffFuelHandler());
  350.     }
  351. }
  352.  
  353. MardiffArmor:
  354.  
  355. package net.minecraft.mardiff;
  356.  
  357. import net.minecraft.item.EnumArmorMaterial;
  358. import net.minecraft.item.ItemArmor;
  359. import net.minecraft.item.ItemStack;
  360. import net.minecraftforge.common.IArmorTextureProvider;
  361.  
  362. public class MardiffArmor extends ItemArmor implements IArmorTextureProvider
  363. {
  364.   public MardiffArmor(int par1, EnumArmorMaterial par2EnumArmorMaterial, int par3, int par4)
  365.   {
  366.     super(par1, par2EnumArmorMaterial, par3, par4);
  367.   }
  368.  
  369.   public String getArmorTextureFile(ItemStack itemstack)
  370.   {
  371.     if(itemID == MardiffBase.rubyHelm.itemID)
  372.     {
  373.         return "/textures/armor/ruby_1.png";
  374.     }
  375.     if(itemID == MardiffBase.rubyChest.itemID)
  376.     {
  377.         return "/textures/armor/ruby_1.png";
  378.     }
  379.     if(itemID == MardiffBase.rubyLegs.itemID)
  380.     {
  381.         return "/textures/armor/ruby_2.png";
  382.     }
  383.     if(itemID == MardiffBase.rubyBoots.itemID)
  384.     {
  385.         return "/textures/armor/ruby_1.png";
  386.     }
  387.     if(itemID == MardiffBase.sapphireHelm.itemID)
  388.     {
  389.         return "/textures/armor/sapphire_1.png";
  390.     }
  391.     if(itemID == MardiffBase.sapphireChest.itemID)
  392.     {
  393.         return "/textures/armor/sapphire_1.png";
  394.     }
  395.     if(itemID == MardiffBase.sapphireLegs.itemID)
  396.     {
  397.         return "/textures/armor/sapphire_2.png";
  398.     }
  399.     if(itemID == MardiffBase.sapphireBoots.itemID)
  400.     {
  401.         return "/textures/armor/sapphire_1.png";
  402.     }
  403.     if(itemID == MardiffBase.silverHelm.itemID)
  404.     {
  405.         return "/textures/armor/silver_1.png";
  406.     }
  407.     if(itemID == MardiffBase.silverChest.itemID)
  408.     {
  409.         return "/textures/armor/silver_1.png";
  410.     }
  411.     if(itemID == MardiffBase.silverLegs.itemID)
  412.     {
  413.         return "/textures/armor/silver_2.png";
  414.     }
  415.     if(itemID == MardiffBase.silverBoots.itemID)
  416.     {
  417.         return "/textures/armor/silver_1.png";
  418.     }
  419.     if(itemID == MardiffBase.bronzeHelm.itemID)
  420.     {
  421.         return "/textures/armor/bronze_1.png";
  422.     }
  423.     if(itemID == MardiffBase.bronzeChest.itemID)
  424.     {
  425.         return "/textures/armor/bronze_1.png";
  426.     }
  427.     if(itemID == MardiffBase.bronzeLegs.itemID)
  428.     {
  429.         return "/textures/armor/bronze_2.png";
  430.     }
  431.     if(itemID == MardiffBase.bronzeBoots.itemID)
  432.     {
  433.         return "/textures/armor/bronze_1.png";
  434.     }
  435.     return null;
  436.            
  437.   }
  438.  
  439.   public String getTextureFile()
  440.   {
  441.     return "/textures/items/items.png";
  442.   }
  443. }
  444.  
  445. MardiffAxe:
  446.  
  447. package net.minecraft.mardiff;
  448.  
  449. import net.minecraft.item.EnumToolMaterial;
  450. import net.minecraft.item.ItemAxe;
  451.  
  452. public class MardiffAxe extends ItemAxe
  453. {
  454.   public MardiffAxe(int par1, EnumToolMaterial par2EnumToolMaterial)
  455.   {
  456.     super(par1, par2EnumToolMaterial);
  457.   }
  458.  
  459.   public String getTextureFile() {
  460.     return "/textures/items/items.png";
  461.   }
  462. }
  463.  
  464. MardiffBlock:
  465.  
  466. package net.minecraft.mardiff;
  467.  
  468. import net.minecraft.block.Block;
  469. import net.minecraft.block.material.Material;
  470.  
  471. public class MardiffBlock extends Block
  472. {
  473.     public MardiffBlock(int par1, int par2)
  474.     {
  475.         super(par1, par2, Material.rock);
  476.     }
  477.  
  478.  
  479.  
  480.     public String getTextureFile()
  481.     {
  482.         return "/textures/blocks/blocks.png";
  483.     }
  484. }
  485.  
  486. MardiffCrop:
  487.  
  488. package net.minecraft.mardiff;
  489.  
  490. import java.util.ArrayList;
  491. import java.util.Random;
  492.  
  493. import net.minecraft.block.Block;
  494. import net.minecraft.block.BlockFlower;
  495. import net.minecraft.creativetab.CreativeTabs;
  496. import net.minecraft.entity.player.EntityPlayer;
  497. import net.minecraft.item.Item;
  498. import net.minecraft.item.ItemStack;
  499. import net.minecraft.util.MathHelper;
  500. import net.minecraft.world.World;
  501. import cpw.mods.fml.relauncher.Side;
  502. import cpw.mods.fml.relauncher.SideOnly;
  503.  
  504. public class MardiffCrop extends BlockFlower
  505. {
  506.     protected MardiffCrop(int par1, int par2)
  507.     {
  508.         super(par1, par2);
  509.         this.blockIndexInTexture = par2;
  510.         this.setTickRandomly(true);
  511.         float var3 = 0.5F;
  512.         this.setBlockBounds(0.5F - var3, 0.0F, 0.5F - var3, 0.5F + var3, 0.25F, 0.5F + var3);
  513.         this.setCreativeTab((CreativeTabs)null);
  514.         this.setRequiresSelfNotify();
  515.     }
  516.  
  517.     public String getTextureFile(){
  518.         return "/textures/items/items.png";
  519.     }
  520.  
  521.     /**
  522.      * Gets passed in the blockID of the block below and supposed to return true if its allowed to grow on the type of
  523.      * blockID passed in. Args: blockID
  524.      */
  525.     protected boolean canThisPlantGrowOnThisBlockID(int par1)
  526.     {
  527.         return par1 == Block.tilledField.blockID;
  528.     }
  529.  
  530.     /**
  531.      * Ticks the block if it's been scheduled
  532.      */
  533.     public void updateTick(World par1World, int par2, int par3, int par4, Random par5Random)
  534.     {
  535.         super.updateTick(par1World, par2, par3, par4, par5Random);
  536.  
  537.         if (par1World.getBlockLightValue(par2, par3 + 1, par4) >= 9)
  538.         {
  539.             int var6 = par1World.getBlockMetadata(par2, par3, par4);
  540.  
  541.             if (var6 < 7)
  542.             {
  543.                 float var7 = this.getGrowthRate(par1World, par2, par3, par4);
  544.  
  545.                 if (par5Random.nextInt((int)(25.0F / var7) + 1) == 0)
  546.                 {
  547.                     ++var6;
  548.                     par1World.setBlockMetadataWithNotify(par2, par3, par4, var6);
  549.                 }
  550.             }
  551.         }
  552.     }
  553.  
  554.     /**
  555.      * Apply bonemeal to the crops.
  556.      */
  557.     public void fertilize(World par1World, int par2, int par3, int par4, EntityPlayer par5)
  558.     {                            
  559.         if(par1World.getBlockMetadata(par2, par3, par4) != 7)
  560.         {
  561.             par1World.setBlockMetadataWithNotify(par2, par3, par4, 7);  
  562.             --par5.inventory.getCurrentItem().stackSize;
  563.         }
  564.     }
  565.  
  566.     /**
  567.      * Gets the growth rate for the crop. Setup to encourage rows by halving growth rate if there is diagonals, crops on
  568.      * different sides that aren't opposing, and by adding growth for every crop next to this one (and for crop below
  569.      * this one). Args: x, y, z
  570.      */
  571.     private float getGrowthRate(World par1World, int par2, int par3, int par4)
  572.     {
  573.         float var5 = 1.0F;
  574.         int var6 = par1World.getBlockId(par2, par3, par4 - 1);
  575.         int var7 = par1World.getBlockId(par2, par3, par4 + 1);
  576.         int var8 = par1World.getBlockId(par2 - 1, par3, par4);
  577.         int var9 = par1World.getBlockId(par2 + 1, par3, par4);
  578.         int var10 = par1World.getBlockId(par2 - 1, par3, par4 - 1);
  579.         int var11 = par1World.getBlockId(par2 + 1, par3, par4 - 1);
  580.         int var12 = par1World.getBlockId(par2 + 1, par3, par4 + 1);
  581.         int var13 = par1World.getBlockId(par2 - 1, par3, par4 + 1);
  582.         boolean var14 = var8 == this.blockID || var9 == this.blockID;
  583.         boolean var15 = var6 == this.blockID || var7 == this.blockID;
  584.         boolean var16 = var10 == this.blockID || var11 == this.blockID || var12 == this.blockID || var13 == this.blockID;
  585.  
  586.         for (int var17 = par2 - 1; var17 <= par2 + 1; ++var17)
  587.         {
  588.             for (int var18 = par4 - 1; var18 <= par4 + 1; ++var18)
  589.             {
  590.                 int var19 = par1World.getBlockId(var17, par3 - 1, var18);
  591.                 float var20 = 0.0F;
  592.  
  593.                 if (var19 == Block.tilledField.blockID)
  594.                 {
  595.                     var20 = 1.0F;
  596.  
  597.                     if (par1World.getBlockMetadata(var17, par3 - 1, var18) > 0)
  598.                     {
  599.                         var20 = 3.0F;
  600.                     }
  601.                 }
  602.  
  603.                 if (var17 != par2 || var18 != par4)
  604.                 {
  605.                     var20 /= 4.0F;
  606.                 }
  607.  
  608.                 var5 += var20;
  609.             }
  610.         }
  611.  
  612.         if (var16 || var14 && var15)
  613.         {
  614.             var5 /= 2.0F;
  615.         }
  616.  
  617.         return var5;
  618.     }
  619.  
  620.     /**
  621.      * From the specified side and block metadata retrieves the blocks texture. Args: side, metadata
  622.      */
  623.     public int getBlockTextureFromSideAndMetadata(int par1, int par2)
  624.     {
  625.         if (par2 == 0)
  626.         {
  627.             return blockIndexInTexture;
  628.         }
  629.         if (par2 == 1)
  630.         {
  631.             return blockIndexInTexture + 1;
  632.         }
  633.         if (par2 == 2)
  634.         {
  635.             return blockIndexInTexture + 2;
  636.         }
  637.         if (par2 == 3)
  638.         {
  639.             return blockIndexInTexture + 3;
  640.         }
  641.         if (par2 == 4)
  642.         {
  643.             return blockIndexInTexture + 4;
  644.         }
  645.         if (par2 == 5)
  646.         {
  647.             return blockIndexInTexture + 5;
  648.         }
  649.         if (par2 == 6)
  650.         {
  651.             return blockIndexInTexture + 6;
  652.         }
  653.         if (par2 == 7)
  654.         {
  655.             return blockIndexInTexture + 7;
  656.         }
  657.         return -1;
  658.     }
  659.  
  660.     /**
  661.      * The type of render function that is called for this block
  662.      */
  663.     public int getRenderType()
  664.     {
  665.         return 6;
  666.     }
  667.  
  668.     /**
  669.      * Generate a seed ItemStack for this crop.
  670.      */
  671.     protected int getSeedItem()
  672.     {
  673.         if(blockID == MardiffBase.cornCrop.blockID)
  674.         {
  675.             return MardiffBase.cornKernel.itemID;
  676.         }
  677.         return MardiffBase.tomatoSeeds.itemID;
  678.     }
  679.  
  680.     /**
  681.      * Generate a crop produce ItemStack for this crop.
  682.      */
  683.     protected int getCropItem()
  684.     {
  685.         if(blockID == MardiffBase.cornCrop.blockID)
  686.         {
  687.             return MardiffBase.corn.itemID;
  688.         }
  689.         return MardiffBase.tomato.itemID;
  690.     }
  691.  
  692.     /**
  693.      * Drops the block items with a specified chance of dropping the specified items
  694.      */
  695.     public void dropBlockAsItemWithChance(World par1World, int par2, int par3, int par4, int par5, float par6, int par7)
  696.     {
  697.         super.dropBlockAsItemWithChance(par1World, par2, par3, par4, par5, par6, 0);
  698.     }
  699.  
  700.     @Override
  701.     public ArrayList<ItemStack> getBlockDropped(World world, int x, int y, int z, int metadata, int fortune)
  702.     {
  703.         ArrayList<ItemStack> ret = super.getBlockDropped(world, x, y, z, metadata, fortune);
  704.  
  705.         if (metadata >= 7)
  706.         {
  707.             for (int n = 0; n < 3 + fortune; n++)
  708.             {
  709.                 if (world.rand.nextInt(15) <= metadata)
  710.                 {
  711.                     ret.add(new ItemStack(this.getSeedItem(), 1, 0));
  712.                 }
  713.             }
  714.         }
  715.  
  716.         return ret;
  717.     }
  718.  
  719.     /**
  720.      * Returns the ID of the items to drop on destruction.
  721.      */
  722.     public int idDropped(int par1, Random par2Random, int par3)
  723.     {
  724.         return par1 == 7 ? this.getCropItem() : this.getSeedItem();
  725.     }
  726.  
  727.     /**
  728.      * Returns the quantity of items to drop on block destruction.
  729.      */
  730.     public int quantityDropped(Random par1Random)
  731.     {
  732.         return 1;
  733.     }
  734.  
  735.     //@SideOnly(Side.CLIENT)
  736.  
  737.     /**
  738.      * only called by clickMiddleMouseButton , and passed to inventory.setCurrentItem (along with isCreative)
  739.      */
  740.     public int idPicked(World par1World, int par2, int par3, int par4)
  741.     {
  742.         return this.getSeedItem();
  743.     }
  744. }
  745.  
  746. MardiffFertilizerEventClass:
  747.  
  748. package net.minecraft.mardiff;
  749.  
  750. import java.util.ArrayList;
  751. import java.util.Random;
  752.  
  753. import net.minecraft.block.Block;
  754. import net.minecraft.block.BlockFlower;
  755. import net.minecraft.creativetab.CreativeTabs;
  756. import net.minecraft.entity.player.EntityPlayer;
  757. import net.minecraft.item.Item;
  758. import net.minecraft.item.ItemStack;
  759. import net.minecraft.util.MathHelper;
  760. import net.minecraft.world.World;
  761. import cpw.mods.fml.relauncher.Side;
  762. import cpw.mods.fml.relauncher.SideOnly;
  763.  
  764. public class MardiffCrop extends BlockFlower
  765. {
  766.     protected MardiffCrop(int par1, int par2)
  767.     {
  768.         super(par1, par2);
  769.         this.blockIndexInTexture = par2;
  770.         this.setTickRandomly(true);
  771.         float var3 = 0.5F;
  772.         this.setBlockBounds(0.5F - var3, 0.0F, 0.5F - var3, 0.5F + var3, 0.25F, 0.5F + var3);
  773.         this.setCreativeTab((CreativeTabs)null);
  774.         this.setRequiresSelfNotify();
  775.     }
  776.  
  777.     public String getTextureFile(){
  778.         return "/textures/items/items.png";
  779.     }
  780.  
  781.     /**
  782.      * Gets passed in the blockID of the block below and supposed to return true if its allowed to grow on the type of
  783.      * blockID passed in. Args: blockID
  784.      */
  785.     protected boolean canThisPlantGrowOnThisBlockID(int par1)
  786.     {
  787.         return par1 == Block.tilledField.blockID;
  788.     }
  789.  
  790.     /**
  791.      * Ticks the block if it's been scheduled
  792.      */
  793.     public void updateTick(World par1World, int par2, int par3, int par4, Random par5Random)
  794.     {
  795.         super.updateTick(par1World, par2, par3, par4, par5Random);
  796.  
  797.         if (par1World.getBlockLightValue(par2, par3 + 1, par4) >= 9)
  798.         {
  799.             int var6 = par1World.getBlockMetadata(par2, par3, par4);
  800.  
  801.             if (var6 < 7)
  802.             {
  803.                 float var7 = this.getGrowthRate(par1World, par2, par3, par4);
  804.  
  805.                 if (par5Random.nextInt((int)(25.0F / var7) + 1) == 0)
  806.                 {
  807.                     ++var6;
  808.                     par1World.setBlockMetadataWithNotify(par2, par3, par4, var6);
  809.                 }
  810.             }
  811.         }
  812.     }
  813.  
  814.     /**
  815.      * Apply bonemeal to the crops.
  816.      */
  817.     public void fertilize(World par1World, int par2, int par3, int par4, EntityPlayer par5)
  818.     {                            
  819.         if(par1World.getBlockMetadata(par2, par3, par4) != 7)
  820.         {
  821.             par1World.setBlockMetadataWithNotify(par2, par3, par4, 7);  
  822.             --par5.inventory.getCurrentItem().stackSize;
  823.         }
  824.     }
  825.  
  826.     /**
  827.      * Gets the growth rate for the crop. Setup to encourage rows by halving growth rate if there is diagonals, crops on
  828.      * different sides that aren't opposing, and by adding growth for every crop next to this one (and for crop below
  829.      * this one). Args: x, y, z
  830.      */
  831.     private float getGrowthRate(World par1World, int par2, int par3, int par4)
  832.     {
  833.         float var5 = 1.0F;
  834.         int var6 = par1World.getBlockId(par2, par3, par4 - 1);
  835.         int var7 = par1World.getBlockId(par2, par3, par4 + 1);
  836.         int var8 = par1World.getBlockId(par2 - 1, par3, par4);
  837.         int var9 = par1World.getBlockId(par2 + 1, par3, par4);
  838.         int var10 = par1World.getBlockId(par2 - 1, par3, par4 - 1);
  839.         int var11 = par1World.getBlockId(par2 + 1, par3, par4 - 1);
  840.         int var12 = par1World.getBlockId(par2 + 1, par3, par4 + 1);
  841.         int var13 = par1World.getBlockId(par2 - 1, par3, par4 + 1);
  842.         boolean var14 = var8 == this.blockID || var9 == this.blockID;
  843.         boolean var15 = var6 == this.blockID || var7 == this.blockID;
  844.         boolean var16 = var10 == this.blockID || var11 == this.blockID || var12 == this.blockID || var13 == this.blockID;
  845.  
  846.         for (int var17 = par2 - 1; var17 <= par2 + 1; ++var17)
  847.         {
  848.             for (int var18 = par4 - 1; var18 <= par4 + 1; ++var18)
  849.             {
  850.                 int var19 = par1World.getBlockId(var17, par3 - 1, var18);
  851.                 float var20 = 0.0F;
  852.  
  853.                 if (var19 == Block.tilledField.blockID)
  854.                 {
  855.                     var20 = 1.0F;
  856.  
  857.                     if (par1World.getBlockMetadata(var17, par3 - 1, var18) > 0)
  858.                     {
  859.                         var20 = 3.0F;
  860.                     }
  861.                 }
  862.  
  863.                 if (var17 != par2 || var18 != par4)
  864.                 {
  865.                     var20 /= 4.0F;
  866.                 }
  867.  
  868.                 var5 += var20;
  869.             }
  870.         }
  871.  
  872.         if (var16 || var14 && var15)
  873.         {
  874.             var5 /= 2.0F;
  875.         }
  876.  
  877.         return var5;
  878.     }
  879.  
  880.     /**
  881.      * From the specified side and block metadata retrieves the blocks texture. Args: side, metadata
  882.      */
  883.     public int getBlockTextureFromSideAndMetadata(int par1, int par2)
  884.     {
  885.         if (par2 == 0)
  886.         {
  887.             return blockIndexInTexture;
  888.         }
  889.         if (par2 == 1)
  890.         {
  891.             return blockIndexInTexture + 1;
  892.         }
  893.         if (par2 == 2)
  894.         {
  895.             return blockIndexInTexture + 2;
  896.         }
  897.         if (par2 == 3)
  898.         {
  899.             return blockIndexInTexture + 3;
  900.         }
  901.         if (par2 == 4)
  902.         {
  903.             return blockIndexInTexture + 4;
  904.         }
  905.         if (par2 == 5)
  906.         {
  907.             return blockIndexInTexture + 5;
  908.         }
  909.         if (par2 == 6)
  910.         {
  911.             return blockIndexInTexture + 6;
  912.         }
  913.         if (par2 == 7)
  914.         {
  915.             return blockIndexInTexture + 7;
  916.         }
  917.         return -1;
  918.     }
  919.  
  920.     /**
  921.      * The type of render function that is called for this block
  922.      */
  923.     public int getRenderType()
  924.     {
  925.         return 6;
  926.     }
  927.  
  928.     /**
  929.      * Generate a seed ItemStack for this crop.
  930.      */
  931.     protected int getSeedItem()
  932.     {
  933.         if(blockID == MardiffBase.cornCrop.blockID)
  934.         {
  935.             return MardiffBase.cornKernel.itemID;
  936.         }
  937.         return MardiffBase.tomatoSeeds.itemID;
  938.     }
  939.  
  940.     /**
  941.      * Generate a crop produce ItemStack for this crop.
  942.      */
  943.     protected int getCropItem()
  944.     {
  945.         if(blockID == MardiffBase.cornCrop.blockID)
  946.         {
  947.             return MardiffBase.corn.itemID;
  948.         }
  949.         return MardiffBase.tomato.itemID;
  950.     }
  951.  
  952.     /**
  953.      * Drops the block items with a specified chance of dropping the specified items
  954.      */
  955.     public void dropBlockAsItemWithChance(World par1World, int par2, int par3, int par4, int par5, float par6, int par7)
  956.     {
  957.         super.dropBlockAsItemWithChance(par1World, par2, par3, par4, par5, par6, 0);
  958.     }
  959.  
  960.     @Override
  961.     public ArrayList<ItemStack> getBlockDropped(World world, int x, int y, int z, int metadata, int fortune)
  962.     {
  963.         ArrayList<ItemStack> ret = super.getBlockDropped(world, x, y, z, metadata, fortune);
  964.  
  965.         if (metadata >= 7)
  966.         {
  967.             for (int n = 0; n < 3 + fortune; n++)
  968.             {
  969.                 if (world.rand.nextInt(15) <= metadata)
  970.                 {
  971.                     ret.add(new ItemStack(this.getSeedItem(), 1, 0));
  972.                 }
  973.             }
  974.         }
  975.  
  976.         return ret;
  977.     }
  978.  
  979.     /**
  980.      * Returns the ID of the items to drop on destruction.
  981.      */
  982.     public int idDropped(int par1, Random par2Random, int par3)
  983.     {
  984.         return par1 == 7 ? this.getCropItem() : this.getSeedItem();
  985.     }
  986.  
  987.     /**
  988.      * Returns the quantity of items to drop on block destruction.
  989.      */
  990.     public int quantityDropped(Random par1Random)
  991.     {
  992.         return 1;
  993.     }
  994.  
  995.     //@SideOnly(Side.CLIENT)
  996.  
  997.     /**
  998.      * only called by clickMiddleMouseButton , and passed to inventory.setCurrentItem (along with isCreative)
  999.      */
  1000.     public int idPicked(World par1World, int par2, int par3, int par4)
  1001.     {
  1002.         return this.getSeedItem();
  1003.     }
  1004. }
  1005.  
  1006. MardiffFood:
  1007.  
  1008. package net.minecraft.mardiff;
  1009.  
  1010. import net.minecraft.item.ItemFood;
  1011.  
  1012. public class MardiffFood extends ItemFood
  1013. {
  1014.         public MardiffFood(int i, int j, boolean k){
  1015.                 super(i,j,k);
  1016.         }
  1017.         public String getTextureFile(){
  1018.                 return "/textures/items/items.png";
  1019.         }
  1020. }
  1021.  
  1022. MardiffFuelHandler:
  1023.  
  1024. package net.minecraft.mardiff;
  1025.  
  1026. import cpw.mods.fml.common.IFuelHandler;
  1027. import net.minecraft.mardiff.MardiffBase;
  1028. import net.minecraft.item.ItemStack;
  1029.  
  1030. public class MardiffFuelHandler implements IFuelHandler
  1031. {
  1032.   public int getBurnTime(ItemStack fuel)
  1033.   {
  1034.     if (fuel.itemID == MardiffBase.lignite.itemID) {
  1035.       return 1200;
  1036.     }
  1037.     return 0;
  1038.   }
  1039. }
  1040.  
  1041. MardiffHoe:
  1042.  
  1043. package net.minecraft.mardiff;
  1044.  
  1045. import net.minecraft.item.EnumToolMaterial;
  1046. import net.minecraft.item.ItemHoe;
  1047.  
  1048. public class MardiffHoe extends ItemHoe
  1049. {
  1050.   public MardiffHoe(int par1, EnumToolMaterial par2EnumToolMaterial)
  1051.   {
  1052.     super(par1, par2EnumToolMaterial);
  1053.   }
  1054.  
  1055.   public String getTextureFile() {
  1056.     return "/textures/items/items.png";
  1057.   }
  1058. }
  1059.  
  1060. package net.minecraft.mardiff;
  1061.  
  1062. import net.minecraft.item.Item;
  1063.  
  1064. public class MardiffItem extends Item
  1065. {
  1066.     public MardiffItem(int par1)
  1067.     {
  1068.         super(par1);
  1069.     }
  1070.  
  1071.     public String getTextureFile()
  1072.     {
  1073.         return "/textures/items/items.png";
  1074.     }
  1075. }
  1076.  
  1077. MardiffOre:
  1078.  
  1079. package net.minecraft.mardiff;
  1080.  
  1081. import java.util.Random;
  1082.  
  1083. import net.minecraft.block.Block;
  1084. import net.minecraft.block.material.Material;
  1085. import net.minecraft.util.MathHelper;
  1086. import net.minecraft.world.World;
  1087.  
  1088. public class MardiffOre extends Block
  1089. {
  1090.   public MardiffOre(int blockID, int spriteIndex)
  1091.   {
  1092.     super(blockID, spriteIndex, Material.rock);
  1093.     this.setHardness(3.0F);
  1094.     this.setResistance(5.0F);
  1095.     this.setCreativeTab(MardiffBase.MardiffTab);
  1096.   }
  1097.  
  1098.   public String getTextureFile()
  1099.   {
  1100.     return "/textures/blocks/blocks.png";
  1101.   }
  1102. }
  1103.  
  1104. MardiffOreItem:
  1105.  
  1106. package net.minecraft.mardiff;
  1107.  
  1108. import java.util.Random;
  1109.  
  1110. import net.minecraft.block.Block;
  1111. import net.minecraft.block.material.Material;
  1112. import net.minecraft.item.Item;
  1113. import net.minecraft.util.MathHelper;
  1114. import net.minecraft.world.World;
  1115.  
  1116. public class MardiffOreItem extends Block
  1117. {
  1118.   public MardiffOreItem(int blockID, int spriteIndex)
  1119.   {
  1120.     super(blockID, spriteIndex, Material.rock);
  1121.     this.setHardness(3.0F);
  1122.     this.setResistance(5.0F);
  1123.     this.setCreativeTab(MardiffBase.MardiffTab);
  1124.   }
  1125.  
  1126.   public int idDropped(int par1, Random par2Random, int par3)
  1127.   {
  1128.       return this.blockID == MardiffBase.rubyOre.blockID ? MardiffBase.ruby.itemID : (this.blockID == MardiffBase.sapphireOre.blockID ? MardiffBase.sapphire.itemID : (this.blockID == MardiffBase.ligniteOre.blockID ? MardiffBase.lignite.itemID : this.blockID));
  1129.   }
  1130.  
  1131.   public void dropBlockAsItemWithChance(World par1World, int par2, int par3, int par4, int par5, float par6, int par7){
  1132.       super.dropBlockAsItemWithChance(par1World, par2, par3, par4, par5, par6, par7);
  1133.       int var8=0;
  1134.       if(this.blockID == MardiffBase.rubyOre.blockID){
  1135.               var8 = MathHelper.getRandomIntegerInRange(par1World.rand, 1, 3);
  1136.       }
  1137.       else if (this.blockID == MardiffBase.sapphireOre.blockID)
  1138.       {
  1139.           var8 = MathHelper.getRandomIntegerInRange(par1World.rand, 1, 3);
  1140.       }
  1141.       else if (this.blockID == MardiffBase.ligniteOre.blockID)
  1142.       {
  1143.           var8 = MathHelper.getRandomIntegerInRange(par1World.rand, 0, 2);
  1144.       }
  1145.       this.dropXpOnBlockBreak(par1World, par2, par3, par4, var8);
  1146. }
  1147.  
  1148.  
  1149. public int quantityDropped(int par1, int par2, Random rand){
  1150.       return quantityDroppedWithBonus(par2, rand);
  1151. }
  1152.  
  1153.   public String getTextureFile()
  1154.   {
  1155.     return "/textures/blocks/blocks.png";
  1156.   }
  1157. }
  1158.  
  1159. MardiffPaxel:
  1160.  
  1161. package net.minecraft.mardiff;
  1162.  
  1163. import net.minecraft.block.Block;
  1164. import net.minecraft.block.material.Material;
  1165. import net.minecraft.entity.player.EntityPlayer;
  1166. import net.minecraft.item.EnumToolMaterial;
  1167. import net.minecraft.item.ItemStack;
  1168. import net.minecraft.item.ItemTool;
  1169. import net.minecraft.world.World;
  1170. import net.minecraftforge.common.MinecraftForge;
  1171. import net.minecraftforge.event.Event.Result;
  1172. import net.minecraftforge.event.entity.player.UseHoeEvent;
  1173.  
  1174. public class MardiffPaxel extends ItemTool
  1175. {
  1176.     protected MardiffPaxel(int par1, EnumToolMaterial par2EnumToolMaterial)
  1177.     {
  1178.         super(par1, 4, par2EnumToolMaterial, blocksEffectiveAgainst);
  1179.     }
  1180.    
  1181.     public String getTextureFile()
  1182.     {
  1183.         return "/textures/items/items.png";
  1184.     }
  1185.    
  1186.     public boolean isFull3D()
  1187.     {
  1188.         return true;
  1189.     }
  1190.  
  1191.     public float getStrVsBlock(ItemStack par1ItemStack, Block par2Block)
  1192.     {
  1193.         return par2Block != null && (par2Block.blockMaterial == Material.wood || par2Block.blockMaterial == Material.iron || par2Block.blockMaterial == Material.anvil || par2Block.blockMaterial == Material.rock) ? this.efficiencyOnProperMaterial : super.getStrVsBlock(par1ItemStack, par2Block);
  1194.     }
  1195.  
  1196.     public boolean canHarvestBlock(Block par1Block)
  1197.     {
  1198.         return par1Block == Block.obsidian ? this.toolMaterial.getHarvestLevel() == 3 : (Block.snow != null ? true : par1Block == Block.blockSnow ? this.toolMaterial.getHarvestLevel() == 2 : (par1Block != Block.blockDiamond && par1Block != Block.oreDiamond ? (par1Block != Block.oreEmerald && par1Block != Block.blockEmerald ? (par1Block != Block.blockGold && par1Block != Block.oreGold ? (par1Block != Block.blockSteel && par1Block != Block.oreIron ? (par1Block != Block.blockLapis && par1Block != Block.oreLapis ? (par1Block != Block.oreRedstone && par1Block != Block.oreRedstoneGlowing ? (par1Block.blockMaterial == Material.rock ? true : (par1Block.blockMaterial == Material.iron ? true : par1Block.blockMaterial == Material.anvil)) : this.toolMaterial.getHarvestLevel() >= 2) : this.toolMaterial.getHarvestLevel() >= 1) : this.toolMaterial.getHarvestLevel() >= 1) : this.toolMaterial.getHarvestLevel() >= 2) : this.toolMaterial.getHarvestLevel() >= 2) : this.toolMaterial.getHarvestLevel() >= 2));
  1199.     }
  1200.  
  1201.     public static final Block[] blocksEffectiveAgainst = new Block[] {Block.grass, Block.dirt, Block.sand, Block.gravel, Block.snow, Block.blockSnow, Block.blockClay, Block.tilledField, Block.slowSand, Block.mycelium, Block.planks, Block.bookShelf, Block.wood, Block.chest, Block.stoneDoubleSlab, Block.stoneSingleSlab, Block.pumpkin, Block.pumpkinLantern, Block.cobblestone, Block.stoneDoubleSlab, Block.stoneSingleSlab, Block.stone, Block.sandStone, Block.cobblestoneMossy, Block.oreIron, Block.blockSteel, Block.oreCoal, Block.blockGold, Block.oreGold, Block.oreDiamond, Block.blockDiamond, Block.ice, Block.netherrack, Block.oreLapis, Block.blockLapis, Block.oreRedstone, Block.oreRedstoneGlowing, Block.rail, Block.railDetector, Block.railPowered};
  1202.  
  1203.  
  1204.  
  1205.     public boolean onItemUse(ItemStack par1ItemStack, EntityPlayer par2EntityPlayer, World par3World, int par4, int par5, int par6, int par7, float par8, float par9, float par10)
  1206.     {
  1207.         if (!par2EntityPlayer.canPlayerEdit(par4, par5, par6, par7, par1ItemStack))
  1208.         {
  1209.             return false;
  1210.         }
  1211.         else
  1212.         {
  1213.             UseHoeEvent event = new UseHoeEvent(par2EntityPlayer, par1ItemStack, par3World, par4, par5, par6);
  1214.             if (MinecraftForge.EVENT_BUS.post(event))
  1215.             {
  1216.                 return false;
  1217.             }
  1218.  
  1219.             if (event.getResult() == Result.ALLOW)
  1220.             {
  1221.                 par1ItemStack.damageItem(1, par2EntityPlayer);
  1222.                 return true;
  1223.             }
  1224.  
  1225.             int var11 = par3World.getBlockId(par4, par5, par6);
  1226.             int var12 = par3World.getBlockId(par4, par5 + 1, par6);
  1227.  
  1228.             if ((par7 == 0 || var12 != 0 || var11 != Block.grass.blockID) && var11 != Block.dirt.blockID)
  1229.             {
  1230.                 return false;
  1231.             }
  1232.             else
  1233.             {
  1234.                 Block var13 = Block.tilledField;
  1235.                 par3World.playSoundEffect((double)((float)par4 + 0.5F), (double)((float)par5 + 0.5F), (double)((float)par6 + 0.5F), var13.stepSound.getStepSound(), (var13.stepSound.getVolume() + 1.0F) / 2.0F, var13.stepSound.getPitch() * 0.8F);
  1236.  
  1237.                 if (par3World.isRemote)
  1238.                 {
  1239.                     return true;
  1240.                 }
  1241.                 else
  1242.                 {
  1243.                     par3World.setBlockWithNotify(par4, par5, par6, var13.blockID);
  1244.                     par1ItemStack.damageItem(1, par2EntityPlayer);
  1245.                     return true;
  1246.                 }
  1247.             }
  1248.         }
  1249.     }
  1250. }
  1251.  
  1252. MardiffPick:
  1253.  
  1254. package net.minecraft.mardiff;
  1255.  
  1256. import net.minecraft.item.EnumToolMaterial;
  1257. import net.minecraft.item.ItemPickaxe;
  1258.  
  1259. public class MardiffPick extends ItemPickaxe
  1260. {
  1261.   public MardiffPick(int par1, EnumToolMaterial par2EnumToolMaterial)
  1262.   {
  1263.     super(par1, par2EnumToolMaterial);
  1264.   }
  1265.  
  1266.   public String getTextureFile() {
  1267.     return "/textures/items/items.png";
  1268.   }
  1269. }
  1270.  
  1271. MardiffRubyStaff:
  1272.  
  1273. package net.minecraft.mardiff;
  1274.  
  1275. import paulscode.sound.Vector3D;
  1276. import net.minecraft.item.EnumToolMaterial;
  1277. import net.minecraft.block.Block;
  1278. import net.minecraft.block.material.Material;
  1279. import net.minecraft.entity.effect.EntityLightningBolt;
  1280. import net.minecraft.entity.passive.EntityCow;
  1281. import net.minecraft.entity.player.EntityPlayer;
  1282. import net.minecraft.item.EnumToolMaterial;
  1283. import net.minecraft.item.Item;
  1284. import net.minecraft.item.ItemStack;
  1285. import net.minecraft.util.EnumMovingObjectType;
  1286. import net.minecraft.util.MathHelper;
  1287. import net.minecraft.util.MovingObjectPosition;
  1288. import net.minecraft.util.Vec3;
  1289. import net.minecraft.world.World;
  1290. import net.minecraftforge.common.MinecraftForge;
  1291. import net.minecraftforge.event.Event;
  1292. import net.minecraftforge.event.entity.player.FillBucketEvent;
  1293.  
  1294. public class MardiffRubyStaff extends Item
  1295. {
  1296.     public String getTextureFile()
  1297.     {
  1298.         return "/textures/items/items.png";
  1299.     }
  1300.  
  1301.     public MardiffRubyStaff(int i)
  1302.     {
  1303.         super(i);
  1304.         maxStackSize = 1;
  1305.         this.setMaxDamage(250);
  1306.     }
  1307.  
  1308.     public boolean isFull3D()
  1309.     {
  1310.         return true;
  1311.     }
  1312.  
  1313.     public int getMaxItemUseDuration(ItemStack par1ItemStack)
  1314.     {
  1315.         return 72000;
  1316.     }
  1317.  
  1318.  
  1319.     public ItemStack onItemRightClick(ItemStack par1ItemStack, World par2World, EntityPlayer par3EntityPlayer)
  1320.     {
  1321.         par1ItemStack.damageItem(1, par3EntityPlayer);
  1322.         float var4 = 1.0F;
  1323.         double var5 = par3EntityPlayer.prevPosX + (par3EntityPlayer.posX - par3EntityPlayer.prevPosX) * (double)var4;
  1324.         double var7 = par3EntityPlayer.prevPosY + (par3EntityPlayer.posY - par3EntityPlayer.prevPosY) * (double)var4 + 1.62D - (double)par3EntityPlayer.yOffset;
  1325.         double var9 = par3EntityPlayer.prevPosZ + (par3EntityPlayer.posZ - par3EntityPlayer.prevPosZ) * (double)var4;
  1326.         boolean var11 = Block.lavaMoving.blockID == 0;
  1327.         MovingObjectPosition var12 = this.getMovingObjectPositionFromPlayer(par2World, par3EntityPlayer, var11);
  1328.  
  1329.         if (var12 == null)
  1330.         {
  1331.             return par1ItemStack;
  1332.         }
  1333.         else
  1334.         {
  1335.             FillBucketEvent event = new FillBucketEvent(par3EntityPlayer, par1ItemStack, par2World, var12);
  1336.             if (MinecraftForge.EVENT_BUS.post(event))
  1337.             {
  1338.                 return par1ItemStack;
  1339.             }
  1340.  
  1341.             if (event.getResult() == Event.Result.ALLOW)
  1342.             {
  1343.                 if (par3EntityPlayer.capabilities.isCreativeMode)
  1344.                 {
  1345.                     return par1ItemStack;
  1346.                 }
  1347.  
  1348.                 if (--par1ItemStack.stackSize <= 0)
  1349.                 {
  1350.                     return event.result;
  1351.                 }
  1352.  
  1353.                 if (!par3EntityPlayer.inventory.addItemStackToInventory(event.result))
  1354.                 {
  1355.                     par3EntityPlayer.dropPlayerItem(event.result);
  1356.                 }
  1357.  
  1358.                 return par1ItemStack;
  1359.             }
  1360.  
  1361.             if (var12.typeOfHit == EnumMovingObjectType.TILE)
  1362.             {
  1363.                 int var13 = var12.blockX;
  1364.                 int var14 = var12.blockY;
  1365.                 int var15 = var12.blockZ;
  1366.  
  1367.                 if (!par2World.canMineBlock(par3EntityPlayer, var13, var14, var15))
  1368.                 {
  1369.                     return par1ItemStack;
  1370.                 }
  1371.  
  1372.                 if (Block.lavaMoving.blockID == 0)
  1373.                 {
  1374.                     if (!par3EntityPlayer.canPlayerEdit(var13, var14, var15, var12.sideHit, par1ItemStack))
  1375.                     {
  1376.                         return par1ItemStack;
  1377.                     }
  1378.  
  1379.                     if (par2World.getBlockMaterial(var13, var14, var15) == Material.water && par2World.getBlockMetadata(var13, var14, var15) == 0)
  1380.                     {
  1381.                         par2World.setBlockWithNotify(var13, var14, var15, 0);
  1382.  
  1383.                         if (par3EntityPlayer.capabilities.isCreativeMode)
  1384.                         {
  1385.                             return par1ItemStack;
  1386.                         }
  1387.  
  1388.                         if (--par1ItemStack.stackSize <= 0)
  1389.                         {
  1390.                             return new ItemStack(Item.bucketWater);
  1391.                         }
  1392.  
  1393.                         if (!par3EntityPlayer.inventory.addItemStackToInventory(new ItemStack(Item.bucketWater)))
  1394.                         {
  1395.                             par3EntityPlayer.dropPlayerItem(new ItemStack(Item.bucketWater.itemID, 1, 0));
  1396.                         }
  1397.  
  1398.                         return par1ItemStack;
  1399.                     }
  1400.  
  1401.                     if (par2World.getBlockMaterial(var13, var14, var15) == Material.lava && par2World.getBlockMetadata(var13, var14, var15) == 0)
  1402.                     {
  1403.                         par2World.setBlockWithNotify(var13, var14, var15, 0);
  1404.  
  1405.                         if (par3EntityPlayer.capabilities.isCreativeMode)
  1406.                         {
  1407.                             return par1ItemStack;
  1408.                         }
  1409.  
  1410.                         if (--par1ItemStack.stackSize <= 0)
  1411.                         {
  1412.                             return new ItemStack(Item.bucketLava);
  1413.                         }
  1414.  
  1415.                         if (!par3EntityPlayer.inventory.addItemStackToInventory(new ItemStack(Item.bucketLava)))
  1416.                         {
  1417.                             par3EntityPlayer.dropPlayerItem(new ItemStack(Item.bucketLava.itemID, 1, 0));
  1418.                         }
  1419.  
  1420.                         return par1ItemStack;
  1421.                     }
  1422.                 }
  1423.                 else
  1424.                 {
  1425.                     if (Block.lavaMoving.blockID < 0)
  1426.                     {
  1427.                         return new ItemStack(Item.bucketEmpty);
  1428.                     }
  1429.  
  1430.                     if (var12.sideHit == 0)
  1431.                     {
  1432.                         --var14;
  1433.                     }
  1434.  
  1435.                     if (var12.sideHit == 1)
  1436.                     {
  1437.                         ++var14;
  1438.                     }
  1439.  
  1440.                     if (var12.sideHit == 2)
  1441.                     {
  1442.                         --var15;
  1443.                     }
  1444.  
  1445.                     if (var12.sideHit == 3)
  1446.                     {
  1447.                         ++var15;
  1448.                     }
  1449.  
  1450.                     if (var12.sideHit == 4)
  1451.                     {
  1452.                         --var13;
  1453.                     }
  1454.  
  1455.                     if (var12.sideHit == 5)
  1456.                     {
  1457.                         ++var13;
  1458.                     }
  1459.  
  1460.                     if (!par3EntityPlayer.canPlayerEdit(var13, var14, var15, var12.sideHit, par1ItemStack))
  1461.                     {
  1462.                         return par1ItemStack;
  1463.                     }
  1464.  
  1465.                     if (this.tryPlaceContainedLiquid(par2World, var5, var7, var9, var13, var14, var15) && !par3EntityPlayer.capabilities.isCreativeMode)
  1466.                     {
  1467.                         return new ItemStack(Item.bucketEmpty);
  1468.                     }
  1469.                 }
  1470.             }
  1471.             else if (Block.lavaMoving.blockID == 0 && var12.entityHit instanceof EntityCow)
  1472.             {
  1473.                 return new ItemStack(Item.bucketMilk);
  1474.             }
  1475.  
  1476.             return par1ItemStack;
  1477.         }
  1478.     }
  1479.  
  1480.     /**
  1481.      * Attempts to place the liquid contained inside the bucket.
  1482.      */
  1483.      public boolean tryPlaceContainedLiquid(World par1World, double par2, double par4, double par6, int par8, int par9, int par10)
  1484.     {
  1485.         if (Block.lavaMoving.blockID <= 0)
  1486.         {
  1487.             return false;
  1488.         }
  1489.         else if (!par1World.isAirBlock(par8, par9, par10) && par1World.getBlockMaterial(par8, par9, par10).isSolid())
  1490.         {
  1491.             return false;
  1492.         }
  1493.         else
  1494.         {
  1495.             if (par1World.provider.isHellWorld && Block.lavaMoving.blockID == Block.lavaMoving.blockID)
  1496.             {
  1497.                 par1World.playSoundEffect(par2 + 0.5D, par4 + 0.5D, par6 + 0.5D, "random.fizz", 0.5F, 2.6F + (par1World.rand.nextFloat() - par1World.rand.nextFloat()) * 0.8F);
  1498.  
  1499.                 for (int var11 = 0; var11 < 8; ++var11)
  1500.                 {
  1501.                     par1World.spawnParticle("largesmoke", (double)par8 + Math.random(), (double)par9 + Math.random(), (double)par10 + Math.random(), 0.0D, 0.0D, 0.0D);
  1502.                 }
  1503.             }
  1504.             else
  1505.             {
  1506.                 par1World.setBlockAndMetadataWithNotify(par8, par9, par10, Block.lavaMoving.blockID, 0);
  1507.             }
  1508.  
  1509.             return true;
  1510.         }
  1511.     }
  1512. }
  1513.  
  1514. MardiffSapphireStaff:
  1515.  
  1516. package net.minecraft.mardiff;
  1517.  
  1518. import paulscode.sound.Vector3D;
  1519. import net.minecraft.item.EnumToolMaterial;
  1520. import net.minecraft.block.Block;
  1521. import net.minecraft.block.material.Material;
  1522. import net.minecraft.entity.effect.EntityLightningBolt;
  1523. import net.minecraft.entity.passive.EntityCow;
  1524. import net.minecraft.entity.player.EntityPlayer;
  1525. import net.minecraft.item.EnumToolMaterial;
  1526. import net.minecraft.item.Item;
  1527. import net.minecraft.item.ItemStack;
  1528. import net.minecraft.util.EnumMovingObjectType;
  1529. import net.minecraft.util.MathHelper;
  1530. import net.minecraft.util.MovingObjectPosition;
  1531. import net.minecraft.util.Vec3;
  1532. import net.minecraft.world.World;
  1533. import net.minecraftforge.common.MinecraftForge;
  1534. import net.minecraftforge.event.Event;
  1535. import net.minecraftforge.event.entity.player.FillBucketEvent;
  1536.  
  1537. public class MardiffSapphireStaff extends Item
  1538. {
  1539.     public String getTextureFile()
  1540.     {
  1541.         return "/textures/items/items.png";
  1542.     }
  1543.  
  1544.     public MardiffSapphireStaff(int i)
  1545.     {
  1546.         super(i);
  1547.         maxStackSize = 1;
  1548.         this.setMaxDamage(250);
  1549.     }
  1550.  
  1551.     public boolean isFull3D()
  1552.     {
  1553.         return true;
  1554.     }
  1555.  
  1556.     public int getMaxItemUseDuration(ItemStack par1ItemStack)
  1557.     {
  1558.         return 72000;
  1559.     }
  1560.  
  1561.  
  1562.     public ItemStack onItemRightClick(ItemStack par1ItemStack, World par2World, EntityPlayer par3EntityPlayer)
  1563.     {
  1564.         par1ItemStack.damageItem(1, par3EntityPlayer);
  1565.         float var4 = 1.0F;
  1566.         double var5 = par3EntityPlayer.prevPosX + (par3EntityPlayer.posX - par3EntityPlayer.prevPosX) * (double)var4;
  1567.         double var7 = par3EntityPlayer.prevPosY + (par3EntityPlayer.posY - par3EntityPlayer.prevPosY) * (double)var4 + 1.62D - (double)par3EntityPlayer.yOffset;
  1568.         double var9 = par3EntityPlayer.prevPosZ + (par3EntityPlayer.posZ - par3EntityPlayer.prevPosZ) * (double)var4;
  1569.         boolean var11 = Block.waterMoving.blockID == 0;
  1570.         MovingObjectPosition var12 = this.getMovingObjectPositionFromPlayer(par2World, par3EntityPlayer, var11);
  1571.  
  1572.         if (var12 == null)
  1573.         {
  1574.             return par1ItemStack;
  1575.         }
  1576.         else
  1577.         {
  1578.             FillBucketEvent event = new FillBucketEvent(par3EntityPlayer, par1ItemStack, par2World, var12);
  1579.             if (MinecraftForge.EVENT_BUS.post(event))
  1580.             {
  1581.                 return par1ItemStack;
  1582.             }
  1583.  
  1584.             if (event.getResult() == Event.Result.ALLOW)
  1585.             {
  1586.                 if (par3EntityPlayer.capabilities.isCreativeMode)
  1587.                 {
  1588.                     return par1ItemStack;
  1589.                 }
  1590.  
  1591.                 if (--par1ItemStack.stackSize <= 0)
  1592.                 {
  1593.                     return event.result;
  1594.                 }
  1595.  
  1596.                 if (!par3EntityPlayer.inventory.addItemStackToInventory(event.result))
  1597.                 {
  1598.                     par3EntityPlayer.dropPlayerItem(event.result);
  1599.                 }
  1600.  
  1601.                 return par1ItemStack;
  1602.             }
  1603.  
  1604.             if (var12.typeOfHit == EnumMovingObjectType.TILE)
  1605.             {
  1606.                 int var13 = var12.blockX;
  1607.                 int var14 = var12.blockY;
  1608.                 int var15 = var12.blockZ;
  1609.  
  1610.                 if (!par2World.canMineBlock(par3EntityPlayer, var13, var14, var15))
  1611.                 {
  1612.                     return par1ItemStack;
  1613.                 }
  1614.  
  1615.                 if (Block.waterMoving.blockID == 0)
  1616.                 {
  1617.                     if (!par3EntityPlayer.canPlayerEdit(var13, var14, var15, var12.sideHit, par1ItemStack))
  1618.                     {
  1619.                         return par1ItemStack;
  1620.                     }
  1621.  
  1622.                     if (par2World.getBlockMaterial(var13, var14, var15) == Material.water && par2World.getBlockMetadata(var13, var14, var15) == 0)
  1623.                     {
  1624.                         par2World.setBlockWithNotify(var13, var14, var15, 0);
  1625.  
  1626.                         if (par3EntityPlayer.capabilities.isCreativeMode)
  1627.                         {
  1628.                             return par1ItemStack;
  1629.                         }
  1630.  
  1631.                         if (--par1ItemStack.stackSize <= 0)
  1632.                         {
  1633.                             return new ItemStack(Item.bucketWater);
  1634.                         }
  1635.  
  1636.                         if (!par3EntityPlayer.inventory.addItemStackToInventory(new ItemStack(Item.bucketWater)))
  1637.                         {
  1638.                             par3EntityPlayer.dropPlayerItem(new ItemStack(Item.bucketWater.itemID, 1, 0));
  1639.                         }
  1640.  
  1641.                         return par1ItemStack;
  1642.                     }
  1643.  
  1644.                     if (par2World.getBlockMaterial(var13, var14, var15) == Material.lava && par2World.getBlockMetadata(var13, var14, var15) == 0)
  1645.                     {
  1646.                         par2World.setBlockWithNotify(var13, var14, var15, 0);
  1647.  
  1648.                         if (par3EntityPlayer.capabilities.isCreativeMode)
  1649.                         {
  1650.                             return par1ItemStack;
  1651.                         }
  1652.  
  1653.                         if (--par1ItemStack.stackSize <= 0)
  1654.                         {
  1655.                             return new ItemStack(Item.bucketLava);
  1656.                         }
  1657.  
  1658.                         if (!par3EntityPlayer.inventory.addItemStackToInventory(new ItemStack(Item.bucketLava)))
  1659.                         {
  1660.                             par3EntityPlayer.dropPlayerItem(new ItemStack(Item.bucketLava.itemID, 1, 0));
  1661.                         }
  1662.  
  1663.                         return par1ItemStack;
  1664.                     }
  1665.                 }
  1666.                 else
  1667.                 {
  1668.                     if (Block.waterMoving.blockID < 0)
  1669.                     {
  1670.                         return new ItemStack(Item.bucketEmpty);
  1671.                     }
  1672.  
  1673.                     if (var12.sideHit == 0)
  1674.                     {
  1675.                         --var14;
  1676.                     }
  1677.  
  1678.                     if (var12.sideHit == 1)
  1679.                     {
  1680.                         ++var14;
  1681.                     }
  1682.  
  1683.                     if (var12.sideHit == 2)
  1684.                     {
  1685.                         --var15;
  1686.                     }
  1687.  
  1688.                     if (var12.sideHit == 3)
  1689.                     {
  1690.                         ++var15;
  1691.                     }
  1692.  
  1693.                     if (var12.sideHit == 4)
  1694.                     {
  1695.                         --var13;
  1696.                     }
  1697.  
  1698.                     if (var12.sideHit == 5)
  1699.                     {
  1700.                         ++var13;
  1701.                     }
  1702.  
  1703.                     if (!par3EntityPlayer.canPlayerEdit(var13, var14, var15, var12.sideHit, par1ItemStack))
  1704.                     {
  1705.                         return par1ItemStack;
  1706.                     }
  1707.  
  1708.                     if (this.tryPlaceContainedLiquid(par2World, var5, var7, var9, var13, var14, var15) && !par3EntityPlayer.capabilities.isCreativeMode)
  1709.                     {
  1710.                         return new ItemStack(Item.bucketEmpty);
  1711.                     }
  1712.                 }
  1713.             }
  1714.             else if (Block.waterMoving.blockID == 0 && var12.entityHit instanceof EntityCow)
  1715.             {
  1716.                 return new ItemStack(Item.bucketMilk);
  1717.             }
  1718.  
  1719.             return par1ItemStack;
  1720.         }
  1721.     }
  1722.  
  1723.     /**
  1724.      * Attempts to place the liquid contained inside the bucket.
  1725.      */
  1726.      public boolean tryPlaceContainedLiquid(World par1World, double par2, double par4, double par6, int par8, int par9, int par10)
  1727.     {
  1728.         if (Block.waterMoving.blockID <= 0)
  1729.         {
  1730.             return false;
  1731.         }
  1732.         else if (!par1World.isAirBlock(par8, par9, par10) && par1World.getBlockMaterial(par8, par9, par10).isSolid())
  1733.         {
  1734.             return false;
  1735.         }
  1736.         else
  1737.         {
  1738.             if (par1World.provider.isHellWorld && Block.waterMoving.blockID == Block.waterMoving.blockID)
  1739.             {
  1740.                 par1World.playSoundEffect(par2 + 0.5D, par4 + 0.5D, par6 + 0.5D, "random.fizz", 0.5F, 2.6F + (par1World.rand.nextFloat() - par1World.rand.nextFloat()) * 0.8F);
  1741.  
  1742.                 for (int var11 = 0; var11 < 8; ++var11)
  1743.                 {
  1744.                     par1World.spawnParticle("largesmoke", (double)par8 + Math.random(), (double)par9 + Math.random(), (double)par10 + Math.random(), 0.0D, 0.0D, 0.0D);
  1745.                 }
  1746.             }
  1747.             else
  1748.             {
  1749.                 par1World.setBlockAndMetadataWithNotify(par8, par9, par10, Block.waterMoving.blockID, 0);
  1750.             }
  1751.  
  1752.             return true;
  1753.         }
  1754.     }
  1755. }
  1756.  
  1757. MardiffSeeds:
  1758.  
  1759. package net.minecraft.mardiff;
  1760.  
  1761. import net.minecraft.block.Block;
  1762. import net.minecraft.item.ItemSeeds;
  1763.  
  1764. public class MardiffSeeds extends ItemSeeds
  1765. {
  1766.  
  1767.         public MardiffSeeds(int i, int blockID, int par3) {
  1768.                 super(i, blockID, par3);
  1769.        
  1770.         }
  1771.         public String getTextureFile(){
  1772.                 return "/textures/items/items.png";
  1773.         }
  1774. }
  1775.  
  1776. MardiffShovel:
  1777.  
  1778. package net.minecraft.mardiff;
  1779.  
  1780. import net.minecraft.item.EnumToolMaterial;
  1781. import net.minecraft.item.ItemSpade;
  1782.  
  1783. public class MardiffShovel extends ItemSpade
  1784. {
  1785.   public MardiffShovel(int par1, EnumToolMaterial par2EnumToolMaterial)
  1786.   {
  1787.     super(par1, par2EnumToolMaterial);
  1788.   }
  1789.  
  1790.   public String getTextureFile() {
  1791.     return "/textures/items/items.png";
  1792.   }
  1793. }
  1794.  
  1795. MardiffSilverStaff:
  1796.  
  1797. package net.minecraft.mardiff;
  1798.  
  1799. import paulscode.sound.Vector3D;
  1800. import net.minecraft.item.EnumToolMaterial;
  1801. import net.minecraft.block.Block;
  1802. import net.minecraft.entity.effect.EntityLightningBolt;
  1803. import net.minecraft.entity.player.EntityPlayer;
  1804. import net.minecraft.item.EnumToolMaterial;
  1805. import net.minecraft.item.Item;
  1806. import net.minecraft.item.ItemStack;
  1807. import net.minecraft.util.EnumMovingObjectType;
  1808. import net.minecraft.util.MathHelper;
  1809. import net.minecraft.util.MovingObjectPosition;
  1810. import net.minecraft.util.Vec3;
  1811. import net.minecraft.world.World;
  1812.  
  1813. public class MardiffSilverStaff extends Item
  1814. {
  1815.     public MardiffSilverStaff(int i)
  1816.     {
  1817.         super(i);
  1818.         maxStackSize = 1;
  1819.         this.setMaxDamage(250);
  1820.     }
  1821.  
  1822.     public String getTextureFile()
  1823.     {
  1824.         return "/textures/items/items.png";
  1825.     }
  1826.  
  1827.     public boolean isFull3D()
  1828.     {
  1829.         return true;
  1830.     }
  1831.  
  1832.     public int getMaxItemUseDuration(ItemStack par1ItemStack)
  1833.     {
  1834.         return 72000;
  1835.     }
  1836.  
  1837.     public ItemStack onItemRightClick(ItemStack itemstack, World world, EntityPlayer entityplayer)
  1838.     {
  1839.         itemstack.damageItem(1, entityplayer);
  1840.         float f = 1.0F;
  1841.         float f1 = entityplayer.prevRotationPitch + (entityplayer.rotationPitch - entityplayer.prevRotationPitch) * f;
  1842.         float f2 = entityplayer.prevRotationYaw + (entityplayer.rotationYaw - entityplayer.prevRotationYaw) * f;
  1843.         double d = entityplayer.prevPosX + (entityplayer.posX - entityplayer.prevPosX) * (double)f;
  1844.         double d1 = (entityplayer.prevPosY + (entityplayer.posY - entityplayer.prevPosY) * (double)f + 1.6200000000000001D) - (double)entityplayer.yOffset;
  1845.         double d2 = entityplayer.prevPosZ + (entityplayer.posZ - entityplayer.prevPosZ) * (double)f;
  1846.         Vec3 vec3d = Vec3.createVectorHelper(d, d1, d2);
  1847.         float f3 = MathHelper.cos(-f2 * 0.01745329F - 3.141593F);
  1848.         float f4 = MathHelper.sin(-f2 * 0.01745329F - 3.141593F);
  1849.         float f5 = -MathHelper.cos(-f1 * 0.01745329F);
  1850.         float f6 = MathHelper.sin(-f1 * 0.01745329F);
  1851.         float f7 = f4 * f5;
  1852.         float f8 = f6;
  1853.         float f9 = f3 * f5;
  1854.         double d3 = 5000D;
  1855.         Vec3 vec3d1 = vec3d.addVector((double)f7 * d3, (double)f8 * d3, (double)f9 * d3);
  1856.         MovingObjectPosition movingobjectposition = world.rayTraceBlocks_do_do(vec3d, vec3d1, false, true);
  1857.         if (movingobjectposition == null)
  1858.         {
  1859.             return itemstack;
  1860.         }
  1861.         if (movingobjectposition.typeOfHit == EnumMovingObjectType.TILE)
  1862.         {
  1863.             int i = movingobjectposition.blockX;
  1864.             int j = movingobjectposition.blockY;
  1865.             int k = movingobjectposition.blockZ;
  1866.             world.spawnEntityInWorld(new EntityLightningBolt(world, i, j, k));
  1867.         }
  1868.         return itemstack;
  1869.     }
  1870. }
  1871.  
  1872. MardiffSword:
  1873.  
  1874. package net.minecraft.mardiff;
  1875.  
  1876. import net.minecraft.entity.EntityLiving;
  1877. import net.minecraft.item.EnumToolMaterial;
  1878. import net.minecraft.item.ItemStack;
  1879. import net.minecraft.item.ItemSword;
  1880.  
  1881. public class MardiffSword extends ItemSword
  1882. {
  1883.   public MardiffSword(int par1, EnumToolMaterial par2EnumToolMaterial)
  1884.   {
  1885.     super(par1, par2EnumToolMaterial);
  1886.   }
  1887.  
  1888.   public String getTextureFile()
  1889.   {
  1890.     return "/textures/items/items.png";
  1891.   }
  1892.  
  1893. }
  1894.  
  1895. MardiffTab:
  1896.  
  1897. package net.minecraft.mardiff;
  1898.  
  1899. import net.minecraft.creativetab.CreativeTabs;
  1900. import net.minecraft.item.ItemStack;
  1901.  
  1902.  
  1903. public class MardiffTab extends CreativeTabs
  1904. {
  1905.   public MardiffTab(String label)
  1906.   {
  1907.     super(label);
  1908.   }
  1909.  
  1910.   public ItemStack getIconItemStack()
  1911.   {
  1912.     return new ItemStack(MardiffBase.corn);
  1913.   }
  1914.  
  1915.   public String getTranslatedTabLabel()
  1916.   {
  1917.     return "Mardiff's Mod";
  1918.   }
  1919. }
  1920.  
  1921. MardiffWorldGenerator:
  1922.  
  1923. package net.minecraft.mardiff;
  1924.  
  1925. import java.util.Random;
  1926.  
  1927. import net.minecraft.world.World;
  1928. import net.minecraft.world.chunk.IChunkProvider;
  1929. import net.minecraft.world.gen.feature.WorldGenMinable;
  1930. import cpw.mods.fml.common.IWorldGenerator;
  1931.  
  1932. public class MardiffWorldGenerator implements IWorldGenerator
  1933. {
  1934.   public void generate(Random random, int chunkX, int chunkZ, World world, IChunkProvider chunkGenerator, IChunkProvider chunkProvider)
  1935.   {
  1936.     switch (world.provider.dimensionId)
  1937.     {
  1938.     case -1:
  1939.       generateNether();
  1940.       break;
  1941.     case 0:
  1942.       generateSurface(world, random, chunkX * 16, chunkZ * 16);
  1943.       break;
  1944.     case 1:
  1945.       generateEnd();
  1946.     }
  1947.   }
  1948.  
  1949.   public void generateNether()
  1950.   {
  1951.   }
  1952.  
  1953.   public void generateSurface(World world, Random rand, int chunkX, int chunkZ)
  1954.   {
  1955.     for (int i = 0; i < 3; i++) {
  1956.       int randPosX = chunkX + rand.nextInt(16);
  1957.       int randPosY = rand.nextInt(35);
  1958.       int randPosZ = chunkZ + rand.nextInt(16);
  1959.       int randPosYa = rand.nextInt(35);
  1960.       new WorldGenMinable(MardiffBase.rubyOre.blockID, 4).generate(world, rand, randPosX, randPosY, randPosZ);
  1961.  
  1962.       new WorldGenMinable(MardiffBase.sapphireOre.blockID, 4).generate(world, rand, randPosX, randPosYa, randPosZ);
  1963.     }
  1964.  
  1965.     for (int j = 0; j < 5; j++) {
  1966.       int randPosXb = chunkX + rand.nextInt(16);
  1967.       int randPosYb = rand.nextInt(30);
  1968.       int randPosZb = chunkZ + rand.nextInt(16);
  1969.       int randPosYc = rand.nextInt(55);
  1970.       new WorldGenMinable(MardiffBase.silverOre.blockID, 4).generate(world, rand, randPosXb, randPosYb, randPosZb);
  1971.  
  1972.       new WorldGenMinable(MardiffBase.tinOre.blockID, 6).generate(world, rand, randPosXb, randPosYc, randPosZb);
  1973.  
  1974.       new WorldGenMinable(MardiffBase.copperOre.blockID, 8).generate(world, rand, randPosXb, randPosYc, randPosZb);
  1975.     }
  1976.  
  1977.     for (int j = 0; j < 8; j++) {
  1978.       int randPosXf = chunkX + rand.nextInt(16);
  1979.       int randPosYf = rand.nextInt(64);
  1980.       int randPosZf = chunkZ + rand.nextInt(16);
  1981.       new WorldGenMinable(MardiffBase.ligniteOre.blockID, 10).generate(world, rand, randPosXf, randPosYf, randPosZf);
  1982.     }
  1983.   }
  1984.  
  1985.   public void generateEnd()
  1986.   {
  1987.   }
  1988. }
Advertisement
Add Comment
Please, Sign In to add comment