package mattparks.mods.space.pluto.blocks; import java.util.List; import mattparks.mods.space.core.SpaceCore; import mattparks.mods.space.pluto.PlutoCore; import micdoodle8.mods.galacticraft.api.block.IDetectableResource; import micdoodle8.mods.galacticraft.api.block.IPartialSealableBlock; import micdoodle8.mods.galacticraft.api.block.IPlantableBlock; import micdoodle8.mods.galacticraft.api.block.ITerraformableBlock; import net.minecraft.block.Block; import net.minecraft.block.BlockAir; import net.minecraft.block.material.MapColor; import net.minecraft.block.material.Material; import net.minecraft.client.renderer.texture.IIconRegister; import net.minecraft.creativetab.CreativeTabs; import net.minecraft.entity.Entity; import net.minecraft.item.Item; import net.minecraft.item.ItemStack; import net.minecraft.util.IIcon; import net.minecraft.world.World; import net.minecraftforge.common.util.ForgeDirection; public class BlockBasicPluto extends Block implements IDetectableResource, IPartialSealableBlock, IPlantableBlock, ITerraformableBlock { private IIcon[] plutoBlockIcon; public BlockBasicPluto(String name) { super(Material.rock); this.setBlockName(name); } @Override public void registerBlockIcons(IIconRegister par1IconRegister) { this.plutoBlockIcon = new IIcon[11]; this.plutoBlockIcon[0] = par1IconRegister.registerIcon(PlutoCore.TEXTURE_PREFIX + "plutoSurfaceRock"); this.plutoBlockIcon[1] = par1IconRegister.registerIcon(PlutoCore.TEXTURE_PREFIX + "plutoSubRock"); this.plutoBlockIcon[2] = par1IconRegister.registerIcon(PlutoCore.TEXTURE_PREFIX + "plutoRock"); this.plutoBlockIcon[3] = par1IconRegister.registerIcon(PlutoCore.TEXTURE_PREFIX + "plutoCobblestone"); this.plutoBlockIcon[4] = par1IconRegister.registerIcon(PlutoCore.TEXTURE_PREFIX + "sapphireOre"); this.plutoBlockIcon[5] = par1IconRegister.registerIcon(PlutoCore.TEXTURE_PREFIX + "frozenIronOre"); this.plutoBlockIcon[6] = par1IconRegister.registerIcon(PlutoCore.TEXTURE_PREFIX + "ununpentiumOre"); this.plutoBlockIcon[7] = par1IconRegister.registerIcon(PlutoCore.TEXTURE_PREFIX + "sapphireBlock"); this.plutoBlockIcon[8] = par1IconRegister.registerIcon(PlutoCore.TEXTURE_PREFIX + "frozenIronBlock"); this.plutoBlockIcon[9] = par1IconRegister.registerIcon(PlutoCore.TEXTURE_PREFIX + "ununpetiumBlock"); this.plutoBlockIcon[10] = par1IconRegister.registerIcon(PlutoCore.TEXTURE_PREFIX + "plutoDungeonBrick"); } @Override public CreativeTabs getCreativeTabToDisplayOn() { return SpaceCore.spaceBlocksTab; } @Override public IIcon getIcon(int side, int meta) { return this.plutoBlockIcon[meta]; } @Override public void getSubBlocks(Item block, CreativeTabs creativeTabs, List list) { for (int i = 0; i < 11; ++i) { list.add(new ItemStack(this, 1, i)); } } @Override public float getBlockHardness(World par1World, int par2, int par3, int par4) // FIX { final int meta = par1World.getBlockMetadata(par2, par3, par4); if (meta == 0) { return 1.25F; } if (meta == 1) { return 1.0F; } if (meta == 2) { return 1.5F; } if (meta == 3) { return 2.5F; } if (meta == 4) { return 2.5F; } if (meta == 5) { return 2.5F; } if (meta == 6) { return 2.5F; } if (meta == 7) { return 2.5F; } if (meta == 8) { return 2.5F; } if (meta == 9) { return 2.5F; } if (meta == 12) { return 25.0F; } return 1.0F; } @Override public float getExplosionResistance(Entity par1Entity, World world, int x, int y, int z, double explosionX, double explosionY, double explosionZ) { int metadata = world.getBlockMetadata(x, y, z); if (metadata == 10) { return 40.0F; } return super.getExplosionResistance(par1Entity, world, x, y, z, explosionX, explosionY, explosionZ); } public MapColor getMapColor(int meta) { switch (meta) { case 0: return MapColor.blueColor; default: return MapColor.blueColor; } } @Override public int damageDropped(int meta) { if (meta == 2) { return 3; } return meta; } @Override public boolean isTerraformable(World world, int x, int y, int z) { return world.getBlockMetadata(x, y, z) == 0 && world.getBlock(x, y + 1, z) instanceof BlockAir; } @Override public int requiredLiquidBlocksNearby() { return 4; } @Override public boolean isPlantable(int metadata) { switch (metadata) { case 0: return true; case 1: return true; default: return false; } } @Override public boolean isSealed(World world, int x, int y, int z, ForgeDirection direction) { return false; } @Override public boolean isValueable(int metadata) { switch (metadata) { case 4: return true; case 5: return true; case 6: return true; default: return false; } } }