Exemple #1
0
    public void AttachPart(string Name)
    {
        ModPart part = ModSystemTools.GetPartN(Name);

        if (part == null)
        {
            return;
        }
        foreach (var item in transform.GetComponentsInChildren <ModSlot>())
        {
            if (item.Type == part.Type)
            {
                if (item.installedPart != null)
                {
                    Destroy(item.installedPart.gameObject);
                }
                GameObject gm = Instantiate(part.gameObject, item.transform);
                item.installedPart = gm.GetComponent <ModPart>();
                if (item.gameObject.GetComponent <IModSystemSlot>() != null)
                {
                    item.gameObject.GetComponent <IModSystemSlot>().PartAdded(part.Type, Name);
                }
            }
        }
    }
Exemple #2
0
    void Start()
    {
        Resources.LoadAll <VehicleInfo>("ModSystem/Objects");
        ModSystemTools.LoadParts();
        var vehicles = new List <Save.Vehicle>();

        VTypes = new List <VehicleInfo>(Resources.FindObjectsOfTypeAll <VehicleInfo>());
    }
Exemple #3
0
    // Update is called once per frame
    public async Task Reload(ModObject v)
    {
        await ModSystemTools.LoadPartsAsync();

        target        = v;
        Titlebar.text = $"Modify {TranslationSystem.GetString("CAR_"+target.Name)}";
        PrepareCatButtons();
        PrepareTypeButtons();
        StatView.ShowValues(target);
    }
Exemple #4
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);
    }
Exemple #5
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));
    }
Exemple #6
0
    async void Start()
    {
        cam = Camera.main;
        ModSystemTools.GetPartN("Wheel");
#if UNITY_ANDROID
        Application.targetFrameRate = 60;
        QualitySettings.vSyncCount  = 0;
#endif
        gm = this;
        try
        {
            ReturnToMenu();
        }
        catch (Exception e)
        {
            Debug.Log($"gm, {e.Message}");
        }
    }