/* * Copyright (c) CovertJaguar, 2014 http://railcraft.info * * This code is the property of CovertJaguar * and may only be used with explicit written * permission unless otherwise specified on the * license page at http://railcraft.info/wiki/info:license. */ package mods.railcraft.common.items.firestone; import cpw.mods.fml.common.registry.EntityRegistry; import mods.railcraft.common.core.Railcraft; import mods.railcraft.common.items.EntityItemFireproof; import mods.railcraft.common.util.misc.EntityIDs; import net.minecraft.block.material.Material; import net.minecraft.item.ItemStack; import net.minecraft.tileentity.TileEntity; import net.minecraft.util.MathHelper; import net.minecraft.world.World; /** * * @author CovertJaguar <http://www.railcraft.info/> */ public class EntityItemFirestone extends EntityItemFireproof { public static void register() { EntityRegistry.registerModEntity(EntityItemFirestone.class, "ItemFirestone", EntityIDs.ENTITY_ITEM_FIRESTONE, Railcraft.getMod(), 64, 20, true); } public EntityItemFirestone(World world) { super(world); } public EntityItemFirestone(World world, double x, double y, double z) { super(world, x, y, z); } public EntityItemFirestone(World world, double x, double y, double z, ItemStack stack) { super(world, x, y, z, stack); } @Override protected void setOnFireFromLava() { if (isDead) return; if (worldObj.isRemote) return; int xHit = MathHelper.floor_double(posX); int yHit = MathHelper.floor_double(posY); int zHit = MathHelper.floor_double(posZ); if (worldObj.getBlock(xHit, yHit, zHit).getMaterial() == Material.lava || worldObj.getBlock(xHit, yHit + 1, zHit).getMaterial() == Material.lava) for (int y = yHit + 1; y <= yHit + 10; y++) { if (worldObj.isAirBlock(xHit, y, zHit) && worldObj.getBlock(xHit, y - 1, zHit).getMaterial() == Material.lava) { int meta = (getEntityItem().getItem() instanceof ItemFirestoneCracked) ? 1 : 0; worldObj.setBlock(xHit, y, zHit, BlockFirestoneRecharge.getBlock(), meta, 3); TileEntity tile = worldObj.getTileEntity(xHit, y, zHit); if (tile instanceof TileFirestoneRecharge) { TileFirestoneRecharge fireTile = (TileFirestoneRecharge) tile; ItemStack firestone = getEntityItem(); fireTile.charge = firestone.getMaxDamage() - firestone.getItemDamage(); if (firestone.hasDisplayName()) fireTile.setItemName(firestone.getDisplayName()); setDead(); return; } } } } }