Exemplo n.º 1
0
        public override void Initialize()
        {
            _prefabId = GetComponentInParent <PrefabIdentifier>();

            if (_prefabId == null)
            {
                QuickLogger.Error("Prefab Identifier Component was not found");
            }

            if (_buildable == null)
            {
                _buildable = GetComponentInParent <Constructable>() ?? GetComponent <Constructable>();
            }

            if (!FindAllComponents())
            {
                IsInitialized = false;
                throw new MissingComponentException("Failed to find all components");
            }

            if (PowerManager == null)
            {
                PowerManager = gameObject.EnsureComponent <AMMiniMedBayPowerManager>();
            }

            if (PlayerTrigger == null)
            {
                PlayerTrigger = gameObject.FindChild("model").FindChild("Trigger").EnsureComponent <AMMiniMedBayTrigger>();
            }


            if (PlayerTrigger != null)
            {
                PlayerTrigger.OnPlayerStay += OnPlayerStay;
                PlayerTrigger.OnPlayerExit += OnPlayerExit;
            }
            else
            {
                QuickLogger.Error("Player Trigger Component was not found");
            }

            if (AnimationManager == null)
            {
                AnimationManager = gameObject.EnsureComponent <AMMiniMedBayAnimationManager>();
            }

            if (PowerManager != null)
            {
                PowerManager.Initialize(this);
                PowerManager.OnPowerOutage += OnPowerOutage;
                PowerManager.OnPowerResume += OnPowerResume;

                //Setting to true to prevent power consumption when not in use on load
                PowerManager.SetHasBreakerTripped(true);
            }
            else
            {
                QuickLogger.Error("Power Manager Component was not found");
            }

            PageHash = UnityEngine.Animator.StringToHash("state");

            if (AudioHandler == null)
            {
                AudioHandler = new AMMiniMedBayAudioManager(gameObject.GetComponent <FMOD_CustomLoopingEmitter>());
            }

            if (Container == null)
            {
                Container = new AMMiniMedBayContainer(this);
            }

            if (_display == null)
            {
                _display = gameObject.AddComponent <AMMiniMedBayDisplay>();
            }

            if (Player.main.gameObject.GetComponent <NitrogenLevel>() != null)
            {
                _nitrogenLevel = Player.main.gameObject.GetComponent <NitrogenLevel>();

                InvokeRepeating(nameof(UpdateNitrogenDisplay), 1, 0.5f);
            }

            IsInitialized = true;
        }
Exemplo n.º 2
0
        private static void RegisterExternalUpgrades()
        {
            UpgradeManager.RegisterReusableHandlerCreator(() =>
            {
                QuickLogger.Debug("UpgradeHandler Registered: Depth Upgrades Collection");
                return(new CrushDepthUpgradesHandler());
            });

            UpgradeManager.RegisterReusableHandlerCreator(() =>
            {
                QuickLogger.Debug("UpgradeHandler Registered: CyclopsShieldModule");
                return(new UpgradeHandler(TechType.CyclopsShieldModule)
                {
                    OnClearUpgrades = (SubRoot cyclops) => { cyclops.shieldUpgrade = false; },
                    OnUpgradeCounted = (SubRoot cyclops, Equipment modules, string slot) => { cyclops.shieldUpgrade = true; },
                });
            });

            UpgradeManager.RegisterReusableHandlerCreator(() =>
            {
                QuickLogger.Debug("UpgradeHandler Registered: CyclopsSonarModule");
                return(new UpgradeHandler(TechType.CyclopsSonarModule)
                {
                    OnClearUpgrades = (SubRoot cyclops) => { cyclops.sonarUpgrade = false; },
                    OnUpgradeCounted = (SubRoot cyclops, Equipment modules, string slot) => { cyclops.sonarUpgrade = true; },
                });
            });

            UpgradeManager.RegisterReusableHandlerCreator(() =>
            {
                QuickLogger.Debug("UpgradeHandler Registered: CyclopsSeamothRepairModule");
                return(new UpgradeHandler(TechType.CyclopsSeamothRepairModule)
                {
                    OnClearUpgrades = (SubRoot cyclops) => { cyclops.vehicleRepairUpgrade = false; },
                    OnUpgradeCounted = (SubRoot cyclops, Equipment modules, string slot) => { cyclops.vehicleRepairUpgrade = true; },
                });
            });

            UpgradeManager.RegisterReusableHandlerCreator(() =>
            {
                QuickLogger.Debug("UpgradeHandler Registered: CyclopsDecoyModule");
                return(new UpgradeHandler(TechType.CyclopsDecoyModule)
                {
                    OnClearUpgrades = (SubRoot cyclops) => { cyclops.decoyTubeSizeIncreaseUpgrade = false; },
                    OnUpgradeCounted = (SubRoot cyclops, Equipment modules, string slot) => { cyclops.decoyTubeSizeIncreaseUpgrade = true; },
                });
            });

            UpgradeManager.RegisterReusableHandlerCreator(() =>
            {
                QuickLogger.Debug("UpgradeHandler Registered: CyclopsFireSuppressionModule");
                return(new UpgradeHandler(TechType.CyclopsFireSuppressionModule)
                {
                    OnClearUpgrades = (SubRoot cyclops) =>
                    {
                        CyclopsHolographicHUD fss = cyclops.GetComponentInChildren <CyclopsHolographicHUD>();
                        if (fss != null)
                        {
                            fss.fireSuppressionSystem.SetActive(false);
                        }
                    },
                    OnUpgradeCounted = (SubRoot cyclops, Equipment modules, string slot) =>
                    {
                        CyclopsHolographicHUD fss = cyclops.GetComponentInChildren <CyclopsHolographicHUD>();
                        if (fss != null)
                        {
                            fss.fireSuppressionSystem.SetActive(true);
                        }
                    },
                });
            });
        }
Exemplo n.º 3
0
 internal static void Postfix(BaseBioReactor __instance, ProtobufSerializer serializer)
 {
     QuickLogger.Debug("OnProtoSerializeObjectTree");
     CyBioReactorMini.GetMiniReactor(__instance).OnProtoSerializeObjectTree(serializer);
 }
        public override GameObject GetGameObject()
        {
            try
            {
                QuickLogger.Debug("Making GameObject");

                QuickLogger.Debug("Instantiate GameObject");

                var prefab = GameObject.Instantiate(_Prefab);

                // Add large world entity ALLOWS YOU TO SAVE ON TERRAIN
                var lwe = prefab.AddComponent <LargeWorldEntity>();
                lwe.cellLevel = LargeWorldEntity.CellLevel.Far;

                var model = prefab.FindChild("model");

                SkyApplier skyApplier = prefab.AddComponent <SkyApplier>();
                skyApplier.renderers = model.GetComponentsInChildren <MeshRenderer>();
                skyApplier.anchorSky = Skies.Auto;

                //========== Allows the building animation and material colors ==========//

                QuickLogger.Debug("Adding Constructible");

                // Add constructible
                var constructable = prefab.AddComponent <Constructable>();
                constructable.allowedOnWall           = false;
                constructable.allowedOnGround         = true;
                constructable.allowedInSub            = false;
                constructable.allowedInBase           = false;
                constructable.allowedOnCeiling        = false;
                constructable.allowedOutside          = true;
                constructable.model                   = model;
                constructable.rotationEnabled         = true;
                constructable.allowedOnConstructables = false;
                constructable.techType                = TechType;

                var center = new Vector3(0f, 2.970485f, 0f);
                var size   = new Vector3(4.03422f, 5.701298f, 3.179399f);
                GameObjectHelpers.AddConstructableBounds(prefab, size, center);

                PrefabIdentifier prefabID = prefab.AddComponent <PrefabIdentifier>();
                prefabID.ClassId = this.ClassID;

                var lm = prefab.AddComponent <LiveMixin>();
                lm.data = CustomLiveMixinData.Get();

                prefab.AddComponent <TechTag>().type = TechType;

                prefab.AddComponent <BeaconController>();

                prefab.AddComponent <AIJetStreamT242Display>();

                prefab.AddComponent <AIJetStreamT242PowerManager>();

                prefab.AddComponent <AIJetStreamT242HealthManager>();

                prefab.AddComponent <AIJetStreamT242AnimationManager>();

                prefab.AddComponent <AIJetStreamT242Controller>();

                return(prefab);
            }
            catch (Exception e)
            {
                QuickLogger.Error(e.Message);
                return(null);
            }
        }
Exemplo n.º 5
0
        private IEnumerator AutoSystem()
        {
            while (true)
            {
                QuickLogger.Debug($"PSCount {PowerStorageUnits.Count} || BPS {BasePowerStorageUnits.Count}");

                if (PowerStorageUnits.Count > 0)
                {
                    var fController = PowerStorageUnits[0];
                    var powerTap    = fController.PowerManager;
                    var sum         = GetSum();
                    var basePower   = powerTap.GetBasePower() - sum;


                    var activationTarget = fController.GetAutoActivateAt();

                    QuickLogger.Debug($"Sum: {sum} || Base Power {basePower}");
                    QuickLogger.Debug($"Activation Target: {activationTarget} || Base Power {powerTap.GetBasePower()}");


                    if (basePower > activationTarget)
                    {
                        foreach (FCSPowerStorageController controller in PowerStorageUnits)
                        {
                            var unit = controller.PowerManager;

                            if (unit == null || unit.GetPowerState() == FCSPowerStates.Unpowered)
                            {
                                continue;
                            }

                            unit.SetChargeMode(PowerToggleStates.ChargeMode);

                            QuickLogger.Debug("Auto Charge Power Storage", true);
                        }
                    }
                    else if (basePower <= activationTarget)
                    {
                        foreach (FCSPowerStorageController controller in PowerStorageUnits)
                        {
                            var unit = controller.PowerManager;

                            if (unit != null)
                            {
                                QuickLogger.Debug($"Unit {controller.GetPrefabIDString()}", true);
                                var chargeMode = unit.GetChargeMode();
                                var powerState = unit.GetPowerState();

                                if (powerState == FCSPowerStates.Unpowered)
                                {
                                    continue;
                                }

                                QuickLogger.Debug(unit.GetBasePower().ToString(), true);

                                if (chargeMode == PowerToggleStates.ChargeMode)
                                {
                                    QuickLogger.Debug("Auto Activating Power Storage", true);
                                    unit.SetChargeMode(PowerToggleStates.TrickleMode);
                                }
                            }
                            else
                            {
                                QuickLogger.Info("Unit is null continuing with operation.");
                            }
                        }
                    }
                }

                yield return(new WaitForSeconds(0.5f));
            }
        }
Exemplo n.º 6
0
        public override bool FindAllComponents()
        {
            try
            {
                #region Canvas

                var canvas = GameObjectHelpers.FindGameObject(gameObject, "Canvas");

                #endregion

                #region Home Page

                var homePage = GameObjectHelpers.FindGameObject(canvas, "HomePage");

                //Battery Fill
                _batteryFill = GameObjectHelpers.FindGameObject(homePage, "BatteryFrameFill")?.GetComponent <Image>();

                //Power State
                GameObjectHelpers.FindGameObject(homePage, "PowerState_LBL").GetComponent <Text>().text = AlterraGenBuildable.PowerStateLBL();
                _powerStateValue = GameObjectHelpers.FindGameObject(homePage, "PoweredState_Value")?.GetComponent <Text>();

                //Counter
                _itemCounter = GameObjectHelpers.FindGameObject(homePage, "ItemsCount").GetComponent <Text>();
                UpdateItemCount(0, _mono.PowerManager.MaxSlots);

                //Power Unit
                GameObjectHelpers.FindGameObject(homePage, "PowerUnit_LBL").GetComponent <Text>().text = AlterraGenBuildable.PowerUnitLBL();
                _powerUnitValue = GameObjectHelpers.FindGameObject(homePage, "PowerUnit_Value")?.GetComponent <Text>();

                //Battery Percentage
                GameObjectHelpers.FindGameObject(homePage, "BatteryPercentage_LBL").GetComponent <Text>().text = AlterraGenBuildable.BatteryPercentageLBL();
                _batteryPercentageValue = GameObjectHelpers.FindGameObject(homePage, "BatteryPercentage_Percentage")?.GetComponent <Text>();

                //Breaker State
                GameObjectHelpers.FindGameObject(homePage, "BreakerState_LBL").GetComponent <Text>().text = AlterraGenBuildable.BreakerStateLBL();
                _breakerStatusLight = GameObjectHelpers.FindGameObject(homePage, "BreakerState_StatusLight")?.GetComponent <Image>();

                //Power Button
                var powerBTNObject = GameObjectHelpers.FindGameObject(homePage, "PowerBTN");
                InterfaceHelpers.CreateButton(powerBTNObject, "PowerBTN", InterfaceButtonMode.Background,
                                              OnButtonClick, Color.white, Color.cyan, MAX_INTERACTION_DISTANCE);

                //Dump Button
                var dumpBTN = GameObjectHelpers.FindGameObject(homePage, "DumpBTN");
                InterfaceHelpers.CreateButton(dumpBTN, "DumpBTN", InterfaceButtonMode.Background,
                                              OnButtonClick, Color.gray, Color.white, MAX_INTERACTION_DISTANCE);

                //Color Picker BTN
                var colorPickerBTN = GameObjectHelpers.FindGameObject(homePage, "ColorPickerBTN");
                InterfaceHelpers.CreateButton(colorPickerBTN, "ColorPickerBTN", InterfaceButtonMode.Background,
                                              OnButtonClick, Color.gray, Color.white, MAX_INTERACTION_DISTANCE);

                _grid = _mono.gameObject.AddComponent <GridHelper>();
                _grid.OnLoadDisplay += OnLoadItemsGrid;
                _grid.Setup(3, AlterraGenBuildable.ItemPrefab, homePage, Color.gray, Color.gray, OnButtonClick);


                _unitID = GameObjectHelpers.FindGameObject(homePage, "UnitID")?.GetComponent <Text>();

                #endregion

                #region PowerOff Page

                var poweroffPage = GameObjectHelpers.FindGameObject(canvas, "PowerOff");

                var powerBTNObject2 = GameObjectHelpers.FindGameObject(poweroffPage, "PowerBTN");
                InterfaceHelpers.CreateButton(powerBTNObject2, "PowerBTN", InterfaceButtonMode.Background,
                                              OnButtonClick, Color.white, Color.cyan, MAX_INTERACTION_DISTANCE);

                #endregion

                #region Color Page

                var colorPage = GameObjectHelpers.FindGameObject(canvas, "ColorPage");
                _colorPage.SetupGrid(35, AlterraGenBuildable.ColorItemPrefab, colorPage, OnButtonClick, Color.white, Color.cyan);

                #endregion
            }
            catch (Exception e)
            {
                QuickLogger.Error(e.Message);
                return(false);
            }

            return(true);
        }
Exemplo n.º 7
0
 public static void Postfix(ref SubRoot __instance)
 {
     QuickLogger.Debug("On Kill", true);
     //var manager = BaseManager.FindManager(__instance);
 }
Exemplo n.º 8
0
        internal void Patch()
        {
            QuickLogger.Info($"Patching '{OriginalItemData.ID}' from '{Name}'");

            CbCoreItem.Patch();
        }
 internal void KillBattery()
 {
     QuickLogger.Debug($"KillBattery");
     _capacity = _charge = 0;
     OnKillBattery?.Invoke();
 }
 /// <summary>
 /// Writes an DEBUG level log to the log file if <see cref="DebugLogsEnabled" /> is enabled. Can be optionally printed to screen.<para />
 /// No action taken when <see cref="DebugLogsEnabled" /> is set to <c>false</c>;
 /// </summary>
 /// <param name="logmessage">The log message to write.</param>
 /// <param name="showOnScreen">if set to <c>true</c> the log message will show on screen.</param>
 public void Debug(string logmessage, bool showOnScreen = false)
 {
     QuickLogger.Debug(logmessage, showOnScreen, Assembly.GetCallingAssembly().GetName());
 }
Exemplo n.º 11
0
 internal static void Postfix(ref Inventory __instance, Pickupable pickupable)
 {
     QuickLogger.Debug($"Pickupable Type {pickupable.GetTechType()}", true);
 }
Exemplo n.º 12
0
        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 Main
            var main = canvasGameObject.FindChild("Main")?.gameObject;
            if (main == null)
            {
                QuickLogger.Error("Main cannot be found");
                return(false);
            }
            #endregion

            #region Status_LBL
            var statuslbl = main.FindChild("Status_LBL")?.gameObject.GetComponent <Text>();

            if (statuslbl == null)
            {
                QuickLogger.Error("Status_LBL cannot be found");
                return(false);
            }

            statuslbl.text = AIPowerCellSocketBuildable.Status();

            #endregion

            #region Slot1
            var slot1 = main.FindChild("Battery_1")?.gameObject;
            if (slot1 == null)
            {
                QuickLogger.Error("Battery_1 cannot be found");
                return(false);
            }

            _s1Percent         = slot1.FindChild("percentage").GetComponent <Text>();
            _s1Percent.text    = Language.main.Get("ChargerSlotEmpty");
            _s1Fill            = slot1.FindChild("Fill").GetComponent <Image>();
            _s1Fill.color      = _colorEmpty;
            _s1Fill.fillAmount = 0f;
            #endregion

            #region Slot2
            var slot2 = main.FindChild("Battery_2")?.gameObject;
            if (slot2 == null)
            {
                QuickLogger.Error("Battery_2 cannot be found");
                return(false);
            }

            _s2Percent         = slot2.FindChild("percentage").GetComponent <Text>();
            _s2Percent.text    = Language.main.Get("ChargerSlotEmpty");
            _s2Fill            = slot2.FindChild("Fill").GetComponent <Image>();
            _s2Fill.color      = _colorEmpty;
            _s2Fill.fillAmount = 0f;
            #endregion

            #region Slot3
            var slot3 = main.FindChild("Battery_3")?.gameObject;
            if (slot3 == null)
            {
                QuickLogger.Error("Battery_3 cannot be found");
                return(false);
            }

            _s3Percent         = slot3.FindChild("percentage").GetComponent <Text>();
            _s3Percent.text    = Language.main.Get("ChargerSlotEmpty");
            _s3Fill            = slot3.FindChild("Fill").GetComponent <Image>();
            _s3Fill.color      = _colorEmpty;
            _s3Fill.fillAmount = 0f;
            #endregion

            #region Slot4
            var slot4 = main.FindChild("Battery_4")?.gameObject;
            if (slot4 == null)
            {
                QuickLogger.Error("Battery_4 cannot be found");
                return(false);
            }

            _s4Percent         = slot4.FindChild("percentage").GetComponent <Text>();
            _s4Percent.text    = Language.main.Get("ChargerSlotEmpty");
            _s4Fill            = slot4.FindChild("Fill").GetComponent <Image>();
            _s4Fill.color      = _colorEmpty;
            _s4Fill.fillAmount = 0f;
            #endregion

            return(true);
        }
        private void InitializeUpgradeHandlers()
        {
            if (initialized)
            {
                return;
            }

            QuickLogger.Debug($"UpgradeManager adding new UpgradeHandlers from external mods");
            // First, register upgrades from other mods.
            foreach (KeyValuePair <CreateUpgradeHandler, string> pair in HandlerCreators)
            {
                CreateUpgradeHandler upgradeHandlerCreator = pair.Key;
                string         assemblyName = pair.Value;
                UpgradeHandler upgrade      = upgradeHandlerCreator.Invoke(Cyclops);

                if (upgrade == null)
                {
                    QuickLogger.Warning($"UpgradeHandler from '{assemblyName}' was null");
                }
                else if (!KnownsUpgradeModules.ContainsKey(upgrade.TechType))
                {
                    upgrade.RegisterSelf(KnownsUpgradeModules);
                }
                else
                {
                    QuickLogger.Warning($"Duplicate UpgradeHandler for '{upgrade.TechType.AsString()}' from '{assemblyName}' was blocked");
                }
            }

            // Next, if no external mod has provided an UpgradeHandler for the vanilla upgrades, they will be added here.
            // This is to allow other mods to provide new functionality to the original upgrades.

            QuickLogger.Debug($"UpgradeManager adding default UpgradeHandlers for unmanaged vanilla upgrades");

            for (int i = 0; i < vanillaUpgrades.OriginalUpgradeIDs.Count; i++)
            {
                TechType upgradeID = vanillaUpgrades.OriginalUpgradeIDs[i];
                if (!KnownsUpgradeModules.ContainsKey(upgradeID))
                {
                    UpgradeHandler vanillaUpgrade = vanillaUpgrades.CreateUpgradeHandler(upgradeID, Cyclops);
                    vanillaUpgrade.RegisterSelf(KnownsUpgradeModules);
                }
            }

            upgradeHandlers = new UpgradeHandler[KnownsUpgradeModules.Count];

            int u = 0;

            foreach (UpgradeHandler upgrade in KnownsUpgradeModules.Values)
            {
                upgradeHandlers[u++] = upgrade;
            }

            QuickLogger.Debug("Attaching events to Engine Room Upgrade Console");

            if (engineRoomUpgradeConsole == null)
            {
                engineRoomUpgradeConsole = Cyclops.upgradeConsole.modules;
            }

            AttachEquipmentEvents(ref engineRoomUpgradeConsole);

            engineRoomUpgradeSlots = new UpgradeSlot[AuxiliaryUpgradeConsole.TotalSlots]
            {
                new UpgradeSlot(engineRoomUpgradeConsole, "Module1"),
                new UpgradeSlot(engineRoomUpgradeConsole, "Module2"),
                new UpgradeSlot(engineRoomUpgradeConsole, "Module3"),
                new UpgradeSlot(engineRoomUpgradeConsole, "Module4"),
                new UpgradeSlot(engineRoomUpgradeConsole, "Module5"),
                new UpgradeSlot(engineRoomUpgradeConsole, "Module6")
            };

            initialized       = true;
            TooLateToRegister = true;
        }
Exemplo n.º 14
0
 private void OnPowerResume()
 {
     QuickLogger.Debug($"In OnPowerResume {_healingStatus}", true);
     //UpdateIsHealing(_healingStatus == HealingStatus.Healing);
 }
        internal void OnButtonClick(string btnName, object additionalObject)
        {
            switch (btnName)
            {
            case "SentPackages":

                if (!_mono.HasItems())
                {
                    QuickLogger.Info($"There are no items to ship canceling shipment", true);
                    return;
                }

                TargetScreen();
                break;

            case "OpenContainer":
                _mono.OpenStorage();
                _animatorController.OpenDoors();
                break;

            case "CancelBTN":
                MainScreen();
                break;

            case "ColorItem":
                var color = (Color)additionalObject;
                ColorHandler.ChangeBodyColor("AlterraShipping_BaseColor", color, _mono.gameObject);
                QuickLogger.Debug($"{_mono.gameObject.name} Color Changed to {color.ToString()}");
                _mono.SetCurrentBodyColor(color);
                break;

            case "ColorPickerBTN":
                ColorPickerScreen();
                break;

            case "ColorCancelBTN":
                MainScreen();
                break;

            case "CancelTransferBTN":
                _mono.CancelTransfer();
                break;


            case "ShippingContainer":
                var target = additionalObject as AlterraShippingTarget;

                if (target == null)
                {
                    QuickLogger.Error <AlterraShippingDisplay>("The target shipping container returned null");
                    return;
                }

                if (target.IsReceivingTransfer || target.IsFull())
                {
                    QuickLogger.Message(
                        $"Target Inventory doesn't have enough free slots or is receiving a shipment", true);
                    return;
                }

                ShippingScreen(target);
                break;
            }
        }
 internal void DestroyBattery()
 {
     QuickLogger.Debug($"Destroy Battery");
     _charge             = _capacity = 0f;
     _isBatteryDestroyed = true;
 }
        private bool FindAllComponents()
        {
            #region Canvas

            _canvasGameObject = this.gameObject.GetComponentInChildren <Canvas>()?.gameObject;
            if (_canvasGameObject == null)
            {
                QuickLogger.Error("Canvas not found.");
                return(false);
            }

            #endregion

            #region Top

            var top = _canvasGameObject.FindChild("Top")?.gameObject;
            if (top == null)
            {
                QuickLogger.Error("Top not found.");
                return(false);
            }

            #endregion

            #region Overlay

            var overlay = _canvasGameObject.FindChild("Overlay")?.gameObject;
            if (overlay == null)
            {
                QuickLogger.Error("Overlay not found.");
                return(false);
            }

            #endregion

            #region Page_Name

            _pageName = overlay.FindChild("Page_Name").GetComponent <Text>();
            if (_pageName == null)
            {
                QuickLogger.Error("Page_Name not found.");
                return(false);
            }

            #endregion

            #region Message

            _message = top.FindChild("Message").GetComponent <Text>();
            if (_message == null)
            {
                QuickLogger.Error("Message found.");
                return(false);
            }

            #endregion

            #region Main

            var main = _canvasGameObject.FindChild("Main")?.gameObject;
            if (main == null)
            {
                QuickLogger.Error("Main not found.");
                return(false);
            }

            #endregion

            #region Page_1

            var page1 = main.FindChild("Page_1")?.gameObject;
            if (page1 == null)
            {
                QuickLogger.Error("Page_1 not found.");
                return(false);
            }

            #endregion

            #region Page_2

            var page2 = main.FindChild("Page_2")?.gameObject;
            if (page2 == null)
            {
                QuickLogger.Error("Page_2 not found.");
                return(false);
            }

            #endregion

            #region Page_3

            var page3 = main.FindChild("Page_3")?.gameObject;
            if (page3 == null)
            {
                QuickLogger.Error("Page_3 not found.");
                return(false);
            }

            #endregion

            #region Color Picker Page

            var colorPickerPage = main.FindChild("Color_Picker")?.gameObject;
            if (colorPickerPage == null)
            {
                QuickLogger.Error("Color_Picker not found.");
                return(false);
            }

            _colorPickerPage = colorPickerPage;

            #endregion

            #region Sent_Package Button

            var sentPackages = page1.FindChild("Sent_Package")?.gameObject;
            if (sentPackages == null)
            {
                QuickLogger.Error("Sent_Package not found.");
                return(false);
            }

            InterfaceButton sentPackages_BTN = sentPackages.AddComponent <InterfaceButton>();
            sentPackages_BTN.OnButtonClick = OnButtonClick;
            sentPackages_BTN.BtnName       = "SentPackages";
            sentPackages_BTN.ButtonMode    = InterfaceButtonMode.Background;
            sentPackages_BTN.TextLineOne   = GetLanguage(DisplayLanguagePatching.SendPackageKey);
            sentPackages_BTN.Tag           = this;

            #endregion

            #region Open_Container Button

            var openContainer = page1.FindChild("Open_Container")?.gameObject;
            if (openContainer == null)
            {
                QuickLogger.Error("Open_Container not found.");
                return(false);
            }

            InterfaceButton openContainer_BTN = openContainer.AddComponent <InterfaceButton>();
            openContainer_BTN.OnButtonClick = OnButtonClick;
            openContainer_BTN.BtnName       = "OpenContainer";
            openContainer_BTN.ButtonMode    = InterfaceButtonMode.Background;
            openContainer_BTN.TextLineOne   = GetLanguage(DisplayLanguagePatching.OpenShippingContainerKey);
            openContainer_BTN.Tag           = this;

            #endregion

            #region Color_Picker Button

            var colorPicker = page1.FindChild("Color_Picker")?.gameObject;

            if (colorPicker == null)
            {
                QuickLogger.Error("Color_Picker not found.");
                return(false);
            }

            InterfaceButton colorPicker_BTN = colorPicker.AddComponent <InterfaceButton>();
            colorPicker_BTN.OnButtonClick = OnButtonClick;
            colorPicker_BTN.BtnName       = "ColorPickerBTN";
            colorPicker_BTN.ButtonMode    = InterfaceButtonMode.Background;
            colorPicker_BTN.TextLineOne   = GetLanguage(DisplayLanguagePatching.ColorPickerKey);
            colorPicker_BTN.Tag           = this;

            #endregion

            #region Prev Button

            var prevBTN = page2.FindChild("Prev_BTN")?.gameObject;
            if (prevBTN == null)
            {
                QuickLogger.Error("Prev_BTN not found.");
                return(false);
            }

            PaginatorButton prev_BTN = prevBTN.AddComponent <PaginatorButton>();
            prev_BTN.TextLineOne          = GetLanguage(DisplayLanguagePatching.PrevPageKey);
            prev_BTN.ChangePageBy         = ChangePageBy;
            prev_BTN.AmountToChangePageBy = -1;

            #endregion

            #region Next Button

            var nextBTN = page2.FindChild("Next_BTN")?.gameObject;
            if (nextBTN == null)
            {
                QuickLogger.Error("Next_BTN not found.");
                return(false);
            }

            PaginatorButton next_BTN = nextBTN.AddComponent <PaginatorButton>();
            next_BTN.TextLineOne          = GetLanguage(DisplayLanguagePatching.NextPageKey);
            next_BTN.ChangePageBy         = ChangePageBy;
            next_BTN.AmountToChangePageBy = 1;

            #endregion

            #region Prev Button

            var colorPrevBTN = colorPickerPage.FindChild("Prev_BTN")?.gameObject;
            if (colorPrevBTN == null)
            {
                QuickLogger.Error("Color Prev_BTN not found.");
                return(false);
            }

            PaginatorButton colorPrev_BTN = colorPrevBTN.AddComponent <PaginatorButton>();
            colorPrev_BTN.TextLineOne          = GetLanguage(DisplayLanguagePatching.PrevPageKey);
            colorPrev_BTN.ChangePageBy         = ChangeColorPageBy;
            colorPrev_BTN.AmountToChangePageBy = -1;

            #endregion

            #region Next Button

            var colorNextBTN = colorPickerPage.FindChild("Next_BTN")?.gameObject;
            if (colorNextBTN == null)
            {
                QuickLogger.Error("Color Next_BTN not found.");
                return(false);
            }

            PaginatorButton colorNext_BTN = colorNextBTN.AddComponent <PaginatorButton>();
            colorNext_BTN.TextLineOne          = GetLanguage(DisplayLanguagePatching.NextPageKey);
            colorNext_BTN.ChangePageBy         = ChangeColorPageBy;
            colorNext_BTN.AmountToChangePageBy = 1;

            #endregion

            #region Cancel Button Text

            var cancelBtntxt = page2.FindChild("Cancel_BTN").GetComponent <Text>();
            if (cancelBtntxt == null)
            {
                QuickLogger.Error("Cancel_BTN Text not found.");
                return(false);
            }

            cancelBtntxt.text = GetLanguage(DisplayLanguagePatching.CancelKey);

            #endregion

            #region Cancel Button

            var cancelBTN = page2.FindChild("Cancel_BTN")?.gameObject;
            if (cancelBTN == null)
            {
                QuickLogger.Error("Cancel_BTN not found.");
                return(false);
            }

            InterfaceButton cancel_BTN = cancelBTN.AddComponent <InterfaceButton>();
            cancel_BTN.OnButtonClick = OnButtonClick;
            cancel_BTN.BtnName       = "CancelBTN";
            cancel_BTN.ButtonMode    = InterfaceButtonMode.TextColor;
            cancel_BTN.TextLineOne   = GetLanguage(DisplayLanguagePatching.CancelKey);
            cancel_BTN.TextComponent = cancelBtntxt;
            cancel_BTN.Tag           = this;

            #endregion

            #region Color Cancel Button Text

            var colorCancelBtntxt = colorPickerPage.FindChild("Cancel_BTN").GetComponent <Text>();
            if (colorCancelBtntxt == null)
            {
                QuickLogger.Error("Cancel_BTN Text not found.");
                return(false);
            }

            colorCancelBtntxt.text = GetLanguage(DisplayLanguagePatching.ColorBackKey);

            #endregion

            #region Color Cancel Button

            var colorCancelBTN = colorPickerPage.FindChild("Cancel_BTN")?.gameObject;
            if (colorCancelBTN == null)
            {
                QuickLogger.Error("Color Cancel_BTN not found.");
                return(false);
            }

            InterfaceButton colorCancel_BTN = colorCancelBTN.AddComponent <InterfaceButton>();
            colorCancel_BTN.OnButtonClick = OnButtonClick;
            colorCancel_BTN.BtnName       = "ColorCancelBTN";
            colorCancel_BTN.ButtonMode    = InterfaceButtonMode.TextColor;
            colorCancel_BTN.TextLineOne   = GetLanguage(DisplayLanguagePatching.ColorBackKey);
            colorCancel_BTN.TextComponent = colorCancelBtntxt;
            colorCancel_BTN.Tag           = this;

            #endregion

            #region Container

            _itemsGrid = page2.FindChild("Container")?.gameObject;
            if (_itemsGrid == null)
            {
                QuickLogger.Error("Container not found.");
                return(false);
            }

            #endregion

            #region Color Page Container

            _colorPageContainer = colorPickerPage.FindChild("Container")?.gameObject;
            if (_colorPageContainer == null)
            {
                QuickLogger.Error("Color Page Container not found.");
                return(false);
            }

            #endregion

            #region Message Page 2

            var messagePag2 = page2.FindChild("Message").GetComponent <Text>();
            if (messagePag2 == null)
            {
                QuickLogger.Error("Message Page 2 not found.");
                return(false);
            }

            messagePag2.text = GetLanguage(DisplayLanguagePatching.BasePageDescriptionKey);

            #endregion

            #region Message Color Page

            var messageColorPage = colorPickerPage.FindChild("Message").GetComponent <Text>();
            if (messageColorPage == null)
            {
                QuickLogger.Error("Message Color Page not found.");
                return(false);
            }

            messageColorPage.text = GetLanguage(DisplayLanguagePatching.ColorPageDescriptionKey);

            #endregion

            #region Page_Top Text

            _pageTopNumber = page2.FindChild("TopNumber").GetComponent <Text>();
            if (_pageTopNumber == null)
            {
                QuickLogger.Error("TopNumber Text not found.");
                return(false);
            }

            #endregion

            #region Page_Bottom Text

            _pageBottomNumber = page2.FindChild("BottomNumber").GetComponent <Text>();
            if (_pageBottomNumber == null)
            {
                QuickLogger.Error("BottomNumber Text not found.");
                return(false);
            }

            #endregion

            #region Color Page_Top Text

            _colorPageTopNumber = colorPickerPage.FindChild("TopNumber").GetComponent <Text>();
            if (_colorPageTopNumber == null)
            {
                QuickLogger.Error("Color TopNumber Text not found.");
                return(false);
            }

            #endregion

            #region Color Page_Bottom Text

            _colorPageBottomNumber = colorPickerPage.FindChild("BottomNumber").GetComponent <Text>();
            if (_colorPageBottomNumber == null)
            {
                QuickLogger.Error("Color BottomNumber Text not found.");
                return(false);
            }

            #endregion

            #region Shipping Text

            _shippingLabel = page3.FindChild("Shipping_LBL").GetComponent <Text>();
            if (_shippingLabel == null)
            {
                QuickLogger.Error("Shipping_LBL Text not found.");
                return(false);
            }

            _shippingLabel.text = GetLanguage(DisplayLanguagePatching.ShippingKey);

            #endregion

            #region Shipping Container Label

            var shippingContainerLabel = page1.FindChild("ShippingContainerLabel")?.gameObject;

            if (shippingContainerLabel == null)
            {
                QuickLogger.Error("ShippingContainerLabel  not found.");
                return(false);
            }

            shippingContainerLabel.GetComponent <Text>().text = _mono.Name;
            _alterraShippingNameController = shippingContainerLabel.AddComponent <AlterraShippingNameController>();
            _alterraShippingNameController.OnLabelChanged += OnLabelChanged;
            AlterraShippingNameController.Create(_mono, shippingContainerLabel);

            #endregion

            #region Cancel Button

            var cancelTransferBTN = Instantiate(cancelBTN);
            cancelTransferBTN.transform.SetParent(page3.transform, false);

            #region Cancel Button Text

            var cancelTransferBtntxt = cancelTransferBTN.GetComponent <Text>();
            if (cancelTransferBtntxt == null)
            {
                QuickLogger.Error("cancelTransferBtntxt Text not found.");
                return(false);
            }
            #endregion


            InterfaceButton cancelTransfer_BTN = cancelTransferBTN.AddComponent <InterfaceButton>();
            cancelTransfer_BTN.OnButtonClick = OnButtonClick;
            cancelTransfer_BTN.BtnName       = "CancelTransferBTN";
            cancelTransfer_BTN.ButtonMode    = InterfaceButtonMode.TextColor;
            cancelTransfer_BTN.TextLineOne   = GetLanguage(DisplayLanguagePatching.CancelKey);
            cancelTransfer_BTN.TextComponent = cancelTransferBtntxt;
            #endregion

            #region Time Left Text

            var timeLeftTXT = page3.FindChild("TimeLeft_LBL").GetComponent <Text>();
            if (timeLeftTXT == null)
            {
                QuickLogger.Error("TimeLeft_LBL Text not found.");
                return(false);
            }

            _timeLeftTXT = timeLeftTXT;

            #endregion

            return(true);
        }
Exemplo n.º 18
0
        internal static Pickupable ConvertToPickupable(ItemData itemData)
        {
            QuickLogger.Debug("ConvertToPickupable", true);

            if (itemData == null)
            {
                QuickLogger.Debug("Item Data is null", true);
                return(null);
            }

            QuickLogger.Debug("1");
            if (EggHandler.GetDiscoveredEgg(itemData.TechType, out TechType value))
            {
                return(CraftData.InstantiateFromPrefab(value).GetComponent <Pickupable>());
            }

            QuickLogger.Debug("2");

            var gameObject = CraftData.GetPrefabForTechType(itemData.TechType);

            QuickLogger.Debug("3");


            if (gameObject == null)
            {
                QuickLogger.Error($"Couldn't get the prefab for the tech-type {itemData.TechType}");
                return(null);
            }

            QuickLogger.Debug("4");

            var go = GameObject.Instantiate(gameObject);

            QuickLogger.Debug("5");

            if (go == null)
            {
                QuickLogger.Debug("GameObject is null in convert to pickupable", true);
                QuickLogger.Debug($"TechType = {itemData.Type}", true);
                return(null);
            }

            switch (itemData.Type)
            {
            case ItemType.Battery:
                go.GetComponent <Battery>()._charge = itemData.BatteryData.Charge;
                break;

            case ItemType.Food:
                var eatable = go.GetComponent <Eatable>();
                eatable.foodValue  = itemData.FoodData.FoodValue;
                eatable.waterValue = itemData.FoodData.WaterValue;
                break;

            case ItemType.Fuel:
                go.GetComponent <FireExtinguisher>().fuel = itemData.FuelData.Fuel;
                break;

            case ItemType.PlayerTool:
                if (itemData.PlayerToolData.HasBattery)
                {
                    var batteryTechType = itemData.PlayerToolData.BatteryInfo.TechType;
                    var tempBattery     = CraftData.GetPrefabForTechType(batteryTechType);
                    var capacity        = tempBattery?.gameObject.GetComponent <IBattery>()?.capacity;

                    if (itemData.PlayerToolData.HasBattery && capacity != null && capacity > 0)
                    {
                        //var pickup = CraftData.InstantiateFromPrefab(itemData.TechType).GetComponent<Pickupable>();
                        var energyMixin      = go.gameObject.GetComponent <EnergyMixin>();
                        var normalizedCharge = itemData.PlayerToolData.BatteryInfo.BatteryCharge / capacity;
                        if (energyMixin.GetBattery() != null)
                        {
                            QuickLogger.Debug("Battery was already in device destroying");
                        }

                        if (!energyMixin.compatibleBatteries.Contains(batteryTechType))
                        {
                            energyMixin.compatibleBatteries.Add(batteryTechType);
                        }

                        energyMixin.SetBattery(itemData.PlayerToolData.BatteryInfo.TechType,
                                               (float)normalizedCharge);
                        QuickLogger.Info($"Gave Player Player tool {itemData.PlayerToolData.TechType} with battery {batteryTechType}");
                    }
                    else
                    {
                        QuickLogger.Error("While trying to get the batter capacity of the battery it returned null or 0.");
                    }
                }
                break;

            case ItemType.FCSFilteredStorage:
                var storage = go.GetComponent <FCSFilteredStorage>();
                storage.Items   = itemData.FcsFilteredStorage;
                storage.Filters = itemData.FcsFilters;
                storage.ForceUpdateDisplay();
                break;
            }

            QuickLogger.Debug("6");

            return(go.GetComponent <Pickupable>());
        }
        public override GameObject GetGameObject()
        {
            try
            {
                var prefab = GameObject.Instantiate(_prefab);

                if (QPatch.Configuration.Config.UseCustomBoundingBox)
                {
                    var center = QPatch.Configuration.Config.BoundingCenter;
                    var size   = QPatch.Configuration.Config.BoundingSize;
                    GameObjectHelpers.AddConstructableBounds(prefab, size.ToVector3(), center.ToVector3());
                }

                var model = prefab.FindChild("model");

                //========== Allows the building animation and material colors ==========//
                Shader     shader     = Shader.Find("MarmosetUBER");
                Renderer[] renderers  = prefab.GetComponentsInChildren <Renderer>();
                SkyApplier skyApplier = prefab.EnsureComponent <SkyApplier>();
                skyApplier.renderers = renderers;
                skyApplier.anchorSky = Skies.Auto;

                // Add large world entity ALLOWS YOU TO SAVE ON TERRAIN
                var lwe = prefab.AddComponent <LargeWorldEntity>();
                lwe.cellLevel = LargeWorldEntity.CellLevel.Far;

                //========== Allows the building animation and material colors ==========//

                // Add constructible
                var constructable = prefab.AddComponent <Constructable>();

                constructable.allowedOutside          = QPatch.Configuration.Config.AllowedOutside;
                constructable.allowedInBase           = QPatch.Configuration.Config.AllowedInBase;
                constructable.allowedOnGround         = QPatch.Configuration.Config.AllowedOnGround;
                constructable.allowedOnWall           = QPatch.Configuration.Config.AllowedOnWall;
                constructable.rotationEnabled         = QPatch.Configuration.Config.RotationEnabled;
                constructable.allowedOnCeiling        = QPatch.Configuration.Config.AllowedOnCeiling;
                constructable.allowedInSub            = QPatch.Configuration.Config.AllowedInSub;
                constructable.allowedOnConstructables = QPatch.Configuration.Config.AllowedOnConstructables;

                constructable.placeMaxDistance     = QPatch.Configuration.Config.PlaceMaxDistance;     //7f;
                constructable.placeMinDistance     = QPatch.Configuration.Config.PlaceMinDistance;     //5f;
                constructable.placeDefaultDistance = QPatch.Configuration.Config.PlaceDefaultDistance; //6f;
                constructable.model    = model;
                constructable.techType = TechType;

                PrefabIdentifier prefabID = prefab.AddComponent <PrefabIdentifier>();
                prefabID.ClassId = ClassID;
                MaterialHelpers.AddNewBubbles(prefab, new Vector3(0.722f, 1.03f, 0.775f), new Vector3(270f, 266f, 0f));
                MaterialHelpers.AddNewBubbles(prefab, new Vector3(0.826f, 1.03f, -0.715f), new Vector3(270f, 266f, 0f));
                MaterialHelpers.AddNewBubbles(prefab, new Vector3(-0.796f, 1.03f, -0.828f), new Vector3(270f, 266f, 0f));
                MaterialHelpers.AddNewBubbles(prefab, new Vector3(-0.801f, 1.03f, 0.711f), new Vector3(270f, 266f, 0f));
                prefab.AddComponent <TechTag>().type = TechType;
                prefab.AddComponent <FCSDemoController>();

                //Add the FCSTechFabricatorTag component
                MaterialHelpers.ApplyGlassShaderTemplate(prefab, "_glass", Mod.ModName);
                prefab.AddComponent <FCSTechFabricatorTag>();

                return(prefab);
            }
            catch (Exception e)
            {
                QuickLogger.Error(e.Message);
                return(null);
            }
        }
Exemplo n.º 20
0
        public override bool FindAllComponents()
        {
            #region Canvas

            var canvasGameObject = gameObject.GetComponentInChildren <Canvas>()?.gameObject;

            if (canvasGameObject == null)
            {
                QuickLogger.Error("Canvas not found.");
                return(false);
            }

            #endregion

            // == Canvas Elements == //

            #region Navigation Dock
            var navigationDock = canvasGameObject.transform.Find("Navigation_Dock")?.gameObject;
            if (navigationDock == null)
            {
                QuickLogger.Error("Dock: Navigation_Dock not found.");
                return(false);
            }
            #endregion

            // == Navigation Button Elements == //

            #region Screen Holder

            GameObject screenHolder = canvasGameObject.transform.Find("Screens")?.gameObject;

            if (screenHolder == null)
            {
                QuickLogger.Error("Screen Holder GameObject not found.");
                return(false);
            }

            #endregion

            // == Screen Holder Elements == //

            #region Welcome Screen

            var welcomeScreen = screenHolder.FindChild("WelcomePage")?.gameObject;
            if (welcomeScreen == null)
            {
                QuickLogger.Error("Screen: WelcomeScreen not found.");
                return(false);
            }

            #endregion

            #region Version Label
            var versionLbl = welcomeScreen.FindChild("Logo_Intro").FindChild("Version_Text")?.gameObject;

            if (versionLbl == null)
            {
                QuickLogger.Error("Cannot find Version_Text Game Object");
            }

            string assemblyVersion = Assembly.GetExecutingAssembly().GetName().Version.ToString();

            versionLbl.GetComponent <Text>().text = $"V{assemblyVersion}";
            #endregion

            #region Settings Screen

            var settingsScreen = screenHolder.FindChild("SettingsPage")?.gameObject;
            if (settingsScreen == null)
            {
                QuickLogger.Error("Screen: SettingsPage not found.");
                return(false);
            }

            #endregion

            #region Battery Monitor Page
            var batteryMonitorPage = screenHolder.FindChild("BatteryMonitorPage")?.gameObject;
            if (batteryMonitorPage == null)
            {
                QuickLogger.Error("Screen: BatteryMonitorPage not found.");
                return(false);
            }

            QuickLogger.Info("Finding Meters");
            #endregion

            #region Battery Grid
            _batteryGrid = batteryMonitorPage.FindChild("Grid")?.gameObject;
            if (_batteryGrid == null)
            {
                QuickLogger.Error("Screen: BatteryMonitorPage not found.");
                return(false);
            }

            QuickLogger.Debug($"Meter Count {_batteryGrid.transform.childCount}");


            for (int i = 0; i < _mono.BatteryCount; i++)
            {
                QuickLogger.Info($"Meter {i}");
                var powercell = _mono.PowerManager.GetPowerCell(i);
                QuickLogger.Debug($"Battery {powercell.GetName()}");
                powercell.SetMeter(_batteryGrid.transform.GetChild(i).gameObject);
            }
            #endregion

            #region Power Off Page
            var powerOffPage = screenHolder.FindChild("PowerOffPage")?.gameObject;
            if (powerOffPage == null)
            {
                QuickLogger.Error("Screen: PowerOffPage not found.");
                return(false);
            }
            #endregion

            #region Boot Page
            var bootingPage = screenHolder.FindChild("BootingPage")?.gameObject;
            if (bootingPage == null)
            {
                QuickLogger.Error("Screen: BootingPage not found.");
                return(false);
            }
            #endregion

            // == Powered off Elements
            #region PoweredOff LBL

            var poweredOffLbl = powerOffPage.FindChild("Powered_Off_LBL").GetComponent <Text>();
            if (poweredOffLbl == null)
            {
                QuickLogger.Error("Screen: Powered_Off_LBL  not found.");
                return(false);
            }
            poweredOffLbl.text = LanguageHelpers.GetLanguage(FCSPowerStorageBuildable.PoweredOffKey);

            #endregion


            // == Battery MonitorPage Elements

            #region Battery Monitor Power Amount Label
            _batteryMonitorAmountLbl = batteryMonitorPage.FindChild("Battery_Monitor_Amount_LBL").GetComponent <Text>();
            if (_batteryMonitorAmountLbl == null)
            {
                QuickLogger.Error("Screen: Battery_Monitor_Amount_LBL not found.");
                return(false);
            }
            #endregion

            #region Battery Monitor Label

            var batteryMonitorLbl = batteryMonitorPage.FindChild("Battery_Monitor_LBL").GetComponent <Text>();
            if (batteryMonitorLbl == null)
            {
                QuickLogger.Error("Screen: Battery_Monitor_LBL not found.");
                return(false);
            }
            batteryMonitorLbl.text = LanguageHelpers.GetLanguage(FCSPowerStorageBuildable.BatteryMetersKey);

            #endregion

            #region Trickle Mode BTN
            var trickleModeBtn = batteryMonitorPage.FindChild("Trickle_Mode")?.gameObject;
            if (trickleModeBtn == null)
            {
                QuickLogger.Error("Screen: Trickle_Mode not found.");
                return(false);
            }

            InterfaceButton trickleBTN = trickleModeBtn.AddComponent <InterfaceButton>();
            trickleBTN.OnButtonClick += OnButtonClick;
            trickleBTN.ButtonMode     = InterfaceButtonMode.None;
            trickleBTN.BtnName        = "TrickleModeBTN";

            #endregion

            #region Charge Mode BTN
            var chargeModeBtn = batteryMonitorPage.FindChild("Charge_Mode")?.gameObject;
            if (chargeModeBtn == null)
            {
                QuickLogger.Error("Screen: Charge_Mode not found.");
                return(false);
            }

            InterfaceButton chargeBTN = chargeModeBtn.AddComponent <InterfaceButton>();
            chargeBTN.ButtonMode     = InterfaceButtonMode.None;
            chargeBTN.OnButtonClick += OnButtonClick;
            chargeBTN.BtnName        = "ChargeModeBTN";
            #endregion


            // == Boot Page Elements == //

            #region Booting LBL

            var bootingLbl = bootingPage.FindChild("Booting_TXT").GetComponent <Text>();
            if (bootingLbl == null)
            {
                QuickLogger.Error("Screen: _bootingLBL  not found.");
                return(false);
            }
            bootingLbl.text = LanguageHelpers.GetLanguage(FCSPowerStorageBuildable.BootingKey);

            #endregion

            // == Settings Page Elements == //
            #region Color Picker
            var colorPicker = settingsScreen.FindChild("Color_Picker")?.gameObject;
            if (colorPicker == null)
            {
                QuickLogger.Error("Screen: _color_Picker not found.");
                return(false);
            }

            InterfaceButton colorPickerBTN = colorPicker.AddComponent <InterfaceButton>();
            colorPickerBTN.OnButtonClick += OnButtonClick;
            colorPickerBTN.ButtonMode     = InterfaceButtonMode.None;
            colorPickerBTN.BtnName        = "ColorPickerBTN";
            #endregion

            #region Color Picker LBL

            var colorPickerLbl = colorPicker.FindChild("Label").GetComponent <Text>();
            if (colorPickerLbl == null)
            {
                QuickLogger.Error("Screen: Color Picker Label not found.");
                return(false);
            }
            colorPickerLbl.text = LanguageHelpers.GetLanguage(FCSPowerStorageBuildable.ColorPickerKey);

            #endregion

            #region Settings LBL

            var settingsLbl = settingsScreen.FindChild("Setting_LBL").GetComponent <Text>();
            if (settingsLbl == null)
            {
                QuickLogger.Error("Screen: Settings Page Label not found.");
                return(false);
            }
            settingsLbl.text = LanguageHelpers.GetLanguage(FCSPowerStorageBuildable.SettingsKey);

            #endregion

            #region System Settings LBL

            var storageModeLbl = settingsScreen.FindChild("System_Settings_LBL").GetComponent <Text>();
            if (storageModeLbl == null)
            {
                QuickLogger.Error("Screen: Storage Mode Label not found.");
                return(false);
            }
            storageModeLbl.text = LanguageHelpers.GetLanguage(FCSPowerStorageBuildable.SystemSettingsLblKey);

            #endregion

            #region Grid
            var grid = settingsScreen.FindChild("Grid")?.gameObject;
            if (grid == null)
            {
                QuickLogger.Error("Screen: Grid not found.");
                return(false);
            }
            #endregion

            #region Auto Activate BTN
            var autoActivateBtn = grid.FindChild("Auto_Activate")?.gameObject;
            if (autoActivateBtn == null)
            {
                QuickLogger.Error("Screen: Auto_Activate not found.");
                return(false);
            }

            var autoActivateTxt = autoActivateBtn.FindChild("Label").GetComponent <Text>();

            if (autoActivateTxt == null)
            {
                QuickLogger.Error("Screen: Auto_Activate text not found.");
                return(false);
            }

            autoActivateTxt.text = LanguageHelpers.GetLanguage(FCSPowerStorageBuildable.AutoActivateKey);

            InterfaceButton autoABTN = autoActivateBtn.AddComponent <InterfaceButton>();
            autoABTN.ButtonMode     = InterfaceButtonMode.None;
            autoABTN.OnButtonClick += OnButtonClick;
            autoABTN.BtnName        = "AutoActivateBTN";

            #endregion

            #region Sync BTN
            var syncBtn = grid.FindChild("Sync")?.gameObject;
            if (syncBtn == null)
            {
                QuickLogger.Error("Screen: Sync not found.");
                return(false);
            }

            var syncAllBtnTxt = syncBtn.FindChild("Label").GetComponent <Text>();

            if (syncAllBtnTxt == null)
            {
                QuickLogger.Error("Screen: Sync All text not found.");
                return(false);
            }

            syncAllBtnTxt.text = LanguageHelpers.GetLanguage(FCSPowerStorageBuildable.SyncAllKey);

            InterfaceButton syncBTN = syncBtn.AddComponent <InterfaceButton>();
            syncBTN.ButtonMode     = InterfaceButtonMode.None;
            syncBTN.OnButtonClick += OnButtonClick;
            syncBTN.BtnName        = "SyncBTN";

            #endregion

            #region Auto Activate Limit
            var autoActivateLimitBtn = grid.FindChild("Auto_Activate_Limit")?.gameObject;
            if (autoActivateLimitBtn == null)
            {
                QuickLogger.Error("Screen: Auto_Activate_Limit not found.");
                return(false);
            }

            var autoActivateLimitTxt = autoActivateLimitBtn.FindChild("Label").GetComponent <Text>();

            if (autoActivateLimitTxt == null)
            {
                QuickLogger.Error("Screen: Auto_Activate_limit text not found.");
                return(false);
            }

            autoActivateLimitTxt.text = LanguageHelpers.GetLanguage(FCSPowerStorageBuildable.AutoActivateAtKey);

            var autoActivateLimitTextBox = autoActivateLimitBtn.FindChild("Background").FindChild("Text")?.gameObject;

            if (autoActivateLimitTextBox == null)
            {
                QuickLogger.Error("Screen:btnName Text not found.");
                return(false);
            }

            _autoActivateTextB      = autoActivateLimitTextBox.GetComponent <Text>();
            _autoActivateTextB.text = _mono.GetAutoActivateAt().ToString();

            var autoActivateResult = CreateSystemButton(autoActivateLimitTextBox,
                                                        LanguageHelpers.GetLanguage(FCSPowerStorageBuildable.AutoActivateDescKey), LanguageHelpers.GetLanguage(FCSPowerStorageBuildable.AutoActivateOnHoverKey),
                                                        _mono.GetAutoActivateAt, _mono.ValidateAutoConfigUnits);

            if (!autoActivateResult)
            {
                return(false);
            }

            #endregion

            #region Base Drain Protection BTN
            var baseDrainProtectionBtn = grid.FindChild("Base_Drain_Protection")?.gameObject;
            if (baseDrainProtectionBtn == null)
            {
                QuickLogger.Error("Screen: Base_Drain_Protection not found.");
                return(false);
            }

            var baseDrianProtectionTxt = baseDrainProtectionBtn.FindChild("Label").GetComponent <Text>();

            if (baseDrianProtectionTxt == null)
            {
                QuickLogger.Error("Screen: Base_Drain_protection text not found.");
                return(false);
            }

            baseDrianProtectionTxt.text = LanguageHelpers.GetLanguage(FCSPowerStorageBuildable.BaseDrainProtectionKey);

            InterfaceButton bDPBTN = baseDrainProtectionBtn.AddComponent <InterfaceButton>();
            bDPBTN.ButtonMode     = InterfaceButtonMode.None;
            bDPBTN.OnButtonClick += OnButtonClick;
            bDPBTN.BtnName        = "BaseDrainBTN";
            #endregion

            #region Base Drain Limit
            var baseDrainlimitBtn = grid.FindChild("Base_Drain_Limit")?.gameObject;

            if (baseDrainlimitBtn == null)
            {
                QuickLogger.Error("Screen: Base_Drain_Limit not found.");
                return(false);
            }

            var baseDrianLimitTxt = baseDrainlimitBtn.FindChild("Label").GetComponent <Text>();

            if (baseDrianLimitTxt == null)
            {
                QuickLogger.Error("Screen: Base_Drain_Limit  text not found.");
                return(false);
            }

            baseDrianLimitTxt.text = LanguageHelpers.GetLanguage(FCSPowerStorageBuildable.BaseDrainLimitKey);

            var baseDrainlimitTextBox = baseDrainlimitBtn.FindChild("Background").FindChild("Text")?.gameObject;

            if (baseDrainlimitTextBox == null)
            {
                QuickLogger.Error("Screen:baseDrainlimitTextBox Text not found.");
                return(false);
            }

            _baseDrainLimitTextB      = baseDrainlimitTextBox.GetComponent <Text>();
            _baseDrainLimitTextB.text = _mono.GetBasePowerProtectionGoal().ToString();

            var baseDrainResult = CreateSystemButton(baseDrainlimitTextBox,
                                                     LanguageHelpers.GetLanguage(FCSPowerStorageBuildable.BaseDrainLimitDescKey), LanguageHelpers.GetLanguage(FCSPowerStorageBuildable.BaseDrainLimitOnHoverKey),
                                                     _mono.GetBasePowerProtectionGoal, _mono.ValidateBaseProtectionUnits);

            if (!baseDrainResult)
            {
                return(false);
            }
            #endregion


            //TODO Add langugae for btns

            #region Discharge Mode LBL
            var trickleModeLbl = trickleModeBtn.FindChild("Label").GetComponent <Text>();
            if (trickleModeLbl == null)
            {
                QuickLogger.Error("Screen: TrickleModeLabel not found.");
                return(false);
            }
            trickleModeLbl.text = LanguageHelpers.GetLanguage(FCSPowerStorageBuildable.DischargeKey);

            #endregion

            #region Charge Mode LBL

            var chargeModeLbl = chargeModeBtn.FindChild("Label").GetComponent <Text>();
            if (chargeModeLbl == null)
            {
                QuickLogger.Error("Screen: Charge Mode LBL not found.");
                return(false);
            }
            chargeModeLbl.text = LanguageHelpers.GetLanguage(FCSPowerStorageBuildable.ChargeKey);

            #endregion

            // == Color Picker Elements == //

            #region Color Picker Page
            var colorPickerPage = screenHolder.FindChild("ColorPickerPage")?.gameObject;
            if (colorPickerPage == null)
            {
                QuickLogger.Error("Screen: ColorPicker not found.");
                return(false);
            }
            #endregion

            _colorPicker = colorPickerPage.FindChild("ColorPicker")?.gameObject;
            if (_colorPicker == null)
            {
                QuickLogger.Error("GameObject: ColorPicker not found.");
                return(false);
            }

            #region Color Picker Previous Page BTN
            _previousPageGameObject = colorPickerPage.FindChild("Back_Arrow_BTN")?.gameObject;
            if (_previousPageGameObject == null)
            {
                QuickLogger.Error("Screen: Back_Arrow_BTN not found.");
                return(false);
            }

            var prevPageBTN = _previousPageGameObject.AddComponent <PaginatorButton>();
            prevPageBTN.AmountToChangePageBy = -1;
            prevPageBTN.ChangePageBy         = ChangePageBy;
            #endregion

            #region Color Picker Next Page BTN
            _nextPageGameObject = colorPickerPage.FindChild("Forward_Arrow_BTN")?.gameObject;
            if (_nextPageGameObject == null)
            {
                QuickLogger.Error("Screen: Forward_Arrow_BTN not found.");
                return(false);
            }

            var nextPageBTN = _nextPageGameObject.AddComponent <PaginatorButton>();
            nextPageBTN.ChangePageBy         = ChangePageBy;
            nextPageBTN.AmountToChangePageBy = 1;
            #endregion

            #region Color Picker Page Counter
            _pageCounter = colorPickerPage.FindChild("Page_Number")?.gameObject;
            if (_pageCounter == null)
            {
                QuickLogger.Error("Screen: Page_Number not found.");
                return(false);
            }

            _pageCounterText = _pageCounter.GetComponent <Text>();
            if (_pageCounterText == null)
            {
                QuickLogger.Error("Screen: _pageCounterText not found.");
                return(false);
            }
            #endregion

            // == Navigation Dock Elements == //

            #region Settings Button
            var settingButton = navigationDock.transform.Find("Settings_BTN")?.gameObject;
            if (settingButton == null)
            {
                QuickLogger.Error("Dock: Settings_BTN not found.");
                return(false);
            }


            InterfaceButton settingsBTN = settingButton.AddComponent <InterfaceButton>();
            settingsBTN.OnButtonClick = OnButtonClick;
            settingsBTN.BtnName       = "SettingsBTN";
            settingsBTN.ButtonMode    = InterfaceButtonMode.Background;
            #endregion

            #region Home Button
            var homeButton = navigationDock.transform.Find("Home_BTN")?.gameObject;
            if (homeButton == null)
            {
                QuickLogger.Error("Dock: Home_BTN not found.");
                return(false);
            }

            InterfaceButton home = homeButton.AddComponent <InterfaceButton>();
            home.OnButtonClick = OnButtonClick;
            home.BtnName       = "HomeBTN";
            home.ButtonMode    = InterfaceButtonMode.Background;
            #endregion

            #region Power Button
            var powerButton = navigationDock.transform.Find("Power_BTN")?.gameObject;
            if (powerButton == null)
            {
                QuickLogger.Error("Dock: Power_BTN not found.");
                return(false);
            }

            InterfaceButton power = powerButton.AddComponent <InterfaceButton>();
            power.OnButtonClick = OnButtonClick;
            power.BtnName       = "PowerBTN";
            power.ButtonMode    = InterfaceButtonMode.Background;

            #endregion

            return(true);
        }
        private void DrawDebugMenu()
        {
            GUILayout.BeginHorizontal();
            _x = GUILayout.TextField(_x);
            if (GUILayout.Button("Apply X"))
            {
                temp.Prefab.transform.localPosition = new Vector3(float.Parse(_x), temp.Prefab.transform.localPosition.y, temp.Prefab.transform.localPosition.z);
            }

            GUILayout.EndHorizontal();

            GUILayout.BeginHorizontal();
            _y = GUILayout.TextField(_y);
            if (GUILayout.Button("Apply Y"))
            {
                temp.Prefab.transform.localPosition = new Vector3(temp.Prefab.transform.localPosition.x, float.Parse(_y), temp.Prefab.transform.localPosition.z);
            }

            GUILayout.EndHorizontal();

            GUILayout.BeginHorizontal();
            _z = GUILayout.TextField(_z);
            if (GUILayout.Button("Apply Z"))
            {
                QuickLogger.Info($"{float.Parse(_z)} || {temp.Prefab.name}", true);
                temp.Prefab.transform.localPosition = new Vector3(temp.Prefab.transform.localPosition.x, temp.Prefab.transform.localPosition.y, float.Parse(_z));
            }

            GUILayout.EndHorizontal();

            GUILayout.BeginHorizontal();
            _toggle = GUILayout.Toggle(temp.Slot.activeSelf, "Prefab Visible");

            GUILayout.EndHorizontal();

            GUILayout.BeginHorizontal();
            GUILayout.TextField(temp.AnimatiorState.normalizedTime.ToString());
            if (GUILayout.Button("Change Animation Open"))
            {
                temp.Animator.Play("Main", 0, 0.69f);
            }
            GUILayout.EndHorizontal();

            GUILayout.BeginHorizontal();
            GUILayout.TextField(temp.AnimatiorState.normalizedTime.ToString());
            if (GUILayout.Button("Change Animation Close"))
            {
                temp.Animator.Play("Main", 0, 0.7725137f);
            }
            GUILayout.EndHorizontal();

            GUILayout.BeginHorizontal();
            GUILayout.TextField(temp.AnimatiorState.normalizedTime.ToString());
            if (GUILayout.Button("Change Animation Done"))
            {
                temp.Animator.Play("Main", 0, 0.9937581f);
            }
            GUILayout.EndHorizontal();



            //GUILayout.BeginHorizontal();

            //if (GUILayout.Button("Play Animation"))
            //{
            //    Log.Info("Playing Animation");
            //}
            //GUILayout.EndHorizontal();

            //GUILayout.Space(10);

            //GUILayout.BeginHorizontal();
            //if (GUILayout.Button("Stop Animation"))
            //{
            //    Log.Info("Stopping Animation");

            //}
            //GUILayout.EndHorizontal();

            //GUILayout.Space(10);


            //GUILayout.BeginHorizontal();
            //if (GUILayout.Button("Get Deep harvester Count"))
            //    GetDeepHarvesterCount();
            //GUILayout.EndHorizontal();
        }
        public override bool FindAllComponents()
        {
            try
            {
                #region Canvas

                var canvasGameObject = gameObject.GetComponentInChildren <Canvas>()?.gameObject;

                if (canvasGameObject == null)
                {
                    QuickLogger.Error("Canvas not found.");
                    return(false);
                }

                #endregion

                #region Home
                var home = InterfaceHelpers.FindGameObject(canvasGameObject, "HomeScreen");
                #endregion

                #region Battery

                var homeBattery = InterfaceHelpers.FindGameObject(home, "Battery");
                _batteryPercent = InterfaceHelpers.FindGameObject(homeBattery, "Text").GetComponent <Text>();
                _batteryFill    = InterfaceHelpers.FindGameObject(homeBattery, "Fill").GetComponent <Image>();

                #endregion

                #region Food
                var food = InterfaceHelpers.FindGameObject(canvasGameObject, "FoodScreen");
                #endregion

                #region Drinks
                var drinks = InterfaceHelpers.FindGameObject(canvasGameObject, "DrinksScreen");
                #endregion

                #region Trash
                var trash = InterfaceHelpers.FindGameObject(canvasGameObject, "TrashScreen");
                #endregion

                #region Color Picker
                var colorPicker = InterfaceHelpers.FindGameObject(canvasGameObject, "ColorPicker");
                #endregion

                #region PowerOff
                var powerOff = InterfaceHelpers.FindGameObject(canvasGameObject, "PoweredOffScreen");
                #endregion

                #region PowerButton
                var powerBtn = InterfaceHelpers.FindGameObject(home, "Power_BTN");

                InterfaceHelpers.CreateButton(powerBtn, "HPPBtn", InterfaceButtonMode.Background,
                                              OnButtonClick, _startColor, _hoverColor, MAX_INTERACTION_DISTANCE, ARSSeaBreezeFCS32Buildable.PowerBTNMessage());
                #endregion

                #region PowerOFf PowerButton
                var ppowerBtn = InterfaceHelpers.FindGameObject(powerOff, "Power_BTN");

                InterfaceHelpers.CreateButton(ppowerBtn, "PPBtn", InterfaceButtonMode.Background,
                                              OnButtonClick, _startColor, _hoverColor, MAX_INTERACTION_DISTANCE, ARSSeaBreezeFCS32Buildable.PowerBTNMessage());
                #endregion

                #region PowerOFf PowerButton
                var powerOffLbl = InterfaceHelpers.FindGameObject(powerOff, "Powered_Off_LBL");
                powerOffLbl.GetComponent <Text>().text = ARSSeaBreezeFCS32Buildable.NoPower();
                #endregion

                #region DumpBTNButton
                var dumpBtn = InterfaceHelpers.FindGameObject(home, "DumpBTN");

                InterfaceHelpers.CreateButton(dumpBtn, "DumpBTN", InterfaceButtonMode.Background,
                                              OnButtonClick, Color.black, Color.white, MAX_INTERACTION_DISTANCE, ARSSeaBreezeFCS32Buildable.DumpButton(), ARSSeaBreezeFCS32Buildable.DumpMessage());
                #endregion

                #region FoodCButton
                var foodContainterBtn = InterfaceHelpers.FindGameObject(home, "FoodCBTN");

                InterfaceHelpers.CreateButton(foodContainterBtn, "FoodCBTN", InterfaceButtonMode.Background,
                                              OnButtonClick, Color.black, Color.white, MAX_INTERACTION_DISTANCE, ARSSeaBreezeFCS32Buildable.FoodCButton());
                #endregion

                #region WaterCButton
                var WaterContainterBtn = InterfaceHelpers.FindGameObject(home, "WaterCBTN");

                InterfaceHelpers.CreateButton(WaterContainterBtn, "WaterCBTN", InterfaceButtonMode.Background,
                                              OnButtonClick, Color.black, Color.white, MAX_INTERACTION_DISTANCE, ARSSeaBreezeFCS32Buildable.WaterCButton());
                #endregion

                #region Rename Button
                var RenameBtn = InterfaceHelpers.FindGameObject(home, "RenameBTN");

                InterfaceHelpers.CreateButton(RenameBtn, "RenameBTN", InterfaceButtonMode.Background,
                                              OnButtonClick, Color.black, Color.white, MAX_INTERACTION_DISTANCE, ARSSeaBreezeFCS32Buildable.RenameButton());
                #endregion

                #region Trash Button
                var TrashBtn = InterfaceHelpers.FindGameObject(home, "TrashCBTN");

                InterfaceHelpers.CreateButton(TrashBtn, "TrashBTN", InterfaceButtonMode.Background,
                                              OnButtonClick, Color.black, Color.white, MAX_INTERACTION_DISTANCE, ARSSeaBreezeFCS32Buildable.TrashButton(), ARSSeaBreezeFCS32Buildable.TrashMessage());
                #endregion

                #region ColorBTN Button
                var colorBtn = InterfaceHelpers.FindGameObject(home, "ColorPickerBTN");

                InterfaceHelpers.CreateButton(colorBtn, "ColorBTN", InterfaceButtonMode.Background,
                                              OnButtonClick, Color.black, Color.white, MAX_INTERACTION_DISTANCE, ARSSeaBreezeFCS32Buildable.ColorPicker());
                #endregion

                #region ColorPage
                _colorPage.SetupGrid(48, ARSSeaBreezeFCS32Buildable.ColorItemPrefab, colorPicker, OnButtonClick, _startColor, _hoverColor);
                #endregion

                #region Food Page

                _foodPage = _mono.gameObject.AddComponent <GridHelper>();
                _foodPage.OnLoadDisplay += OnLoadFoodDisplay;
                _foodPage.Setup(17, ARSSeaBreezeFCS32Buildable.ItemPrefab, food, _startColor, _hoverColor, OnButtonClick);

                #endregion

                #region Drink Page

                _waterPage = _mono.gameObject.AddComponent <GridHelper>();
                _waterPage.OnLoadDisplay += OnLoadWaterDisplay;
                _waterPage.Setup(17, ARSSeaBreezeFCS32Buildable.ItemPrefab, drinks, _startColor, _hoverColor, OnButtonClick);

                #endregion

                #region Trash Page

                _trashPage = _mono.gameObject.AddComponent <GridHelper>();
                _trashPage.OnLoadDisplay += OnLoadTrashDisplay;
                _trashPage.Setup(17, ARSSeaBreezeFCS32Buildable.ItemPrefab, trash, _startColor, _hoverColor, OnButtonClick);

                #endregion

                #region StorageAmount

                _itemCounter_LBL = InterfaceHelpers.FindGameObject(home, "ItemCounter_LBL").GetComponent <Text>();

                #endregion

                #region Unit Name

                _seaBreeze_LBL = InterfaceHelpers.FindGameObject(home, "SeaBreeze_LBL").GetComponent <Text>();

                #endregion
            }
            catch (Exception e)
            {
                QuickLogger.Error($"{e.Message}:\n{e.StackTrace}");
                return(false);
            }

            return(true);
        }
Exemplo n.º 23
0
 internal static void StartConnectingToPda(Equipment modules)
 {
     QuickLogger.Debug("PdaOverlayManager started connecting upgrade console to PDA overlay");
     upgradeModules = modules;
 }
 internal void UpdateScreenLabel(string name, NameController nameController)
 {
     QuickLogger.Debug($"Label set to {name}", true);
     _seaBreeze_LBL.text = name;
 }
 private void AdditionalPatching()
 {
     QuickLogger.Debug("Additional Properties");
     LanguageHandler.SetLanguageLine(HDResizeMessageKey, "Hold 'E' and click to adjust size" + Environment.NewLine);
 }
Exemplo n.º 26
0
        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("Unable to find Home GameObject");
                return(false);
            }
            #endregion

            #region Settings

            var settings = canvasGameObject.FindChild("Settings")?.gameObject;

            if (settings == null)
            {
                QuickLogger.Error("Unable to find Settings GameObject");
                return(false);
            }
            #endregion

            #region ColorPicker

            var colorPicker = canvasGameObject.FindChild("ColorPicker")?.gameObject;

            if (colorPicker == null)
            {
                QuickLogger.Error("Unable to find colorPicker GameObject");
                return(false);
            }
            #endregion

            #region Doors
            var doorsResult = InterfaceHelpers.FindGameObject(canvasGameObject, "Doors", out var doorsOutput);

            if (!doorsResult)
            {
                return(false);
            }

            var doors = doorsOutput;
            #endregion

            #region Start Button
            var startButtonResult = InterfaceHelpers.CreateButton(home, "Button", "startBTN", InterfaceButtonMode.Background,
                                                                  _startColor, _hoverColor, OnButtonClick, out var startButton);
            startButton.TextLineOne = "Start Cooking";

            if (!startButtonResult)
            {
                return(false);
            }
            _startButton = startButton;
            #endregion

            #region Color Picker
            var colorPickerResult = InterfaceHelpers.CreateButton(settings, "Paint_BTN", "colorPickerBTN", InterfaceButtonMode.Background,
                                                                  OnButtonClick, out var colorPickerButton);
            colorPickerButton.TextLineOne = "Color Picker Page";

            if (!colorPickerResult)
            {
                return(false);
            }
            #endregion

            #region Settings BTN
            var settingsResult = InterfaceHelpers.CreateButton(home, "Settings", "settingsBTN", InterfaceButtonMode.Background,
                                                               OnButtonClick, out var settingsButton);
            settingsButton.TextLineOne = SeaCookerBuildable.GoToSettingsPage();

            if (!settingsResult)
            {
                return(false);
            }
            #endregion

            #region Settings Color BTN
            var settingsCResult = InterfaceHelpers.CreateButton(colorPicker, "Home_BTN", "settingsBTN", InterfaceButtonMode.TextColor,
                                                                OnButtonClick, out var settings_C_BTN);
            settings_C_BTN.ChangeText($"< {SeaCookerBuildable.SettingsPage()}");
            settings_C_BTN.TextLineOne = $"{SeaCookerBuildable.GoToSettingsPage()}";

            if (!settingsCResult)
            {
                QuickLogger.Error($"Can't find settingsBTN");
                return(false);
            }
            #endregion

            #region Open Input BTN
            var openInputBTN = InterfaceHelpers.CreateButton(doors, "Open_Input", "openInputBTN", InterfaceButtonMode.TextColor,
                                                             OnButtonClick, out var openInputButton);
            openInputButton.TextLineOne = "Open Input Container";

            if (!openInputBTN)
            {
                return(false);
            }
            #endregion

            #region Open Export BTN
            var openExportBTN = InterfaceHelpers.CreateButton(doors, "Open_Export", "openExportBTN", InterfaceButtonMode.TextColor,
                                                              OnButtonClick, out var openExportButton);
            openExportButton.TextLineOne = "Open Export Container";

            if (!openExportBTN)
            {
                return(false);
            }
            #endregion

            #region Next BTN
            var nextBTN = InterfaceHelpers.CreatePaginator(colorPicker, "NextPage", 1, _colorPage.ChangeColorPageBy, out var nextButton);
            nextButton.TextLineOne = "Next Page";

            if (!nextBTN)
            {
                return(false);
            }
            #endregion

            #region Prev BTN
            var prevBTN = InterfaceHelpers.CreatePaginator(colorPicker, "PrevPage", -1, _colorPage.ChangeColorPageBy, out var prevButton);
            prevButton.TextLineOne = "Previous Page";

            if (!prevBTN)
            {
                return(false);
            }
            #endregion

            #region Color Grid
            var colorGridResult = InterfaceHelpers.FindGameObject(colorPicker, "Grid", out var colorGrid);

            if (!colorGridResult)
            {
                return(false);
            }
            _colorGrid = colorGrid;
            #endregion

            #region SeaBreeze Grid
            var seaBreezeGridResult = InterfaceHelpers.FindGameObject(settings, "Grid", out var seaBreezeGrid);

            if (!seaBreezeGridResult)
            {
                return(false);
            }

            _seaBreezeGrid.Setup(4, SeaCookerBuildable.SeaBreezeItemPrefab, settings, Color.white, new Color(0.07f, 0.38f, 0.7f, 1f), OnButtonClick);
            _seaBreezeGrid.OnLoadDisplay += OnLoadDisplay;
            #endregion

            #region From Image OMIT
            //var fromImage = InterfaceHelpers.FindGameObject(home, "from_Image", out var from_Image);

            //if (!fromImage)
            //{
            //    return false;
            //}
            //_fromImage = from_Image;
            //uGUI_Icon fromIcon = _fromImage.gameObject.AddComponent<uGUI_Icon>();
            #endregion

            #region To Image OMIT
            var toImage = InterfaceHelpers.FindGameObject(home, "to_Image", out var to_Image);

            if (!toImage)
            {
                return(false);
            }
            _toImage = to_Image;
            uGUI_Icon toIcon = _toImage.gameObject.AddComponent <uGUI_Icon>();
            #endregion

            #region Percentage Bar
            var percentageResult = InterfaceHelpers.FindGameObject(home, "Preloader_Bar", out var percentage);

            if (!percentageResult)
            {
                return(false);
            }
            _percentage = percentage.GetComponent <Image>();
            #endregion

            #region Version
            var versionResult = InterfaceHelpers.FindGameObject(canvasGameObject, "Version", out var version);

            if (!versionResult)
            {
                return(false);
            }
            var versionLbl = version.GetComponent <Text>();
            versionLbl.text = $"{SeaCookerBuildable.Version()}: {QPatch.Version}";
            #endregion

            #region Paginator
            var paginatorResult = InterfaceHelpers.FindGameObject(colorPicker, "Paginator", out var paginator);

            if (!paginatorResult)
            {
                return(false);
            }
            _paginator = paginator.GetComponent <Text>();
            #endregion

            #region Seabreeze Toggle
            var toggleResult = InterfaceHelpers.FindGameObject(settings, "Toggle_SB_Export", out var toggle);

            if (!toggleResult)
            {
                QuickLogger.Error($"Cannot find Toggle_SB_Export on GameObject");
                return(false);
            }

            _cusToggle               = toggle.AddComponent <CustomToggle>();
            _cusToggle.BtnName       = "seaBreezeToggle";
            _cusToggle.ButtonMode    = InterfaceButtonMode.Background;
            _cusToggle.OnButtonClick = OnButtonClick;
            _cusToggle.Tag           = _cusToggle;
            #endregion

            #region Auto Toggle
            var autoResult = InterfaceHelpers.FindGameObject(settings, "Auto_Toggle", out var autoToggle);

            if (!autoResult)
            {
                QuickLogger.Error($"Cannot find Auto_Toggle on GameObject");
                return(false);
            }

            _autoToggle               = autoToggle.AddComponent <CustomToggle>();
            _autoToggle.BtnName       = "autoToggle";
            _autoToggle.ButtonMode    = InterfaceButtonMode.Background;
            _autoToggle.OnButtonClick = OnButtonClick;
            _autoToggle.Tag           = _autoToggle;
            #endregion

            return(true);
        }
Exemplo n.º 27
0
 internal static bool Prefix(BaseBioReactor __instance, ProtobufSerializer serializer)
 {
     QuickLogger.Debug("OnProtoDeserialize");
     CyBioReactorMini.GetMiniReactor(__instance).OnProtoDeserialize(serializer);
     return(false);
 }
Exemplo n.º 28
0
        public override void OnButtonClick(string btnName, object tag)
        {
            if (btnName == string.Empty)
            {
                return;
            }

            switch (btnName)
            {
            case "startBTN":
                if (_mono.FoodManager.IsCooking())
                {
                    _mono.FoodManager.KillCooking();
                }
                else
                {
                    _mono.StorageManager.CookStoredFood();
                }

                UpdateCookingButton();
                break;

            case "HomeBTN":
                UpdatePage(1);
                break;

            case "settingsBTN":
                UpdatePage(2);
                UpdateSeaBreezes();
                UpdateCheckedSB();
                break;

            case "colorPickerBTN":
                UpdatePage(3);
                break;

            case "openInputBTN":
                _mono.StorageManager.OpenInputStorage();
                break;

            case "openExportBTN":
                _mono.StorageManager.OpenExportStorage();
                break;

            case "seaBreezeToggle":
                var item = (CustomToggle)tag;
                _mono.StorageManager.SetExportToSeabreeze(item.CheckState());
                QuickLogger.Debug($"Toggle State: {item.CheckState()}", true);
                break;

            case "autoToggle":
                var autoItem = (CustomToggle)tag;
                var state    = autoItem.CheckState();
                _mono.AutoChooseSeabreeze = state;

                if (state)
                {
                    _mono.SelectedSeaBreezeID = String.Empty;
                    UpdateCheckedSB();
                }

                QuickLogger.Debug($"Toggle State: {autoItem.CheckState()}", true);
                break;

            case "ColorItem":
                var color = (Color)tag;
                QuickLogger.Debug($"{_mono.gameObject.name} Color Changed to {color.ToString()}", true);
                _mono.ColorManager.ChangeColor(color);
                break;

            case "SeaBreezeItem":
                var seaBreeze = (Color)tag;
                _mono.ColorManager.ChangeColor(seaBreeze);
                break;

            case "SeaBreeze":
                var sb = (FCSConnectableDevice)tag;
                _mono.SelectedSeaBreezeID = sb.GetPrefabIDString();
                UpdateCheckedSB();
                break;
            }
        }
        private bool GetPrefabs()
        {
            QuickLogger.Debug("GetPrefabs");
            AssetBundle assetBundle = AssetHelper.Asset(Mod.ModFolderName, Mod.BundleName);

            //If the result is null return false.
            if (assetBundle == null)
            {
                QuickLogger.Error($"AssetBundle is Null!");
                return(false);
            }

            AssetBundle = assetBundle;

            QuickLogger.Debug($"AssetBundle Set");

            //We have found the asset bundle and now we are going to continue by looking for the model.
            GameObject prefab = assetBundle.LoadAsset <GameObject>("AlterraDeepDriller");

            //If the prefab isn't null lets add the shader to the materials
            if (prefab != null)
            {
                //Lets apply the material shader
                ApplyShaders(prefab);

                _prefab = prefab;

                QuickLogger.Debug($"{this.FriendlyName} Prefab Found!");
            }
            else
            {
                QuickLogger.Error($"{this.FriendlyName} Prefab Not Found!");
                return(false);
            }

            //We have found the asset bundle and now we are going to continue by looking for the model.
            GameObject itemButton = assetBundle.LoadAsset <GameObject>("ItemButton");

            //If the prefab isn't null lets add the shader to the materials
            if (itemButton != null)
            {
                ItemPrefab = itemButton;

                QuickLogger.Debug("Item Button Prefab Found!");
            }
            else
            {
                QuickLogger.Error("Item Button Prefab Not Found!");
                return(false);
            }

            //We have found the asset bundle and now we are going to continue by looking for the model.
            GameObject programmingItemButton = assetBundle.LoadAsset <GameObject>("ProgrammingItem");

            //If the prefab isn't null lets add the shader to the materials
            if (programmingItemButton != null)
            {
                ProgrammingItemPrefab = programmingItemButton;

                QuickLogger.Debug("Programming Item Button Prefab Found!");
            }
            else
            {
                QuickLogger.Error("Programming Item Button Prefab Not Found!");
                return(false);
            }

            GameObject listItemButton = assetBundle.LoadAsset <GameObject>("TransferToggleButton");

            if (listItemButton != null)
            {
                ListItemPrefab = listItemButton;

                QuickLogger.Debug("List Item Button Prefab Found!");
            }
            else
            {
                QuickLogger.Error("Item Button Prefab Not Found!");
                return(false);
            }

            GameObject colorItem = QPatch.GlobalBundle.LoadAsset <GameObject>("ColorItem");

            if (colorItem != null)
            {
                ColorItemPrefab = colorItem;
            }
            else
            {
                QuickLogger.Error($"Color Item Not Found!");
                return(false);
            }

            return(true);
        }
        public override void OnButtonClick(string btnName, object tag)
        {
            switch (btnName)
            {
            case "ItemBTN":
                _mono.Storage.AttemptToTakeItem((TechType)tag);
                break;

            case "DumpBTN":
                QuickLogger.Debug($"In {btnName} switch", true);
                _mono.AnimationManager.ToggleDriveState();
                _mono.DumpContainer.OpenStorage();
                break;

            case "RenameBTN":
                QuickLogger.Debug($"In {btnName} switch", true);
                _mono.NameController.Show();
                break;

            case "LButton":
                QuickLogger.Debug($"Current Multiplier = {_mono.BulkMultiplier}");

                switch (_mono.BulkMultiplier)
                {
                case BulkMultipliers.TimesTen:
                    _mono.BulkMultiplier = BulkMultipliers.TimesEight;
                    break;

                case BulkMultipliers.TimesEight:
                    _mono.BulkMultiplier = BulkMultipliers.TimesSix;
                    break;

                case BulkMultipliers.TimesSix:
                    _mono.BulkMultiplier = BulkMultipliers.TimesFour;
                    break;

                case BulkMultipliers.TimesFour:
                    _mono.BulkMultiplier = BulkMultipliers.TimesTwo;
                    break;

                case BulkMultipliers.TimesTwo:
                    _mono.BulkMultiplier = BulkMultipliers.TimesOne;
                    break;
                }

                UpdateMultiplier();
                break;

            case "RButton":
                QuickLogger.Debug($"Current Multiplier = {_mono.BulkMultiplier}");

                switch (_mono.BulkMultiplier)
                {
                case BulkMultipliers.TimesEight:
                    _mono.BulkMultiplier = BulkMultipliers.TimesTen;
                    break;

                case BulkMultipliers.TimesSix:
                    _mono.BulkMultiplier = BulkMultipliers.TimesEight;
                    break;

                case BulkMultipliers.TimesFour:
                    _mono.BulkMultiplier = BulkMultipliers.TimesSix;
                    break;

                case BulkMultipliers.TimesTwo:
                    _mono.BulkMultiplier = BulkMultipliers.TimesFour;
                    break;

                case BulkMultipliers.TimesOne:
                    _mono.BulkMultiplier = BulkMultipliers.TimesTwo;
                    break;
                }
                UpdateMultiplier();
                break;
            }
        }