Esempio n. 1
0
        public void OnStop()
        {
            if (!Started)
            {
                return;
            }
            Log.WriteFile("TV Service: stopping");

            if (_InitializedEvent != null)
            {
                _InitializedEvent.Reset();
            }
            StopRemoting();
            RemoteControl.Clear();
            if (_controller != null)
            {
                _controller.DeInit();
                _controller = null;
            }

            StopPlugins();
            if (_powerEventThreadId != 0)
            {
                Log.Debug("TV Service: OnStop asking PowerEventThread to exit");
                PostThreadMessage(_powerEventThreadId, WM_QUIT, IntPtr.Zero, IntPtr.Zero);
                _powerEventThread.Join();
            }
            _powerEventThreadId = 0;
            _powerEventThread   = null;
            _started            = false;
            Log.WriteFile("TV Service: stopped");
        }
Esempio n. 2
0
 protected CardAllocationBase(TvBusinessLayer businessLayer, TVController controller)
 {
     _businessLayer = businessLayer;
     _controller    = controller;
     //_tuningChannelMapping = new Dictionary<int, IList<IChannel>>();
     //_channelMapping = new Dictionary<int, bool>();
 }
        public void TestNoTuningDetailsChannel()
        {
            Dictionary <int, ITvCardHandler> cards = new Dictionary <int, ITvCardHandler>();
            List <IChannel> tuningDetails          = new List <IChannel>();

            IUser           user          = Fakes.FakeUser();
            TvBusinessLayer businessLayer = Fakes.FakeTvBusinessLayer();;
            TVController    controller    = Fakes.FakeTVController();

            DVBCardMocks   dvbCardMocks = GetCardMockByCardType(CardType.DvbC, tuningDetails, user);
            ITvCardHandler cardHandler1 = dvbCardMocks.GetMockedCardHandler();

            cards.Add(dvbCardMocks.CardId, cardHandler1);


            ChannelMap channelMap;
            Channel    channel = ChannelMocks.GetChannel(out channelMap);

            Isolate.WhenCalled(() => businessLayer.GetTuningChannelsByDbChannel(channel)).WillReturn(tuningDetails);
            TVControllerMocks.CardPresent(cardHandler1.DataBaseCard.IdCard, controller);

            SetupChannelMapping(cardHandler1, channelMap, businessLayer, channel);

            AdvancedCardAllocation allocation = new AdvancedCardAllocation(businessLayer, controller);

            TvResult          result;
            List <CardDetail> availCards = allocation.GetFreeCardsForChannel(cards, channel, ref user, out result);

            Assert.AreEqual(0, availCards.Count, "The number of cards returned is not as expected");
        }
        public ControllerActiveStandbyHandler(IController controller)
        {
            // Save controller
            _controller = controller as TVController;

            // Register handler for TV server events
            _controller.OnTvServerEvent += OnTvServerEvent;
        }
        public ScheduledRecordingsWakeupHandler(IController controller)
        {
            // Save controller
            _controller = controller as TVController;

            // Register handler for TV server events
            _controller.OnTvServerEvent += OnTvServerEvent;
        }
Esempio n. 6
0
        public static void CreateThreadsWindow(System.Diagnostics.Process process)
        {
            ThreadsView  view       = new ThreadsView();
            ITMModel     model      = new TMModel();
            TVController controller = new TVController(model, view, process);

            view.Visible = true;
        }
Esempio n. 7
0
        public void OnStart()
        {
            //System.Diagnostics.Debugger.Launch();
            try
            {
                if (!Started)
                {
                    Log.Info("TV service: Starting");

                    Thread.CurrentThread.Name = "TVService";

                    FileVersionInfo versionInfo = FileVersionInfo.GetVersionInfo(Application.ExecutablePath);

                    Log.WriteFile("TVService v" + versionInfo.FileVersion + " is starting up on " +
                                  OSInfo.OSInfo.GetOSDisplayVersion());
#if DEBUG
                    Log.Info("Debug build: " + Application.ProductVersion);
#else
                    Log.Info("Build: " + Application.ProductVersion);
#endif

                    //Check for unsupported operating systems
                    OSPrerequisites.OSPrerequisites.OsCheck(false);

                    _powerEventThread              = new Thread(PowerEventThread);
                    _powerEventThread.Name         = "PowerEventThread";
                    _powerEventThread.IsBackground = true;
                    _powerEventThread.Start();
                    _controller = new TVController();
                    _controller.Init();
                    StartPlugins();

                    StartRemoting();
                    _started = true;
                    if (_InitializedEvent != null)
                    {
                        _InitializedEvent.Set();
                    }
                    Log.Info("TV service: Started");
                    while (true)
                    {
                        Thread.Sleep(1000);
                    }
                }
            }
            catch (Exception ex)
            {
                //wait for thread to exit. eg. when stopping tvservice
                Log.Error("TvService OnStart failed : {0}", ex.ToString());
                _started = true; // otherwise the onstop code will not complete.
                OnStop();
            }
        }
Esempio n. 8
0
    private void Start()
    {
        tv = GameObject.FindObjectOfType <TVController>();
        sofaText.enabled     = false;
        remoteText.enabled   = false;
        doorText.enabled     = false;
        glassText.enabled    = false;
        tutorialText.enabled = true;
        tvText.enabled       = false;

        Invoke("DisableTutorial", 5);
    }
        private void TestWrongTuningDetailForCardForFTAChannel(CardType cardType)
        {
            Dictionary <int, ITvCardHandler> cards = new Dictionary <int, ITvCardHandler>();
            List <IChannel> tuningDetails          = new List <IChannel>();

            IUser           user          = Fakes.FakeUser();
            TvBusinessLayer businessLayer = Fakes.FakeTvBusinessLayer();;
            TVController    controller    = Fakes.FakeTVController();

            //we need to pick a different cardtype here-
            CardType cardTypeDifferent = cardType;

            switch (cardType)
            {
            case CardType.DvbT:
                cardTypeDifferent = CardType.DvbC;
                break;

            case CardType.DvbC:
                cardTypeDifferent = CardType.DvbS;
                break;

            case CardType.DvbS:
                cardTypeDifferent = CardType.DvbT;
                break;
            }
            IChannel tuningDetail1 = GetFTATuningDetailBasedOnCardType(cardTypeDifferent);

            tuningDetails.Add(tuningDetail1);

            DVBCardMocks   dvbCardMocks = GetCardMockByCardType(cardType, tuningDetails, user);
            ITvCardHandler cardHandler1 = dvbCardMocks.GetMockedCardHandler();

            //ITvCardHandler cardHandler1 = DVBTCardMocks.AddIdleFTADVBTCard(tuningDetail1, user);
            cards.Add(dvbCardMocks.CardId, cardHandler1);


            ChannelMap channelMap;
            Channel    channel = ChannelMocks.GetChannel(out channelMap);

            Isolate.WhenCalled(() => businessLayer.GetTuningChannelsByDbChannel(channel)).WillReturn(tuningDetails);
            TVControllerMocks.CardPresent(cardHandler1.DataBaseCard.IdCard, controller);

            SetupChannelMapping(cardHandler1, channelMap, businessLayer, channel);

            AdvancedCardAllocation allocation = new AdvancedCardAllocation(businessLayer, controller);

            TvResult          result;
            List <CardDetail> availCards = allocation.GetFreeCardsForChannel(cards, channel, ref user, out result);

            Assert.AreEqual(0, availCards.Count, "The number of cards returned is not as expected");
        }
Esempio n. 10
0
        /// <summary>
        /// Constructor
        /// </summary>
        /// <param name="controller">instance of a TVController</param>
        /// <param name="card">The card</param>
        public EpgCard(TVController controller, Card card)
        {
            _card = card;
            _user = UserFactory.CreateEpgUser();

            _tvController  = controller;
            _grabStartTime = DateTime.MinValue;
            _state         = EpgState.Idle;

            _epgTimer.Interval = 30000;
            _epgTimer.Elapsed += _epgTimer_Elapsed;
            _eventHandler      = controller_OnTvServerEvent;
            _dbUpdater         = new EpgDBUpdater(_tvController, "IdleEpgGrabber", true);
        }
Esempio n. 11
0
    public void ZoomOutTV()
    {
        Debug.Log("zoom out tv");
        GameObject go = GameObject.Find("tv camera test");

        if (go != null && go.active)
        {
            TVController tvController = go.GetComponent <TVController> ();
            tvController.Zoomout();

            //Animator animator = go.GetComponent<Animator> ();
            //animator.SetTrigger ("zoomout");
        }
    }
Esempio n. 12
0
 public AdvancedCardAllocationTicket(TvBusinessLayer businessLayer, TVController controller, IEnumerable <ICardTuneReservationTicket> tickets)
     : base(businessLayer, controller)
 {
     _tickets = new Dictionary <int, ICardTuneReservationTicket>();
     foreach (ICardTuneReservationTicket cardTuneReservationTicket in tickets)
     {
         if (cardTuneReservationTicket != null)
         {
             int idCard = cardTuneReservationTicket.CardId;
             if (!_tickets.ContainsKey(idCard))
             {
                 _tickets.Add(idCard, cardTuneReservationTicket);
             }
         }
     }
 }
        public void SetChannelStates(Dictionary <int, ITvCardHandler> cards, IList <Channel> channels, bool checkTransponders,
                                     TVController tvController)
        {
            if (channels == null)
            {
                return;
            }

            //call the real work as a thread in order to avoid slower channel changes.
            // find all users
            IList <IUser> allUsers = GetActiveUsers(cards);
            ThreadStart   starter  = delegate { DoSetChannelStates(cards, channels, checkTransponders, allUsers, tvController); };
            Thread        setChannelStatesThread = new Thread(starter);

            setChannelStatesThread.Name         = "Channel state thread";
            setChannelStatesThread.IsBackground = true;
            setChannelStatesThread.Priority     = ThreadPriority.Lowest;
            setChannelStatesThread.Start();
        }
        /// <summary>
        /// Gets a list of all channel states
        /// </summary>
        /// <returns>dictionary containing all channel states of the channels supplied</returns>
        public Dictionary <int, ChannelState> GetChannelStates(Dictionary <int, ITvCardHandler> cards, IList <Channel> channels,
                                                               ref IUser user, bool checkTransponders,
                                                               TVController tvController)
        {
            if (channels == null)
            {
                return(null);
            }

            List <IUser> allUsers = new List <IUser>();

            allUsers.Add(user);

            DoSetChannelStates(cards, channels, checkTransponders, allUsers, tvController);

            if (allUsers.Count > 0)
            {
                return(allUsers[0].ChannelStates);
            }
            return(new Dictionary <int, ChannelState>());
        }
Esempio n. 15
0
        public void OnStop()
        {
            if (!_started)
            {
                return;
            }

            Log.WriteFile("TV Service: stopping");

            // Reset "Global\MPTVServiceInitializedEvent"
            if (_InitializedEvent != null)
            {
                _InitializedEvent.Reset();
            }

            // Stop the plugins
            StopPlugins();

            // Stop remoting and deinit the TvController
            StopRemoting();
            RemoteControl.Clear();
            if (_controller != null)
            {
                _controller.DeInit();
                _controller = null;
            }

            // Terminate the power event thread
            if (_powerEventThreadId != 0)
            {
                Log.Debug("TV Service: OnStop asking PowerEventThread to exit");
                PostThreadMessage(_powerEventThreadId, WM_QUIT, IntPtr.Zero, IntPtr.Zero);
                _powerEventThread.Join();
            }
            _powerEventThreadId = 0;
            _powerEventThread   = null;

            _started = false;
            Log.WriteFile("TV Service: stopped");
        }
        private void TestOneAvailLockedCardForFTAChannel(CardType cardType)
        {
            Dictionary <int, ITvCardHandler> cards = new Dictionary <int, ITvCardHandler>();
            List <IChannel> tuningDetails          = new List <IChannel>();

            IUser           user          = Fakes.FakeUser();
            TvBusinessLayer businessLayer = Fakes.FakeTvBusinessLayer();;
            TVController    controller    = Fakes.FakeTVController();

            IChannel tuningDetail1 = GetFTATuningDetailBasedOnCardType(cardType);

            tuningDetails.Add(tuningDetail1);

            DVBCardMocks dvbCardMocks = GetCardMockByCardType(cardType, tuningDetails, user);

            dvbCardMocks.Idle = false;
            ITvCardHandler cardHandler1 = dvbCardMocks.GetMockedCardHandler();

            cards.Add(dvbCardMocks.CardId, cardHandler1);

            ChannelMap channelMap;
            Channel    channel = ChannelMocks.GetChannel(out channelMap);

            Isolate.WhenCalled(() => businessLayer.GetTuningChannelsByDbChannel(channel)).WillReturn(tuningDetails);
            TVControllerMocks.CardPresent(cardHandler1.DataBaseCard.IdCard, controller);

            SetupChannelMapping(cardHandler1, channelMap, businessLayer, channel);

            AdvancedCardAllocation allocation = new AdvancedCardAllocation(businessLayer, controller);

            TvResult          result;
            List <CardDetail> availCards = allocation.GetFreeCardsForChannel(cards, channel, ref user, out result);

            Assert.AreEqual(1, availCards.Count, "The number of cards returned is not as expected");
            Assert.AreEqual(availCards[0].SameTransponder, false, "same transponder not as expected");
        }
 public CardReservationRec(TVController tvController) : base(tvController)
 {
 }
Esempio n. 18
0
        public void OnStart()
        {
            //System.Diagnostics.Debugger.Launch();
            try
            {
                if (!Started)
                {
                    Log.Info("TV Service: Starting");

                    Thread.CurrentThread.Name = "TVService";

                    // Log TvService start and versions
                    FileVersionInfo versionInfo = FileVersionInfo.GetVersionInfo(Application.ExecutablePath);
                    Log.WriteFile("TVService v" + versionInfo.FileVersion + " is starting up on " +
                                  OSInfo.OSInfo.GetOSDisplayVersion());
                    Log.Info(OSInfo.OSInfo.GetLastInstalledWindowsUpdateTimestampAsString());
                    Log.Info("Windows Media Player: [{0}]", OSInfo.OSInfo.GetWMPVersion());

                    // Warn about unsupported operating systems
                    OSPrerequisites.OSPrerequisites.OsCheck(false);

                    // Start the power event thread
                    _powerEventThread              = new Thread(PowerEventThread);
                    _powerEventThread.Name         = "PowerEventThread";
                    _powerEventThread.IsBackground = true;
                    _powerEventThread.Start();

                    // Init the TvController and start remoting
                    _controller = new TVController();
                    _controller.Init();
                    StartRemoting();

                    // Start the plugins
                    StartPlugins();

                    // Set "Global\MPTVServiceInitializedEvent"
                    if (_InitializedEvent != null)
                    {
                        _InitializedEvent.Set();
                    }
                    _started = true;
                    Log.Info("TV Service: Started");

                    // Wait for termination
                    while (true)
                    {
                        Thread.Sleep(1000);
                    }
                }
            }
            catch (ThreadAbortException)
            {
                Log.Info("TV Service is being stopped");
            }
            catch (Exception ex)
            {
                if (_started)
                {
                    Log.Error("TV Service terminated unexpectedly: {0}", ex.ToString());
                }
                else
                {
                    Log.Error("TV Service failed to start: {0}", ex.ToString());
                }
            }
            finally
            {
                _started = true; // otherwise the onstop code will not complete.
                OnStop();
            }
        }
 public AdvancedCardAllocationStatic(TvBusinessLayer businessLayer, TVController controller)
     : base(businessLayer, controller)
 {
 }
Esempio n. 20
0
 public void SetController(TVController controller)
 {
     this.controller = controller;
 }
Esempio n. 21
0
 void Start()
 {
     tvScript         = GetComponent <TVController>();
     _dialogueManager = FindObjectOfType <DialogueManager>().gameObject;
     dScript          = _dialogueManager.GetComponent <DialogueManager>();
 }
Esempio n. 22
0
    void Update()
    {
        if (dialogWindow.isOpen == false)
        {
            if (Input.mouseScrollDelta.y != 0 || Input.GetKeyDown(KeyCode.Space))      //switch hands
            {
                currentHand = SwapActiveHand();
                SetHandColor();
            }
            else if (Input.GetKeyDown(KeyCode.Q))
            {
                actionPanel.OnDropClick();
            }
            //else if (Input.GetKeyDown(KeyCode.Q))   //switch to left hand
            //{
            //    currentHand = left_hand_btn;
            //    SetHandColor();
            //}
            //else if (Input.GetKeyDown(KeyCode.E))   //switch to right hand
            //{
            //    currentHand = right_hand_btn;
            //    SetHandColor();
            //}
            else if (Input.GetKeyDown(KeyCode.Tab)) // open bag
            {
                if (isBagOpen == true)
                {
                    CloseOpenContainer(bag_panel, ref isBagOpen);
                    return;
                }

                if (IsEmpty(bag_btn) == true)
                {
                    return;
                }

                Item bag = bag_btn.GetComponent <ItemCell>().item;

                CloseOpenContainer(bag_panel, ref isBagOpen);

                if (isBagOpen == true)
                {
                    isBagOpenWithTab = true;
                    ContainerContentInit(bag.innerItems, bag_panel);
                }
            }

            if (Input.GetMouseButtonDown(1))
            {
                eventController.OnMouseClickEvent.Invoke();

                mousePosRight = Camera.main.ScreenToWorldPoint(Input.mousePosition);
                Vector2        mousePos2D = new Vector2(mousePosRight.x, mousePosRight.y);
                RaycastHit2D[] hits       = Physics2D.RaycastAll(mousePos2D, Vector2.zero);

                foreach (var hit in hits)
                {
                    if (hit.collider.name.Contains(Global.DROPED_ITEM_PREFIX) && IsInActionRadius(hit.transform.position, player.position, actioPlayerRadius))
                    {
                        Item itemInWorld = hit.collider.GetComponent <ItemCell>().item;
                        if (itemInWorld.itemSubstitution.IsUsable(GetItemInHand(currentHand)))
                        {
                            itemInWorld.itemSubstitution.Substitute(hit.collider.gameObject);

                            return;
                        }
                    }

                    if (hit.collider.tag == "substitudeItem")
                    {
                        Item itemToDrop = hit.collider.GetComponent <SubstitudeCell>().item;

                        actionPanel.SpawnItem(hit.transform.position, itemToDrop);
                        Destroy(hit.collider.gameObject);

                        return;
                    }

                    if (hit.collider.gameObject.tag == "table" && hit.collider.GetComponent <TableController>().isCraftTable)
                    {
                        bool removeTool = craftController.Craft_Table(hits, GetItemInHand(currentHand),
                                                                      CraftType.Cooking,
                                                                      CraftTable.Table);

                        if (removeTool)
                        {
                            SetDefaultItem(currentHand);
                        }

                        return;
                    }

                    if (hit.collider.gameObject.tag == "microwave")
                    {
                        MicrowaveController microwave = hit.collider.GetComponent <MicrowaveController>();

                        craftController.Craft_Microwave(microwave, GetItemInHand(currentHand),
                                                        CraftType.Cooking,
                                                        CraftTable.Microwave);

                        eventController.OnEnvChangeShapeEvent.Invoke();

                        return;
                    }

                    if (hit.collider.gameObject.tag == "oven")
                    {
                        MicrowaveController microwave = hit.collider.GetComponent <MicrowaveController>();

                        craftController.Craft_Microwave(microwave, GetItemInHand(currentHand),
                                                        CraftType.Cooking,
                                                        CraftTable.Oven);

                        eventController.OnEnvChangeShapeEvent.Invoke();

                        return;
                    }

                    if (hit.collider.gameObject.tag == "printer")
                    {
                        PrinterController printerController = hit.collider.GetComponent <PrinterController>();

                        printerController.OnPrinterClick();
                    }

                    if (hit.collider.gameObject.tag == "pc")
                    {
                        PCController pcController = hit.collider.GetComponent <PCController>();

                        pcController.OnPc_Disck(currentHand);
                    }

                    if (hit.collider.gameObject.tag == "tv")
                    {
                        TVController tvController = hit.collider.GetComponent <TVController>();

                        tvController.NextChanel();
                    }

                    if (hit.collider.gameObject.name.Contains(Global.ITEM_SWITCH_PREFIX))
                    {
                        ISwitchItem switchItem = hit.collider.GetComponent <ISwitchItem>();
                        switchItem.SwitchItem(GetItemInHand(currentHand), currentHand);
                        //ItemSwitchController itemSwitchController = hit.collider.GetComponent<ItemSwitchController>();

                        //itemSwitchController.SwitchItem(GetItemInHand(currentHand), currentHand);
                    }

                    /*                  */
                    /*      QUESTS      */
                    /*                  */

                    if (hit.collider.gameObject.name.Contains("bus_spawn"))
                    {
                        Debug.Log("bus");
                        BusController bus = hit.collider.GetComponent <BusController>();
                        bus.GiveTicket(currentHand);
                        return;
                    }
                }

                eventController.OnRightButtonClickEvent.Invoke(hits, mousePos2D);
            }

            if (Input.GetMouseButtonDown(0) || ((isOptMouseInput = Input.GetKeyDown(KeyCode.E)) &&
                                                terminalController.isOpen == false))
            {
                eventController.OnMouseClickEvent.Invoke();
                // не детектить нажатие пробела вовремя работы в терминале
                //isOptMouseInput = !terminalController.isOpen;

                if (isOptMouseInput == false)
                {
                    mousePos = Camera.main.ScreenToWorldPoint(Input.mousePosition);
                }
                else
                {
                    mousePos = player.position + (playerMovement.GetTurnSide() / 2);
                }

                Vector2        mousePos2D = new Vector2(mousePos.x, mousePos.y);
                RaycastHit2D[] hits       = Physics2D.RaycastAll(mousePos2D, Vector2.zero);

                //isSpacePressed = false;

                if (IsInActionRadius(mousePos, player.position, actioPlayerRadius))
                {
                    Item itemInHand = GetItemInHand(currentHand);
                    itemInHand.itemUseData.use.Use_On_Env(hits, mousePos, currentHand, GetAnotherHand());
                }

                foreach (var hit in hits)
                {
                    if (hit.collider != null && IsInActionRadius(mousePos, player.position, actioPlayerRadius))
                    {
                        // ели на полу айтем и в руках не чего нет
                        if (hit.collider.name.Contains(Global.DROPED_ITEM_PREFIX) &&
                            IsEmpty(currentHand))
                        {
                            GameObject itemGo = hit.collider.gameObject;
                            ItemPickUp(itemGo);
                            return; // приоритет что бы не взять айтем и не положить его потом на стол если он был уже на столе
                        }

                        /*   клик по игроку   */
                        if (hit.collider.gameObject.tag == "playerAction")
                        {
                            Item item = currentHand.GetComponent <ItemCell>().item;
                            eventController.OnUseOnPlayerEvent.Invoke(item);
                            item.itemUseData.use.Use_On_Player(null, item);

                            if (item.isDestroyOnPlayerUse)
                            {
                                SetDefaultItem(currentHand);
                            }
                            else
                            {
                                if (item.afterOnPlayerUseItem != null)
                                {
                                    Item afterUseItemClone = Instantiate(item.afterOnPlayerUseItem);
                                    DressCell(currentHand, afterUseItemClone);
                                }
                            }
                        }

                        if (hit.collider.tag == "substitudeItem")
                        {
                            BaseConection baseConection = hit.collider.GetComponent <BaseConection>();

                            if (baseConection != null)
                            {
                                PCController pcController = baseConection.FindPcInRadius();

                                if (pcController != null)
                                {
                                    baseConection.ProcessConection(pcController);
                                }

                                return;
                            }
                        }

                        if (hit.collider.gameObject.tag == "tapWater")
                        {
                            TabWaterController tabWaterController = hit.collider.GetComponent <TabWaterController>();
                            Button             btn_itemInHand     = IsEmpty(currentHand) ? null : currentHand;
                            tabWaterController.OnWaterTap_Click(btn_itemInHand);
                        }

                        if (hit.collider.gameObject.tag == "envObj")
                        {
                            BaseActionWindowConntroller baseAction = hit.collider.GetComponent <BaseActionWindowConntroller>();
                            baseAction.Open(hit.collider.gameObject);
                        }

                        if (hit.collider.gameObject.tag == "pc")
                        {
                            PCController pcController = hit.collider.GetComponent <PCController>();
                            Item         itemInHand   = IsEmpty(currentHand) ? null : GetItemInHand(currentHand);
                            pcController.OnPc_ClicK(itemInHand);
                        }

                        if (hit.collider.gameObject.tag == "tv")
                        {
                            TVController tVController = hit.collider.GetComponent <TVController>();
                            tVController.OnTvClick();
                        }

                        if (hit.collider.gameObject.tag == "microwave" || hit.collider.gameObject.tag == "oven")
                        {
                            Item itemInHand = IsEmpty(currentHand) ? null : GetItemInHand(currentHand);
                            MicrowaveController microwaveController = hit.collider.GetComponent <MicrowaveController>();

                            MicrowaveController.MicrowaveStatus status = microwaveController.OnMicrowaveClick(itemInHand, mousePos);

                            if (status == MicrowaveController.MicrowaveStatus.PutItem)
                            {
                                SetDefaultItem(currentHand);
                            }
                            else if (status == MicrowaveController.MicrowaveStatus.TakeItem)
                            {
                                DressCell(currentHand, microwaveController.itemInside);
                                microwaveController.itemInside = null;
                            }

                            eventController.OnEnvChangeShapeEvent.Invoke();
                        }

                        if (hit.collider.gameObject.tag == "door")
                        {
                            Item itemInHand = GetItemInHand(currentHand);
                            // использовать айтем как ключ
                            //eventController.OnDoorEvent.Invoke(itemInHand, mousePos, hit.collider, hit.collider.GetComponent<DoorController>().isLocked);
                            hit.collider.GetComponent <DoorController>().OnDoorClick(itemInHand, mousePos, hit.collider, hit.collider.GetComponent <DoorController>().isLocked);
                            itemInHand.itemUseData.use.Use_To_Open(null, itemInHand);
                        }

                        if (hit.collider.gameObject.tag == "case" || hit.collider.gameObject.tag == "printer")
                        {
                            CaseItem  caseItem     = hit.collider.GetComponent <CaseItem>();
                            Transform casePosition = hit.collider.transform;

                            // важно соблюдать очередность, сначало открывается сундук потом панэль
                            hit.collider.GetComponent <CaseController>().OnCaseCloseOpen(casePosition.position);

                            eventController.OnStaticCaseItemEvent.Invoke(caseItem, casePosition);
                            eventController.OnEnvChangeShapeEvent.Invoke();
                        }

                        if (hit.collider.gameObject.tag == "table")
                        {
                            hit.collider.GetComponent <TableController>().OnTableClick(hit.transform.position,
                                                                                       IsEmpty(currentHand) ? null : GetItemInHand(currentHand));
                        }

                        /*                  */
                        /*      QUESTS      */
                        /*                  */
                        if (hit.collider.gameObject.name.Contains("bus_spawn"))
                        {
                            Debug.Log("bus");
                            BusController bus = hit.collider.GetComponent <BusController>();
                            bus.Activate();
                            return;
                        }
                    }
                }
            }
        }
    }
Esempio n. 23
0
 public static void CardNotPresent(int cardId, TVController controller)
 {
     Isolate.WhenCalled(() => controller.CardPresent(cardId)).WillReturn(false);
 }
Esempio n. 24
0
    void Update()
    {
        if (IsInActionRadius() == true)
        {
            Vector3        mousePos   = Camera.main.ScreenToWorldPoint(Input.mousePosition);
            Vector2        mousePos2D = new Vector2(mousePos.x, mousePos.y);
            RaycastHit2D[] hits       = Physics2D.RaycastAll(mousePos2D, Vector2.zero);

            if (hits.Length == 0)
            {
                isdetected = false;
            }

            foreach (var hit in hits)
            {
                if (hit.collider.tag == "substitudeItem")
                {
                    BaseConection baseConection = hit.collider.GetComponent <BaseConection>();
                    NPC_Info      npcInfo       = hit.collider.GetComponent <NPC_Info>();
                    PCController  pcController  = baseConection.FindPcInRadius();

                    string interactionStr = Global.Tooltip.LM_INTERACT + " / " + Global.Tooltip.RM_TURN_OFF;

                    if (pcController != null)
                    {
                        bool isConnected = pcController.peripherals.Contains(hit.collider.gameObject);
                        interactionStr = ((isConnected == true) ? Global.Tooltip.LM_DISCONNECT : Global.Tooltip.LM_CONNECT) + " / " + Global.Tooltip.RM_TURN_OFF;
                    }

                    isdetected = true;
                    //tooltipPosition = Camera.main.WorldToScreenPoint(hit.transform.position);
                    ShowToolTip(npcInfo == null ? "obj" : npcInfo.npcName, interactionStr);
                    TooltipLocate(hit.collider.transform.position);
                    return;
                }
                else if (hit.collider.tag == "table")
                {
                    TableController tableController = hit.collider.GetComponent <TableController>();

                    isdetected = true;
                    //tooltipPosition = Camera.main.WorldToScreenPoint(hit.collider.transform.position);

                    if (IsCurrentHandEmpty() && IsObjectExist(hits, Global.DROPED_ITEM_PREFIX, false) == false)
                    {
                        ShowToolTip((tableController.tableName == string.Empty) ? "table" : tableController.tableName,
                                    PrintRed(Global.Tooltip.NO_ACTIONS));
                    }
                    else if (IsCurrentHandEmpty() && IsObjectExist(hits, Global.DROPED_ITEM_PREFIX, false) == true)
                    {
                        Item itemOnTable = FindRaycast(hits, Global.DROPED_ITEM_PREFIX, false)?.collider
                                           .GetComponent <ItemCell>().item;

                        ShowToolTip((tableController.tableName == string.Empty) ? "table" + " (" + itemOnTable.itemName + ")"
                                                              : tableController.tableName + " (" + itemOnTable.itemName + ")",
                                    Global.Tooltip.LM_PICK_UP);
                    }
                    else if (IsCurrentHandEmpty() == false && IsObjectExist(hits, Global.DROPED_ITEM_PREFIX, false) == true)
                    {
                        Item         tool           = controller.GetItemInHand(controller.currentHand);
                        RaycastHit2D?itemOnTableHit = FindRaycast(hits, Global.DROPED_ITEM_PREFIX, false);
                        Item         temOnTable     = itemOnTableHit.GetValueOrDefault().collider.GetComponent <ItemCell>().item;

                        ItemCraftData craftData = CraftController.FindRecept_Static(tool, temOnTable,
                                                                                    CraftType.Cooking, /* TODO */
                                                                                    CraftTable.Table);

                        ShowToolTip((tableController.tableName == string.Empty) ? "table" + " (" + temOnTable.itemName + ")"
                                                              : tableController.tableName + " (" + temOnTable.itemName + ")",
                                    Global.Tooltip.LM_PUT + ((tableController.isCraftTable) ? ((craftData != null) ?
                                                                                               " / " + Global.Tooltip.RM_CRAFT + " " + craftData.recept.craftResult.itemName : string.Empty)
                                : string.Empty));
                    }
                    else
                    {
                        ShowToolTip((tableController.tableName == string.Empty) ? "table" : tableController.tableName,
                                    Global.Tooltip.LM_PUT);
                    }

                    TooltipLocate(hit.collider.transform.position);

                    return;
                }
                else if (hit.collider.name.Contains(Global.DROPED_ITEM_PREFIX))
                {
                    bool onTable = false;

                    foreach (var hitTable in hits)
                    {
                        if (hitTable.collider.tag == "table")
                        {
                            onTable = true;
                        }
                    }

                    if (onTable == false)
                    {
                        Item item       = hit.collider.GetComponent <ItemCell>().item;
                        Item itemInHand = controller.currentHand.GetComponent <ItemCell>().item;

                        isdetected = true;

                        string useInteraction = (item.itemSubstitution.IsSubstituted() == true && item.itemSubstitution.IsItemToUseExist(itemInHand)) ? " / " + Global.Tooltip.RM_TURN_ON : string.Empty;

                        ShowToolTip(item.itemName, (controller.IsEmpty(controller.currentHand) == true) ?
                                    Global.Tooltip.LM_PICK_UP + useInteraction
                            : ((useInteraction == string.Empty) ? PrintRed(Global.Tooltip.NO_ACTIONS) : useInteraction.Substring(" / ".Length)));

                        TooltipLocate(hit.collider.transform.position);

                        return;
                    }
                }
                else if (hit.collider.tag == "case")
                {
                    CaseController caseController = hit.collider.GetComponent <CaseController>();

                    isdetected = true;

                    ShowToolTip((caseController.caseName == string.Empty) ? "case" : caseController.caseName, (caseController.isOpen == false)
                                ? Global.Tooltip.LM_OPEN : Global.Tooltip.LM_CLOSE);

                    TooltipLocate(hit.collider.transform.position);

                    return;
                }
                else if (hit.collider.tag == "tv")
                {
                    TVController tvController = hit.collider.GetComponent <TVController>();

                    isdetected = true;
                    //tooltipPosition = Camera.main.WorldToScreenPoint(hit.collider.transform.position);

                    ShowToolTip("tv", (tvController.IsTvOpen() == false)
                                ? Global.Tooltip.LM_TURN_ON : Global.Tooltip.LM_TURN_OFF + " / " + Global.Tooltip.RM_NEXT_CHANNEL);
                    TooltipLocate(hit.collider.transform.position);

                    return;
                }
                else if (hit.collider.tag == "envObj")
                {
                    VendingController vending = hit.collider.GetComponent <VendingController>();

                    isdetected = true;
                    //tooltipPosition = Camera.main.WorldToScreenPoint(hit.collider.transform.position +
                    //                                                Global.Tooltip.EnvObjOffset());

                    ShowToolTip((vending.headerTitle == string.Empty) ? "vending" : vending.headerTitle.ToLower(),
                                Global.Tooltip.LM_USE);
                    TooltipLocate(hit.collider.transform.position);

                    return;
                }
                else if (hit.collider.tag == "pc")
                {
                    Item         itemInHand   = controller.currentHand.GetComponent <ItemCell>().item;
                    PCController pcController = hit.collider.GetComponent <PCController>();
                    Item         disk         = pcController.disk;

                    isdetected = true;
                    //tooltipPosition = Camera.main.WorldToScreenPoint(hit.collider.transform.position);

                    if (disk != null && controller.IsEmpty(controller.currentHand))
                    {
                        ShowToolTip("pc", Global.Tooltip.LM_INTERACT + " / " + Global.Tooltip.RM_PULL_THE_DISK);
                    }
                    else
                    {
                        ShowToolTip("pc", (controller.IsEmpty(controller.currentHand) == false &&
                                           itemInHand.itemName.Contains("disk"))
                                ? Global.Tooltip.LM_INTERACT + " / " + Global.Tooltip.RM_INSERT : Global.Tooltip.LM_INTERACT);
                    }

                    TooltipLocate(hit.collider.transform.position);
                }
                else if (hit.collider.tag == "playerAction")
                {
                    if (controller.IsEmpty(controller.currentHand) == false &&
                        controller.GetItemInHand(controller.currentHand).itemBuff.buff != null)
                    {
                        playerTooltip.gameObject.SetActive(true);
                    }
                    else
                    {
                        playerTooltip.gameObject.SetActive(false);
                    }

                    return;
                }
                else if (hit.collider.gameObject.name.Contains(Global.ITEM_SWITCH_PREFIX))
                {
                    isdetected = true;
                    ISwitchItem switchItem = hit.collider.GetComponent <ISwitchItem>();
                    Item        itemInHand = controller.GetItemInHand(controller.currentHand);

                    ShowToolTip(switchItem.GetISwitchName(), (itemInHand.IsSameItems(switchItem.GetNeedItem()) ?
                                                              Global.Tooltip.RM_INSERT : PrintRed(Global.Tooltip.NO_ACTIONS)));
                    TooltipLocate(hit.collider.transform.position);
                }
                else
                {
                    isdetected = false;
                }

                //playerTooltip.gameObject.SetActive(hit.collider.tag == "player");
            }

            playerTooltip.gameObject.SetActive(false);

            if (isTooltipOpen == true && isdetected == false)
            {
                HideToolTip();
            }
        }
        else
        {
            if (isTooltipOpen == true)
            {
                HideToolTip();
            }
        }
    }
Esempio n. 25
0
        public static IDictionary <CardDetail, ICardTuneReservationTicket> RequestCardReservations(IUser user, IEnumerable <CardDetail> availCardsForReservation, TVController tvController, ICardReservation cardResImpl, IEnumerable <CardDetail> ignoreCards, int idChannel)
        {
            IDictionary <CardDetail, ICardTuneReservationTicket> tickets = new Dictionary <CardDetail, ICardTuneReservationTicket>();
            ICollection <int> cardIds = new HashSet <int>();

            foreach (CardDetail cardDetail in availCardsForReservation)
            {
                ICardTuneReservationTicket ticket = null;
                int  idCard = cardDetail.Card.IdCard;
                bool cardAlreadyHasTicket = cardIds.Contains(idCard);
                if (!cardAlreadyHasTicket)
                {
                    bool foundIgnoredCard = ignoreCards.Contains(cardDetail);
                    if (!foundIgnoredCard)
                    {
                        ticket = RequestCardReservation(user, cardDetail, tvController, cardResImpl, idChannel);
                    }
                    cardIds.Add(idCard);
                }
                tickets.Add(cardDetail, ticket);
            }
            return(tickets);
        }
Esempio n. 26
0
        public static ICardTuneReservationTicket RequestCardReservation(IUser user, CardDetail cardDetail, TVController tvController, ICardReservation cardResImpl, int idChannel)
        {
            ICardTuneReservationTicket ticket = null;
            int   idCard   = cardDetail.Card.IdCard;
            IUser userCopy = user.Clone() as User;

            if (userCopy != null)
            {
                IDictionary <int, ITvCardHandler> cards = tvController.CardCollection;
                userCopy.CardId = idCard;
                ITvCardHandler tvcard = cards[idCard];
                ticket = cardResImpl.RequestCardTuneReservation(tvcard, cardDetail.TuningDetail, userCopy, idChannel);
            }

            return(ticket);
        }
Esempio n. 27
0
 // Use this for initialization
 void Start()
 {
     tvController = GameObject.Find("tv camera test").GetComponent <TVController>();
 }
Esempio n. 28
0
 /// <summary>
 /// Constructor
 /// </summary>
 /// <param name="controller">instance of a TVController</param>
 public EpgGrabber(TVController controller)
 {
     _tvController      = controller;
     _epgTimer.Interval = 30000;
     _epgTimer.Elapsed += _epgTimer_Elapsed;
 }
Esempio n. 29
0
 protected CardReservationBase(TVController tvController)
 {
     _tvController = tvController;
 }
 public ChannelStates(TvBusinessLayer businessLayer, TVController controller)
   : base(businessLayer, controller)
 {
   LogEnabled = false;
 }
Esempio n. 31
0
	// Use this for initialization
	void Start () {
        var = GetComponent<ObjectVariables>();
        controller = sprite.GetComponent<TVController>();
	}