Racing_Game/Assets/RealisticCarControllerV3/Scripts/RCC_VehicleUpgrade_SirenManager.cs

89 lines
2.3 KiB
C#

//----------------------------------------------
// 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;
/// <summary>
/// Manager for all upgradable sirens.
/// </summary>
[AddComponentMenu("BoneCracker Games/Realistic Car Controller/Customization/RCC Vehicle Upgrade Siren Manager")]
public class RCC_VehicleUpgrade_SirenManager : MonoBehaviour {
// Mod applier.
private RCC_CustomizationApplier modApplier;
public RCC_CustomizationApplier ModApplier {
get {
if (modApplier == null)
modApplier = GetComponentInParent<RCC_CustomizationApplier>();
return modApplier;
}
}
public RCC_VehicleUpgrade_Siren[] sirens; // All sirens
private int selectedIndex = -1; // Last selected siren index.
private void Awake() {
// Disabling all sirens.
for (int i = 0; i < sirens.Length; i++)
sirens[i].gameObject.SetActive(false);
}
public void Initialize() {
// If sirens is null, return.
if (sirens == null)
return;
// Disabling all sirens.
for (int i = 0; i < sirens.Length; i++)
sirens[i].gameObject.SetActive(false);
// Getting index of the selected siren.
selectedIndex = ModApplier.loadout.siren;
// If index is not -1, enable the corresponding siren.
if (selectedIndex != -1)
sirens[selectedIndex].gameObject.SetActive(true);
}
/// <summary>
/// Unlocks the target index and saves it.
/// </summary>
/// <param name="index"></param>
public void Upgrade(int index) {
// Index.
selectedIndex = index;
// Disabling all sirens.
for (int i = 0; i < sirens.Length; i++)
sirens[i].gameObject.SetActive(false);
// If index is not -1, enable the corresponding siren.
if (selectedIndex != -1)
sirens[index].gameObject.SetActive(true);
// Assign index of the siren to loadout and save it.
ModApplier.loadout.siren = selectedIndex;
ModApplier.SaveLoadout();
}
}