using System.Collections; using System.Collections.Generic; using UnityEngine; public class objectToOverrideSystem : MonoBehaviour { [Header ("Main Settings")] [Space] public bool canBeOverriden = true; public GameObject objectToOverride; [Space] [Header ("Remote Events On Object Settings")] [Space] public bool useRemoteEventsOnObjectOnStart; public List remoteEventNameListOnObjectOnStart = new List (); [Space] [Space] public bool useRemoteEventsOnObjectOnEnd; public List remoteEventNameListOnObjectOnEnd = new List (); [Space] [Header ("Remote Events On Player Settings")] [Space] public bool useRemoteEventsOnPlayerOnStart; public List remoteEventNameListOnPlayerOnStart = new List (); [Space] [Space] public bool useRemoteEventsOnPlayerOnEnd; public List remoteEventNameListOnPlayerOnEnd = new List (); GameObject currentPlayer; public bool canBeOverridenActive () { return canBeOverriden; } public GameObject getObjectToOverride () { if (objectToOverride == null) { objectToOverride = gameObject; } return objectToOverride; } public void setCurrentPlayer (GameObject newPlayer) { currentPlayer = newPlayer; } public void setOverrideControlExternally (bool state) { if (currentPlayer != null) { playerComponentsManager mainPlayerComponentsManager = currentPlayer.GetComponent (); if (mainPlayerComponentsManager != null) { overrideElementControlSystem mainOverrideElementControlSystem = mainPlayerComponentsManager.getOverrideElementControlSystem (); if (mainOverrideElementControlSystem != null) { if (state) { if (!mainOverrideElementControlSystem.usingOverride) { bool checkForExternalObjectsToDriveOrRideEnabled = mainOverrideElementControlSystem.isCheckForExternalObjectsToDriveOrRideEnabled (); mainOverrideElementControlSystem.setCheckForExternalObjectsToDriveOrRideEnabledState (false); mainOverrideElementControlSystem.overrideElementControl (objectToOverride); mainOverrideElementControlSystem.setCheckForExternalObjectsToDriveOrRideEnabledState (checkForExternalObjectsToDriveOrRideEnabled); } } else { if (mainOverrideElementControlSystem.usingOverride) { mainOverrideElementControlSystem.stopCurrentOverrideControl (); } } mainOverrideElementControlSystem.setInputStopOverrideControlPausedState (state); } } } } }