public int CalculatePrice() { int price = 0; foreach (var item in target.GetInstalledParts()) { if (!SaveSystem.GetOwnedPartsForVehicleType(target.Name).Contains(item)) { price += ModSystemTools.GetPart(item).price; } } return(price); }
private void PreparePartButtons() { if (PartViewButtons.Count > 0) { foreach (var item in PartViewButtons) { Destroy(item.gameObject); } PartViewButtons = new List <ModButton>(); } GameObject buttonPrefab = Resources.Load <GameObject>("ModSystem/UI/Button"); var items = ModSystemTools.GetCompatibleParts(target.Name, SelectedType); items.Remove("null"); items = items.OrderBy(x => ModSystemTools.GetPart(x).price).ToList(); items.Insert(0, "null"); foreach (var item in items) { if (!ModSystemTools.IsTypeNullable(SelectedType) && item == "null") { continue; } var gm = Instantiate(buttonPrefab, PartView); var btn = gm.GetComponent <Button>(); btn.onClick.AddListener(delegate { ChangePart(item); }); var modbtn = gm.GetComponent <ModButton>(); modbtn.Name = item; modbtn.TranslationName = $"PART_{item}"; if (item != "null") { if (SaveSystem.GetOwnedPartsForVehicleType(target.Name).Contains(item)) { modbtn.ChangeStatusText("Owned"); } else { modbtn.ChangeStatusText(ModSystemTools.GetPart(item).price.ToString()); } } PartViewButtons.Add(modbtn); } ChangePart(target.GetInstalledPart(SelectedType)); }