package minefantasy.block; import java.util.ArrayList; import java.util.Random; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; import minefantasy.item.ItemListMF; import minefantasy.system.StatListMF; import minefantasy.system.data_minefantasy; import net.minecraft.block.Block; import net.minecraft.block.material.Material; import net.minecraft.client.renderer.texture.IconRegister; import net.minecraft.creativetab.CreativeTabs; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.item.Item; import net.minecraft.item.ItemStack; import net.minecraft.util.Icon; import net.minecraft.util.MathHelper; import net.minecraft.world.World; import net.minecraftforge.common.MinecraftForge; /** * * @author Anonymous Productions * * Sources are provided for educational reasons. * though small bits of code, or methods can be used in your own creations. */ public class BlockMedieval extends Block{ private ItemStack drop = null; private int maxDrop = 0; private int minDrop = 0; private int damDrop = 0; public BlockMedieval(int i, Material m, int d) { this(i, m, new ItemStack(d, 1, 0)); } public BlockMedieval(int i, Material m, ItemStack droppedItem) { super(i, m); drop = droppedItem; maxDrop = 0; minDrop = 0; damDrop = 0; this.setCreativeTab(CreativeTabs.tabBlock); if(m == Material.wood) this.setBurnProperties(i, 4, 16); if(m == Material.rock) { MinecraftForge.setBlockHarvestLevel(this, "pickaxe", 0); } } public BlockMedieval(int i, Material m) { this(i, m, i); } @Override public void addCreativeItems(ArrayList itemList) { itemList.add(new ItemStack(this)); } @Override public int idDropped(int meta, Random rand, int fortune) { if(blockID == BlockListMF.oreIgnotumite.blockID) { return ItemListMF.misc.itemID; } return drop != null ? drop.itemID : 0; } @Override public int damageDropped(int m) { if(blockID == BlockListMF.oreIgnotumite.blockID) { return ItemListMF.hunkIgnotumite; } return drop != null ? drop.getItemDamage() : 0; } public void dropBlockAsItemWithChance(World world, int x, int y, int z, int meta, float f, int side) { super.dropBlockAsItemWithChance(world, x, y, z, meta, f, side); if (this.idDropped(meta, world.rand, side) != this.blockID) { int var8 = 0; this.dropXpOnBlockBreak(world, x, y, z, var8); } } @Override public void harvestBlock(World world, EntityPlayer player, int x, int y, int z, int metadata) { if(blockID == BlockListMF.oreIgnotumite.blockID) { player.addStat(StatListMF.ignotumite, 1); } if(blockID == BlockListMF.granite.blockID) { player.addStat(StatListMF.granite, 1); } if(blockID == BlockListMF.oreMythic.blockID && metadata == 0) { player.addStat(StatListMF.mithril, 1); } super.harvestBlock(world, player, x, y, z, metadata); } @Override public void onBlockClicked(World world, int x, int y, int z, EntityPlayer player) { if(world.getBlockId(x, y, z) == BlockListMF.oreIgnotumite.blockID) { player.addStat(StatListMF.ignotumite, 1); } super.onBlockClicked(world, x, y, z, player); } @Override public Block setUnlocalizedName(String name) { this.setTextureName("minefantasy:Basic/" + name); return super.setUnlocalizedName(name); } @Override public int quantityDroppedWithBonus(int level, Random rand) { if (level > 0 && this.blockID != this.idDropped(0, rand, level)) { int j = rand.nextInt(level + 2) - 1; if (j < 0) { j = 0; } return this.quantityDropped(rand) * (j + 1); } else { return this.quantityDropped(rand); } } }