void UpdateValidPartCheck() { if (selectedAttachPoint == null) { foreach (PartDisplay display in partDisplays) { display.SetPartValid(true); } } else { foreach (PartDisplay display in partDisplays) { DronePart part = display.GetDisplayedPart(); if (part != null) { display.SetPartValid((part.GetAttachType() & selectedAttachPoint.GetAttachType()) != 0); } } } }
void UpdatePage() { pageText.text = "Page " + (page + 1) + " of " + (pageCount + 1); int i = page * partDisplays.Count; foreach (PartDisplay display in partDisplays) { if (display.GetDisplayedPart() != null) { Destroy(display.GetDisplayedPart().gameObject); display.SetDisplayedPart(null); } if (i < partsList.Count) { GameObject obj = GameObject.Instantiate(partsList[i], transform); DronePart part = obj.GetComponent <DronePart>(); obj.transform.localScale = part.displayScale; obj.transform.SetParent(display.transform, true); obj.transform.localPosition = Vector3.zero; obj.transform.localEulerAngles = Vector3.zero; part.enabled = false; display.SetDisplayedPart(part); foreach (AttachPoint point in obj.GetComponentsInChildren <AttachPoint>()) { point.gameObject.SetActive(false); } } i++; } UpdateValidPartCheck(); }
public void SetDisplayedPart(DronePart part) { displayedPart = part; }
public void AddPart(int displayIndex, int anchorIndex) { if (selectedAttachPoint == null) { return; } if (page * partDisplays.Count + displayIndex > partsList.Count) { return; } GameObject obj = GameObject.Instantiate(partsList[page * partDisplays.Count + displayIndex], selectedAttachPoint.transform); DronePart part = obj.GetComponent <DronePart>(); Transform anchor = part.GetAnchorPoint(anchorIndex); obj.transform.localEulerAngles = (Vector3.up * 180) - anchor.localEulerAngles; obj.transform.localPosition = -(anchor.localRotation * anchor.localPosition); obj.transform.SetParent(selectedAttachPoint.transform.parent, true); part.AttachToAnchor(anchorIndex); part.SetParentAttachPoint(selectedAttachPoint); selectedAttachPoint.SetSelected(false); selectedAttachPoint.gameObject.SetActive(false); selectedAttachPoint = null; SerializableDictionary <RESOURCE, float> costsIncurred = part.GetResourceCost(); if (costsIncurred.ContainsKey(RESOURCE.IRON)) { currentResourceCost.Iron += costsIncurred[RESOURCE.IRON]; } if (costsIncurred.ContainsKey(RESOURCE.COPPER)) { currentResourceCost.Copper += costsIncurred[RESOURCE.COPPER]; } if (costsIncurred.ContainsKey(RESOURCE.URANIUM)) { currentResourceCost.Uranium += costsIncurred[RESOURCE.URANIUM]; } SerializableDictionary <DroneStatFields, float> statsAdded = part.GetStatFields(); if (statsAdded.ContainsKey(DroneStatFields.HEALTH)) { currentDroneStats.Health += statsAdded[DroneStatFields.HEALTH]; } if (statsAdded.ContainsKey(DroneStatFields.POWER)) { currentDroneStats.Power += statsAdded[DroneStatFields.POWER]; } if (statsAdded.ContainsKey(DroneStatFields.FUEL)) { currentDroneStats.Fuel += statsAdded[DroneStatFields.FUEL]; } if (statsAdded.ContainsKey(DroneStatFields.STORAGE)) { currentDroneStats.Storage += statsAdded[DroneStatFields.STORAGE]; } UpdateCostDisplay(); UpdateAttachDistLimit(); }
public void PartRemoved(DronePart part) { DronePart[] removedParts = part.GetComponentsInChildren <DronePart>(); foreach (DronePart removedPart in removedParts) { SerializableDictionary <RESOURCE, float> costsIncurred = part.GetResourceCost(); if (costsIncurred.ContainsKey(RESOURCE.IRON)) { currentResourceCost.Iron -= costsIncurred[RESOURCE.IRON]; } if (costsIncurred.ContainsKey(RESOURCE.COPPER)) { currentResourceCost.Copper -= costsIncurred[RESOURCE.COPPER]; } if (costsIncurred.ContainsKey(RESOURCE.URANIUM)) { currentResourceCost.Uranium -= costsIncurred[RESOURCE.URANIUM]; } SerializableDictionary <DroneStatFields, float> statsRemoved = removedPart.GetStatFields(); if (statsRemoved.ContainsKey(DroneStatFields.HEALTH)) { currentDroneStats.Health -= statsRemoved[DroneStatFields.HEALTH]; } if (statsRemoved.ContainsKey(DroneStatFields.POWER)) { currentDroneStats.Power -= statsRemoved[DroneStatFields.POWER]; } if (statsRemoved.ContainsKey(DroneStatFields.FUEL)) { currentDroneStats.Fuel -= statsRemoved[DroneStatFields.FUEL]; } if (statsRemoved.ContainsKey(DroneStatFields.STORAGE)) { currentDroneStats.Storage -= statsRemoved[DroneStatFields.STORAGE]; } } /*SerializableDictionary<RESOURCE, float> costIncurred = part.GetResourceCost(); * if (costIncurred.ContainsKey(RESOURCE.IRON)) * currentResourceCost.Iron -= costIncurred[RESOURCE.IRON]; * if (costIncurred.ContainsKey(RESOURCE.COPPER)) * currentResourceCost.Copper -= costIncurred[RESOURCE.COPPER]; * if (costIncurred.ContainsKey(RESOURCE.URANIUM)) * currentResourceCost.Uranium -= costIncurred[RESOURCE.URANIUM]; * * SerializableDictionary<DroneStatFields, float> statRemoved = part.GetStatFields(); * if (statRemoved.ContainsKey(DroneStatFields.HEALTH)) * currentDroneStats.Health -= statRemoved[DroneStatFields.HEALTH]; * if (statRemoved.ContainsKey(DroneStatFields.POWER)) * currentDroneStats.Power -= statRemoved[DroneStatFields.POWER]; * if (statRemoved.ContainsKey(DroneStatFields.FUEL)) * currentDroneStats.Fuel -= statRemoved[DroneStatFields.FUEL]; * if (statRemoved.ContainsKey(DroneStatFields.STORAGE)) * currentDroneStats.Storage -= statRemoved[DroneStatFields.STORAGE];*/ UpdateCostDisplay(); }