Files
HauntedBloodlines/Assets/Scripts/Photomode/Lightmode/LightModeControllerManager.cs
2025-05-29 22:31:40 +03:00

251 lines
12 KiB
C#

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;
public class LightModeControllerManager : MonoBehaviour
{
[Header("Lightmode Buttons")]
[Header("Select A Light")]
[SerializeField] private Button light1On;
[SerializeField] private Button light1Off;
[SerializeField] private Button light2On;
[SerializeField] private Button light2Off;
[SerializeField] private Button light3On;
[SerializeField] private Button light3Off;
[Header("Edit Light")]
[SerializeField] private Button selectedLightPrevious;
[SerializeField] private Button selectedLightNext;
[SerializeField] private Button castShadowsOn;
[SerializeField] private Button castShadowsOff;
[SerializeField] private Button previousLightType;
[SerializeField] private Button nextLightType;
private int editingLight;
[Header("LightMode selected Item")]
[HideInInspector] public List<GameObject> AllSelectedItemsFromLightMode;
[SerializeField] private GameObject[] _selectedItemSelectALight = new GameObject[3];
[SerializeField] private GameObject[] _selectedItemEditLight = new GameObject[9];
[SerializeField] private GameObject[] _selectedItemEditNaturalLight = new GameObject[5];
[SerializeField] private int _selectALightVerticalSelectedItemIndex;
[SerializeField] private int _editLightVerticalSelectedItemIndex;
[SerializeField] private int _editLightVerticalSelectedItemIndexMax;
private static LightModeControllerManager _instance;
public static LightModeControllerManager GetInstance() { return _instance; }
private void Awake()
{
if (!_instance)
{
_instance = this;
}
for (int i = 0; i < _selectedItemSelectALight.Length; i++)
{
AllSelectedItemsFromLightMode.Add(_selectedItemSelectALight[i]);
}
for (int i = 0; i < _selectedItemEditLight.Length; i++)
{
AllSelectedItemsFromLightMode.Add(_selectedItemEditLight[i]);
}
for (int i = 0; i < _selectedItemEditNaturalLight.Length; i++)
{
AllSelectedItemsFromLightMode.Add(_selectedItemEditNaturalLight[i]);
}
}
#region Lightmode Controller navigation
public void ControllerNavigation_SelectALight()
{
if (InputControlManager.Getinstance().IsUsingJoystick)
{
_editLightVerticalSelectedItemIndex = 0;
InputControlManager.Getinstance().SelectedMenuItemUpdate(ref _selectedItemSelectALight, _selectALightVerticalSelectedItemIndex);
InputControlManager.Getinstance().DpadNavigateVertical(ref _selectALightVerticalSelectedItemIndex, 2);
switch (_selectALightVerticalSelectedItemIndex)
{
case 0:
InputControlManager.Getinstance().DpadNavigateHorizontalButtonPress(light1On, light1Off);
break;
case 1:
InputControlManager.Getinstance().DpadNavigateHorizontalButtonPress(light2On, light2Off);
break;
case 2:
InputControlManager.Getinstance().DpadNavigateHorizontalButtonPress(light3On, light3Off);
break;
}
}
else
{
InputControlManager.Getinstance().SelectedMenuItemHideAll(ref _selectedItemSelectALight);
}
}
public void ControllerNavigation_EditLight()
{
if (InputControlManager.Getinstance().IsUsingJoystick)
{
if (!LightModeManager.GetInstance().EditNaturalLight)
{
if (LightModeManager.GetInstance().EditLight1)
{
if (LightModeManager.GetInstance().lightIsActive[0])
{
_editLightVerticalSelectedItemIndexMax = 8;
}
else
{
_editLightVerticalSelectedItemIndexMax = 0;
}
editingLight = 0;
}
else if (LightModeManager.GetInstance().EditLight2)
{
if (LightModeManager.GetInstance().lightIsActive[1])
{
_editLightVerticalSelectedItemIndexMax = 8;
}
else
{
_editLightVerticalSelectedItemIndexMax = 0;
}
editingLight = 1;
}
else if (LightModeManager.GetInstance().EditLight3)
{
if (LightModeManager.GetInstance().lightIsActive[2])
{
_editLightVerticalSelectedItemIndexMax = 8;
}
else
{
_editLightVerticalSelectedItemIndexMax = 0;
}
editingLight = 2;
}
else
{
_editLightVerticalSelectedItemIndexMax = 0;
}
InputControlManager.Getinstance().DpadNavigateVertical(ref _editLightVerticalSelectedItemIndex, _editLightVerticalSelectedItemIndexMax);
switch (_editLightVerticalSelectedItemIndex)
{
case 0:
InputControlManager.Getinstance().SelectedMenuItemUpdate(ref _selectedItemEditLight, _editLightVerticalSelectedItemIndex);
InputControlManager.Getinstance().DpadNavigateHorizontalButtonPress(selectedLightPrevious, selectedLightNext);
break;
case 1:
InputControlManager.Getinstance().SelectedMenuItemUpdate(ref _selectedItemEditLight, _editLightVerticalSelectedItemIndex);
InputControlManager.Getinstance().DpadNavigateHorizontalButtonPress(previousLightType, nextLightType);
break;
case 2:
InputControlManager.Getinstance().SelectedMenuItemUpdate(ref _selectedItemEditLight, _editLightVerticalSelectedItemIndex);
InputControlManager.Getinstance().DpadHorizontalSliderValuesUpdate(LightModeManager.GetInstance().lightIntensity, 0.4f);
break;
case 3:
InputControlManager.Getinstance().SelectedMenuItemUpdate(ref _selectedItemEditLight, _editLightVerticalSelectedItemIndex);
InputControlManager.Getinstance().DpadNavigateHorizontalButtonPress(castShadowsOn, castShadowsOff);
break;
case 4:
InputControlManager.Getinstance().SelectedMenuItemUpdate(ref _selectedItemEditLight, _editLightVerticalSelectedItemIndex);
InputControlManager.Getinstance().DpadHorizontalSliderValuesUpdate(LightModeManager.GetInstance().colorSlider, 0.02f);
break;
case 5:
InputControlManager.Getinstance().SelectedMenuItemUpdate(ref _selectedItemEditLight, _editLightVerticalSelectedItemIndex);
InputControlManager.Getinstance().DpadHorizontalSliderValuesUpdate(LightModeManager.GetInstance().colorIntensitySlider, 0.06f);
break;
case 6:
if (!LightModeManager.GetInstance().SpotLightIsActive[editingLight])
{
if (InputControlManager.Getinstance().upDpadVerticalButton)
{
_editLightVerticalSelectedItemIndex = 5;
}
else
{
_editLightVerticalSelectedItemIndex = 8;
}
}
else
{
InputControlManager.Getinstance().SelectedMenuItemUpdate(ref _selectedItemEditLight, _editLightVerticalSelectedItemIndex);
InputControlManager.Getinstance().DpadHorizontalSliderValuesUpdate(LightModeManager.GetInstance().lightSpreadSlider, 0.07f);
}
break;
case 7:
if (!LightModeManager.GetInstance().SpotLightIsActive[editingLight])
{
if (InputControlManager.Getinstance().upDpadVerticalButton)
{
_editLightVerticalSelectedItemIndex = 5;
}
else
{
_editLightVerticalSelectedItemIndex = 8;
}
}
else
{
InputControlManager.Getinstance().SelectedMenuItemUpdate(ref _selectedItemEditLight, _editLightVerticalSelectedItemIndex);
InputControlManager.Getinstance().DpadHorizontalSliderValuesUpdate(LightModeManager.GetInstance().spotlightSoftnessSlider, 2.5f);
}
break;
case 8:
InputControlManager.Getinstance().SelectedMenuItemUpdate(ref _selectedItemEditLight, _editLightVerticalSelectedItemIndex);
InputControlManager.Getinstance().DpadHorizontalSliderValuesUpdate(LightModeManager.GetInstance().lightDistanceSlider, 0.3f);
break;
}
}
else
{
InputControlManager.Getinstance().DpadNavigateVertical(ref _editLightVerticalSelectedItemIndex, _editLightVerticalSelectedItemIndexMax);
_editLightVerticalSelectedItemIndexMax = 4;
switch (_editLightVerticalSelectedItemIndex)
{
case 0:
_selectedItemEditLight[0].SetActive(false);
InputControlManager.Getinstance().SelectedMenuItemUpdate(ref _selectedItemEditNaturalLight, _editLightVerticalSelectedItemIndex);
InputControlManager.Getinstance().DpadNavigateHorizontalButtonPress(selectedLightPrevious, selectedLightNext);
break;
case 1:
InputControlManager.Getinstance().SelectedMenuItemUpdate(ref _selectedItemEditNaturalLight, _editLightVerticalSelectedItemIndex);
InputControlManager.Getinstance().DpadHorizontalSliderValuesUpdate(NaturalLightMovement.GetInstance()._intensity, 700f);
break;
case 2:
InputControlManager.Getinstance().SelectedMenuItemUpdate(ref _selectedItemEditNaturalLight, _editLightVerticalSelectedItemIndex);
InputControlManager.Getinstance().DpadHorizontalSliderValuesUpdate(NaturalLightMovement.GetInstance()._elevation, 4f);
break;
case 3:
InputControlManager.Getinstance().SelectedMenuItemUpdate(ref _selectedItemEditNaturalLight, _editLightVerticalSelectedItemIndex);
InputControlManager.Getinstance().DpadHorizontalSliderValuesUpdate(NaturalLightMovement.GetInstance()._rotation, 4f);
break;
case 4:
InputControlManager.Getinstance().SelectedMenuItemUpdate(ref _selectedItemEditNaturalLight, _editLightVerticalSelectedItemIndex);
InputControlManager.Getinstance().DpadHorizontalSliderValuesUpdate(NaturalLightMovement.GetInstance()._ambientLight, 0.5f);
break;
}
}
}
else
{
InputControlManager.Getinstance().SelectedMenuItemHideAll(ref _selectedItemEditNaturalLight);
}
}
#endregion
}