private static void StoredMenu() { CustomSubMenu.AddSubMenu("\nPresets", () => { var savedInfo = SaveSlots.GetSaved(); GenTextures(savedInfo); var list = new MelonPreferences_Entry <string>[] { Main.slot1Name,//To make index 1 referenced Main.slot1Name, Main.slot2Name, Main.slot3Name, Main.slot4Name, Main.slot5Name, Main.slot6Name, }; foreach (KeyValuePair <int, System.Tuple <float, float, float, float, float> > slot in savedInfo) { CustomSubMenu.AddSubMenu($"\n{slot.Key}-{list[slot.Key].Value}", () => { CustomSubMenu.AddSubMenu("<size=40>Save</size>", () => { CustomSubMenu.AddButton($"\n<size=30>Confirm Save</size>", () => { SaveSlots.Store(slot.Key); GenTextures(SaveSlots.GetSaved()); AMUtils.RefreshActionMenu(); }, checkmark); }, save);; CustomSubMenu.AddButton($"\n\n<size=25>{slot.Key} {list[slot.Key].Value}</size>", () => { }, StoredIcon(slot.Key)); CustomSubMenu.AddButton($"\n<size=40>Load</size>", () => { SaveSlots.LoadSlot(slot.Key); }, load); }, StoredIcon(slot.Key)); } CustomSubMenu.AddButton("\n" + "Current" + "", () => { }, curr); }, floppy); }
private static void MirrorMenu(string MirrorType, MelonPreferences_Entry <string> prefState, MelonPreferences_Entry <bool> prefPickup, MelonPreferences_Entry <float> prefDist, MelonPreferences_Entry <float> prefX, MelonPreferences_Entry <float> prefY, MelonPreferences_Entry <bool> prefPos, MelonPreferences_Entry <bool> prefTracking) { string MirrorScaleType = "MirrorScale" + (MirrorType == "PortableMirrorCeiling" ? "Z" : "Y"); float Scale = (MirrorType == "PortableMirrorMicro" ? .01f : .25f); CustomSubMenu.AddSubMenu("Mirror Type", () => { CustomSubMenu.AddButton("Full", () => { prefState.Value = "MirrorFull"; Main main = new Main(); main.OnPreferencesSaved(); }, MirrorFull); CustomSubMenu.AddButton("Optimized", () => { prefState.Value = "MirrorOpt"; Main main = new Main(); main.OnPreferencesSaved(); }, MirrorOpt); CustomSubMenu.AddButton("Cutout", () => { prefState.Value = "MirrorCutout"; Main main = new Main(); main.OnPreferencesSaved(); }, MirrorCut); CustomSubMenu.AddButton("Transparent", () => { prefState.Value = "MirrorTransparent"; Main main = new Main(); main.OnPreferencesSaved(); }, MirrorTrans); CustomSubMenu.AddButton("Cutout Solo", () => { prefState.Value = "MirrorCutoutSolo"; Main main = new Main(); main.OnPreferencesSaved(); }, MirrorCutSolo); CustomSubMenu.AddButton("Transparent Solo", () => { prefState.Value = "MirrorTransparentSolo"; Main main = new Main(); main.OnPreferencesSaved(); }, MirrorTransSolo); }, MirrorOptions); CustomSubMenu.AddToggle("Can Pickup", prefPickup.Value, (action) => { prefPickup.Value = !prefPickup.Value; Main main = new Main(); main.OnPreferencesSaved(); AMUtils.RefreshActionMenu(); }, Grab); CustomSubMenu.AddSubMenu("Location & Size", () => { if (MirrorType != "PortableMirrorMicro") { CustomSubMenu.AddButton($"Distance +\n{prefDist.Value.ToString("F2").TrimEnd('0')}", () => { prefDist.Value += Main._mirrorDistAdj; Main main = new Main(); main.OnPreferencesSaved(); AMUtils.RefreshActionMenu(); }, DistPlus); CustomSubMenu.AddButton($"Distance -\n{prefDist.Value.ToString("F2").TrimEnd('0')}", () => { prefDist.Value -= Main._mirrorDistAdj; Main main = new Main(); main.OnPreferencesSaved(); AMUtils.RefreshActionMenu(); }, DistMinus); } CustomSubMenu.AddButton("Larger", () => { prefX.Value += Scale; prefY.Value += Scale; Main main = new Main(); main.OnPreferencesSaved(); AMUtils.RefreshActionMenu(); }, SizePlus); CustomSubMenu.AddButton("Smaller", () => { if ((prefX.Value > Scale * (MirrorType == "PortableMirrorMicro" ? 2f : 1f)) && prefY.Value > Scale * (MirrorType == "PortableMirrorMicro" ? 2f : 1f)) { prefX.Value -= Scale; prefY.Value -= Scale; Main main = new Main(); main.OnPreferencesSaved(); AMUtils.RefreshActionMenu(); } }, SizeMinus); }, MirrorRuler); if (MirrorType == "PortableMirror" || MirrorType == "PortableMirrorTrans" || MirrorType == "PortableMirrorMicro") { CustomSubMenu.AddToggle("Pos&Rotation from View", prefPos.Value, (action) => { prefPos.Value = !prefPos.Value; Main main = new Main(); main.OnPreferencesSaved(); AMUtils.RefreshActionMenu(); }, PosfromView); } CustomSubMenu.AddToggle("Mirror follows you", prefTracking.Value, (action) => { prefTracking.Value = !prefTracking.Value; Main main = new Main(); main.OnPreferencesSaved(); AMUtils.RefreshActionMenu(); }, FollowsYou); }
private static void AMsubMenu() { CustomSubMenu.AddSubMenu("Portable Mirror", () => { CustomSubMenu.AddToggle("Enable", (Main._mirrorBase != null), (action) => { if (Utils.GetVRCPlayer() != null) { Main.ToggleMirror(); } AMUtils.RefreshActionMenu(); }, MirrorBase); MirrorMenu("PortableMirror", Main._base_MirrorState, Main._base_CanPickupMirror, Main._base_MirrorDistance, Main._base_MirrorScaleX, Main._base_MirrorScaleY, Main._base_PositionOnView, Main._base_AnchorToTracking); }, MirrorBase); CustomSubMenu.AddSubMenu("45 Mirror", () => { CustomSubMenu.AddToggle("Enable", (Main._mirror45 != null), (action) => { if (Utils.GetVRCPlayer() != null) { Main.ToggleMirror45(); } AMUtils.RefreshActionMenu(); }, Mirror45); MirrorMenu("PortableMirror45", Main._45_MirrorState, Main._45_CanPickupMirror, Main._45_MirrorDistance, Main._45_MirrorScaleX, Main._45_MirrorScaleY, Main.Spacer1, Main._45_AnchorToTracking); }, Mirror45); CustomSubMenu.AddSubMenu("Ceiling Mirror", () => { CustomSubMenu.AddToggle("Enable", (Main._mirrorCeiling != null), (action) => { if (Utils.GetVRCPlayer() != null) { Main.ToggleMirrorCeiling(); } AMUtils.RefreshActionMenu(); }, MirrorCeil); MirrorMenu("PortableMirrorCeiling", Main._ceil_MirrorState, Main._ceil_CanPickupMirror, Main._ceil_MirrorDistance, Main._ceil_MirrorScaleX, Main._ceil_MirrorScaleZ, Main.Spacer1, Main._ceil_AnchorToTracking); }, MirrorCeil); CustomSubMenu.AddSubMenu("Micro Mirror", () => { CustomSubMenu.AddToggle("Enable", (Main._mirrorMicro != null), (action) => { if (Utils.GetVRCPlayer() != null) { Main.ToggleMirrorMicro(); } AMUtils.RefreshActionMenu(); }, MirrorMicro); MirrorMenu("PortableMirrorMicro", Main._micro_MirrorState, Main._micro_CanPickupMirror, Main._base_MirrorDistance, Main._micro_MirrorScaleX, Main._micro_MirrorScaleY, Main._micro_PositionOnView, Main._micro_AnchorToTracking); }, MirrorMicro); CustomSubMenu.AddSubMenu("Transparent Mirror", () => { CustomSubMenu.AddToggle("Enable", (Main._mirrorTrans != null), (action) => { if (Utils.GetVRCPlayer() != null) { Main.ToggleMirrorTrans(); } AMUtils.RefreshActionMenu(); }, MirrorTrans); MirrorMenu("PortableMirrorTrans", Main._trans_MirrorState, Main._trans_CanPickupMirror, Main._trans_MirrorDistance, Main._trans_MirrorScaleX, Main._trans_MirrorScaleY, Main._trans_PositionOnView, Main._trans_AnchorToTracking); }, MirrorTrans); CustomSubMenu.AddSubMenu("Extras", () => { CustomSubMenu.AddButton($"Transparency:\n{Main.TransMirrorTrans.Value}", () => { Main.TransMirrorTrans.Value += .1f; Main main = new Main(); main.OnPreferencesSaved(); AMUtils.RefreshActionMenu(); }, TransPlus); CustomSubMenu.AddButton($"Transparency:\n{Main.TransMirrorTrans.Value}", () => { Main.TransMirrorTrans.Value -= .1f; Main main = new Main(); main.OnPreferencesSaved(); AMUtils.RefreshActionMenu(); }, TransMinus); CustomSubMenu.AddToggle("Mirrors Show In Camera", Main.MirrorsShowInCamera.Value, (action) => { Main.MirrorsShowInCamera.Value = !Main.MirrorsShowInCamera.Value; Main main = new Main(); main.OnPreferencesSaved(); AMUtils.RefreshActionMenu(); }, CameraMirror); CustomSubMenu.AddToggle("High Precision Adjust", Main._mirrorDistHighPrec, (action) => { Main._mirrorDistHighPrec = !Main._mirrorDistHighPrec; Main main = new Main(); main.OnPreferencesSaved(); AMUtils.RefreshActionMenu(); }, DistAdjIcon); CustomSubMenu.AddButton($"ColliderDepth:\n{Main.ColliderDepth.Value.ToString("F2").TrimEnd('0')}", () => { Main.ColliderDepth.Value += .1f; Main main = new Main(); main.OnPreferencesSaved(); AMUtils.RefreshActionMenu(); }, GrabDistPlus); CustomSubMenu.AddButton($"ColliderDepth:\n{Main.ColliderDepth.Value.ToString("F2").TrimEnd('0')}", () => { if (Main.ColliderDepth.Value > .1f) { Main.ColliderDepth.Value -= .1f; Main main = new Main(); main.OnPreferencesSaved(); AMUtils.RefreshActionMenu(); } }, GrabDistMinus); CustomSubMenu.AddToggle("Pickups snap to hand", Main.PickupToHand.Value, (action) => { Main.PickupToHand.Value = !Main.PickupToHand.Value; Main main = new Main(); main.OnPreferencesSaved(); AMUtils.RefreshActionMenu(); }, SnapToHand); CustomSubMenu.AddToggle("All Pickupable", Main._AllPickupable, (action) => { Main._AllPickupable = !Main._AllPickupable; Main._base_CanPickupMirror.Value = Main._AllPickupable; Main._45_CanPickupMirror.Value = Main._AllPickupable; Main._ceil_CanPickupMirror.Value = Main._AllPickupable; Main._micro_CanPickupMirror.Value = Main._AllPickupable; Main._trans_CanPickupMirror.Value = Main._AllPickupable; Main main = new Main(); main.OnPreferencesSaved(); AMUtils.RefreshActionMenu(); }, Grab); }, SettingsGear); }