Example #1
0
        internal static void LoadConfig()
        {
            PROGRAM_VERSION = FileVersionInfo.GetVersionInfo(Assembly.GetExecutingAssembly().Location).FileVersion;

            if (!CheckConfig())
            {
                CreateDefaultConfigFile();
            }

            try
            {
                Section_hotkeys = ParserHelper.GetAllKeyValuesFromSection(FILENAME, SECTIONS[0], SECTION_Hotkeys);

                int.TryParse(ParserHelper.GetKeyValue(FILENAME, SECTIONS[1], SECTION_Settings[0]), out int result);
                MAXSLOTS = result < 5 || result > 12 ? 12 : result;

                TEXTCOLOR = ColorHelper.GetColor(ParserHelper.GetKeyValue(FILENAME, SECTIONS[1], SECTION_Settings[1]));

                BZLogger.Log("Configuration loaded.");
            }
            catch
            {
                BZLogger.Error("An error occurred while loading the configuration file!");
            }
        }
Example #2
0
        private static bool Config_Check()
        {
            BZLogger.Debug("Method call: SEzConfig.Config_Check()");

            if (!File.Exists(FILENAME))
            {
                BZLogger.Error("Configuration file open error!");
                return(false);
            }

            CONFIG_VERSION = ParserHelper.GetKeyValue(FILENAME, "SlotExtenderZero", "Version");

            if (!CONFIG_VERSION.Equals(PROGRAM_VERSION))
            {
                BZLogger.Error("Configuration file version error!");
                return(false);
            }

            if (!ParserHelper.IsSectionKeysExists(FILENAME, "Hotkeys", SECTION_HOTKEYS))
            {
                BZLogger.Error("Configuration file [Hotkeys] section error!");
                return(false);
            }

            if (!ParserHelper.IsSectionKeysExists(FILENAME, "Settings", SECTION_SETTINGS))
            {
                BZLogger.Error("Configuration file [Settings] section error!");
                return(false);
            }

            return(true);
        }
Example #3
0
        private static bool CheckConfig()
        {
            if (!File.Exists(FILENAME))
            {
                BZLogger.Error("Configuration file open error!");
                return(false);
            }

            CONFIG_VERSION = ParserHelper.GetKeyValue(FILENAME, "QuickSlotExtenderZero", "Version");

            if (!CONFIG_VERSION.Equals(PROGRAM_VERSION))
            {
                BZLogger.Error("Configuration file version error!");
                return(false);
            }

            if (!ParserHelper.IsSectionKeysExists(FILENAME, SECTIONS[0], SECTION_Hotkeys))
            {
                BZLogger.Error($"Configuration {SECTIONS[0]} section error!");
                return(false);
            }

            if (!ParserHelper.IsSectionKeysExists(FILENAME, SECTIONS[1], SECTION_Settings))
            {
                BZLogger.Error($"Configuration {SECTIONS[1]} section error!");
                return(false);
            }

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

            PROGRAM_VERSION = FileVersionInfo.GetVersionInfo(Assembly.GetExecutingAssembly().Location).FileVersion;

            if (!Config_Check())
            {
                Config_CreateDefault();
            }

            try
            {
                Hotkeys_Config = ParserHelper.GetAllKeyValuesFromSection(FILENAME, "Hotkeys", SECTION_HOTKEYS);

                int.TryParse(ParserHelper.GetKeyValue(FILENAME, "Settings", SECTION_SETTINGS[0]), out int result);
                MAXSLOTS = result < 5 || result > 12 ? 12 : result;

                EXTRASLOTS = MAXSLOTS - 4;

                TEXTCOLOR = ColorHelper.GetColor(ParserHelper.GetKeyValue(FILENAME, "Settings", SECTION_SETTINGS[1]));

                SLOT_LAYOUT = ParserHelper.GetKeyValue(FILENAME, "Settings", SECTION_SETTINGS[2]) == "Circle" ? SlotLayout.Circle : SlotLayout.Grid;

                isSeatruckArmsExists = BZCommon.ReflectionHelper.IsNamespaceExists("SeaTruckArms");

                isSeatruckScannerModuleExists = BZCommon.ReflectionHelper.IsNamespaceExists("SeaTruckScannerModule");

                BZLogger.Log("Configuration loaded.");
            }
            catch
            {
                BZLogger.Error("An error occurred while loading the configuration file!");
            }
        }
        internal static void CreateDefaultConfigFile()
        {
            BZLogger.Warn("Configuration file is missing or wrong version. Creating a new one.");

            try
            {
                ParserHelper.CreateDefaultConfigFile(FILENAME, PROGRAM_NAME, PROGRAM_VERSION, DEFAULT_CONFIG);
            }
            catch
            {
                BZLogger.Error("Creating new configuration file has failed!");
            }
        }
Example #6
0
        internal static void CreateDefaultConfigFile()
        {
            BZLogger.Warn("Configuration file is missing or wrong version. Trying to create a new one.");

            try
            {
                ParserHelper.CreateDefaultConfigFile(FILENAME, "QuickSlotExtenderZero", PROGRAM_VERSION, DEFAULT_CONFIG);
                ParserHelper.AddInfoText(FILENAME, SECTIONS[1], "TextColor possible values: Red, Green, Blue, Yellow, White, Magenta, Cyan, Orange, Lime, Amethyst");

                BZLogger.Log("The new configuration file was successfully created.");
            }
            catch
            {
                BZLogger.Error("An error occured while creating the new configuration file!");
            }
        }
Example #7
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!");
            }
        }
        /*
         * 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 #9
0
        public override IEnumerator GetGameObjectAsync(IOut <GameObject> gameObject)
        {
            if (GameObjectClone != null)
            {
                gameObject.Set(GameObjectClone);
                yield break;
            }

            GameObject result;

            if (FragmentTemplate != TechType.None)
            {
                CoroutineTask <GameObject> request = CraftData.GetPrefabForTechTypeAsync(FragmentTemplate);
                yield return(request);

                result = request.GetResult();

                if (result == null)
                {
                    BZLogger.Error($"Cannot instantiate prefab from TechType '{FragmentTemplate}'!");
                    yield break;
                }

                GameObjectClone = UWE.Utils.InstantiateDeactivated(result);
            }
            else if (!string.IsNullOrEmpty(PrefabFileName))
            {
                IPrefabRequest prefabRequest = PrefabDatabase.GetPrefabForFilenameAsync(PrefabFilePath);
                yield return(prefabRequest);

                if (prefabRequest.TryGetPrefab(out result))
                {
                    //GameObjectClone = UnityEngine.Object.Instantiate(result);
                    GameObjectClone = UWE.Utils.InstantiateDeactivated(result);
                }
                else
                {
                    BZLogger.Error($"Cannot find prefab in PrefabDatabase at path '{PrefabFilePath}!");
                    yield break;
                }
            }

            GameObjectClone.name = TechTypeName;

            PrefabIdentifier prefabIdentifier = GameObjectClone.GetComponent <PrefabIdentifier>();

            prefabIdentifier.ClassId = TechTypeName;

            TechTag techTag = GameObjectClone.GetComponent <TechTag>();

            techTag.type = TechType;

            ResourceTracker resourceTracker = GameObjectClone.GetComponent <ResourceTracker>();

            resourceTracker.overrideTechType = TechType.Fragment;

            ModifyGameObject();

            AddFragmentTracker(GameObjectClone);

            BZLogger.Debug($"GetGameObjectAsync called for fragment: {TechTypeName}");

            gameObject.Set(GameObjectClone);

            yield break;
        }