public static void Patch() { QuickLogger.Info("Started patching. Version: " + QuickLogger.GetAssemblyVersion()); #if DEBUG QuickLogger.DebugLogsEnabled = true; QuickLogger.Debug("Debug logs enabled"); #endif try { Configuration = Mod.LoadConfiguration(); AddTechFabricatorItems(); OptionsPanelHandler.RegisterModOptions(new Options()); OxStationModelPrefab.GetPrefabs(); OxStationBuildable.PatchHelper(); OxStationScreenBuildable.PatchHelper(); var harmony = HarmonyInstance.Create("com.oxstation.MAC"); harmony.PatchAll(Assembly.GetExecutingAssembly()); QuickLogger.Info("Finished patching"); } catch (Exception ex) { QuickLogger.Error(ex); } }
private void UpdateScreen() { _oxPreloaderBar.fillAmount = _mono.OxygenManager.GetO2LevelPercentageFloat(); _oxPreloaderLBL.text = $"{Mathf.RoundToInt(_mono.OxygenManager.GetO2LevelPercentageInt())}%"; _healthPreloaderBar.fillAmount = _mono.HealthManager.GetHealthPercentage(); _healthPreloaderlbl.text = $"{Mathf.RoundToInt(_mono.HealthManager.GetHealthPercentageFull())}%"; _powerUsage.text = $"{OxStationBuildable.PowerUsage()}: <color=#ff0000ff>{_mono.PowerManager.GetPowerUsage()}</color> {OxStationBuildable.PerMinute()}."; }
public void ToggleText() { if (_station == null || _text == null) { return; } _text.text = _station.GetPingState() ? OxStationBuildable.Pinging() : OxStationBuildable.Ping(); }
public bool CanDeconstruct(out string reason) { reason = string.Empty; if (_attachedBeacon == null) { return(true); } reason = OxStationBuildable.BeaconAttached(); return(false); }
internal void ChangeTakeO2State(ButtonStates state) { QuickLogger.Debug($"Changing Button State for {nameof(ChangeTakeO2State)}"); switch (state) { case ButtonStates.Enabled: _buttonLbl.text = OxStationBuildable.TakeOxygen(); _giveOIntBtn.OnEnable(); break; case ButtonStates.Disabled: _buttonLbl.text = OxStationBuildable.Damaged(); _giveOIntBtn.OnDisable(); break; default: throw new ArgumentOutOfRangeException(nameof(state), state, null); } }
public override bool FindAllComponents() { #region Canvas var canvasGameObject = gameObject.GetComponentInChildren <Canvas>()?.gameObject; if (canvasGameObject == null) { QuickLogger.Error("Canvas cannot be found"); return(false); } #endregion #region Home var home = canvasGameObject.FindChild("Home")?.gameObject; if (home == null) { QuickLogger.Error("Home cannot be found"); return(false); } #endregion #region Oxygen Preloader var oxPreloaderlbl = home.FindChild("Ox_Preloader")?.FindChild("percentage")?.GetComponent <Text>(); if (oxPreloaderlbl == null) { QuickLogger.Error("Ox_Preloader cannot be found"); return(false); } _oxPreloaderLBL = oxPreloaderlbl; #endregion #region Oxygen Preloader Bar var oxPreloaderBar = home.FindChild("Ox_Preloader")?.FindChild("PreLoader_Bar_Front")?.GetComponent <Image>(); if (oxPreloaderBar == null) { QuickLogger.Error("Ox_Preloader Bar cannot be found"); return(false); } _oxPreloaderBar = oxPreloaderBar; #endregion #region Health Preloader var healthPreloaderlbl = home.FindChild("Health_Preloader")?.FindChild("percentage")?.GetComponent <Text>(); if (healthPreloaderlbl == null) { QuickLogger.Error("Health_Preloader cannot be found"); return(false); } _healthPreloaderlbl = healthPreloaderlbl; #endregion #region Health Preloader Bar var healthPreloaderBar = home.FindChild("Health_Preloader")?.FindChild("PreLoader_Bar_Front")?.GetComponent <Image>(); if (healthPreloaderBar == null) { QuickLogger.Error("Health_Preloader Bar cannot be found"); return(false); } _healthPreloaderBar = healthPreloaderBar; #endregion #region Take O2 BTN _giveO2BTN = home.transform.Find("Button")?.gameObject; if (_giveO2BTN == null) { QuickLogger.Error("Button not found."); return(false); } _giveOIntBtn = _giveO2BTN.AddComponent <InterfaceButton>(); _giveOIntBtn.ButtonMode = InterfaceButtonMode.Background; _giveOIntBtn.STARTING_COLOR = dark_bg; _giveOIntBtn.OnButtonClick = OnButtonClick; _giveOIntBtn.BtnName = "giveO2"; #endregion #region Take O2 BTN LBL _buttonLbl = home.transform.Find("Button").Find("Text")?.gameObject.GetComponent <Text>(); if (_buttonLbl == null) { QuickLogger.Error("Button Text not found."); return(false); } _buttonLbl.text = OxStationBuildable.TakeOxygen(); #endregion #region Power Usage var powerUsage = home.transform.Find("Power_Usage")?.GetComponent <Text>(); if (powerUsage == null) { QuickLogger.Error("Power_Usage not found."); return(false); } _powerUsage = powerUsage; #endregion return(true); }