private void Update() { OnMonoUpdate?.Invoke(); PowerManager?.ConsumePower(); StorageManager?.AttemptSpawnBottle(); UpdateSystem(); }
private IEnumerator UpdatePowerState() { while (true) { yield return(new WaitForSeconds(1)); PowerManager.UpdatePowerState(); } }
private void Initialize() { _isRunning = Animator.StringToHash("IsRunning"); _isInSub = Player.main.IsInSubmarine(); if (StorageManager == null) { StorageManager = new MFFStorageManager(); StorageManager.Initialize(this); } if (PowerManager == null) { PowerManager = new PowerManager(); PowerManager.Initialize(this); StartCoroutine(UpdatePowerState()); } AnimationManager = gameObject.GetComponent <AnimationManager>(); if (ColorManager == null) { ColorManager = new ColorManager(); ColorManager.Initialize(gameObject, MiniFountainFilterBuildable.BodyMaterial); } if (TankManager == null) { TankManager = new TankManager(); TankManager.Initialize(this); } if (PlayerManager == null) { PlayerManager = new PlayerManager(); PlayerManager.Initialize(); } if (AudioManager == null) { AudioManager = new AudioManager(gameObject.GetComponent <FMOD_CustomLoopingEmitter>()); } if (DisplayManager == null) { DisplayManager = gameObject.AddComponent <MFFDisplayManager>(); DisplayManager.Setup(this); } IsInitialized = true; QuickLogger.Debug($"Initialized"); }
private void UpdateSystem() { if (!IsInitialized) { return; } if (!IsConstructed && _isOperational) { QuickLogger.Debug("Update System: IsConstructed False", true); AudioManager?.StopMachineAudio(); AnimationManager.SetBoolHash(_isRunning, false); DisplayManager.PowerOffDisplay(); _isOperational = false; return; } if (PowerManager.GetPowerState() != FCSPowerStates.Powered || !IsUnderwater() && _isOperational) { QuickLogger.Debug("Update System: Powered and Underwater Else", true); AudioManager.StopMachineAudio(); AnimationManager.SetBoolHash(_isRunning, false); DisplayManager.AboveWaterMessage(); _isOperational = false; return; } if (PowerManager.GetPowerState() == FCSPowerStates.Powered && IsUnderwater() && !_isOperational) { QuickLogger.Debug("Update System: Powered and Underwater", true); AudioManager.PlayMachineAudio(); AnimationManager.SetBoolHash(_isRunning, true); DisplayManager.PowerOnDisplay(); _isOperational = true; } }