예제 #1
0
    //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();
        }
    }
예제 #2
0
    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();              //필요 개수
        }
    }
예제 #3
0
    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));
        }
    }