void Show() { Clear(); SOShip[] buildableShips = selectedNode.BuildOptions(); foreach (SOShip shipData in selectedNode.ShipDataset) { GameObject newProductionOptionComponent = Instantiate(ShipProductionComponent, Vector3.zero, Quaternion.identity, (Transform)productionOptionsPanel); ShipProductionComponent shipProductionComponent = newProductionOptionComponent.GetComponent <ShipProductionComponent>(); shipProductionComponent.Ship = shipData; newProductionOptionComponent.GetComponent <RawImage>().texture = shipData.sprite.texture; if (buildableShips.Contains(shipProductionComponent.Ship)) { shipProductionComponent.Enable(); } shipProductionComponent.Clicked += OnShipProductionComponentClicked; } view.DOAnchorPos(new Vector2(362, 75), 0.2f); shown = true; }
void OnStoreUpdated(string storeKey) { if (storeKey == "Selection" && uiController.Store[storeKey] != null && uiController.Store[storeKey].GetComponent <ProductionNode>() != null) { selectedNode = uiController.Store[storeKey].GetComponent <ProductionNode>(); Show(); } if (storeKey == "Selection" && (uiController.Store[storeKey] == null || uiController.Store[storeKey].GetComponent <ProductionNode>() == null) && shown) { Hide(); } if (storeKey == "GameState" && uiController.Store[storeKey] == GameState.Over && shown) { Hide(); } if (storeKey == "CompletedResearch" && selectedNode != null) { SOShip[] buildableShips = selectedNode.BuildOptions(); foreach (Transform productionOptionTransform in (Transform)productionOptionsPanel) { ShipProductionComponent shipProductionComponent = productionOptionTransform.GetComponent <ShipProductionComponent>(); if (buildableShips.Contains(shipProductionComponent.Ship)) { shipProductionComponent.Enable(); } else { shipProductionComponent.Disable(); } } } if (storeKey == "SpecialResources" && selectedNode != null) { SOShip[] buildableShips = selectedNode.BuildOptions(); foreach (Transform productionOptionTransform in (Transform)productionOptionsPanel) { ShipProductionComponent shipProductionComponent = productionOptionTransform.GetComponent <ShipProductionComponent>(); if (buildableShips.Contains(shipProductionComponent.Ship)) { shipProductionComponent.Enable(); } else { shipProductionComponent.Disable(); } } } }