コード例 #1
0
        static Main()
        {
            LogMessage("Loading SaveGameProfiles");
            var harmony = HarmonyInstance.Create("com.github.bc.rimworld.mod.saveGameProfiles");

            harmony.PatchAll(Assembly.GetExecutingAssembly());
            SaveProfileManager.LoadSaveFiles();
            SaveProfileManager.LoadSaveProfiles();

            FileNameColorMethod = typeof(Dialog_FileList).GetMethod("FileNameColor",
                                                                    BindingFlags.Instance | BindingFlags.NonPublic, null, new System.Type[] { typeof(SaveFileInfo) }, null);
            DoFileInteractionMethod = typeof(Dialog_FileList).GetMethod("DoFileInteraction",
                                                                        BindingFlags.Instance | BindingFlags.NonPublic, null, new System.Type[] { typeof(string) }, null);
            ReloadFilesMethod = typeof(Dialog_FileList).GetMethod("ReloadFiles",
                                                                  BindingFlags.Instance | BindingFlags.NonPublic, null, new System.Type[] { }, null);
            DoTypeInFieldMethod = typeof(Dialog_FileList).GetMethod("DoTypeInField",
                                                                    BindingFlags.Instance | BindingFlags.NonPublic, null, new System.Type[] { typeof(Rect) }, null);

            filesField = typeof(Dialog_FileList).GetField("files",
                                                          BindingFlags.Instance | BindingFlags.NonPublic);
            bottomAreaHeightField = typeof(Dialog_FileList).GetField("bottomAreaHeight",
                                                                     BindingFlags.Instance | BindingFlags.NonPublic);
            scrollPositionField = typeof(Dialog_FileList).GetField("scrollPosition",
                                                                   BindingFlags.Instance | BindingFlags.NonPublic);
            interactButLabelField = typeof(Dialog_FileList).GetField("interactButLabel",
                                                                     BindingFlags.Instance | BindingFlags.NonPublic);
            shouldDoTypeInFieldField = typeof(Dialog_FileList).GetField("ShouldDoTypeInField",
                                                                        BindingFlags.Instance | BindingFlags.NonPublic);
            TexButton_DeleteX = ContentFinder <Texture2D> .Get("UI/Buttons/Delete", true);
        }
コード例 #2
0
        public override void DoWindowContents(Rect rect)
        {
            Text.Font = GameFont.Small;
            bool flag = false;

            if (Event.current.type == EventType.KeyDown && Event.current.keyCode == KeyCode.Return)
            {
                flag = true;
                Event.current.Use();
            }

            Rect rect2;

            Widgets.Label(new Rect(0f, 0f, rect.width, rect.height), "Enter a save profile name");
            this.curName = Widgets.TextField(new Rect(0f, (float)(rect.height - 35.0), (float)(rect.width / 2.0 - 20.0), 35f), this.curName);
            rect2        = new Rect((float)(rect.width / 2.0 + 20.0), (float)(rect.height - 35.0), (float)(rect.width / 2.0 - 20.0), 35f);

            if (!Widgets.ButtonText(rect2, "OK".Translate(), true, false, true) && !flag)
            {
                return;
            }
            if (SaveProfileManager.CreateSaveProfile(this.curName))
            {
                Find.WindowStack.TryRemove(this, true);
            }
            else
            {
                Messages.Message("Invalid profile name", MessageTypeDefOf.RejectInput);
            }

            Event.current.Use();
        }