public virtual void Update() { if (_connectedRelay == null) { return; } //_energyToConsume = EnergyConsumptionPerSecond * DayNightCycle.main.deltaTime; bool requiresEnergy = GameModeUtils.RequiresPower(); bool hasPowerToConsume = !requiresEnergy || (this.AvailablePower >= EnergyConsumptionPerSecond); if (hasPowerToConsume && _prevPowerState != FCSPowerStates.Powered) { OnPowerResume?.Invoke(); _prevPowerState = FCSPowerStates.Powered; } else if (!hasPowerToConsume && _prevPowerState != FCSPowerStates.Unpowered) { OnPowerOutage?.Invoke(); _prevPowerState = FCSPowerStates.Unpowered; } //if (this.NotAllowToOperate) // return; //if (!hasPowerToConsume) // return; //if (requiresEnergy) // _connectedRelay.ConsumeEnergy(_energyToConsume, out float amountConsumed); }
internal static void OnPowerUpdate(FCSPowerStates state, BaseManager manager) { if (manager == null || manager.PrevPowerState == state) { return; } manager.PrevPowerState = state; Mod.OnBaseUpdate?.Invoke(); }
internal void SyncUnits(FCSPowerStates powerState, PowerToggleStates toggleState, bool auto, bool baseDrainState) { QuickLogger.Debug($"BPU Count = {BasePowerStorageUnits.Count}", true); foreach (FCSPowerStorageController controller in BasePowerStorageUnits) { if (controller.PowerManager.GetPowerState() == FCSPowerStates.Unpowered) { continue; } controller.SetAutoActivate(auto); controller.PowerManager.SetChargeMode(toggleState); controller.PowerManager.SetPowerState(powerState); controller.SetBaseDrainProtection(baseDrainState); } }
public void SetPowerState(FCSPowerStates state) { switch (state) { case FCSPowerStates.Powered: TriggerPowerOn(); break; case FCSPowerStates.Tripped: TriggerPowerOff(); break; default: throw new ArgumentOutOfRangeException(nameof(state), state, null); } }
private void UpdateSystemLights(FCSPowerStates value) { return; QuickLogger.Debug($"Changing System Lights", true); if (QPatch.Configuration.AllowDamage) { if (HealthManager.IsDamagedFlag()) { //MaterialHelpers.ChangeEmissionColor("DeepDriller_BaseColor_BaseColor",gameObject, new Color(1, 1f, 1f)); MaterialHelpers.ReplaceEmissionTexture("DeepDriller_BaseColor_BaseColor", "DeepDriller_Emissive_Error", gameObject, FCSDeepDrillerBuildable.AssetBundle); return; } if (value == FCSPowerStates.Unpowered || value == FCSPowerStates.Tripped && !HealthManager.IsDamagedFlag()) { //MaterialHelpers.ChangeEmissionColor("DeepDriller_BaseColor_BaseColor", gameObject, new Color(0.9803922f, 0.6313726f, 0.007843138f)); MaterialHelpers.ReplaceEmissionTexture("DeepDriller_BaseColor_BaseColor", "DeepDriller_Emissive_Off", gameObject, FCSDeepDrillerBuildable.AssetBundle); } else if (value == FCSPowerStates.Powered && !HealthManager.IsDamagedFlag()) { //MaterialHelpers.ChangeEmissionColor("DeepDriller_BaseColor_BaseColor", gameObject, new Color(0.08235294f, 1f, 1f)); MaterialHelpers.ReplaceEmissionTexture("DeepDriller_BaseColor_BaseColor", "DeepDriller_Emissive_On", gameObject, FCSDeepDrillerBuildable.AssetBundle); } } else { if (value == FCSPowerStates.Unpowered || value == FCSPowerStates.Tripped) { MaterialHelpers.ReplaceEmissionTexture("DeepDriller_BaseColor_BaseColor", "DeepDriller_Emissive_Off", gameObject, FCSDeepDrillerBuildable.AssetBundle); } else if (value == FCSPowerStates.Powered) { //MaterialHelpers.ChangeEmissionColor("DeepDriller_BaseColor_BaseColor", gameObject, new Color(0.08235294f, 1f, 1f)); MaterialHelpers.ReplaceEmissionTexture("DeepDriller_BaseColor_BaseColor", "DeepDriller_Emissive_On", gameObject, FCSDeepDrillerBuildable.AssetBundle); } } }
internal void SetPowerState(FCSPowerStates state) { QuickLogger.Debug($"Current State: {state}", true); switch (state) { //Reset The systemLight case FCSPowerStates.Powered: _mono.AnimationManager.SetIntHash(_mono.StateHash, 1); _mono.SystemLightManager.RestoreStoredState(); break; case FCSPowerStates.Unpowered: _mono.SystemLightManager.StoreCurrentState(); _mono.SystemLightManager.ChangeSystemLights(SystemLightState.Unpowered); break; } _powerState = state; }
private void OnPowerUpdate(FCSPowerStates powerState) { _powerState = powerState; if (powerState == FCSPowerStates.Powered && _prevState != FCSPowerStates.Powered) { if (isActiveAndEnabled) { StartCoroutine(HeatLava()); } else { _runStartUpOnEnableHeatLava = true; } if (_lavaRaised) { return; } if (isActiveAndEnabled) { StartCoroutine(RaiseLava()); } else { _runStartUpOnEnableRaiseLava = true; } _prevState = FCSPowerStates.Powered; _wasActive = false; } if (powerState == FCSPowerStates.Unpowered || powerState == FCSPowerStates.Tripped) { StartCoolingInvoke(); _prevState = powerState; } }
private void OnPowerUpdate(FCSPowerStates obj) { AnimationManager.SetBoolHash(IsRunningHash, obj == FCSPowerStates.Powered); }
private void OnPowerUpdate(FCSPowerStates obj, BaseManager manager) { Mod.OnBaseUpdate?.Invoke(); }
public virtual void SetPowerState(FCSPowerStates state) { }
public void SetDevicePowerState(FCSPowerStates state) { _powerManager?.SetPowerState(state); }
private void OnPowerUpdate(FCSPowerStates value) { UpdateSystemLights(value); QuickLogger.Debug($"PowerState Changed to: {value}", true); }