//Child(0) -> TableID TEXT //Child(1) -> Menu Name TEXT //Child(2) -> DetailPanel public void OrderPanelTextWrite(Order _order, int _menuIndex) //OrderPanelUI 및 DetailPanelUI에서 출력할 내용 설정 (Order가 null이면 초기화) { if (_order != null) { order = _order; myMenuIndex = _menuIndex; menu = MenuData.ConvertMenuIDToMenu(_order.menuIDList[_menuIndex]); //OrderPanelUI에서 출력할 Order 객체 정보 작성 transform.GetChild(0).GetComponentInChildren <Text>().text = order.table.GetComponent <TableStateManager>().tableID.ToString(); transform.GetChild(1).GetComponentInChildren <Text>().text = MenuData.ConvertMenuIDToName(order.menuIDList[_menuIndex]); //DetailPanelUI에서 출력할 Menu 객체 정보 전달 bool detailActive = transform.GetChild(2).gameObject.activeSelf; transform.GetChild(2).gameObject.SetActive(true); transform.GetChild(2).GetComponentInChildren <DetailsPanelUI>().DetailsPanelWrite(order.menuIDList[_menuIndex]); transform.GetChild(2).gameObject.SetActive(detailActive); //원래 비활성화 상태였으면 다시 비활성화시킴 } else { //비활성화 order = null; myMenuIndex = -1; transform.GetChild(0).GetComponentInChildren <Text>().text = "0"; transform.GetChild(1).GetComponentInChildren <Text>().text = "아직 접수된 주문이 없습니다."; transform.GetChild(2).gameObject.SetActive(false); transform.GetChild(2).GetComponentInChildren <DetailsPanelUI>().ResetDetailsPanelText(); } }
public void DetailsPanelWrite(int _mid) //DetailPanelUI에서 출력할 내용 설정 (Menu 클래스 정보) { menu = MenuData.ConvertMenuIDToMenu(_mid); transform.GetChild(0).GetComponentInChildren <Text>().text = menu.time.ToString() + "s"; for (int i = 0; i < menu.ingredients.Count; i++) //ingredients(재료)는 최대 7개 -> i = 0~6 { transform.GetChild(i + 1).GetComponentInChildren <Text>().text = MenuData.ConvertIngredientSignToName(menu.ingredients[i].sign) //메뉴 이름 + " x " + menu.ingredients[i].require.ToString(); //필요 개수 } }
void RequestOrder() //주문 요청에 관한 처리 { int i = 0; int j = 0; MenuData menuData = GameObject.FindGameObjectWithTag("Menu").GetComponent <MenuData>(); GuestConfig config = null; List <int> myMenu = null; for (i = 0; i < guestGroup.Count; i++) { config = guestGroup[i].GetComponent <GuestAction>().GetGuestConfig(); //그룹에 속한 손님의 정보를 받아옴 myMenu = menuData.GetIDsContainsIngredients(config.favorite, MAX_MENU_COUNT); for (j = 0; j < myMenu.Count; j++) { if (!MenuData.ConvertMenuIDToMenu(myMenu[j]).enabled) { //비활성화 메뉴는 제거 myMenu.RemoveAt(j); j--; } } if (myMenu.Count == 0) //주문할 수 있는 메뉴가 없으면 활성화 메뉴 중에서 임의로 선택 { int rand = Random.Range(0, menuData.enableMenus.Count); myMenu.Add(menuData.enableMenus[rand].id); } } //메뉴 병합(중복 허용) for (i = 0; i < myMenu.Count; i++) { orderMenus.Add(myMenu[i]); } while (orderMenus.Count > TABLE_ORDER_COUNT) //테이블 당 최대 주문 개수 맞추기 { orderMenus.RemoveAt(Random.Range(0, orderMenus.Count)); } }