private void treeViewCrowd_PreviewKeyUp(object sender, KeyEventArgs e)
        {
            TreeViewItem treeViewItem = VisualUpwardSearch(e.OriginalSource as DependencyObject);

            if (treeViewItem != null)
            {
                TreeViewItem item = GetRootTreeViewItemParent(treeViewItem);
                if (item != null)
                {
                    this.selectedCrowdRoot = item.DataContext as Crowd;
                }
                else
                {
                    this.selectedCrowdRoot = null;
                }
                if (treeViewItem.DataContext is Crowd)
                {
                    treeViewItem = GetImmediateTreeViewItemParent(treeViewItem);
                    if (treeViewItem != null)
                    {
                        this.viewModel.SelectedCrowdParent = treeViewItem.DataContext as Crowd;
                    }
                    else
                    {
                        this.viewModel.SelectedCrowdParent = null;
                    }
                }
                else
                {
                    this.viewModel.SelectedCrowdParent = null;
                }
            }
        }
Ejemplo n.º 2
0
        public ActionResult <ItemResponse <Crowd> > Get(int spotId)
        {
            int          code     = 200;
            BaseResponse response = null;

            try
            {
                Crowd _crowd = _service.GetBySpotId(spotId);

                if (_crowd == null)

                {
                    code     = 404;
                    response = new ErrorResponse("Application Resource not found.");
                }
                else
                {
                    response = new ItemResponse <Crowd> {
                        Item = _crowd
                    };
                }
            }
            catch (Exception ex)
            {
                code     = 500;
                response = new ErrorResponse(ex.Message);
                {
                    base.Logger.LogError(ex.ToString());
                }
            }
            return(StatusCode(code, response));
        }
        private TreeViewItem FindCrowdNodeInTree(Crowd modelToSelect)
        {
            TreeViewItem item = null;

            if (this.viewModel.SelectedCrowdMember == null) // A new crowd has been added to the collection
            {
                for (int i = 0; i < treeViewCrowd.Items.Count; i++)
                {
                    item = treeViewCrowd.ItemContainerGenerator.ContainerFromItem(treeViewCrowd.Items[i]) as TreeViewItem;
                    if (item != null)
                    {
                        var model = item.DataContext as CrowdMember;
                        if (model.Name == modelToSelect.Name)
                        {
                            item.IsSelected = true;

                            this.viewModel.SelectedCrowdMember = model as Crowd;
                            break;
                        }
                    }
                }
            }

            return(item);
        }
Ejemplo n.º 4
0
 // Start is called before the first frame update
 void Start()
 {
     drm    = GetComponent <DirectionRelativeMovement>();
     sl     = GetComponentInChildren <SimpleLife>();
     player = GameObject.FindGameObjectWithTag(playerTag).GetComponent <Crowd>();
     cc     = GetComponent <CharacterController>();
 }
Ejemplo n.º 5
0
    // Use this for initialization
    void Start()
    {
        var navQuery = FindObjectOfType(typeof(RecastNavMeshQuery)) as RecastNavMeshQuery;

        if (navQuery != null)
        {
            _navMeshQuery = navQuery._navMeshQuery;
            filter        = navQuery.filter;
            crowd         = navQuery.Crowd;

            param = new CrowdAgentParams
            {
                Radius                = Radius,
                Height                = Height,
                MaxAcceleration       = MaxAcceleration,
                MaxSpeed              = MaxSpeed,
                CollisionQueryRange   = CollisionQueryRange,
                PathOptimizationRange = PathOptimizationRange,
                UpdateFlags           = UpdateFlags,
                ObstacleAvoidanceType = ObstacleAvoidanceType,
                SeparationWeight      = SeparationWeight
            };
            AgentId = navQuery.Crowd.AddAgent(new[] { transform.position.x, transform.position.y, transform.position.z }, param);
            ResetTarget();
        }
        else
        {
            Debug.LogError("Scene does not have a Nav Mesh Query, one must be added.");
        }
    }
Ejemplo n.º 6
0
        public void CopyAndPasteCrowd_ClonesAllNestedCrowdChildren()
        {
            // arrange
            var   repo           = TestObjectsFactory.MockRepositoryImpl;
            var   crowdClipboard = TestObjectsFactory.CrowdClipboardUnderTest;
            Crowd crowdFirst     = TestObjectsFactory.CrowdUnderTestWithMockCrowdMembers;
            Crowd crowdSecond    = TestObjectsFactory.CrowdUnderTestWithMockCrowdMembers;

            repo.Crowds = new ObservableCollection <Crowd> {
                crowdFirst, crowdSecond
            };

            var crowd1 = repo.Crowds[0];
            var crowd2 = repo.Crowds[1];

            var nestedMember1 = crowd1.Members[0];
            var nestedMember2 = crowd1.Members[1];

            //act
            crowdClipboard.CopyToClipboard(crowd1);
            crowdClipboard.PasteFromClipboard(crowd2);

            //assert

            Mock.Get <CrowdMember>(nestedMember1).Verify(c => c.Clone());
            Mock.Get <CrowdMember>(nestedMember2).Verify(c => c.Clone());
        }
Ejemplo n.º 7
0
 void Awake()
 {
     instance       = this;
     Center         = new Vector2(transform.position.x, transform.position.z);
     CrowdList      = new List <Transform>();
     sphereCollider = GetComponent <SphereCollider>();
 }
Ejemplo n.º 8
0
        public static object GetCurrentSelectedCrowdInCrowdCollectionInTreeView(Object tv, out CrowdMember crowdMember)
        {
            Crowd containingCrowdModel = null;

            crowdMember = null;
            TreeView treeView = tv as TreeView;

            if (treeView != null && treeView.SelectedItem != null)
            {
                if (treeView.SelectedItem is Crowd)
                {
                    containingCrowdModel = treeView.SelectedItem as Crowd;
                }
                else
                {
                    DependencyObject dObject = treeView.GetItemFromSelectedObject(treeView.SelectedItem);
                    TreeViewItem     tvi     = dObject as TreeViewItem; // got the selected treeviewitem
                    crowdMember = tvi.DataContext as CrowdMember;
                    dObject     = VisualTreeHelper.GetParent(tvi);      // got the immediate parent
                    tvi         = dObject as TreeViewItem;              // now get first treeview item parent
                    while (tvi == null)
                    {
                        dObject = VisualTreeHelper.GetParent(dObject);
                        tvi     = dObject as TreeViewItem;
                    }
                    containingCrowdModel = tvi.DataContext as Crowd;
                }
            }

            return(containingCrowdModel);
        }
Ejemplo n.º 9
0
    private void GenerateCrowd()
    {
        if (!hasGenerated || navMeshQuery == null)
        {
            return;
        }

        System.Random rand = new System.Random();
        crowd = new Crowd(MAX_AGENTS, 0.6f, ref tiledNavMesh);

        SVector3 c = new SVector3(10, 0, 0);
        SVector3 e = new SVector3(5, 5, 5);

        AgentParams ap = new AgentParams();

        ap.Radius                = 0.6f;
        ap.Height                = 2.0f;
        ap.MaxAcceleration       = 8.0f;
        ap.MaxSpeed              = 3.5f;
        ap.CollisionQueryRange   = ap.Radius * 12.0f;
        ap.PathOptimizationRange = ap.Radius * 30.0f;
        ap.UpdateFlags           = new UpdateFlags();

        //initialize starting positions for each active agent
        for (int i = 0; i < numActiveAgents; i++)
        {
            //Get the polygon that the starting point is in
            NavPoint startPt;
            navMeshQuery.FindNearestPoly(ref c, ref e, out startPt);

            //Pick a new random point that is within a certain radius of the current point
            NavPoint newPt;
            navMeshQuery.FindRandomPointAroundCircle(ref startPt, 1000, out newPt);

            c = newPt.Position;

            //Save this random point as the starting position
            trails[i].Trail    = new SVector3[AGENT_MAX_TRAIL];
            trails[i].Trail[0] = newPt.Position;
            trails[i].HTrail   = 0;

            //add this agent to the crowd
            int idx = crowd.AddAgent(newPt.Position, ap);


            var targetPt = navMeshQuery.FindNearestPoly(new SVector3()
            {
                X = 0, Y = 0, Z = 0
            }, new SVector3 {
                X = 1, Y = 1, Z = 1
            });

            //Give this agent a target point
            //NavPoint targetPt;
            //navMeshQuery.FindRandomPointAroundCircle(ref newPt, 1000, out targetPt);

            crowd.GetAgent(idx).RequestMoveTarget(targetPt.Polygon, targetPt.Position);
            trails[i].Trail[AGENT_MAX_TRAIL - 1] = targetPt.Position;
        }
    }
        private void treeViewCrowd_PreviewDrop(object sender, DragEventArgs e)
        {
            if (e.Data.GetDataPresent(CROWD_MEMBER_DRAG_FROM_CROWD_XPLORER_KEY))
            {
                FindDropTarget((TreeView)sender, out currentDropItemNode, e);

                if (currentDropItemNode != null)
                {
                    var   dropMember  = (currentDropItemNode != null && currentDropItemNode.IsVisible ? currentDropItemNode.DataContext : null);
                    var   dragMember  = e.Data.GetData(CROWD_MEMBER_DRAG_FROM_CROWD_XPLORER_KEY);
                    Crowd targetCrowd = null;
                    if (dropMember is Crowd)
                    {
                        targetCrowd = dropMember as Crowd;
                        currentDropItemNodeParent = currentDropItemNode;
                    }
                    else
                    {
                        currentDropItemNodeParent = GetImmediateTreeViewItemParent(currentDropItemNode);
                        targetCrowd = currentDropItemNodeParent != null ? currentDropItemNodeParent.DataContext as Crowd : null;
                    }

                    this.viewModel.DragDropSelectedCrowdMember(targetCrowd);
                }
            }
        }
 /// <summary>
 /// This will recursively expand a matched item and its matched children
 /// </summary>
 /// <param name="tvi"></param>
 private void ExpandMatchedItems(TreeViewItem tvi)
 {
     if (tvi != null)
     {
         tvi.UpdateLayout();
         if (tvi.Items != null && tvi.Items.Count > 0)
         {
             for (int i = 0; i < tvi.Items.Count; i++)
             {
                 TreeViewItem item = tvi.ItemContainerGenerator.ContainerFromItem(tvi.Items[i]) as TreeViewItem;
                 if (item != null)
                 {
                     Crowd model = item.DataContext as Crowd;
                     if (model != null && model.MatchesFilter)
                     {
                         item.IsExpanded = true;
                         ExpandMatchedItems(item);
                     }
                     else
                     {
                         item.IsExpanded = false;
                     }
                 }
             }
         }
     }
 }
Ejemplo n.º 12
0
    public Crowd AddCrowd()
    {
        var crowd = new Crowd();

        this.Crowds.Add(crowd);
        return(crowd);
    }
    public void Initialize(string filePath)
    {
        XmlDocument doc = new XmlDocument();

        doc.Load(filePath);
        MemoryStream ms = new MemoryStream();

        doc.Save(ms);

        byte[]       data      = ms.ToArray();
        MemoryStream navmeshMs = new MemoryStream(data);

        XmlSerializer     xmlSerializer     = new XmlSerializer(typeof(NavMeshSerializer));
        NavMeshSerializer navmeshSerializer = ((NavMeshSerializer)xmlSerializer.Deserialize(navmeshMs));

        LunaNav.NavMesh navmesh = navmeshSerializer.Reconstitute();
        InitializeQuery(navmesh);

        Crowd = new Crowd();

        Crowd.Init(50, 0.6f, _navMeshQuery.NavMesh);
        Crowd.Filter = filter;

        initializedCrowd = true;
    }
Ejemplo n.º 14
0
 /// <summary>
 /// Called once per frame - If a straight path has been found, it draws a debug line detailing the path
 /// </summary>
 public void Update()
 {
     if (initializedCrowd)
     {
         CrowdAgentDebugInfo info = new CrowdAgentDebugInfo();
         Crowd.Update(Time.deltaTime, ref info);
     }
 }
Ejemplo n.º 15
0
 public static CrowdDTO ConvertCrowdToDTO(Crowd crowd)
 {
     return(new CrowdDTO
     {
         codeCrowd = crowd.codeCrowd,
         nameCrowd = crowd.nameCrowd
     });
 }
Ejemplo n.º 16
0
 public void InitializeCrowdPool()
 {
     for (int i = 0; i < size; i++)
     {
         Crowd newCrowd = Instantiate(crowd, this.transform);
         newCrowd.transform.gameObject.SetActive(false);
         pool.Push(newCrowd);
     }
 }
Ejemplo n.º 17
0
 private void AddChildCrowdMemberToParent(CrowdRepository repo, Crowd parent, out CharacterCrowdMember child,
                                          string name)
 {
     child      = GetCharacterUnderTestWithMockDependenciesAnddOrphanedWithRepo(repo);
     child.Name = name;
     child.CharacterActionGroups = GetStandardCharacterActionGroup(child);
     //repo.AllMembersCrowd.AddCrowdMember(child);
     parent.AddCrowdMember(child);
 }
    void Start()
    {
        Crowd myCrowd = new Crowd();

        if (myCrowd.crowdOpts == crowdOptions.None)
        {
            //do something
        }
    }
Ejemplo n.º 19
0
    public void Initialize()
    {
#if UNITY_WEBPLAYER
        var           asset         = Resources.Load(FilePath, typeof(TextAsset)) as TextAsset;
        MemoryStream  f             = new MemoryStream(asset.bytes);
        XmlSerializer xmlSerializer = new XmlSerializer(typeof(NavMeshSerializer));
        InitializeQuery(((NavMeshSerializer)xmlSerializer.Deserialize(f)).Reconstitute());
#else
        if (Path.GetExtension(FilePath).Equals(""))
        {
            var           asset         = Resources.Load(FilePath, typeof(TextAsset)) as TextAsset;
            MemoryStream  f             = new MemoryStream(asset.bytes);
            XmlSerializer xmlSerializer = new XmlSerializer(typeof(NavMeshSerializer));
            InitializeQuery(((NavMeshSerializer)xmlSerializer.Deserialize(f)).Reconstitute());
        }
        else
        {
            FileStream f = null;
            f = File.OpenRead(FilePath);
            if (FilePath.LastIndexOf(".xml", StringComparison.OrdinalIgnoreCase) >= 0)
            {
                XmlSerializer xmlSerializer = new XmlSerializer(typeof(NavMeshSerializer));
                InitializeQuery(((NavMeshSerializer)xmlSerializer.Deserialize(f)).Reconstitute());
            }
            else if (FilePath.LastIndexOf(".json", StringComparison.OrdinalIgnoreCase) >= 0)
            {
                StreamReader   sr         = new StreamReader(f);
                JsonReader     reader     = new JsonTextReader(sr);
                JsonSerializer serializer = new JsonSerializer();
                InitializeQuery(serializer.Deserialize <NavMeshSerializer>(reader).Reconstitute());
            }
            else if (FilePath.LastIndexOf(".bytes", StringComparison.OrdinalIgnoreCase) >= 0)
            {
                XmlSerializer xmlSerializer = new XmlSerializer(typeof(NavMeshSerializer));
                InitializeQuery(((NavMeshSerializer)xmlSerializer.Deserialize(f)).Reconstitute());
            }
            else
            {
                BsonReader     reader     = new BsonReader(f);
                JsonSerializer serializer = new JsonSerializer();
                InitializeQuery(serializer.Deserialize <NavMeshSerializer>(reader).Reconstitute());
            }
        }
#endif

        Actors = new List <DetourActor>();
        foreach (DetourActor detourActor in GameObject.FindObjectsOfType(typeof(DetourActor)))
        {
            Actors.Add(detourActor);
        }
        Crowd = new Crowd();

        Crowd.Init(Actors.Count, 0.6f, _navMeshQuery.NavMesh);
        Crowd.Filter = filter;
    }
        private void viewModel_ExpansionUpdateNeeded(object sender, CustomEventArgs <ExpansionUpdateEvent> e)
        {
            Crowd                crowdModel  = sender as Crowd;
            DependencyObject     dObject     = null;
            ExpansionUpdateEvent updateEvent = e.Value;

            if (updateEvent == ExpansionUpdateEvent.Filter)
            {
                ExpandMatchedNode(sender);
            }
            else if (updateEvent == ExpansionUpdateEvent.DragDrop)
            {
                if (this.currentDropItemNode != null)
                {
                    this.currentDropItemNode.IsExpanded = true;
                }
            }
            else
            {
                if (this.selectedCrowdRoot != null && crowdModel != null)
                {
                    TreeViewItem item = treeViewCrowd.ItemContainerGenerator.ContainerFromItem(this.selectedCrowdRoot) as TreeViewItem;
                    dObject = FindTreeViewItemUnderTreeViewItemByModelName(item, crowdModel.Name);
                    if (dObject == null)
                    {
                        dObject = treeViewCrowd.GetItemFromSelectedObject(crowdModel);
                    }
                }
                else
                {
                    dObject = treeViewCrowd.GetItemFromSelectedObject(crowdModel);
                }
                TreeViewItem tvi = dObject as TreeViewItem;
                if (tvi != null)
                {
                    CrowdMember model = tvi.DataContext as CrowdMember;
                    if (tvi.Items != null && tvi.Items.Count > 0)
                    {
                        if (updateEvent != ExpansionUpdateEvent.Delete)
                        {
                            tvi.IsExpanded = true;
                        }
                        else
                        {
                            UpdateExpansions(tvi);
                        }
                    }
                    else
                    {
                        tvi.IsExpanded = false;
                    }
                }
            }
        }
Ejemplo n.º 21
0
 private World()
 {
     players   = new Dictionary <int, Player>();
     usedIds   = new HashSet <int>();
     entityIds = new HashSet <int>();
     cts       = new CancellationTokenSource();
     stopwatch = new Stopwatch();
     entities  = new Dictionary <int, Entity>();
     navMesh   = NavMeshHelper.GetNavMesh() as TiledNavMesh;
     crowd     = new Crowd(256, 1f, ref navMesh);
 }
        private void UnselectSelectedNodeInTreeview()
        {
            DependencyObject dObject = treeViewCrowd.GetItemFromSelectedObject(treeViewCrowd.SelectedItem);
            TreeViewItem     tvi     = dObject as TreeViewItem; // got the selected treeviewitem

            if (tvi != null)
            {
                tvi.IsSelected         = false;
                this.selectedCrowdRoot = null;
            }
        }
Ejemplo n.º 23
0
        private void addCrowdChildrenLabeledByOrderToChildCrowd(CrowdRepository repo, string nestedChildName,
                                                                Crowd parent)
        {
            var count = 0;

            foreach (var child in StandardizedFixture.CreateMany <Crowd>().ToList())
            {
                child.Name = nestedChildName + "." + count;
                count++;
                child.Order = count;
                repo.Crowds.Add(child);
                parent.AddCrowdMember(child);
            }
        }
Ejemplo n.º 24
0
        private void addCharacterChildrenLabeledByOrderToChildCrowd(CrowdRepository repo, string nestedName,
                                                                    Crowd parent)
        {
            var count = 0;

            foreach (var grandchild in StandardizedFixture.CreateMany <CharacterCrowdMember>().ToList())
            {
                grandchild.Name = nestedName + "." + count;
                grandchild.CharacterActionGroups = GetStandardCharacterActionGroup(grandchild);
                count++;
                grandchild.Order = count;
                //repo.AllMembersCrowd.AddCrowdMember(grandchild);
                parent.AddCrowdMember(grandchild);
            }
        }
        /// <summary>
        /// This will expand a matched item and its matched children
        /// </summary>
        /// <param name="sender"></param>
        private void ExpandMatchedNode(object sender)
        {
            Crowd crowdModel = sender as Crowd;

            if (crowdModel.MatchesFilter)
            {
                DependencyObject dObject = treeViewCrowd.GetItemFromSelectedObject(crowdModel);
                TreeViewItem     tvi     = dObject as TreeViewItem;
                if (tvi != null)
                {
                    tvi.IsExpanded = true;
                    ExpandMatchedItems(tvi);
                }
            }
        }
Ejemplo n.º 26
0
        //Create the HttpContent for the form
        internal FormUrlEncodedContent CreateRequestCUrlData(Crowd.Model.Data.User.AppType app)
        {
            List<KeyValuePair<string, string>> lstKeyValue = new List<KeyValuePair<string, string>>
            {
                new KeyValuePair<string, string>("job[title]", Title),
                new KeyValuePair<string, string>("job[instructions]", Instructions),
                new KeyValuePair<string, string>("job[cml]", (app == User.AppType.Speeching) ? CreateAudioCml() : CreateFluentAudioCml()),
                new KeyValuePair<string, string>("job[css]", Css),
                new KeyValuePair<string, string>("job[webhook_uri]", WebhookUri),
                new KeyValuePair<string, string>("job[support_email]", SupportEmail),
                new KeyValuePair<string, string>("job[payment_cents]", PaymentCents.ToString()),
                new KeyValuePair<string, string>("job[units_per_assignment]", UnitsPerAssignment.ToString()),
                new KeyValuePair<string, string>("job[judgments_per_unit]", "5"),
                new KeyValuePair<string, string>("job[tags]", "audio,transcription,rating")
            };

            return new FormUrlEncodedContent(lstKeyValue);
        }
Ejemplo n.º 27
0
        public static bool updateCrowd(CrowdDTO a)
        {
            using (libraryEntities db = new libraryEntities())
            {
                Crowd b = db.Crowds.First(x => x.codeCrowd == a.codeCrowd);
                b.nameCrowd = a.nameCrowd;

                try
                {
                    db.SaveChanges();
                    return(true);
                }
                catch (Exception e)
                {
                    return(false);
                }
            }
        }
Ejemplo n.º 28
0
    public void Initialize(string filePath)
    {
        TextAsset    asset = Resources.Load(filePath, typeof(TextAsset)) as TextAsset;
        MemoryStream f     = new MemoryStream(asset.bytes);

        XmlSerializer     xmlSerializer     = new XmlSerializer(typeof(NavMeshSerializer));
        NavMeshSerializer navmeshSerializer = ((NavMeshSerializer)xmlSerializer.Deserialize(f));

        LunaNav.NavMesh navmesh = navmeshSerializer.Reconstitute();
        InitializeQuery(navmesh);


        Crowd = new Crowd();
        Crowd.Init(50, 0.6f, _navMeshQuery.NavMesh);
        Crowd.Filter = filter;

        initializedCrowd = true;
    }
        private TreeViewItem FindNodeThatRepresentsCrowdMember(TreeViewItem tviParent, CrowdMember modelToSelect)
        {
            TreeViewItem item = null;

            if (tviParent != null)
            {
                CrowdMember model = tviParent.DataContext as CrowdMember;
                if (tviParent.Items != null)
                {
                    tviParent.IsExpanded = true;
                    tviParent.UpdateLayout();
                    for (int i = 0; i < tviParent.Items.Count; i++)
                    {
                        item = tviParent.ItemContainerGenerator.ContainerFromItem(tviParent.Items[i]) as TreeViewItem;
                        if (item != null)
                        {
                            model = item.DataContext as CrowdMember;
                            if (model.Name == modelToSelect.Name)
                            {
                                item.IsSelected = true;
                                item.UpdateLayout();
                                if (model is Crowd)
                                {
                                    this.viewModel.SelectedCrowdMember          = model as Crowd;
                                    this.viewModel.SelectedCrowdParent          = tviParent.DataContext as Crowd;
                                    this.viewModel.SelectedCharacterCrowdMember = null;
                                }
                                else
                                {
                                    this.viewModel.SelectedCharacterCrowdMember = model as CharacterCrowdMemberImpl;
                                    this.viewModel.SelectedCrowdMember          = tviParent.DataContext as Crowd;
                                }
                                if (this.selectedCrowdRoot == null)
                                {
                                    this.selectedCrowdRoot = tviParent.DataContext as CrowdImpl;
                                }
                                break;
                            }
                        }
                    }
                }
            }
            return(item);
        }
Ejemplo n.º 30
0
        public Crowd GetBySpotId(int spotId)
        {
            string procName = "[dbo].[Crowds_SelectAllBySpotId]";
            Crowd  _crowd   = null;

            _data.ExecuteCmd(procName,
                             delegate(SqlParameterCollection col)
            {
                col.AddWithValue("@SpotId", spotId);
            }, delegate(IDataReader reader, short set)
            {
                _crowd          = new Crowd();
                int index       = 0;
                _crowd.SpotId   = reader.GetSafeInt32(index++);
                _crowd.Busy     = reader.GetSafeInt32(index++);
                _crowd.Moderate = reader.GetSafeInt32(index++);
                _crowd.Empty    = reader.GetSafeInt32(index++);
            });
            return(_crowd);
        }
Ejemplo n.º 31
0
    public void Init(LunaNavmeshQuery navmesh, Transform transform, System.Action idle, System.Action move)
    {
        _navQuery = navmesh;

        _transform = transform;
        _reached   = idle;
        _move      = move;

        if (_navQuery != null)
        {
            _navMeshQuery = _navQuery._navMeshQuery;
            filter        = _navQuery.filter;
            crowd         = _navQuery.Crowd;

            param = new CrowdAgentParams
            {
                Radius                = Radius,
                Height                = Height,
                MaxAcceleration       = MaxAcceleration,
                MaxSpeed              = MaxSpeed,
                CollisionQueryRange   = CollisionQueryRange,
                PathOptimizationRange = PathOptimizationRange,
                UpdateFlags           = UpdateFlags,
                ObstacleAvoidanceType = ObstacleAvoidanceType,
                SeparationWeight      = SeparationWeight
            };

            Vector3 pos = _transform.position;
            AgentId = _navQuery.Crowd.AddAgent(new[] { pos.x, pos.y, pos.z }, param);
            //ResetTarget();

            _crowdAgent = crowd.GetAgent(AgentId);
            float[] resetpos = _crowdAgent.npos;
            _transform.position = new Vector3(resetpos[0], resetpos[1], resetpos[2]);
        }
        else
        {
            UnityEngine.Debug.LogError("Scene does not have a Nav Mesh Query, one must be added.");
        }
    }
Ejemplo n.º 32
0
    public void Initialize()
    {
        Actors = new List<DetourActor>();
        foreach (DetourActor detourActor in GameObject.FindObjectsOfType(typeof(DetourActor)))
        {
            Actors.Add(detourActor);
        }
        Crowd = new Crowd();

        Crowd.Init(Actors.Count, 0.6f, _navMeshQuery.NavMesh);
        Crowd.Filter = filter;
    }
Ejemplo n.º 33
0
    // Use this for initialization
    void Start()
    {
        var navQuery = FindObjectOfType(typeof(RecastNavMeshQuery)) as RecastNavMeshQuery;
        if (navQuery != null)
        {
            _navMeshQuery = navQuery._navMeshQuery;
            filter = navQuery.filter;
            crowd = navQuery.Crowd;

            param = new CrowdAgentParams
            {
                Radius = Radius,
                Height = Height,
                MaxAcceleration = MaxAcceleration,
                MaxSpeed = MaxSpeed,
                CollisionQueryRange = CollisionQueryRange,
                PathOptimizationRange = PathOptimizationRange,
                UpdateFlags = UpdateFlags,
                ObstacleAvoidanceType = ObstacleAvoidanceType,
                SeparationWeight = SeparationWeight
            };
            AgentId = navQuery.Crowd.AddAgent(new[] { transform.position.x, transform.position.y, transform.position.z }, param);
            ResetTarget();
        }
        else
        {
            Debug.LogError("Scene does not have a Nav Mesh Query, one must be added.");
        }
    }
Ejemplo n.º 34
0
        public static void Initalise()
        {
            cutscenePlayer = new CutscenePlayer();
            cutscenePlayer.Transform.PosX = -100;
            monster = new Monster();
            crowd = new Crowd(40, 18, new Vector2(2.5f, 0.5f));

            title = new Title();

            DelayAction cameraDelay = new DelayAction(Program.TheGame, CameraDelay);
            moveToTotem = new MoveToStaticAction(Program.TheGame, Game1.GameCamera.Transform, Vector2.Zero, 1);
            moveToTotem.StartPosition = new Vector2(CameraMenuX, CameraMenuY);
            moveToTotem.Interpolator = new PSmoothstepInterpolation();
            moveToTotem.Timer.Interval = TimeToFirstTotem;
            MethodAction moveCrowd = new MethodAction(delegate() {
                crowd.MoveTo(currentTotemPosition + TotemCrowdOffset, TimeToFirstTotem); });
            gotoFirstTotem = new Sequence(1);
            gotoFirstTotem.AddAction(cameraDelay);
            gotoFirstTotem.AddAction(moveCrowd);
            gotoFirstTotem.AddAction(moveToTotem);
            gotoFirstTotem.AddAction(new MethodAction(delegate() { Cutscenes.ThrowPlayer(Game1.CurrentTotem); }));

            playerLaunch = new Sequence(1);
            playerLaunch.AddAction(new DelayAction(Program.TheGame, Crowd.LaunchTensionTime));
            moveToAscendingPlayer = new MoveToTransform(Program.TheGame, Game1.GameCamera.Transform, new Transform(), cutscenePlayer.Transform, 1);
            moveToAscendingPlayer.Interpolator = new PSquareInterpolation(0.1f);
            moveToAscendingPlayer.RotationActive = false;
            playerLaunch.AddAction(moveToAscendingPlayer);

            readySequence = new Sequence(1);
            Transform end = new Transform(Game1.player.Transform, true);
            end.PosY = Game1.CameraOffset;
            moveToFallingPlayer = new MoveToTransform(Program.TheGame, Game1.GameCamera.Transform, new Transform(), end, 1);
            moveToFallingPlayer.Interpolator = new PSmoothstepInterpolation();
            moveToFallingPlayer.RotationActive = false;

            readySequence.AddAction(new MethodAction(delegate() { Game1.player.GetReady(); }));
            readySequence.AddAction(moveToFallingPlayer);
            readySequence.AddAction(new MethodAction(delegate() { Game1.player.StartCountDown(); })) ;

            cameraZoom = new ScaleToAction(Program.TheGame, Game1.GameCamera.Transform, Vector2.Zero, 1);
            cameraZoom.Interpolator = new PSmoothstepInterpolation();
            cameraZoom.Timer.Interval = 0.3f;

            goToPlayerOnGround = new Sequence(1);
            goToPlayerOnGroundMovement = new MoveToTransform(Program.TheGame, Game1.GameCamera.Transform, new Transform(), cutscenePlayer.Transform, 1);
            goToPlayerOnGroundMovement.Timer.Interval = 1.0f;
            goToPlayerOnGroundMovement.Interpolator = new PSmoothstepInterpolation();
            goToPlayerOnGround.AddAction(new DelayAction(Program.TheGame, 0.5f));
            goToPlayerOnGround.AddAction(goToPlayerOnGroundMovement);

            intro = new Sequence(1);
            MoveToStaticAction moveToMenu = new MoveToStaticAction(Program.TheGame, Game1.GameCamera.Transform, new Vector2(CameraMenuX, CameraMenuY), 1);
            moveToMenu.Timer.Interval = MoveInTime + 1.0f;

            intro.AddAction(moveToMenu);
            intro.AddAction(new MethodAction(delegate() { crowd.PushNewGuy(); }));
            intro.AddAction(new DelayAction(Program.TheGame, 1.5f));
            intro.AddAction(new MethodAction(delegate() { StartMainMenu(); }));

            goToCliff = new Sequence(1);
            goToCliff.AddAction(moveToTotem);
            goToCliff.AddAction(new MethodAction(delegate() { cutscenePlayer.GiveSouls(Game1.TotalScore); monster.OpenMouth(); }));

            auraTexture = TextureLibrary.GetSpriteSheet("soul_temp");
            soulTexture = TextureLibrary.GetSpriteSheet("soul");
            //moveToAscendingPlayer = new MoveToTransform(Program.TheGame, Game1.GameCamera.Transform, new Transform(), cutscenePlayer.Transform, 1);
        }
Ejemplo n.º 35
0
 void Awake()
 {
     Instance = this;
     board = FindObjectOfType<Board>();
     sounds = FindObjectOfType<Sounds>();
     audioSource = gameObject.GetComponent<AudioSource>();
     scoreAudioSource = gameObject.AddComponent<AudioSource>();
     crowd = FindObjectOfType<Crowd>();
     announcer = FindObjectOfType<Announcer>();
 }