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