public MacWorker(int id, string name, Miner pMiner) : base(id, name)
        {
            m_StateMachine = new StateMachine <MacWorker>(this);
            m_StateMachine.SetCurrentState(MacWorker_Hanging.Instance());

            m_miner = pMiner;
        }
Exemple #2
0
        public override void Execute(MacWorker pMacWorker)
        {
            OrderItem CurrentDish;

            if (order != null)
            {
                CurrentDish = order.GetNextDish();

                if (CurrentDish != null)
                {
                    switch (CurrentDish.Type)
                    {
                    case food_type.BigTasty:
                        Console.WriteLine("\n{0}: Обжариваю ароматное мясо для Биг тейсти, кладу его в булочку и заправляю " +
                                          "специальным фирменным соусом 'Биг тейсти'",
                                          EntityManager.Instance().GetNameOfEntity(pMacWorker.ID));
                        break;

                    case food_type.CocaCola:
                        Console.WriteLine("\n{0}: Наливаю кока-колу",
                                          EntityManager.Instance().GetNameOfEntity(pMacWorker.ID));
                        break;

                    case food_type.Free:
                        Console.WriteLine("\n{0}: Готовлю ароматную картошку 'фри'",
                                          EntityManager.Instance().GetNameOfEntity(pMacWorker.ID));
                        break;

                    case food_type.IceCream:
                        Console.WriteLine("\n{0}: Наполняю вафельный стаканчик мороженым",
                                          EntityManager.Instance().GetNameOfEntity(pMacWorker.ID));
                        break;
                    }
                }
                else
                {
                    //food is ready
                    MessageDispatcher.Instance().DispatchMessage(SEND_MSG_IMMEDIATELY,
                                                                 pMacWorker.ID,
                                                                 pMacWorker.MinerID,
                                                                 (int)message_type_mac.Msg_FoodIsReady,
                                                                 null);
                    //back to Hanging state
                    pMacWorker.GetFSM().ChangeState(MacWorker_Hanging.Instance());
                }
            }
        }