Example #1
0
        private static void UpdateSliderSubscription(PushupSlider slider, float value, Action <float> action)
        {
            slider.onUpdate = f =>
            {
                action(f);
                _pushUpController.RecalculateBody(false);
            };

            slider.MakerSlider.ValueChanged.Subscribe(slider.Update);
            slider.MakerSlider.SetValue(value);
        }
Example #2
0
        private PushupSlider MakeSlider(MakerCategory category, string sliderName, RegisterSubCategoriesEvent e, float defaultValue, bool useConfigMinMax = false)
        {
            float min = 0f;
            float max = 1f;

            if (useConfigMinMax)
            {
                min = (float)ConfigSliderMin.Value / 100;
                max = (float)ConfigSliderMax.Value / 100;
            }

            var slider = new MakerSlider(category, sliderName, min, max, defaultValue, this);

            e.AddControl(slider);
            var pushUpSlider = new PushupSlider();

            pushUpSlider.MakerSlider = slider;

            return(pushUpSlider);
        }
Example #3
0
        private void RegisterCustomSubCategories(object sender, RegisterSubCategoriesEvent ev)
        {
            MakerCategory category = new MakerCategory("03_ClothesTop", "tglPushup", MakerConstants.Clothes.Bra.Position + 1, "Pushup");

            //Bra or top
            SelectButtons = ev.AddControl(new MakerRadioButtons(category, this, "Type", "Bra", "Top"));
            SelectButtons.ValueChanged.Subscribe(i => ReloadPushup());

            //Basic mode
            EnablePushupToggle = new MakerToggle(category, "Enabled", true, this);
            ev.AddControl(EnablePushupToggle);

            FirmnessSlider     = MakeSlider(category, "Firmness", ev, ConfigFirmnessDefault.Value);
            LiftSlider         = MakeSlider(category, "Lift", ev, ConfigLiftDefault.Value);
            PushTogetherSlider = MakeSlider(category, "Push Together", ev, ConfigPushTogetherDefault.Value);
            SqueezeSlider      = MakeSlider(category, "Squeeze", ev, ConfigSqueezeDefault.Value);
            CenterSlider       = MakeSlider(category, "Center Nipples", ev, ConfigNippleCenteringDefault.Value);

            FlattenNippleToggle = new MakerToggle(category, "Flatten Nipples", true, this);
            ev.AddControl(FlattenNippleToggle);

            //Advanced mode
            ev.AddControl(new MakerSeparator(category, this));

            AdvancedModeToggle = new MakerToggle(category, "Advanced Mode", false, this);
            ev.AddControl(AdvancedModeToggle);

            var copyBodyButton = new MakerButton("Copy Body To Advanced", category, this);

            ev.AddControl(copyBodyButton);
            copyBodyButton.OnClick.AddListener(CopyBodyToSliders);

            var copyBasicButton = new MakerButton("Copy Basic To Advanced", category, this);

            ev.AddControl(copyBasicButton);
            copyBasicButton.OnClick.AddListener(CopyBasicToSliders);

            PushSizeSlider               = MakeSlider(category, "Size", ev, Singleton <CustomBase> .Instance.defChaInfo.custom.body.shapeValueBody[PushupConstants.IndexSize], true);
            PushVerticalPositionSlider   = MakeSlider(category, "Vertical Position", ev, Singleton <CustomBase> .Instance.defChaInfo.custom.body.shapeValueBody[PushupConstants.IndexVerticalPosition], true);
            PushHorizontalAngleSlider    = MakeSlider(category, "Horizontal Angle", ev, Singleton <CustomBase> .Instance.defChaInfo.custom.body.shapeValueBody[PushupConstants.IndexHorizontalAngle], true);
            PushHorizontalPositionSlider = MakeSlider(category, "Horizontal Position", ev, Singleton <CustomBase> .Instance.defChaInfo.custom.body.shapeValueBody[PushupConstants.IndexHorizontalPosition], true);
            PushVerticalAngleSlider      = MakeSlider(category, "Vertical Angle", ev, Singleton <CustomBase> .Instance.defChaInfo.custom.body.shapeValueBody[PushupConstants.IndexVerticalAngle], true);
            PushDepthSlider              = MakeSlider(category, "Depth", ev, Singleton <CustomBase> .Instance.defChaInfo.custom.body.shapeValueBody[PushupConstants.IndexDepth], true);
            PushRoundnessSlider          = MakeSlider(category, "Roundness", ev, Singleton <CustomBase> .Instance.defChaInfo.custom.body.shapeValueBody[PushupConstants.IndexRoundness], true);

            PushSoftnessSlider = MakeSlider(category, "Softness", ev, Singleton <CustomBase> .Instance.defChaInfo.custom.body.bustSoftness, true);
            PushWeightSlider   = MakeSlider(category, "Weight", ev, Singleton <CustomBase> .Instance.defChaInfo.custom.body.bustWeight, true);

            PushAreolaDepthSlider = MakeSlider(category, "Areola Depth", ev, Singleton <CustomBase> .Instance.defChaInfo.custom.body.shapeValueBody[PushupConstants.IndexAreolaDepth], true);
            PushNippleWidthSlider = MakeSlider(category, "Nipple Width", ev, Singleton <CustomBase> .Instance.defChaInfo.custom.body.shapeValueBody[PushupConstants.IndexNippleWidth], true);
            PushNippleDepthSlider = MakeSlider(category, "Nipple Depth", ev, Singleton <CustomBase> .Instance.defChaInfo.custom.body.shapeValueBody[PushupConstants.IndexNippleDepth], true);

#if KK
            //Only one outfit in EC
            var coordinateList = Enum.GetNames(typeof(ChaFileDefine.CoordinateType)).ToList();
            coordinateList.Add("All");
            ev.AddControl(new MakerSeparator(category, this));
            var copyDropdown = new MakerDropdown("Copy To Coordinate", coordinateList.ToArray(), category, 0, this);
            ev.AddControl(copyDropdown);

            string[] DataTypes        = new string[] { "Basic and Advanced", "Basic", "Advanced" };
            var      copyDataDropdown = new MakerDropdown("Data To Copy", DataTypes, category, 0, this);
            ev.AddControl(copyDataDropdown);

            var copyButton = new MakerButton("Copy", category, this);
            ev.AddControl(copyButton);
            copyButton.OnClick.AddListener(delegate
            {
                bool copyBasic    = copyDataDropdown.Value == 0 || copyDataDropdown.Value == 1;
                bool copyAdvanced = copyDataDropdown.Value == 0 || copyDataDropdown.Value == 2;

                if (copyDropdown.Value == coordinateList.Count - 1) //Copy all
                {
                    for (int i = 0; i < coordinateList.Count - 1; i++)
                    {
                        CopySlidersToCoordinate(i, copyBasic, copyAdvanced);
                    }
                }
                else
                {
                    CopySlidersToCoordinate(copyDropdown.Value, copyBasic, copyAdvanced);
                }
            });
#endif
            ev.AddSubCategory(category);
        }