Ejemplo n.º 1
0
        public void InitTechMatrixList(ref List <TechTypeData>[] TechnologyMatrix)
        {
            int i = 0;

            foreach (KeyValuePair <CATEGORY, TechType[]> kvp in baseTechMatrix)
            {
                if (Enum.IsDefined(typeof(Categories), (int)kvp.Key))
                {
                    TechnologyMatrix[i] = new List <TechTypeData>();

                    for (int j = 0; j < kvp.Value.Length; j++)
                    {
                        string   name;
                        TechType techType = kvp.Value[j];
                        switch (techType)
                        {
                        case TechType.SeaEmperorBaby:
                            name = Language.main.Get(TechTypeExtensions.AsString(TechType.SeaEmperorJuvenile, false));
                            break;

                        case TechType.SeaEmperorJuvenile:
                            name = Language.main.Get(TechTypeExtensions.AsString(TechType.SeaEmperorBaby, false));
                            break;

                        default:
                            name = Language.main.Get(TechTypeExtensions.AsString(kvp.Value[j], false));
                            break;
                        }
                        TechnologyMatrix[i].Add(new TechTypeData(techType, name));
                    }

                    i++;
                }
            }
        }
Ejemplo n.º 2
0
        public static void InitTechMatrixList(ref List <TechTypeData>[] TechnologyMatrix)
        {
            for (int i = 0; i < techMatrix.Length; i++)
            {
                TechnologyMatrix[i] = new List <TechTypeData>();

                for (int j = 0; j < techMatrix[i].Length; j++)
                {
                    string   name;
                    TechType techType = techMatrix[i][j];
                    if (techType == TechType.SeaEmperorBaby)
                    {
                        name = Language.main.Get(TechTypeExtensions.AsString(TechType.SeaEmperorJuvenile, false));
                    }
                    else if (techType == TechType.SeaEmperorJuvenile)
                    {
                        name = Language.main.Get(TechTypeExtensions.AsString(TechType.SeaEmperorBaby, false));
                    }
                    else
                    {
                        name = Language.main.Get(TechTypeExtensions.AsString(techMatrix[i][j], false));
                    }
                    TechnologyMatrix[i].Add(new TechTypeData(techType, name));
                }
            }
        }
Ejemplo n.º 3
0
        public void InitFullTechMatrixList(ref List <TechTypeData> TechMatrix)
        {
            int[] techTypeArray = (int[])Enum.GetValues(typeof(TechType));

            for (int i = 0; i < techTypeArray.Length; i++)
            {
                TechType techType = (TechType)techTypeArray[i];

                string name = Language.main.Get(TechTypeExtensions.AsString((TechType)techTypeArray[i], false));

                TechMatrix.Add(new TechTypeData(techType, name));
            }
        }
        public void RegisterNewArm(CraftableSeaTruckArm armPrefab, ISeaTruckArmHandlerRequest armHandlerRequest)
        {
            if (ArmTechTypes.ContainsKey(armPrefab.TechType))
            {
                return;
            }

            ArmTechTypes.Add(armPrefab.TechType, armPrefab.ArmTemplate);
            ArmHandlers.Add(armPrefab.TechType, armHandlerRequest);

            string techName = TechTypeExtensions.AsString(armPrefab.TechType);

            BZLogger.Log($"API message: New arm techtype registered, ID:[{(int)armPrefab.TechType}], name:[{techName}]");
        }
Ejemplo n.º 5
0
        public void IsExistsModdersTechTypes(ref List <TechTypeData>[] TechnologyMatrix, Dictionary <string, CATEGORY> dictionary)
        {
            foreach (KeyValuePair <string, CATEGORY> pair in dictionary)
            {
                if (pair.Value == CATEGORY.BaseModule)
                {
                    continue;
                }

                if (TechTypeHandler.TryGetModdedTechType(pair.Key, out TechType techType))
                {
                    if (TechTypeExtensions.AsString(techType, false) == pair.Key)
                    {
                        TechnologyMatrix[(int)pair.Value].Add(new TechTypeData(techType, Language.main.Get(TechTypeExtensions.AsString(techType, false))));
                    }
                }
            }
        }
Ejemplo n.º 6
0
        public void InitFullTechTypeList(ref List <TechTypeData> TechTypeList)
        {
            int[] techTypeArray = (int[])Enum.GetValues(typeof(TechType));

            for (int i = 0; i < techTypeArray.Length; ++i)
            {
                TechType techType = (TechType)techTypeArray[i];

                if (TechType_Blacklist.Contains(techType))
                {
                    continue;
                }

                string name = Language.main.Get(TechTypeExtensions.AsString((TechType)techTypeArray[i], false));

                TechTypeList.Add(new TechTypeData(techType, name));
            }

            TechTypeList.Sort();
        }
        private void SearchForModdedTechTypes()
        {
            int i = 0;

            int[] techTypeArray = (int[])Enum.GetValues(typeof(TechType));

            for (int j = 0; j < techTypeArray.Length; j++)
            {
                if (techTypeArray[j] >= 11000)
                {
                    TechType techType = (TechType)techTypeArray[j];
                    string   techName = TechTypeExtensions.AsString(techType);

                    EquipmentType equipmentType = TechData.GetEquipmentType(techType);
                    FoundModdedTechTypes.Add(techName, techType);
                    TypeDefCache.Add(techType, equipmentType);
                    BZLogger.Log($"Modded techtype found! Name: [{techName}], ID: [{(int)techType}], Type: [{equipmentType}]");
                    i++;
                }
            }

            BZLogger.Log($"Found [{i}] modded TechType(s).");
        }
Ejemplo n.º 8
0
        internal void RegisterNewArm(CraftableModdedArm armPrefab, IArmModdingRequest armModdingRequest)
        {
            if (ModdedArmPrefabs.ContainsKey(armPrefab.TechType))
            {
                return;
            }

            string techName = TechTypeExtensions.AsString(armPrefab.TechType);

            GameObject clonedArm = Instantiate(ArmsTemplateCache[armPrefab.ArmTemplate], InactiveCache.transform);

            clonedArm.name = techName;
            clonedArm.SetActive(false);
            SetupHelper graphicsHelper = clonedArm.AddComponent <SetupHelper>();

            ArmTag armTag = clonedArm.AddComponent <ArmTag>();

            armTag.armType     = armPrefab.ArmType;
            armTag.armTemplate = armPrefab.ArmTemplate;
            armTag.techType    = armPrefab.TechType;

            armModdingRequest.SetUpArm(clonedArm, graphicsHelper);

            if (armPrefab.ArmType == ArmType.ExosuitArm)
            {
                armModdingRequest.GetExosuitArmHandler(clonedArm);
            }
            else
            {
                armModdingRequest.GetSeamothArmHandler(clonedArm);
            }

            ModdedArmPrefabs.Add(armPrefab.TechType, clonedArm);

            SNLogger.Log($"New {armPrefab.ArmType} registered: TechType ID: [{(int)armPrefab.TechType}], TechType name: [{techName}]");
        }
Ejemplo n.º 9
0
        public void InitTechMatrixList(ref List <TechTypeData>[] TechnologyMatrix)
        {
            int i = 0;

            foreach (KeyValuePair <TechCategory, TechType[]> kvp in baseTechMatrix)
            {
                if (Enum.IsDefined(typeof(Categories), (int)kvp.Key))
                {
                    TechnologyMatrix[i] = new List <TechTypeData>();

                    for (int j = 0; j < kvp.Value.Length; j++)
                    {
                        string   name;
                        TechType techType = kvp.Value[j];

                        name = Language.main.Get(TechTypeExtensions.AsString(kvp.Value[j], false));

                        TechnologyMatrix[i].Add(new TechTypeData(techType, name));
                    }

                    i++;
                }
            }
        }
Ejemplo n.º 10
0
        public void GetModdedTechTypes(ref List <TechTypeData>[] TechnologyMatrix)
        {
            ModdedTechTypeHelper mHelper = new ModdedTechTypeHelper();

            foreach (KeyValuePair <string, TechType> kvp in mHelper.FoundModdedTechTypes)
            {
                EquipmentType equipmentType = mHelper.TypeDefCache[kvp.Value];

                switch (equipmentType)
                {
                case EquipmentType.CyclopsModule:
                case EquipmentType.ExosuitArm:
                case EquipmentType.ExosuitModule:
                case EquipmentType.SeamothModule:
                case EquipmentType.VehicleModule:
                case (EquipmentType)100:
                    TechnologyMatrix[(int)TechCategory.Upgrades].Add(new TechTypeData(kvp.Value, Language.main.Get(TechTypeExtensions.AsString(kvp.Value, false))));
                    break;
                }
            }

            SNLogger.Debug("CheatManager", "Modded TechTypes checked and added.");
        }
Ejemplo n.º 11
0
        public void GetModdedTechTypes(ref List <TechTypeData>[] TechnologyMatrix)
        {
            ModdedTechTypeHelper mHelper = new ModdedTechTypeHelper();

            foreach (KeyValuePair <string, TechType> kvp in mHelper.FoundModdedTechTypes)
            {
                EquipmentType equipmentType = mHelper.TypeDefCache[kvp.Value];

                switch (equipmentType)
                {
                case EquipmentType.ExosuitArm:
                case EquipmentType.ExosuitModule:
                case EquipmentType.HoverbikeModule:
                case EquipmentType.SeamothModule:
                case EquipmentType.SeaTruckModule:
                case EquipmentType.VehicleModule:
                case (EquipmentType)200:
                    TechnologyMatrix[(int)TechCategory.Upgrades].Add(new TechTypeData(kvp.Value, Language.main.Get(TechTypeExtensions.AsString(kvp.Value, false))));
                    break;

                case EquipmentType.Body:
                case EquipmentType.Chip:
                case EquipmentType.Foots:
                case EquipmentType.Gloves:
                case EquipmentType.Head:
                case EquipmentType.Tank:
                    TechnologyMatrix[(int)TechCategory.Equipment].Add(new TechTypeData(kvp.Value, Language.main.Get(TechTypeExtensions.AsString(kvp.Value, false))));
                    break;

                case EquipmentType.Hand:
                    TechnologyMatrix[(int)TechCategory.Tools].Add(new TechTypeData(kvp.Value, Language.main.Get(TechTypeExtensions.AsString(kvp.Value, false))));
                    break;

                case EquipmentType.BatteryCharger:
                case EquipmentType.PowerCellCharger:
                    TechnologyMatrix[(int)TechCategory.Electronics].Add(new TechTypeData(kvp.Value, Language.main.Get(TechTypeExtensions.AsString(kvp.Value, false))));
                    break;
                }

                if (kvp.Key.Equals("SeaTruckScannerModule"))
                {
                    TechnologyMatrix[(int)TechCategory.Vehicles].Add(new TechTypeData(kvp.Value, Language.main.Get(TechTypeExtensions.AsString(kvp.Value, false))));
                }
            }
        }