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();
 }
Example #4
0
        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);
        }