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); } } } }
void Start() { Resources.LoadAll <VehicleInfo>("ModSystem/Objects"); ModSystemTools.LoadParts(); var vehicles = new List <Save.Vehicle>(); VTypes = new List <VehicleInfo>(Resources.FindObjectsOfTypeAll <VehicleInfo>()); }
// 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); }
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)); }
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}"); } }