@Override
	public void run() {
		if (ctx.skillingInterface.getCategory().equalsIgnoreCase("heat ingots")) {
			ctx.skillingInterface.start();
			Condition.wait(new Callable<Boolean>() {
				@Override
				public Boolean call() throws Exception {
					return !ctx.backpack.select().id(MakeSword.HEATED_INGOTS).isEmpty();
				}
			});
		} else {
			for (GameObject furnace : ctx.objects.select().id(FURNACE).nearest().first()) {
				if (ctx.camera.prepare(furnace) && furnace.interact("Smelt", "Furnace")) {
					Condition.wait(new Callable<Boolean>() {
						@Override
						public Boolean call() throws Exception {
							return ctx.skillingInterface.opened();
						}
					});
				}
			}
		}
	}