package joshie.harvest.cooking.tile;
import joshie.harvest.cooking.CookingHelper.PlaceIngredientResult;
import joshie.harvest.cooking.HFCooking;
import joshie.harvest.cooking.tile.TileCooking.TileCookingTicking;
import net.minecraft.tileentity.TileEntity;
import net.minecraft.util.EnumFacing;
import net.minecraft.util.EnumParticleTypes;
public abstract class TileHeatable extends TileCookingTicking {
@Override
public void doRenderUpdate() {
super.doRenderUpdate();
worldObj.markBlockRangeForRenderUpdate(getPos().down(), getPos().down());
}
@Override
public void animate() {
TileEntity tile = worldObj.getTileEntity(pos.down());
if (tile instanceof TileOven) {
EnumFacing orientation = ((TileOven)tile).getFacing();
if (orientation == EnumFacing.NORTH || orientation == EnumFacing.SOUTH) {
worldObj.spawnParticle(EnumParticleTypes.FLAME, getPos().getX() + 0.2D + (worldObj.rand.nextInt(10) / 100D), getPos().getY() - 0.115D, getPos().getZ() + 0.265D + (worldObj.rand.nextInt(15) / 100D), 0, 0, 0);
worldObj.spawnParticle(EnumParticleTypes.FLAME, getPos().getX() + 0.2D + (worldObj.rand.nextInt(10) / 100D), getPos().getY() - 0.115D, getPos().getZ() + 0.735D - (worldObj.rand.nextInt(15) / 100D), 0, 0, 0);
worldObj.spawnParticle(EnumParticleTypes.FLAME, getPos().getX() + 0.8D - (worldObj.rand.nextInt(10) / 100D), getPos().getY() - 0.115D, getPos().getZ() + 0.265D + (worldObj.rand.nextInt(15) / 100D), 0, 0, 0);
worldObj.spawnParticle(EnumParticleTypes.FLAME, getPos().getX() + 0.8D - (worldObj.rand.nextInt(10) / 100D), getPos().getY() - 0.115D, getPos().getZ() + 0.735D - (worldObj.rand.nextInt(15) / 100D), 0, 0, 0);
} else if (orientation == EnumFacing.WEST || orientation == EnumFacing.EAST) {
worldObj.spawnParticle(EnumParticleTypes.FLAME, getPos().getX() + 0.265D + (worldObj.rand.nextInt(15) / 100D), getPos().getY() - 0.115D, getPos().getZ() + 0.2D + (worldObj.rand.nextInt(10) / 100D), 0, 0, 0);
worldObj.spawnParticle(EnumParticleTypes.FLAME, getPos().getX() + 0.735D - (worldObj.rand.nextInt(15) / 100D), getPos().getY() - 0.115D, getPos().getZ() + 0.2D + (worldObj.rand.nextInt(10) / 100D), 0, 0, 0);
worldObj.spawnParticle(EnumParticleTypes.FLAME, getPos().getX() + 0.265D + (worldObj.rand.nextInt(15) / 100D), getPos().getY() - 0.115D, getPos().getZ() + 0.8D - (worldObj.rand.nextInt(10) / 100D), 0, 0, 0);
worldObj.spawnParticle(EnumParticleTypes.FLAME, getPos().getX() + 0.735D - (worldObj.rand.nextInt(15) / 100D), getPos().getY() - 0.115D, getPos().getZ() + 0.8D - (worldObj.rand.nextInt(10) / 100D), 0, 0, 0);
}
worldObj.spawnParticle(EnumParticleTypes.SMOKE_NORMAL, getPos().getX() + 0.4D + (worldObj.rand.nextInt(20) / 100D), getPos().getY() - 0.2D, getPos().getZ() + 0.4D + (worldObj.rand.nextInt(20) / 100D), 0, 0, 0);
}
}
@Override
public PlaceIngredientResult hasPrerequisites() {
return isAbove(HFCooking.OVEN) ? PlaceIngredientResult.SUCCESS : PlaceIngredientResult.MISSING_OVEN;
}
}