package minefantasy.mf2.item.tool; import minefantasy.mf2.MineFantasyII; import minefantasy.mf2.api.tool.ILighter; import minefantasy.mf2.item.list.CreativeTabMF; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.init.Blocks; import net.minecraft.item.Item; import net.minecraft.item.ItemFlintAndSteel; import net.minecraft.item.ItemStack; import net.minecraft.tileentity.TileEntity; import net.minecraft.world.World; import cpw.mods.fml.common.registry.GameRegistry; public class ItemLighterMF extends Item implements ILighter { private float chance; public ItemLighterMF(String name, float chance, int uses) { setTextureName("minefantasy2:Tool/"+name); GameRegistry.registerItem(this, name, MineFantasyII.MODID); this.setUnlocalizedName(name); setMaxDamage(uses); this.chance = chance; this.setMaxStackSize(1); this.setCreativeTab(CreativeTabMF.tabGadget); } @Override public boolean canLight() { return true; } @Override public double getChance() { return chance; } //0 for N/A -1 for fail, 1 for succeed public static int tryUse(ItemStack held, EntityPlayer user) { if(held == null)return 0; if(held.getItem() instanceof ItemFlintAndSteel) { return 1; } if(held.getItem() instanceof ILighter) { ILighter lighter = (ILighter)held.getItem(); return (lighter.canLight() && user.getRNG().nextFloat() < lighter.getChance()) ? 1 : -1; } return 0; } public boolean onItemUse(ItemStack item, EntityPlayer user, World world, int x, int y, int z, int face, float xo, float yo, float zo) { if (face == 0) { --y; } if (face == 1) { ++y; } if (face == 2) { --z; } if (face == 3) { ++z; } if (face == 4) { --x; } if (face == 5) { ++x; } if (!user.canPlayerEdit(x, y, z, face, item)) { return false; } else { boolean success = user.getRNG().nextFloat() < chance; if (world.isAirBlock(x, y, z)) { world.playSoundEffect((double)x + 0.5D, (double)y + 0.5D, (double)z + 0.5D, "fire.ignite", 1.0F, itemRand.nextFloat() * 0.4F + 0.8F); if(success) { world.setBlock(x, y, z, Blocks.fire); } } if(success) { item.damageItem(1, user); } return true; } } }