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); }
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(); }