public string GetFunctionText() { StoreObjectFunction_Handler functionHandler = gameObject_.GetComponent <StoreObjectFunction_Handler>(); StoreObjectModifier_Handler modifierHandler = gameObject_.GetComponent <StoreObjectModifier_Handler>(); if (functionHandler.HasBudtenderCounterFunction()) { if (functionHandler.GetBudtenderCounterFunction().HasPriority()) // Make sure only one modifier/function is marked as priority on each object { return("Budtender Counter"); } } if (functionHandler.HasCheckoutCounterFunction()) { if (functionHandler.GetCheckoutCounterFunction().HasPriority()) // Make sure only one modifier/function is marked as priority on each object { return("Checkout Counter"); } } if (functionHandler.HasDecorationFunction()) { if (functionHandler.GetDecorationFunction().HasPriority()) // Make sure only one modifier/function is marked as priority on each object { return("Decoration"); } } if (functionHandler.HasDisplayShelfFunction()) { if (functionHandler.GetDisplayShelfFunction().HasPriority()) // Make sure only one modifier/function is marked as priority on each object { if (components.Contains("MainStore")) { return("Display Shelf"); } else { return("Storage Shelf"); } } } if (functionHandler.HasDoorwayFunction()) { if (functionHandler.GetDoorwayFunction().HasPriority()) // Make sure only one modifier/function is marked as priority on each object { return("Doorway"); } } // Two different defaults, both generic if (objType == objectType.StoreObject) { return("Store Object"); } return("Object"); }
public void SelectObject(StoreObject object_) { if (selectedObject != null) { DeselectObject(); } selectedObject = object_; selectedObjectText.text = selectedObject.name; // Dynamic store object system int buttonCount = selectedObject.GetButtonCount(); buttonCount++; // movement button StoreObjectFunction_Handler functionHandler = object_.functionHandler; StoreObjectModifier_Handler modifierHandler = object_.modifierHandler; if (modifierHandler.HasColorModifier()) { AddColorModifier(); ColorModifierOffScreen(); } if (modifierHandler.HasModelsModifier()) { AddModelsModifier(); ModelsModifierOffScreen(); } if (functionHandler.HasDisplayShelfFunction()) { AddShelvesModifier(); ShelvesModifierOffScreen(); } if (modifierHandler.HasAddonsModifier()) { AddAddonsModifier(); AddonsModifierOffScreen(); } CreateMovementButton(); foreach (ObjectSelectionRoundButton button in buttons) { button.transform.SetAsLastSibling(); } selectedObjectTextImage.transform.SetAsLastSibling(); StartCoroutine(ButtonsOnScreen()); }
public int GetButtonCount() { int count = 0; if (modifierHandler.HasColorModifier()) { count++; } if (modifierHandler.HasModelsModifier()) { count++; } if (functionHandler.HasDisplayShelfFunction()) { count++; } if (modifierHandler.HasAddonsModifier()) { count++; } return(count); }
public void CreateStoreObjectsList(string search) { if (search == string.Empty) { //ClearSearch(false); } if (dm == null || database == null) { Start(); } string component; try { component = dm.actionManager.selectedComponent.componentName; } catch (NullReferenceException) { component = string.Empty; } if (component != string.Empty) { foreach (StoreObjectDisplay display in storeObjectDisplays) { Destroy(display.gameObject); } storeObjectDisplays.Clear(); List <StoreObjectReference> storeObjects = database.GetComponentObjects(component); if (search != string.Empty) { storeObjects = SearchKeyword(storeObjects, search); } if (!window.searchBar.ignoreFilters) { storeObjects = FilterList(storeObjects); } storeObjects = SortList(window.sortMode, storeObjects); storeObjectScrollbar.value = 1; RectTransform rectTransform = storeObjectContentPanel.GetComponent <RectTransform>(); float prefabHeight = displayPrefab.gameObject.GetComponent <RectTransform>().rect.height; float contentPanelHeight = storeObjects.Count * prefabHeight + (prefabHeight * .5f); rectTransform.sizeDelta = new Vector2(storeObjectContentPanel.rectTransform.sizeDelta.x, contentPanelHeight); for (int i = 0; i < storeObjects.Count; i++) { // Assigning the display panel an object StoreObjectReference thisRef = storeObjects[i]; if (thisRef.gameObject_ != null) { StoreObjectDisplay newDisplay = Instantiate(displayPrefab); newDisplay.reference = thisRef; newDisplay.nameText.text = thisRef.productName; newDisplay.functionText.text = thisRef.GetFunctionText(); newDisplay.priceText.text = "$" + thisRef.price.ToString(); newDisplay.objectScreenshot.sprite = thisRef.objectScreenshot; //StoreObject thisStoreObject = thisRef.gameObject_.GetComponent<StoreObject>(); StoreObjectFunction_Handler functionHandler = thisRef.gameObject_.GetComponent <StoreObjectFunction_Handler>(); StoreObjectModifier_Handler modifierHandler = thisRef.gameObject_.GetComponent <StoreObjectModifier_Handler>(); bool noModifiers = true; bool noExtrasPanel = true; // more specific than no modifiers - this is true if both addons and models modifiers dont exist bool alreadySetMode = false; if (modifierHandler.HasModelsModifier()) { newDisplay.availableModes.Add(StoreObjectDisplay.CurrentExtrasMode.Sub_Models); newDisplay.SetMode(StoreObjectDisplay.CurrentExtrasMode.Sub_Models); noModifiers = false; noExtrasPanel = false; alreadySetMode = true; } if (functionHandler.HasDisplayShelfFunction()) { noModifiers = false; } if (modifierHandler.HasAddonsModifier()) { newDisplay.availableModes.Add(StoreObjectDisplay.CurrentExtrasMode.Addons); if (!alreadySetMode) { // If models modifier doesnt exist, go straight to addons mode newDisplay.SetMode(StoreObjectDisplay.CurrentExtrasMode.Addons); } noModifiers = false; noExtrasPanel = false; } if (modifierHandler.HasColorModifier()) { noModifiers = false; } if (noModifiers) { newDisplay.functionDisplayPanel.gameObject.SetActive(false); newDisplay.extrasParentPanel.gameObject.SetActive(false); } if (noExtrasPanel) { newDisplay.extrasParentPanel.gameObject.SetActive(false); } // Button listeners // purchase button needs to start place object action and close store panel // dropdown button needs to open a dropdown giving the option to switch the extras panel content type // Positioning newDisplay.transform.SetParent(storeObjectContentPanel.transform.parent, false); newDisplay.gameObject.SetActive(true); newDisplay.gameObject.GetComponent <RectTransform>().anchoredPosition = new Vector2(0, -prefabHeight * i); storeObjectDisplays.Add(newDisplay); } else {// Alerts me when i've misnamed something and its not retrieved the object from resources properly. This shouldnt print in final build print("Gameobject null for storereference " + thisRef.productName); } } foreach (StoreObjectDisplay display in storeObjectDisplays) { display.transform.SetParent(storeObjectContentPanel.transform); } } }