private void cookFood(final Food food){
			print("Action: cookFood(" + food + ")");

			mCookGui.DoGoToFridge();
			acquireSemaphore(semAtFridge);
			
//			mInventory.get(food.mChoice).mQuantity--;
			
			EnumItemType iType = Item.enumToEnum(food.mChoice);
			mRole.decreaseInventory(iType);
			
		/*	//if food amount below threshold
			if (mInventory.get(food.mChoice).mQuantity < Food.cTHRESHOLD){
				orderFood(food.mChoice);
			}*/
			
			//if food amount below threshold
			if((mRole.mItemInventory.get(iType) < Food.cTHRESHOLD) && !mRole.mHasCreatedOrder.get(iType)) {
				mRole.mItemsDesired.put(iType, sBaseNeed);
			}
			
			mCookGui.DoGoToCooking();
			acquireSemaphore(semAtCooking);
			
			synchronized (mOrders) {
				for (Order iOrder : mOrders){
					if (iOrder.mFood == food) iOrder.mOrderStatus = EnumOrderStatus.COOKING;
					break;
				}
			}
			refreshLabels();
			
			int cookingTime = Food.cCOOKTIMES.get(food.mChoice); //in seconds
			mTimer.schedule(new TimerTask() {
				public synchronized void run() {
					print("Done cooking: " + food.toString());
					mCookGui.DoGoToCooking();
					acquireSemaphore(semAtCooking);

					mCookGui.DoGoToPlating();
					acquireSemaphore(semAtPlating);
					
					for (Order iOrder : mOrders){
						if (iOrder.mFood == food){
							iOrder.mOrderStatus = EnumOrderStatus.READY;
							break;
						}
					}
					refreshLabels();
					
					stateChanged();
				}
			},
			cookingTime*1000);
		}