Beispiel #1
0
        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);
        }
Beispiel #2
0
        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);
        }
Beispiel #3
0
        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);
        }