コード例 #1
0
        public static void m_dicSliderPartsTypeBtnName_ext()
        {
            if (m_dicSliderPartsTypeBtnName_ext_flag)
            {
                return;
            }
            m_dicSliderPartsTypeBtnName_ext_flag = true;

            string text = "edit_category_define_creator.nei";

            Dictionary <SceneEditInfo.EMenuCategory, int> dictionary = new Dictionary <SceneEditInfo.EMenuCategory, int>();

            using (AFileBase afileBase = GameUty.FileSystemMod.FileOpen(text))
            {
                using (CsvParser csvParser = new CsvParser())
                {
                    bool condition = csvParser.Open(afileBase);
                    NDebug.Assert(condition, text + "\nopen failed.");
                    for (int i = 1; i < csvParser.max_cell_y; i++)
                    {
                        if (csvParser.IsCellToExistData(0, i))
                        {
                            int num = 0;
                            MPN key = MPN.null_mpn;
                            try
                            {
                                key = (MPN)Enum.Parse(typeof(MPN), csvParser.GetCellAsString(num++, i));
                            }
                            catch
                            {
                            }
                            SceneEditInfo.CCateNameType ccateNameType = new SceneEditInfo.CCateNameType();
                            ccateNameType.m_eMenuCate = SceneEditInfo.EMenuCategory.頭;
                            try
                            {
                                ccateNameType.m_eMenuCate = (SceneEditInfo.EMenuCategory)Enum.Parse(typeof(SceneEditInfo.EMenuCategory), csvParser.GetCellAsString(num++, i));
                            }
                            catch
                            {
                            }
                            ccateNameType.m_eType = SceneEditInfo.CCateNameType.EType.Item;
                            try
                            {
                                ccateNameType.m_eType = (SceneEditInfo.CCateNameType.EType)Enum.Parse(typeof(SceneEditInfo.CCateNameType.EType), csvParser.GetCellAsString(num++, i));
                            }
                            catch
                            {
                            }
                            ccateNameType.m_ePartsType          = csvParser.GetCellAsString(num++, i);
                            ccateNameType.m_strBtnPartsTypeName = csvParser.GetCellAsString(num++, i);
                            ccateNameType.m_nIdx = 50 + i;
                            SceneEditInfo.dicPartsTypePair_[key] = ccateNameType;
                        }
                    }
                }
            }
        }
コード例 #2
0
ファイル: Hooks.cs プロジェクト: Neerhom/COM3D2.ModLoader
        // add data from *phot_bg_list*.nei files to PhotoBGData.bg_data_

        public static void PhotoBGext()
        {
            string[] bg_nelist = null;
            bg_nelist = GameUty.FileSystemMod.GetList("PhotoBG_NEI", AFileSystemBase.ListType.AllFile);


            if (bg_nelist == null || 0 == bg_nelist.Length)
            {
                return;
            }
            foreach (string str in bg_nelist)
            {
                string nei_filename = Path.GetFileName(str);

                if (Path.GetExtension(nei_filename) == ".nei" && nei_filename != "phot_bg_list.nei")
                {
                    using (AFileBase aFileBase2 = GameUty.FileSystemMod.FileOpen(nei_filename))
                    {
                        using (CsvParser csvParser = new CsvParser())
                        {
                            if (csvParser.Open(aFileBase2))
                            {
                                for (int k = 1; k < csvParser.max_cell_y; k++)
                                {
                                    int         num2        = 1;
                                    PhotoBGData photoBGData = new PhotoBGData(); // this requires prepatched assembly to compile
                                    photoBGData.id                 = "";
                                    photoBGData.category           = csvParser.GetCellAsString(num2++, k);
                                    photoBGData.name               = csvParser.GetCellAsString(num2++, k);
                                    photoBGData.create_prefab_name = csvParser.GetCellAsString(num2++, k);
                                    //assign id from prefab/bundles string
                                    //this is done because save/load of objects in photomode is based on id
                                    if (!string.IsNullOrEmpty(photoBGData.create_prefab_name))
                                    {
                                        photoBGData.id = photoBGData.create_prefab_name.GetHashCode().ToString();
                                        // this feels wrong, but i suspect the KISS might convert id to int at some point
                                        // so i'd rather be on safe side
                                    }

                                    string check = csvParser.GetCellAsString(num2++, k);
                                    if (String.IsNullOrEmpty(check) || GameUty.BgFiles.ContainsKey(photoBGData.create_prefab_name.ToLower() + ".asset_bg"))
                                    {
                                        PhotoBGData.bg_data_.Add(photoBGData);
                                    }
                                }
                            }
                            else
                            {
                                Debug.Log($"Skipping invalid file: Mod/{str}");
                            }
                        }
                    }
                }
            }
        }
コード例 #3
0
        private static void CreateMaidClassNameMap()
        {
            if (0 < maidClassIDtoNameDic.Count)
            {
                return;
            }
            int maxVal = 0;

            using (AFileBase aFileBase = GameUty.FileSystem.FileOpen("maid_class_infotext.nei"))
            {
                using (CsvParser csvParser = new CsvParser())
                {
                    bool condition = csvParser.Open(aFileBase);
                    NDebug.Assert(condition, "file open error[maid_class_infotext.nei]");
                    for (int i = 1; i < csvParser.max_cell_y; i++)
                    {
                        if (!csvParser.IsCellToExistData(0, i))
                        {
                            continue;
                        }
                        string cellAsString = csvParser.GetCellAsString(0, i);
                        maidClassIDtoNameDic.Add(maxVal, cellAsString);
                        maxVal++;
                    }
                }
            }
        }
コード例 #4
0
ファイル: Hooks.cs プロジェクト: Neerhom/COM3D2.ModLoader
        // add data from *phot_motion_list*.nei files to PhotoMotionData.motion_data_
        public static void PhotMotExt()
        {
            string[] PhotoMotNei = null;

            PhotoMotNei = GameUty.FileSystemMod.GetList("PhotMot_NEI", AFileSystemBase.ListType.AllFile);


            //   if (PhotoMotNei == null || PhotoMotNei.Length == 0)
            //   { return; }

            foreach (string str in PhotoMotNei)
            {
                string nei_filename = Path.GetFileName(str);

                if (Path.GetExtension(nei_filename) == ".nei" && nei_filename != "phot_motion_list.nei")
                {
                    using (AFileBase aFileBase = GameUty.FileSystem.FileOpen(nei_filename))
                    {
                        using (CsvParser csvParser = new CsvParser())
                        {
                            if (csvParser.Open(aFileBase))
                            {
                                for (int i = 1; i < csvParser.max_cell_y; i++)
                                {
                                    int             num             = 0;
                                    PhotoMotionData photoMotionData = new PhotoMotionData(); // this requires prepatched assembly to compile
                                    photoMotionData.id                = (long)csvParser.GetCellAsInteger(num++, i);
                                    photoMotionData.category          = csvParser.GetCellAsString(num++, i);
                                    photoMotionData.name              = csvParser.GetCellAsString(num++, i);
                                    photoMotionData.direct_file       = csvParser.GetCellAsString(num++, i);
                                    photoMotionData.is_loop           = (csvParser.GetCellAsString(num++, i) == "○");
                                    photoMotionData.call_script_fil   = csvParser.GetCellAsString(num++, i);
                                    photoMotionData.call_script_label = csvParser.GetCellAsString(num++, i);
                                    photoMotionData.is_mod            = false;
                                    string cellAsString = csvParser.GetCellAsString(num++, i);
                                    bool   flag         = csvParser.GetCellAsString(num++, i) == "○";
                                    photoMotionData.use_animekey_mune_l = (photoMotionData.use_animekey_mune_r = flag);
                                    photoMotionData.is_man_pose         = (csvParser.GetCellAsString(num++, i) == "○");
                                    PhotoMotionData.motion_data_.Add(photoMotionData);
                                }
                            }
                            else
                            {
                                Debug.Log($"Skipping invalid file: Mod/{str}");
                            }
                        }
                    }
                }
            }
        }
コード例 #5
0
        public static void m_dicPartsTypeCamera_ext()
        {
            if (m_dicPartsTypeCamera_ext_flag)
            {
                return;
            }
            m_dicPartsTypeCamera_ext_flag = true;
            string text = "edit_attention_point_define_creator.nei";

            using (AFileBase afileBase = GameUty.FileSystemMod.FileOpen(text))
            {
                using (CsvParser csvParser = new CsvParser())
                {
                    bool condition = csvParser.Open(afileBase);
                    NDebug.Assert(condition, text + "\nopen failed.");
                    for (int i = 1; i < csvParser.max_cell_y; i++)
                    {
                        if (csvParser.IsCellToExistData(0, i))
                        {
                            SceneEditInfo.CamToBone value = default(SceneEditInfo.CamToBone);
                            int num = 0;
                            MPN key = MPN.null_mpn;
                            try
                            {
                                key = (MPN)Enum.Parse(typeof(MPN), csvParser.GetCellAsString(num++, i));
                            }
                            catch
                            {}
                            value.bone     = csvParser.GetCellAsString(num++, i);
                            value.angle    = wf.Parse.Vector2(csvParser.GetCellAsString(num++, i));
                            value.distance = csvParser.GetCellAsReal(num++, i);
                            SceneEditInfo.m_dicPartsTypeCamera_[key] = value;
                        }
                    }
                }
            }
        }
コード例 #6
0
        private static void CreateEnabledYotogiClassMap()
        {
            Type       yotogiClassType = typeof(Maid).Assembly.GetType("param.YotogiClassType");
            MethodInfo getYotogiClassIdFromNameMethod = typeof(MaidParam).GetMethod(
                "GetYotogiClassIdFromName",
                BindingFlags.Public | BindingFlags.Static);
            bool isOldVersion = yotogiClassType != null;

            Action <string> readYotogiClasses = delegate(string fileName)
            {
                fileName += ".nei";
                if (!GameUty.FileSystem.IsExistentFile(fileName))
                {
                    return;
                }
                using (AFileBase aFileBase = GameUty.FileSystem.FileOpen(fileName))
                {
                    using (CsvParser csvParser = new CsvParser())
                    {
                        bool condition = csvParser.Open(aFileBase);
                        NDebug.Assert(condition, fileName + " open failed.");
                        for (int k = 1; k < csvParser.max_cell_y; k++)
                        {
                            if (!csvParser.IsCellToExistData(0, k))
                            {
                                continue;
                            }
                            string className = csvParser.GetCellAsString(0, k);
                            int    key       = isOldVersion
                                      ? (int)Enum.Parse(yotogiClassType, className, true)
                                      : (int)getYotogiClassIdFromNameMethod.Invoke(null, new object[] { className });
                            if (!yotogiClassToNameDic.ContainsKey(key))
                            {
                                yotogiClassToNameDic.Add(key, className);
                            }
                            EnabledYotogiClasses.Add(key);
                        }
                    }
                }
            };

            readYotogiClasses("yotogi_class_enabled_list");
            foreach (string path in GameUty.PathList)
            {
                readYotogiClasses($"yotogi_class_enabled_list_{path}");
            }
            EnabledYotogiClasses.Sort();
        }
コード例 #7
0
        public static void m_dicPartsTypeWearMode_ext()
        {
            if (m_dicPartsTypeWearMode_ext_flag)
            {
                return;
            }
            m_dicPartsTypeWearMode_ext_flag = true;
            string text = "edit_mask_define_creator.nei";

            SceneEditInfo.dicPartsTypeWearMode_ = new Dictionary <MPN, TBody.MaskMode>();
            using (AFileBase afileBase = GameUty.FileSystem.FileOpen(text))
            {
                using (CsvParser csvParser = new CsvParser())
                {
                    bool condition = csvParser.Open(afileBase);

                    for (int i = 1; i < csvParser.max_cell_y; i++)
                    {
                        if (csvParser.IsCellToExistData(0, i))
                        {
                            int num = 0;
                            MPN key = MPN.null_mpn;
                            try
                            {
                                key = (MPN)Enum.Parse(typeof(MPN), csvParser.GetCellAsString(num++, i));
                            }
                            catch
                            {}
                            TBody.MaskMode value = TBody.MaskMode.None;
                            try
                            {
                                value = (TBody.MaskMode)Enum.Parse(typeof(TBody.MaskMode), csvParser.GetCellAsString(num++, i));
                            }
                            catch
                            {
                            }

                            SceneEditInfo.dicPartsTypeWearMode_[key] = value;
                        }
                    }
                }
            }
        }
コード例 #8
0
        private static void SetEverydaySub(FreeModeItemEveryday.ScnearioType type, string fileName, AbstractFreeModeItem.GameMode gameMode, string fixingFlagText)
        {
            AFileBase afileBase;

            if (gameMode == AbstractFreeModeItem.GameMode.CM3D2)
            {
                afileBase = GameUty.FileSystemOld.FileOpen(fileName);
            }
            else
            {
                if (gameMode != AbstractFreeModeItem.GameMode.COM3D)
                {
                    return;
                }
                afileBase = GameUty.FileSystem.FileOpen(fileName);
            }
            using (afileBase)
            {
                using (CsvParser csvParser = new CsvParser())
                {
                    bool condition = csvParser.Open(afileBase);
                    NDebug.Assert(condition, fileName + "\nopen failed.");
                    for (int i = 1; i < csvParser.max_cell_y; i++)
                    {
                        if (csvParser.IsCellToExistData(0, i))
                        {
                            int cellAsInteger = csvParser.GetCellAsInteger(0, i);

                            int num = 1;
                            if (gameMode != AbstractFreeModeItem.GameMode.CM3D2 || type != FreeModeItemEveryday.ScnearioType.Nitijyou)
                            {
                                string name            = csvParser.GetCellAsString(num++, i);
                                string call_file_name  = csvParser.GetCellAsString(num++, i);
                                string check_flag_name = csvParser.GetCellAsString(num++, i);
                                if (gameMode == AbstractFreeModeItem.GameMode.COM3D)
                                {
                                    bool netorare = (csvParser.GetCellAsString(num++, i) == "○");
                                }
                                string        info_text = csvParser.GetCellAsString(num++, i);
                                List <string> list      = new List <string>();
                                for (int j = 0; j < 9; j++)
                                {
                                    if (csvParser.IsCellToExistData(num, i))
                                    {
                                        list.Add(csvParser.GetCellAsString(num, i));
                                    }
                                    num++;
                                }
                                int subHerionID = csvParser.GetCellAsInteger(num++, i);
                                while (csvParser.IsCellToExistData(num, 0))
                                {
                                    if (csvParser.GetCellAsString(num, i) == "○")
                                    {
                                        string cellAsString = csvParser.GetCellAsString(num, 0);
                                        //Personal.Data data = Personal.GetData(cellAsString);
                                    }
                                    num++;
                                }

                                if (GameMain.Instance.CharacterMgr.status.GetFlag(fixingFlagText + check_flag_name) == 0)
                                {
                                    MyLog.LogMessage("SetEverydaySub.Flag"
                                                     , check_flag_name
                                                     , call_file_name
                                                     , cellAsInteger
                                                     , name
                                                     , info_text
                                                     );
                                    GameMain.Instance.CharacterMgr.status.SetFlag(fixingFlagText + check_flag_name, 1);
                                }
                            }
                        }
                    }
                }
            }
        }
コード例 #9
0
ファイル: Hooks.cs プロジェクト: Neerhom/COM3D2.ModLoader
        // add data from *phot_bg_object_list*.nei files to PhotoBGObjectData.bg_data_
        public static void PhotoBGobjext()
        {
            string[] BgObj_list = null;

            BgObj_list = GameUty.FileSystemMod.GetList("PhotoBG_OBJ_NEI", AFileSystemBase.ListType.AllFile);


            if (BgObj_list == null || 0 == BgObj_list.Length)
            {
                return;
            }


            foreach (string str in BgObj_list)
            {
                string nei_filename = Path.GetFileName(str);


                if (Path.GetExtension(nei_filename) == ".nei" && nei_filename != "phot_bg_object_list.nei")
                {
                    using (AFileBase aFileBase = GameUty.FileSystemMod.FileOpen(nei_filename))
                    {
                        using (CsvParser csvParser = new CsvParser())
                        {
                            if (csvParser.Open(aFileBase))
                            {
                                for (int i = 1; i < csvParser.max_cell_y; i++)
                                {
                                    int num = 1;
                                    PhotoBGObjectData photoBGObjectData = new PhotoBGObjectData(); // this requires prepatched assembly to compile
                                    photoBGObjectData.id                       = 0;                // not sure if't necessary for id to actually have a value
                                    photoBGObjectData.category                 = csvParser.GetCellAsString(num++, i);
                                    photoBGObjectData.name                     = csvParser.GetCellAsString(num++, i);
                                    photoBGObjectData.create_prefab_name       = csvParser.GetCellAsString(num++, i);
                                    photoBGObjectData.create_asset_bundle_name = csvParser.GetCellAsString(num++, i);
                                    //assign id from rpefab/bundles string
                                    //this is done because save/load of objects in photomode is based on id
                                    if (!string.IsNullOrEmpty(photoBGObjectData.create_prefab_name))
                                    {
                                        photoBGObjectData.id = photoBGObjectData.create_prefab_name.GetHashCode();
                                    }
                                    else if (!string.IsNullOrEmpty(photoBGObjectData.create_asset_bundle_name))
                                    {
                                        photoBGObjectData.id = photoBGObjectData.create_asset_bundle_name.GetHashCode();
                                    }
                                    string check = csvParser.GetCellAsString(num++, i);
                                    if (String.IsNullOrEmpty(check) || GameUty.BgFiles.ContainsKey(photoBGObjectData.create_asset_bundle_name.ToLower() + ".asset_bg"))
                                    {
                                        PhotoBGObjectData.bg_data_.Add(photoBGObjectData);
                                    }
                                }
                            }
                            else
                            {
                                Debug.Log($"Skipping invalid file: Mod/{str}");
                            }
                        }
                    }
                }
            }
        }
コード例 #10
0
ファイル: Hooks.cs プロジェクト: Neerhom/COM3D2.ModLoader
        // add data to desk_item_detail.nei and desk_item_category.nei
        public static void DeskData_Ext()
        {
#if DEBUG
            Console.WriteLine("Console.Writeline says hi");
            Debug.Log("Debug.Log says hi");
#endif

            string[] DeskItemList = null;
            DeskItemList = GameUty.FileSystemMod.GetList("DeskItem_NEI", AFileSystemBase.ListType.AllFile);
            if (DeskItemList == null || DeskItemList.Length == 0)
            {
                return;
            }

            foreach (string str in  DeskItemList)
            {
                string neifile   = Path.GetFileName(str);
                string extension = Path.GetExtension(neifile);

                // check if file is indeed a .nei file and it snot mennt to overwrite base files
                // also check if the file is category type or detail type to determine the processing
                // only files that contain category in their name are assumed to be category files all others nei files are assumbed to be detail files

                if (neifile.Contains("category") && extension == ".nei" && neifile != "desk_item_category.nei")
                {
                    using (AFileBase afileBase = GameUty.FileSystem.FileOpen(neifile))
                    {
                        using (CsvParser csvParser = new CsvParser())
                        {
                            bool condition = csvParser.Open(afileBase);
                            for (int k = 1; k < csvParser.max_cell_y; k++)
                            {
                                if (!csvParser.IsCellToExistData(0, k))
                                {
                                    break;
                                }
                                int    cellAsInteger = csvParser.GetCellAsInteger(0, k);
                                string cellAsString  = csvParser.GetCellAsString(1, k);
                                if (!DeskManager.item_category_data_dic_.ContainsKey(cellAsInteger))
                                {
                                    DeskManager.item_category_data_dic_.Add(cellAsInteger, cellAsString);
                                }
                            }
                        }
                    }
                }
                else if (neifile != "desk_item_detail.nei" && extension == ".nei")
                {
                    using (AFileBase afileBase = GameUty.FileSystem.FileOpen(neifile))
                    {
                        using (CsvParser csvParser = new CsvParser())
                        {
                            if (csvParser.Open(afileBase))
                            {
                                for (int j = 1; j < csvParser.max_cell_y; j++)
                                {
                                    if (csvParser.IsCellToExistData(0, j))
                                    {
                                        int cellAsInteger2            = csvParser.GetCellAsInteger(0, j);
                                        DeskManager.ItemData itemData = new DeskManager.ItemData(csvParser, j);


                                        // check if it's a prefab data and add it if it is
                                        // is impossible to check if prefab exists in resources files
                                        // so if referenced prefab doesn't exist i ngame files, the entry isn't going to work properly in game
                                        if (!string.IsNullOrEmpty(itemData.prefab_name))
                                        {
                                            itemData.id = itemData.prefab_name.GetHashCode();// override the id from file with hash of prefab string to minimize id conflicts
                                            DeskManager.item_detail_data_dic_.Add(itemData.id, itemData);
                                        }

                                        // check if entry refers to asset bundle, and if it is, check if it exists before addding the data
                                        else if (!string.IsNullOrEmpty(itemData.asset_name) && GameUty.BgFiles.ContainsKey(itemData.asset_name + ".asset_bg"))
                                        {
                                            itemData.id = itemData.asset_name.GetHashCode();
                                            DeskManager.item_detail_data_dic_.Add(itemData.id, itemData);
                                        }
                                    }
                                }
                            }
                            else
                            {
                                Debug.Log($"Skipping invalid file: Mod/{str}");
                            }
                        }
                    }
                }
            }
        }