void TryToCookFood(Order o) {
		print("Doing TryToCookFood");
		log.add(new LoggedEvent("Doing TryToCookFood"));
		int foodAmount = mRole.mItemInventory.get(Item.stringToEnum(o.choice));
		if(foodAmount <= 0) {
			o.waiter.msgOutOfFood(o.table, o.choice);
			orders.remove(o);
			return;
		}
		mRole.decreaseInventory(Item.stringToEnum(o.choice));
		if(foodAmount <= FOOD_LOW  && mRole.mHasCreatedOrder.get(Item.stringToEnum(o.choice))) {
			mRole.mItemsDesired.put(Item.stringToEnum(o.choice), mRole.mItemsDesired.get(Item.stringToEnum(o.choice)) + FOOD_ORDER);
		}
		o.state = OrderState.Cooking;
		for(int i = 0; i < cookHere.length; i++)
			if(cookHere[i] == false) {
				o.position = i;
				cookHere[i] = true;
				break;
			}
		cookGui.DoGoToFridge();
		try {
			atFridge.acquire();
		} catch (InterruptedException e) {
			e.printStackTrace();
		}
		cookGui.setCurrentOrder(o.choice);
		cookGui.DoCooking(o.position);
		try {
			atGrill.acquire();
		} catch (InterruptedException e) {
			e.printStackTrace();
		}
		cookGui.DoGoWait();
		o.cookThisOrder();
		cookGui.setCurrentOrder("");
	}