//=============================== 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]); }
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; } }
//=============================== FUNCTIONALITY ==============================// private void CreateNewMap(object sender, RoutedEventArgs args) { ClearMap(); UpdateSelectorComboBox(ResourceType.Terrain); AvailableObjects.Clear(); _admin = new AdminRestrictionsWindow(this); Grids["Admin"] = CreateAdminTab(); ShowGameBoard(); }
public GameObject Get() { if (AvailableObjects.Count == 0) { GrowPool(); } GameObject pooledObject = AvailableObjects.Dequeue(); return(pooledObject); }
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); } } }
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; }
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); }
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); } }
public Task <IList <object> > ProvideSuggestions(string enteredText) { return(TaskEx.FromResult <IList <object> >(AvailableObjects.Cast <object>().ToList())); }
public void UpdateSelectionWindow(TileObject tileObject) { GameObject gameObject = AvailableObjects.FirstOrDefault(a => a.TileObject == tileObject); _selectionWindowCreator.UpdateSelectionWindow(SelectionGrid, gameObject); }