Example #1
0
        public void Awake()
        {
            hoverbike = GetComponent <Hoverbike>();
            modules   = hoverbike.modules;

            BZLogger.Debug("WaterRideManager", "Adding slot listener handlers...");

            modules.onEquip   += OnEquip;
            modules.onUnequip += OnUnEquip;
        }
Example #2
0
        internal static void KEYBINDINGS_ToConfig()
        {
            BZLogger.Debug("Method call: SEConfig.KEYBINDINGS_ToConfig()");

            foreach (string key in SECTION_HOTKEYS)
            {
                Hotkeys_Config[key] = InputHelper.KeyCodeToString(KEYBINDINGS[key]);
            }

            Config_Write();
        }
Example #3
0
        internal static bool Prefix(string key, Transform parent, Vector3 position, Quaternion rotation, bool awake, ref CoroutineTask <GameObject> __result)
        {
            if (key.Equals(Main.fragment.VirtualPrefabFilename))
            {
                BZLogger.Debug($"InstantiateAsync_Patch(Scanner), key: {key}");
                __result = Main.fragment.SpawnFragmentAsync(parent, position, rotation, awake);
                return(false);
            }

            return(true);
        }
        internal static bool Prefix(string key, Transform parent, Vector3 position, Quaternion rotation, bool awake, ref CoroutineTask <GameObject> __result)
        {
            if (Main.ArmFragmentPrefabs.TryGetValue(key, out SeaTruckArmFragment fragment))
            {
                BZLogger.Debug($"InstantiateAsync_Patch(Arms), key: {key}");
                __result = fragment.SpawnFragmentAsync(parent, position, rotation, awake);
                return(false);
            }

            return(true);
        }
Example #5
0
        internal static void Config_Write()
        {
            BZLogger.Debug("Method call: SEzConfig.WriteConfig()");

            ParserHelper.SetAllKeyValuesInSection(FILENAME, "Hotkeys", Hotkeys_Config);
            ParserHelper.SetKeyValue(FILENAME, "Settings", SECTION_SETTINGS[0], MAXSLOTS.ToString());
            ParserHelper.SetKeyValue(FILENAME, "Settings", SECTION_SETTINGS[1], ColorHelper.GetColorName(TEXTCOLOR));
            ParserHelper.SetKeyValue(FILENAME, "Settings", SECTION_SETTINGS[2], SLOT_LAYOUT.ToString());

            BZLogger.Log("Configuration saved.");
        }
        /*
         * public static IEnumerable<string> SessionNewSeatruckSlotIDs
         * {
         *  get
         *  {
         *      foreach (SlotData slotData in SessionSeatruckSlots)
         *      {
         *          if (slotData.SlotType != SlotType.OriginalNormal)
         *          {
         *              yield return slotData.SlotID;
         *          }
         *      }
         *  }
         * }
         */
        /*
         * public static IEnumerable<string> SessionNewExosuitSlotIDs
         * {
         *  get
         *  {
         *      foreach (SlotData slotData in SessionExosuitSlots)
         *      {
         *          if (slotData.SlotType == SlotType.CloneNormal)
         *          {
         *              yield return slotData.SlotID;
         *          }
         *      }
         *  }
         * }
         */
        /*
         * public static IEnumerable<string> SessionNewChipSlotIDs
         * {
         *  get
         *  {
         *      foreach (SlotData slotData in NewChipSlots)
         *      {
         *         yield return slotData.SlotID;
         *      }
         *  }
         * }
         */

        public static void InitSlotIDs()
        {
            BZLogger.Debug("Method call: SlotHelper.InitSlotIDs()");

            for (int i = 0; i < SEzConfig.EXTRASLOTS; i++)
            {
                SessionSeatruckSlots.Add(NewSeatruckSlots[i]);
                SessionExosuitSlots.Add(NewExosuitSlots[i]);
            }

            if (SEzConfig.isSeatruckArmsExists)
            {
                foreach (SlotData slotData in NewSeatruckSlots)
                {
                    SlotType slotType = slotData.SlotType;

                    if (slotType == SlotType.CloneArmLeft || slotType == SlotType.CloneArmRight)
                    {
                        SessionSeatruckSlots.Add(slotData);
                    }
                }
            }

            NewChipSlotIDs = new string[NewChipSlots.Count];

            for (int i = 0; i < NewChipSlotIDs.Length; i++)
            {
                NewChipSlotIDs[i] = NewChipSlots[i].SlotID;
            }

            NewHoverbikeSlotIDs = new string[NewHoverbikeSlots.Count];

            for (int i = 0; i < NewHoverbikeSlotIDs.Length; i++)
            {
                NewHoverbikeSlotIDs[i] = NewHoverbikeSlots[i].SlotID;
            }

            SessionExosuitSlotIDs = new string[SessionExosuitSlots.Count];

            for (int i = 0; i < SessionExosuitSlotIDs.Length; i++)
            {
                SessionExosuitSlotIDs[i] = SessionExosuitSlots[i].SlotID;
            }

            SessionSeatruckSlotIDs = new string[SessionSeatruckSlots.Count];

            for (int i = 0; i < SessionSeatruckSlotIDs.Length; i++)
            {
                SessionSeatruckSlotIDs[i] = SessionSeatruckSlots[i].SlotID;
            }

            BZLogger.Log("Session slotID's created.");
        }
Example #7
0
        internal static void Config_Init()
        {
            BZLogger.Debug("Method call: SEzConfig.Config_Init()");

            SLOTKEYBINDINGS_Update();

            KEYBINDINGS_Set();

            SLOTKEYBINDINGS_SyncToAll();

            BZLogger.Log("Configuration initialized.");
        }
Example #8
0
        private IEnumerator LoadExosuitResourcesAsync()
        {
            IPrefabRequest request = PrefabDatabase.GetPrefabForFilenameAsync("WorldEntities/Tools/Exosuit.prefab");

            yield return(request);

            if (!request.TryGetPrefab(out GameObject prefab))
            {
                BZLogger.Debug("Cannot load Exosuit prefab!");
                yield break;
            }

            BZLogger.Debug("Exosuit prefab loaded!");

            GameObject exosuitResource = UWE.Utils.InstantiateDeactivated(prefab, transform, Vector3.zero, Quaternion.identity);

            exosuitResource.GetComponent <Exosuit>().enabled       = false;
            exosuitResource.GetComponent <Rigidbody>().isKinematic = true;
            exosuitResource.GetComponent <WorldForces>().enabled   = false;
            UWE.Utils.ZeroTransform(exosuitResource.transform);

            GameObject exoStorage = objectHelper.FindDeepChild(exosuitResource.transform, "Exosuit_01_storage");

            objectHelper.GetPrefabClone(ref exoStorage, StorageLeft.transform, true, "model", out GameObject leftStorageModel);
            leftStorageModel.SetActive(false);

            objectHelper.GetPrefabClone(ref leftStorageModel, StorageRight.transform, true, "model", out GameObject rightStorageModel);
            rightStorageModel.SetActive(false);

            BoxCollider colliderLeft = StorageLeft.AddComponent <BoxCollider>();

            colliderLeft.enabled = false;
            colliderLeft.size    = new Vector3(1.0f, 0.4f, 0.8f);

            BoxCollider colliderRight = StorageRight.AddComponent <BoxCollider>();

            colliderRight.enabled = false;
            colliderRight.size    = new Vector3(1.0f, 0.4f, 0.8f);

            ColorizationHelper.AddRendererToSkyApplier(gameObject, leftStorageModel, Skies.Auto);
            ColorizationHelper.AddRendererToColorCustomizer(gameObject, leftStorageModel, false, new int[] { 0 });

            ColorizationHelper.AddRendererToColorCustomizer(gameObject, rightStorageModel, false, new int[] { 0 });
            ColorizationHelper.AddRendererToSkyApplier(gameObject, rightStorageModel, Skies.Auto);

            Destroy(exosuitResource);

            isGraphicsReady = true;

            yield break;
        }
Example #9
0
        internal static void Prefix(Exosuit __instance)
        {
            if (Main.ExosuitCtorPatched)
            {
                BZLogger.Debug("Exosuit constructor already patched. Exit method.");
                return;
            }

            __instance.SetPrivateField("_slotIDs", SlotHelper.SessionExosuitSlotIDs, BindingFlags.Static);

            BZLogger.Debug($"Exosuit constructor patched. ID: {__instance.GetInstanceID()}");

            Main.ExosuitCtorPatched = true;
        }
        internal static void Prefix(SeaTruckUpgrades __instance)
        {
            if (Main.SeatruckUpgradesCtorPatched)
            {
                BZLogger.Debug("SeaTruck constructor already patched. Exit method.");
                return;
            }

            __instance.SetPrivateField("slotIDs", SlotHelper.SessionSeatruckSlotIDs, BindingFlags.Static);

            BZLogger.Debug($"SeaTruck constructor patched. ID: {__instance.GetInstanceID()}");

            Main.SeatruckUpgradesCtorPatched = true;
        }
        private static void DebugAllSlots()
        {
            BZLogger.Debug("Listing Dictionary: ALLSLOTS...");

            foreach (KeyValuePair <string, SlotData> kvp in ALLSLOTS)
            {
                BZLogger.Debug(
                    $"SlotID: {kvp.Value.SlotID}" +
                    $", InternalSlotID: {kvp.Value.SlotConfigIDName}" +
                    $", SlotPOS: {kvp.Value.SlotPos}" +
                    $", SlotType: {kvp.Value.SlotType}" +
                    $", KeyCodeName: {kvp.Value.KeyCodeName}");
            }
        }
        public static void ExpandSlotMapping()
        {
            BZLogger.Debug("Method call: SlotHelper.ExpandSlotMapping()");

            foreach (SlotData slotData in NewChipSlots)
            {
                Equipment.slotMapping.Add(slotData.SlotID, EquipmentType.Chip);
            }

            foreach (SlotData slotData in ScannerModuleBatterySlots)
            {
                Equipment.slotMapping.Add(slotData.SlotID, EquipmentType.BatteryCharger);
            }

            foreach (SlotData slotData in NewHoverbikeSlots)
            {
                if (slotData.SlotType == SlotType.CloneNormal)
                {
                    Equipment.slotMapping.Add(slotData.SlotID, EquipmentType.HoverbikeModule);
                }
            }

            foreach (SlotData slotData in SessionExosuitSlots)
            {
                if (slotData.SlotType == SlotType.CloneNormal)
                {
                    Equipment.slotMapping.Add(slotData.SlotID, EquipmentType.ExosuitModule);
                }
            }

            foreach (SlotData slotData in SessionSeatruckSlots)
            {
                switch (slotData.SlotType)
                {
                case SlotType.CloneNormal:
                    Equipment.slotMapping.Add(slotData.SlotID, EquipmentType.SeaTruckModule);
                    break;

                case SlotType.CloneArmLeft:
                case SlotType.CloneArmRight:
                    Equipment.slotMapping.Add(slotData.SlotID, (EquipmentType)ModdedEquipmentType.SeatruckArm);
                    break;
                }
            }

            BZLogger.Log("Equipment slot mapping Patched!");
        }
Example #13
0
        public void OnLandingFailed()
        {
            BZLogger.Debug("[OnLanding] Landiing failed!");
            if (SeatruckState == TruckState.Landing)
            {
                StartCoroutine(OnTakeOff());
            }

            /*
             * rigidbody.AddForce(jump, ForceMode.Impulse);
             *
             * if (!isFlying.value)
             * {
             *  isFlying.Update(true);
             * }
             */
        }
Example #14
0
        public void WakeUp()
        {
            BZLogger.Debug("Received SlotExtenderZero 'WakeUp' message.");

            isSeaTruckArmSlotsReady = true;

            helper.onActiveSlotChanged += OnActiveSlotChanged;
            helper.onDockedChanged     += OnDockedChanged;

            Player.main.playerModeChanged.AddHandler(this, new Event <Player.Mode> .HandleFunction(OnPlayerModeChanged));

            helper.TruckQuickSlots.onToggle += OnToggleSlot;
            helper.TruckEquipment.onEquip   += OnEquip;
            helper.TruckEquipment.onUnequip += OnUnequip;

            CheckArmSlots();
        }
Example #15
0
        private IEnumerator LoadBiodomeRobotArmResourcesAsync()
        {
            IPrefabRequest request = PrefabDatabase.GetPrefabForFilenameAsync("WorldEntities/Alterra/Base/biodome_Robot_Arm.prefab");

            yield return(request);

            if (!request.TryGetPrefab(out robotArmResource))
            {
                BZLogger.Warn("Cannot load [biodome_robot_arm] prefab!");
                yield break;
            }

            BZLogger.Debug("Resource loaded: [biodome_robot_arm]");

            Utils.ZeroTransform(robotArmResource.transform);

            yield break;
        }
Example #16
0
        public static bool Prefix(DamageSystem __instance, ref float damage, DamageType type, GameObject target, GameObject dealer = null)
        {
            if (target.GetComponent <SeaTruckSegment>() != null)
            {
                if (target.TryGetComponent(out SeaTruckArmorManager armorManager))
                {
                    armorManager.originalDamage = damage;

                    damage = damage * armorManager.DamageReductionMultiplier;
                }
                else
                {
                    BZLogger.Debug("Manager not found in Seatruck gameobject!");
                }
            }

            return(true);
        }
        /*
         * public static IEnumerator WaitForUGUI()
         * {
         *  while (!uGUI.isInitialized)
         *  {
         *      yield return new WaitForSeconds(1);
         *  }
         *
         *  if (uGUI.main.transform.Find("RHZeroRoot") == null)
         *  {
         *      GameObject RHZeroRoot = new GameObject("RHZeroRoot");
         *
         *      RHZeroRoot.transform.SetParent(uGUI.main.transform, false);
         *
         *      RHZeroRoot.AddComponent<RHZCommand>();
         *  }
         *  //new RHZCommand();
         *
         *  if (RuntimeHelperZero_Config.AUTOSTART)
         *  {
         *      new RuntimeHelperZero();
         *  }
         *
         *  yield break;
         * }
         */

        private static void OnSceneLoaded(Scene scene, LoadSceneMode mode)
        {
            BZLogger.Debug($"Scene: [{scene.name}] loaded");

            if (scene.name == "XMenu")
            {
                new RHZCommand();

                if (RuntimeHelperZero_Config.AUTOSTART)
                {
                    new RuntimeHelperZero();
                }
            }

            if (scene.name == "Main")
            {
                new RHZCommand();
            }
        }
        public static bool IsExtendedSlot(string slotName)
        {
            BZLogger.Debug($"Method call: SlotHelper.IsExtendedSlot({slotName})");

            if (ALLSLOTS.TryGetValue(slotName, out SlotData slotData))
            {
                switch (slotData.SlotType)
                {
                case SlotType.CloneBattery:
                case SlotType.CloneChip:
                case SlotType.CloneArmLeft:
                case SlotType.CloneArmRight:
                case SlotType.CloneNormal:
                    return(true);
                }
            }

            return(false);
        }
Example #19
0
        internal static void SLOTKEYBINDINGS_SyncToAll()
        {
            BZLogger.Debug("Method call: SEConfig.SLOTKEYBINDINGS_SyncToAll()");

            foreach (KeyValuePair <SlotConfigID, string> kvp in SLOTKEYBINDINGS)
            {
                BZLogger.Debug($"key: {kvp.Key.ToString()}, Value: {kvp.Value}");

                string key = kvp.Key.ToString();

                if (Hotkeys_Config.ContainsKey(key))
                {
                    Hotkeys_Config[key] = kvp.Value;
                }

                KEYBINDINGS[key] = InputHelper.StringToKeyCode(kvp.Value);
            }

            Config_Write();
        }
Example #20
0
        private static MethodBase GetConstructorMethodBase(Type type, string ctorName)
        {
            List <ConstructorInfo> ctor_Infos = new List <ConstructorInfo>();

            ctor_Infos = AccessTools.GetDeclaredConstructors(type);

            foreach (ConstructorInfo ctor_info in ctor_Infos)
            {
                BZLogger.Debug($"found constructor [{ctorName}] in class [{type}]");

                if (ctor_info.Name == ctorName)
                {
                    return(ctor_info as MethodBase);
                }
            }

            BZLogger.Debug($"the required constructor [{ctorName}] in class [{type}] has not found!");

            return(null);
        }
Example #21
0
        internal static void Config_CreateDefault()
        {
            BZLogger.Debug("Method call: SEzConfig.Config_CreateDefault()");

            BZLogger.Warn("Configuration file is missing or wrong version. Trying to create a new one.");

            try
            {
                ParserHelper.CreateDefaultConfigFile(FILENAME, "SlotExtenderZero", PROGRAM_VERSION, DEFAULT_CONFIG);

                ParserHelper.AddInfoText(FILENAME, "MaxSlots possible values", "5 to 12");
                ParserHelper.AddInfoText(FILENAME, "TextColor possible values", "Red, Green, Blue, Yellow, White, Magenta, Cyan, Orange, Lime, Amethyst");
                ParserHelper.AddInfoText(FILENAME, "SlotLayout possible values", "Grid, Circle");

                BZLogger.Log("The new configuration file was successfully created.");
            }
            catch
            {
                BZLogger.Error("An error occured while creating the new configuration file!");
            }
        }
        private IEnumerator OnTakeOff()
        {
            BZLogger.Debug("[OnTakeOff] Take off started");

            if (SeatruckState == TruckState.TakeOff)
            {
                yield break;
            }

            prevSurfacePos        = mainCab.transform.position.y;
            rigidbody.isKinematic = false;

            while (distanceFromSurface < 20 || mainCab.transform.position.y < prevSurfacePos + 20)
            {
                SeatruckState = TruckState.TakeOff;

                rigidbody.velocity = Vector3.Lerp(rigidbody.velocity, takeOffVelocity, timer);

                BZLogger.Debug($"[OnTakeOff] timer: {timer}, velocity: {rigidbody.velocity.y}, distanceFromSurface: {distanceFromSurface}, prevDistance: {prevSurfacePos}, mainCab.position.y: {mainCab.transform.position.y}");

                timer += 0.001f;

                if (mainCab.transform.position.y > 150)
                {
                    rigidbody.velocity = Vector3.zero;
                    BZLogger.Debug("[OnTakeOff] Take off Breaked by position.y!");

                    OnTakeOffFinished();

                    yield break;
                }

                yield return(null);
            }

            OnTakeOffFinished();

            yield break;
        }
        public static void InitSessionAllSlots()
        {
            BZLogger.Debug($"Method call: SlotHelper.InitSessionAllSlots()");

            ALLSLOTS.Clear();

            foreach (SlotData slotData in SessionSeatruckSlots)
            {
                SEzConfig.SLOTKEYBINDINGS.TryGetValue(slotData.SlotConfigID, out string result);
                slotData.KeyCodeName = result;
                ALLSLOTS.Add(slotData.SlotID, slotData);
            }

            foreach (SlotData slotData in SessionExosuitSlots)
            {
                SEzConfig.SLOTKEYBINDINGS.TryGetValue(slotData.SlotConfigID, out string result);
                slotData.KeyCodeName = result;
                ALLSLOTS.Add(slotData.SlotID, slotData);
            }

            DebugAllSlots();
        }
Example #24
0
        private IEnumerator PatchAsync()
        {
            while (!SpriteManager.hasInitialized)
            {
                BZLogger.Debug($"{TechTypeName} : Spritemanager is not ready!");
                yield return(null);
            }

            BZLogger.Debug($"{TechTypeName} : Async patch started.");

            UnlockSprite = GetUnlockSprite();

            SpriteHandler.Main.RegisterSprite(TechType, UnlockSprite);

            PrefabHandler.Main.RegisterPrefab(this);

            LootDistributionData.SrcData srcData = new LootDistributionData.SrcData()
            {
                prefabPath   = VirtualPrefabFilename,
                distribution = GetBiomeDatas()
            };

            LootDistributionHandler.Main.AddLootDistributionData(ClassID, srcData);

            WorldEntityInfo EntityInfo = new WorldEntityInfo()
            {
                classId    = ClassID,
                techType   = TechType,
                slotType   = SlotType,
                prefabZUp  = PrefabZUp,
                cellLevel  = CellLevel,
                localScale = LocalScale
            };

            WorldEntityDatabaseHandler.Main.AddCustomInfo(ClassID, EntityInfo);
        }
        public static void Postfix(SeaTruckUpgrades __instance)
        {
            __instance.gameObject.EnsureComponent <SeaTruckStorageManager>();

            BZLogger.Debug($"Storage Manager added in SeaTruckUpgrades.Start -> Postfix Patch. ID: {__instance.gameObject.GetInstanceID()}");
        }
        /*
         * public override IEnumerator GetGameObjectAsync(IOut<GameObject> gameObject)
         * {
         *  AsyncOperationHandle<GameObject> seatruckFabricatorModuleRequest = AddressablesUtility.LoadAsync<GameObject>("WorldEntities/Tools/SeaTruckFabricatorModule.prefab");
         *  yield return seatruckFabricatorModuleRequest;
         *  GameObject seatruckFabricatorModulePrefab = seatruckFabricatorModuleRequest.Result;
         *
         *  _GameObject = UWE.Utils.InstantiateDeactivated(seatruckFabricatorModulePrefab);
         *
         *  _GameObject.SetActive(true);
         *
         *  gameObject.Set(_GameObject);
         * }
         */

        public override IEnumerator GetGameObjectAsync(IOut <GameObject> gameObject)
        {
            AsyncOperationHandle <GameObject> loadRequest_01 = AddressablesUtility.LoadAsync <GameObject>("WorldEntities/Tools/SeaTruckFabricatorModule.prefab");

            yield return(loadRequest_01);

            if (loadRequest_01.Status == AsyncOperationStatus.Failed)
            {
                BZLogger.Error("Cannot find GameObject in Resources folder at path 'WorldEntities/Tools/SeaTruckFabricatorModule.prefab'");
                yield break;
            }

            GameObject seatruckFabricatorModulePrefab = loadRequest_01.Result;

            GameObjectClone = UWE.Utils.InstantiateDeactivated(seatruckFabricatorModulePrefab, null, Vector3.zero, Quaternion.identity);

            SetupScannerModule();

            /*
             * IAssetBundleWrapperCreateRequest bundleRequest = AssetBundleManager.LoadBundleAsync("basegeneratorpieces");
             * yield return bundleRequest;
             * IAssetBundleWrapper bundle = bundleRequest.assetBundle;
             * IAssetBundleWrapperRequest loadRequest_02 = bundle.LoadAssetAsync<GameObject>("Assets/Prefabs/Base/GeneratorPieces/BaseMapRoom.prefab");
             * yield return loadRequest_02;
             * GameObject maproom = loadRequest_02.asset as GameObject;
             */
            AsyncOperationHandle <GameObject> loadRequest_02 = AddressablesUtility.LoadAsync <GameObject>("Assets/Prefabs/Base/GeneratorPieces/BaseMapRoom.prefab");

            yield return(loadRequest_02);

            if (loadRequest_02.Status == AsyncOperationStatus.Failed)
            {
                BZLogger.Error("Cannot find Prefab at path 'Assets/Prefabs/Base/GeneratorPieces/BaseMapRoom.prefab'");
                yield break;
            }

            GameObject maproom = loadRequest_02.Result;

            if (!maproom)
            {
                BZLogger.Debug("Failed to load MapRoom prefab!");
                yield break;
            }

            antenna = UWE.Utils.InstantiateDeactivated(maproom.transform.Find("Map_room_antenna").gameObject, GameObjectClone.transform, Vector3.zero, Quaternion.identity);

            AsyncOperationHandle <GameObject> loadRequest_03 = AddressablesUtility.LoadAsync <GameObject>("Submarine/Build/BatteryCharger.prefab");

            yield return(loadRequest_03);

            GameObject batteryChargerPrefab = loadRequest_03.Result;

            GameObject powerSystemRoot = new GameObject("powerSystemRoot");

            powerSystemRoot.transform.SetParent(GameObjectClone.transform);
            powerSystemRoot.transform.localPosition = new Vector3(-1.06f, -0.20f, 1.66f);
            powerSystemRoot.transform.localRotation = Quaternion.Euler(0, 270, 180);
            powerSystemRoot.transform.localScale    = new Vector3(1.78f, 1.78f, 1.0f);

            powerSystem = UWE.Utils.InstantiateDeactivated(batteryChargerPrefab, powerSystemRoot.transform, Vector3.zero, Quaternion.identity);

            AsyncOperationHandle <GameObject> loadRequest_04 = AddressablesUtility.LoadAsync <GameObject>("Submarine/Build/MapRoomFunctionality.prefab");

            yield return(loadRequest_04);

            GameObject mapRoomFunctionalityPrefab = loadRequest_04.Result;

            scannerUIRoot = new GameObject("scannerRoot");
            scannerUIRoot.transform.SetParent(GameObjectClone.transform, false);
            scannerUIRoot.transform.localScale    = new Vector3(1.14f, 1.14f, 1.14f);
            scannerUIRoot.transform.localPosition = new Vector3(1.37f, 0.07f, 1.60f);
            scannerUIRoot.transform.localRotation = Quaternion.Euler(0, 90, 0);

            scannerUI = UWE.Utils.InstantiateDeactivated(mapRoomFunctionalityPrefab.transform.Find("screen/scannerUI").gameObject, scannerUIRoot.transform, Vector3.zero, Quaternion.identity);

            SetupAntenna();
            SetupScannerUI();
            SetupPowerSystem();

            GameObjectClone.AddComponent <SeaTruckSegmentListener>();

            gameObject.Set(GameObjectClone);

            yield break;
        }
Example #27
0
        internal void AddQuickSlotText(uGUI_QuickSlots instance)
        {
            if (instance == null)
            {
                BZLogger.Debug("uGUI_QuickSlots instance is null!");
                return;
            }

            BZLogger.Debug("uGUI_QuickSlots instance is ready.");

            icons = (uGUI_ItemIcon[])instance.GetPrivateField("icons");

            if (icons == null)
            {
                BZLogger.Debug("Cannot get uGUI_ItemIcons array!");
                return;
            }

            BZLogger.Debug($"Found [{icons.Length}] uGUI_ItemIcon in array.");

            if (HandReticle.main == null)
            {
                BZLogger.Debug("HandReticle.main is null!");
                return;
            }

            BZLogger.Debug("HandReticle.main is ready.");

            for (int i = 0; i < icons.Length; i++)
            {
                if (Main.isExists_SlotExtenderZero)
                {
                    if (Player.main.GetPDA().state != PDA.State.Opening)
                    {
                        if (Player.main.inSeamoth)
                        {
                            AddTextToSlot(icons[i].transform, SLOTEXTENDERZERO_SLOTKEYSLIST[i]);
                        }
                        else if (Player.main.inExosuit)
                        {
                            if (i < 2)
                            {
                                continue;
                            }
                            else
                            {
                                AddTextToSlot(icons[i].transform, SLOTEXTENDERZERO_SLOTKEYSLIST[i - 2]);
                            }
                        }
                        else if (Player.main.IsPilotingSeatruck())
                        {
                            AddTextToSlot(icons[i].transform, SLOTEXTENDERZERO_SLOTKEYSLIST[i]);
                        }
                        else
                        {
                            AddTextToSlot(icons[i].transform, QSEzConfig.SLOTKEYSLIST[i]);
                        }
                    }
                }
                else if (Player.main.inExosuit && Player.main.GetPDA().state != PDA.State.Opening)
                {
                    if (i < 2)
                    {
                        continue;
                    }
                    else
                    {
                        AddTextToSlot(icons[i].transform, QSEzConfig.SLOTKEYSLIST[i - 2]);
                    }
                }
                else
                {
                    AddTextToSlot(icons[i].transform, QSEzConfig.SLOTKEYSLIST[i]);
                }
            }

            islabelsAdded = true;
        }
Example #28
0
        public void WakeUp()
        {
            BZLogger.Debug("Received SlotExtenderZero 'WakeUp' message.");

            CheckSlotsForSpeedUpgrades();
        }
        internal static void Postfix(SeaTruckUpgrades __instance)
        {
            __instance.gameObject.EnsureComponent <SlotExtenderZero>();

            BZLogger.Debug($"SlotExtenderZero added in SeaTruckUpgrades.Start -> Postfix Patch. ID: {__instance.gameObject.GetInstanceID()}");
        }
        internal static void Prefix(Hoverbike __instance)
        {
            __instance.SetPrivateField("slotIDs", SlotHelper.NewHoverbikeSlotIDs);

            BZLogger.Debug($"Hoverbike slotIDs patched. ID: {__instance.GetInstanceID()}");
        }