//---------------------------------------------- // Realistic Car Controller // // Copyright © 2014 - 2023 BoneCracker Games // https://www.bonecrackergames.com // Buğra Özdoğanlar // //---------------------------------------------- using System.Collections; using System.Collections.Generic; using UnityEngine; /// /// Manager for upgradable spoilers. /// [AddComponentMenu("BoneCracker Games/Realistic Car Controller/Customization/RCC Vehicle Upgrade Spoiler Manager")] public class RCC_VehicleUpgrade_SpoilerManager : MonoBehaviour { // Mod applier. private RCC_CustomizationApplier modApplier; public RCC_CustomizationApplier ModApplier { get { if (modApplier == null) modApplier = GetComponentInParent(); return modApplier; } } public RCC_VehicleUpgrade_Spoiler[] spoilers; // All upgradable spoilers. private int selectedIndex = -1; // Last selected spoiler index. public bool paintSpoilers = true; // Painting the spoilers? private void Awake() { // Disabling all spoilers. for (int i = 0; i < spoilers.Length; i++) spoilers[i].gameObject.SetActive(false); } public void Initialize() { // Disabling all spoilers. for (int i = 0; i < spoilers.Length; i++) spoilers[i].gameObject.SetActive(false); // Getting index of the loadouts spoiler. selectedIndex = ModApplier.loadout.spoiler; // If index is not -1, enable the corresponding spoiler. if (selectedIndex != -1) spoilers[selectedIndex].gameObject.SetActive(true); } /// /// Unlocks target spoiler index and saves it. /// /// public void Upgrade(int index) { // Index of the spoiler. selectedIndex = index; // Disabling all spoilers. for (int i = 0; i < spoilers.Length; i++) spoilers[i].gameObject.SetActive(false); // If index is not -1, enable the corresponding spoiler. if (index != -1) spoilers[index].gameObject.SetActive(true); // Assign the spoiler index to loadout and save it. ModApplier.loadout.spoiler = selectedIndex; ModApplier.SaveLoadout(); } /// /// Painting. /// /// public void Paint(Color newColor) { // Painting all spoilers. for (int i = 0; i < spoilers.Length; i++) { if(spoilers[i].bodyRenderer) spoilers[i].UpdatePaint(newColor); } } }