Beispiel #1
0
    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);
    }
Beispiel #2
0
    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));
    }