151 lines
3.5 KiB
C#
151 lines
3.5 KiB
C#
//----------------------------------------------
|
|
// Realistic Car Controller
|
|
//
|
|
// Copyright © 2014 - 2023 BoneCracker Games
|
|
// https://www.bonecrackergames.com
|
|
// Buğra Özdoğanlar
|
|
//
|
|
//----------------------------------------------
|
|
|
|
|
|
using UnityEngine;
|
|
using UnityEngine.UI;
|
|
using System.Collections;
|
|
|
|
/// <summary>
|
|
/// Modification manager. You'll need this script in your scene to make customization work. UI elements are not required, optional.
|
|
/// </summary>
|
|
[AddComponentMenu("BoneCracker Games/Realistic Car Controller/Customization/RCC Customization Manager")]
|
|
public class RCC_CustomizationManager : RCC_Singleton<RCC_CustomizationManager> {
|
|
|
|
public RCC_CustomizationApplier vehicle; // Current player vehicle.
|
|
public bool autoRegisterPlayerVehicle = true;
|
|
|
|
private void OnEnable() {
|
|
|
|
RCC_SceneManager.OnVehicleChanged += RCC_SceneManager_OnVehicleChanged;
|
|
|
|
}
|
|
|
|
private void RCC_SceneManager_OnVehicleChanged() {
|
|
|
|
vehicle = RCC_SceneManager.Instance.activePlayerVehicle.GetComponent<RCC_CustomizationApplier>();
|
|
|
|
}
|
|
|
|
/// <summary>
|
|
/// Sets the new target as currentApplier.
|
|
/// </summary>
|
|
/// <param name="newTarget"></param>
|
|
public void SetTarget(RCC_CustomizationApplier newTarget) {
|
|
|
|
vehicle = newTarget;
|
|
|
|
}
|
|
|
|
/// <summary>
|
|
/// Paints the target vehicle.
|
|
/// </summary>
|
|
/// <param name="color"></param>
|
|
public void Paint(Color color) {
|
|
|
|
// If no any player vehicle, return.
|
|
if (!vehicle)
|
|
return;
|
|
|
|
vehicle.PaintManager.Paint(color);
|
|
|
|
if (vehicle.SpoilerManager && vehicle.SpoilerManager.paintSpoilers)
|
|
vehicle.SpoilerManager.Paint(color);
|
|
|
|
}
|
|
|
|
/// <summary>
|
|
/// Changes the wheels of the target vehicle.
|
|
/// </summary>
|
|
/// <param name="wheelIndex"></param>
|
|
public void ChangeWheels(int wheelIndex) {
|
|
|
|
// If no any player vehicle, return.
|
|
if (!vehicle)
|
|
return;
|
|
|
|
vehicle.WheelManager.UpdateWheel(wheelIndex);
|
|
|
|
}
|
|
|
|
/// <summary>
|
|
/// Upgrades speed of the target vehicle.
|
|
/// </summary>
|
|
public void UpgradeSpeed() {
|
|
|
|
// If no any player vehicle, return.
|
|
if (!vehicle)
|
|
return;
|
|
|
|
vehicle.UpgradeManager.UpgradeEngine();
|
|
|
|
}
|
|
|
|
/// <summary>
|
|
/// Upgrades handling of the target vehicle.
|
|
/// </summary>
|
|
public void UpgradeHandling() {
|
|
|
|
// If no any player vehicle, return.
|
|
if (!vehicle)
|
|
return;
|
|
|
|
vehicle.UpgradeManager.UpgradeHandling();
|
|
|
|
}
|
|
|
|
/// <summary>
|
|
/// Upgrades brakes of the target vehicle.
|
|
/// </summary>
|
|
public void UpgradeBrake() {
|
|
|
|
// If no any player vehicle, return.
|
|
if (!vehicle)
|
|
return;
|
|
|
|
vehicle.UpgradeManager.UpgradeBrake();
|
|
|
|
}
|
|
|
|
/// <summary>
|
|
/// Changes the spoiler of the target vehicle.
|
|
/// </summary>
|
|
/// <param name="index"></param>
|
|
public void Spoiler(int index) {
|
|
|
|
// If no any player vehicle, return.
|
|
if (!vehicle)
|
|
return;
|
|
|
|
vehicle.SpoilerManager.Upgrade(index);
|
|
|
|
}
|
|
|
|
/// <summary>
|
|
/// Changes the siren of the target vehicle.
|
|
/// </summary>
|
|
/// <param name="index"></param>
|
|
public void Siren(int index) {
|
|
|
|
// If no any player vehicle, return.
|
|
if (!vehicle)
|
|
return;
|
|
|
|
vehicle.SirenManager.Upgrade(index);
|
|
|
|
}
|
|
|
|
private void OnDisable() {
|
|
|
|
RCC_SceneManager.OnVehicleChanged -= RCC_SceneManager_OnVehicleChanged;
|
|
|
|
}
|
|
|
|
}
|