Exemplo n.º 1
0
        public override void Init()
        {
            try
            {
                pluginVersionStorable     = new JSONStorableString("Version", "");
                pluginVersionStorable.val = $"{version}";
                RegisterString(pluginVersionStorable);

                if (containingAtom.type != "Person")
                {
                    Log.Error($"Add to a Person atom, not {containingAtom.type}");
                    return;
                }

                AdjustJoints   breastControl     = containingAtom.GetStorableByID("BreastControl") as AdjustJoints;
                DAZPhysicsMesh breastPhysicsMesh = containingAtom.GetStorableByID("BreastPhysicsMesh") as DAZPhysicsMesh;
                chest    = containingAtom.GetStorableByID("chest").transform;
                geometry = containingAtom.GetStorableByID("geometry") as DAZCharacterSelector;

                Globals.BREAST_CONTROL      = breastControl;
                Globals.BREAST_PHYSICS_MESH = breastPhysicsMesh;
                Globals.GEOMETRY            = containingAtom.GetStorableByID("geometry") as DAZCharacterSelector;

                settingsMonitor = gameObject.AddComponent <SettingsMonitor>();
                settingsMonitor.Init(containingAtom);

                atomScaleListener    = new AtomScaleListener(containingAtom.GetStorableByID("rescaleObject").GetFloatJSONParam("scale"));
                breastMorphListener  = new BreastMorphListener(geometry.morphBank1.morphs);
                breastMassCalculator = new BreastMassCalculator();

                gravityMorphH   = new GravityMorphHandler();
                nippleMorphH    = new NippleErectionMorphHandler();
                gravityPhysicsH = new GravityPhysicsHandler();
                staticPhysicsH  = new StaticPhysicsHandler(GetPackagePath());

                InitPluginUILeft();
                InitPluginUIRight();
                InitSliderListeners();
                UpdateLogarithmicGravityAmount(gravity.val);

                modeChooser.setCallbackFunction = (val) =>
                {
                    UpdateButtonLabels(modeButtonGroup, val);
                    staticPhysicsH.LoadSettings(val);
                    staticPhysicsH.FullUpdate(massEstimate, softness.val, nippleErection.val);
                };
                if (string.IsNullOrEmpty(modeChooser.val))
                {
                    modeChooser.val = Const.MODES.Values.First();
                }

                StartCoroutine(SubscribeToKeybindings());
                StartCoroutine(RefreshStaticPhysics(() => settingsMonitor.enabled = true));
                StartCoroutine(MigrateFromPre2_1());
            }
            catch (Exception e)
            {
                Log.Error($"{e}");
            }
        }
Exemplo n.º 2
0
        public override void Init()
        {
            try
            {
                LoadFacial();
                LoadSharedExpressions();

                Dictionary <string, string> personalitiesMap = SuperController.singleton
                                                               .GetFilesAtPath(Utils.AbsPath("./personalities"), "expression_*.json")
                                                               .ToList()
                                                               .Aggregate(new Dictionary <string, string>(), (dict, file) => {
                    string name = FirstLetterToUpper(file.Substring(file.LastIndexOf("\\") + 1).Replace(".json", "").Replace("expression_", ""));
                    dict[name]  = file;
                    return(dict);
                });

                JSONStorableStringChooser personalityChooser = new JSONStorableStringChooser("personality", personalitiesMap.Keys.ToList(), personalitiesMap.Keys.ToArray()[0], "personality", (string personality) => {
                    LoadExpressions(personalitiesMap[personality]);
                });
                CreatePopup(personalityChooser).popupPanelHeight = 400;
                personalityChooser.storeType = JSONStorableParam.StoreType.Full;
                RegisterStringChooser(personalityChooser);

                LoadExpressions(personalitiesMap[personalitiesMap.Keys.ToArray()[0]]);

                nextPlayTime = Time.fixedTime + 1.0f;

                headAudioSource = containingAtom.GetStorableByID("HeadAudioSource") as AudioSourceControl;

                jawAdjust = containingAtom.GetStorableByID("JawControl") as AdjustJoints;
                jawAdjust.driveXRotationFromAudioSourceMultiplier      = 115.0f;
                jawAdjust.driveXRotationFromAudioSourceAdditionalAngle = 0.0f;
                jawAdjust.driveXRotationFromAudioSourceMaxAngle        = -5.0f;

                eyelidControl = containingAtom.GetStorableByID("EyelidControl") as DAZMeshEyelidControl;
                eyelidControl.SetBoolParamValue("blinkEnabled", false);
            }
            catch (Exception e)
            {
                SuperController.LogError("Exception caught: " + e);
            }
        }