Ejemplo n.º 1
0
        //=============================== FUNCTIONALITY ==============================//

        private void UpdateSelectorComboBox()
        {
            ResourceHolder.Get.ChangeResourceType(ResourceType.Foliage);
            List <TileCategory> rootCategories = ResourceHolder.Get.GetSelectedCategories();

            LoadedTileCategories = rootCategories
                                   .Select(c => new TileCategory(c.Name, new List <TileObject>(c.TileObjects)))
                                   .ToList();

            List <TileObject> tileObjects = AvailableObjects.Select(o => o.TileObject).ToList();

            foreach (TileCategory tileCategory in LoadedTileCategories)
            {
                var objectsToRemove = tileCategory.TileObjects.Where(t => !tileObjects.Contains(t)).ToList();
                foreach (TileObject tileObject in objectsToRemove)
                {
                    tileCategory.TileObjects.Remove(tileObject);
                }
            }

            LoadedTileCategories.RemoveAll(c => c.TileObjects.Count == 0);

            Selection.AssignSelection(LoadedTileCategories[0].TileObjects[0]);
            IEnumerable <string> names = ResourceHolder.GetCategoryNames(LoadedTileCategories);

            CategorySelector.ItemsSource   = names;
            CategorySelector.SelectedIndex = 0;
            _selectorGridCreator.UpdateTileGroup(LoadedTileCategories);
            _selectorGridCreator.CreateSelectionPanel(LoadedTileCategories[0]);
        }
Ejemplo n.º 2
0
        private void UpdateAvailableObjects()
        {
            switch (PatchOn)
            {
            case PatchOnOptions.Collection:
                ApplicationModel.Current.Server.Value.SelectedDatabase.Value.AsyncDatabaseCommands.GetTermsCount(
                    CollectionsIndex, "Tag", "", 100)
                .ContinueOnSuccessInTheUIThread(collections =>
                {
                    AvailableObjects.Clear();
                    AvailableObjects.AddRange(collections.OrderByDescending(x => x.Count)
                                              .Where(x => x.Count > 0)
                                              .Select(col => col.Name).ToList());
                    SelectedItem = AvailableObjects.FirstOrDefault();
                });
                break;

            case PatchOnOptions.Index:
                ApplicationModel.Database.Value.AsyncDatabaseCommands.GetIndexNamesAsync(0, 500)
                .ContinueOnSuccessInTheUIThread(indexes =>
                {
                    AvailableObjects.Clear();
                    AvailableObjects.AddRange(indexes.OrderBy(x => x));
                    SelectedItem = AvailableObjects.FirstOrDefault();
                });
                break;
            }
        }
Ejemplo n.º 3
0
        //=============================== FUNCTIONALITY ==============================//

        private void CreateNewMap(object sender, RoutedEventArgs args)
        {
            ClearMap();
            UpdateSelectorComboBox(ResourceType.Terrain);
            AvailableObjects.Clear();
            _admin         = new AdminRestrictionsWindow(this);
            Grids["Admin"] = CreateAdminTab();
            ShowGameBoard();
        }
Ejemplo n.º 4
0
Archivo: Pool.cs Proyecto: bmjoy/Osnowa
        public GameObject Get()
        {
            if (AvailableObjects.Count == 0)
            {
                GrowPool();
            }

            GameObject pooledObject = AvailableObjects.Dequeue();

            return(pooledObject);
        }
Ejemplo n.º 5
0
 public void ResetPool()
 {
     for (int i = 0; i < ObjectList.Count; i++)
     {
         if (!ObjectList[i].activeInHierarchy || (ObjectList[i].activeInHierarchy))
         {
             AvailableObjects.Add(ObjectList[i]);
             ObjectList[i].SetActive(false);
         }
     }
 }
Ejemplo n.º 6
0
Archivo: Pool.cs Proyecto: bmjoy/Osnowa
 public void GrowPool()
 {
     for (int i = _poolSize; i < _poolSize + QueueCapacityIncrease; i++)
     {
         GameObject pooledObject = InstantiateGameObject();
         pooledObject.name += " " + i;
         pooledObject.SetActive(false);
         pooledObject.transform.SetParent(transform);
         AvailableObjects.Enqueue(pooledObject);
     }
     _poolSize += QueueCapacityIncrease;
 }
Ejemplo n.º 7
0
        public void RemoveVirtualObject(int index)
        {
            if (index < 0 || index >= AvailableObjects.Count())
            {
                return;
            }
            var def = AvailableObjects[index];
            var vo  = VirtualObjects.Where(vo2 => vo2.Definition.Equals(def)).FirstOrDefault();

            if (vo == null)
            {
                return;
            }
            UnloadVirtualObject(vo);
            if (index >= VirtualObjects.Count())
            {
                return;
            }
            var pos = VirtualObjects[index];

            VirtualObjects.RemoveAt(index);
        }
Ejemplo n.º 8
0
        public override bool TryGetNextObject(Vector3 pos, Quaternion rot, out GameObject obj)
        {
            int lastIndex = AvailableObjects.Count - 1;

            if (AvailableObjects.Count > 0)
            {
                if (AvailableObjects[lastIndex] == null)
                {
                    Debug.LogError("EZObjectPool " + PoolName + " has missing objects in its pool! Are you accidentally destroying any GameObjects retrieved from the pool?");
                    obj = null;
                    return(false);
                }

                AvailableObjects[lastIndex].transform.position = pos;
                AvailableObjects[lastIndex].transform.rotation = rot;
                AvailableObjects[lastIndex].SetActive(true);
                obj = AvailableObjects[lastIndex];
                AvailableObjects.RemoveAt(lastIndex);
                return(true);
            }

            if (AutoResize)
            {
                GameObject g = NewActiveObject();
                g.transform.position = pos;
                g.transform.rotation = rot;
                ObjectList.Add(g);
                obj = g;
                return(true);
            }
            else
            {
                obj = null;
                return(false);
            }
        }
Ejemplo n.º 9
0
 public Task <IList <object> > ProvideSuggestions(string enteredText)
 {
     return(TaskEx.FromResult <IList <object> >(AvailableObjects.Cast <object>().ToList()));
 }
Ejemplo n.º 10
0
        public void UpdateSelectionWindow(TileObject tileObject)
        {
            GameObject gameObject = AvailableObjects.FirstOrDefault(a => a.TileObject == tileObject);

            _selectionWindowCreator.UpdateSelectionWindow(SelectionGrid, gameObject);
        }