예제 #1
0
 // Update is called once per frame
 void Update()
 {
     if (!done_initial_setup)
     {
         movement    = GetComponent <NPCDefault> ();
         interaction = GetComponentInChildren <NPCInteraction> ();
         // Choose which line to queue for.
         GameObject[] targets = GameObject.FindGameObjectsWithTag("QueueTarget");
         queue_target = targets [Random.Range(0, targets.Length)];
         queue        = queue_target.GetComponent <QueueManager> ();
         queue.Add(gameObject);
         in_queue           = true;
         done_initial_setup = true;
     }
     if (in_queue)
     {
         if (queue.Contains(gameObject))
         {
             movement.override_destination = true;
             movement.destination          = queue.GetPosition(gameObject);
         }
         else
         {
             LeaveQueue();
         }
     }
     if (GameManagerScript.moment != GameManagerScript.DAY)
     {
         LeaveQueue();
     }
 }
        public void should_remove_it_from_the_queue()
        {
            // Arrange
            var dynamicDataFactory = new Moq.Mock<DynamicDataStoreFactory>();
            dynamicDataFactory
                .Setup(x => x.GetStore(typeof(QueueItem)))
                .Returns(new InMemoryDynamicDataStore());

            var container = EPiSimpleQueue.Infrastructure.Bootstrapper.CreateContainer();

            var queueManager = new QueueManager(dynamicDataFactory.Object, new Handler(container));

            queueManager.Add(new AnEvent());
            queueManager.Add(new AnEvent());
            queueManager.Add(new AnEvent());

            // Act
            queueManager.RemoveAllQueueItems();

            // Assert
            Assert.That(queueManager.GetQueueItems(), Is.Empty);
        }
    void DoEntered()
    {
//        //queueManager = driveThruWindow.GetComponent<QueueManager>();
//        GameObject goLast = GameObject.FindGameObjectWithTag("DriveThruWindow").GetComponent<QueueManager>().Last();
//        if (goLast)
//        {
//#if DEBUG_CC
//            print("CC.DoEntered: goLast.ID=" + goLast.GetInstanceID());
//#endif
//            targetCar = goLast.transform;
//        }
//        else
//        {
//            targetCar = targetWindow;
//        }

        targetCar = targetWindow;

        queueManager = GameObject.FindGameObjectWithTag("DriveThruWindow").GetComponent <QueueManager>();
        queueManager.Add(this.gameObject);

        navMeshAgent.SetDestination(targetCar.position);
        navMeshAgent.isStopped = false;
    }
예제 #4
0
 public void  AddRecord <T>(T objectdata)
 {
     _QueueManager.Add(new Action(() => Que_AddRecord(objectdata)));
 }
예제 #5
0
 public void AgregarItemsACola()
 {
     Assert.AreEqual(0, _queueManager.Count());
     _queueManager.Add("Hola mundo");
     _queueManager.Add("Adios mundo");
     Assert.AreEqual(2, _queueManager.Count());
 }
        public void Setup()
        {
            // Arrange
            _eventThatWillThrow = new AnEventThatWillThrow {Exception = new ArgumentException("Some exception")};

            var dynamicDataFactory = new Moq.Mock<DynamicDataStoreFactory>();
            dynamicDataFactory
                .Setup(x => x.GetStore(typeof(QueueItem)))
                .Returns(new InMemoryDynamicDataStore());

            dynamicDataFactory
                .Setup(x => x.GetStore(typeof(ErrorQueueItem)))
                .Returns(new InMemoryDynamicDataStore());

            var container = EPiSimpleQueue.Infrastructure.Bootstrapper.CreateContainer();

            _queueManager = new QueueManager(dynamicDataFactory.Object, new Handler(container));

            _queueManager.Add(_eventThatWillThrow);
            _queueManager.Add(new AnEvent());

            // Act
            _results = _queueManager.ProcessAllQueueItems();
        }
예제 #7
0
        /// <summary>
        /// Pulls localization files from devon.
        /// </summary>
        /// <param name="project">Project.</param>
        /// <param name="authHeader">Auth header.</param>
        /// <param name="callback">Callback.</param>
        public static void PullFromDevon(string project, string authHeader, Action <bool> callback)
        {
            System.Text.StringBuilder stringBuilder = new System.Text.StringBuilder();
            foreach (string lang in Localizer.Locales)
            {
                stringBuilder.Append(lang); stringBuilder.Append(", ");
            }
            Debug.Log("Pulling localization text from Devon: " + stringBuilder.ToString());
            Debug.Log("Please wait...");

            Dictionary <string, string> buildHeaders = new Dictionary <string, string>();

            buildHeaders.Add("Authorization", authHeader);
            buildHeaders.Add("Accept", "application/json");

            WWW buildCall = new WWW(DevonBuild + "/" + project, null, buildHeaders);

            QueueManager.Add(() => buildCall.isDone, () =>
            {
                if (buildCall.error != null && !buildCall.error.Equals(""))
                {
                    Debug.LogError("== Build Failed: " + buildCall.error);
                    callback(false);
                    return;
                }

                int remaining = Localizer.Locales.Count;
                bool result   = true;
                foreach (string lang in Localizer.Locales)
                {
                    Dictionary <string, string> headers = new Dictionary <string, string>();

                    headers.Add("Authorization", authHeader);
                    headers.Add("Accept", "application/json");

                    foreach (string devonVersion in Localizer.DevonVersions)
                    {
                        Debug.Log(lang + " " + devonVersion + " downloading...");
                        WWW call = new WWW(DevonPull + "/" + project + "/" + devonVersion + "%2F" + lang + ".json", null, headers);

                        QueueManager.Add(() => call.isDone, () =>
                        {
                            if (call.error == null || call.error.Equals(""))
                            {
                                Debug.Log(lang + " " + devonVersion + " done.");
                                string bundlePath = Application.streamingAssetsPath + "/Localization/" + lang + "." + devonVersion.Replace(".", "_") + ".json";

                                if (File.Exists(bundlePath))
                                {
                                    File.SetAttributes(bundlePath, FileAttributes.Normal);
                                }
                                else
                                {
                                    File.Create(bundlePath).Dispose();
                                    File.SetAttributes(bundlePath, FileAttributes.Normal);
                                }

                                File.WriteAllText(bundlePath, call.text);
                            }
                            else
                            {
                                Debug.LogError("== Pull Failed: " + call.error);
                                result = false;
                            }

                            if (--remaining == 0)
                            {
                                callback(result);
                            }
                        });
                    }
                }
            });
        }
예제 #8
0
    // Start is called before the first frame update
    void Start()
    {
        transform.parent = null;
        // refreshTargets += UpdateTarget;
        queueManager = GameObject.FindGameObjectWithTag("DriveThruWindow").GetComponent <QueueManager>();
        index        = queueManager.Add(this);

        agent = GetComponent <NavMeshAgent>();
        if (!window)
        {
            window = GameObject.FindGameObjectWithTag("DriveThruWindow").transform;
        }
        if (!exit)
        {
            exit = GameObject.FindGameObjectWithTag("CarExit").transform;
        }

        stateMachine = new StateMachine();
        stateMachine.AddState(new StateMachine.State()
        {
            Name    = "Entered",
            OnEnter = () =>
            {
                if (queueManager.Count() > 1)
                {
                    target = queueManager.Next();
                    setDestination(target.transform);
                    targetTransform        = target.transform;
                    agent.stoppingDistance = 5;
                }
                else
                {
                    setDestination(window);
                    targetTransform        = window;
                    agent.stoppingDistance = 3;
                }
            },
            OnStay = () =>
            {
                setDestination(targetTransform);
            },
            OnExit = () =>
            {
            }
        });
        stateMachine.AddState(new StateMachine.State()
        {
            Name    = "Service",
            OnEnter = () =>
            {
                agent.isStopped = true;
            },
            OnStay = () =>
            {
            },
            OnExit = () =>
            {
            }
        });
        stateMachine.AddState(new StateMachine.State()
        {
            Name    = "Exit",
            OnEnter = () =>
            {
                agent.isStopped = false;
                Debug.Log("Setting to exit");
                setDestination(exit);
                agent.stoppingDistance = 3;
                queueManager.PopFirst();
                refreshTargets?.Invoke();
            },
            OnStay = () =>
            {
                setDestination(exit);
                agent.stoppingDistance = 3;
            },
            OnExit = () =>
            {
            }
        });
        stateMachine.TransitionTo("Entered");
    }
예제 #9
0
 public Job Post([FromBody] Job job)
 {
     _queue.Add(job);
     return(job);
 }