Пример #1
0
        public Appearance(DollMaker dm) : base(dm)
        {
            dm.mainControls.RegisterTab("Morphs", moduleUI);

            morphSearch = new MorphSearch(this);

            JSONArray bodyUI = DollMaker.CONFIG_JSON["bodyUI"].AsArray;

            for (int i = 0; i < bodyUI.Count; i++)
            {
                JSONClass uiPart     = bodyUI[i].AsObject;
                string    title      = uiPart["title"].Value;
                string    boneName   = uiPart["bone"].Value;
                string    searchTerm = uiPart["search"].Value;
                float     x          = uiPart["offset"]["x"].AsFloat;
                float     y          = uiPart["offset"]["y"].AsFloat;
                float     z          = uiPart["offset"]["z"].AsFloat;

                DAZBone bone = atom.GetStorableByID(boneName) as DAZBone;

                BoneAttachedUI boneUI = new BoneAttachedUI(title, bone, ui, new Vector3(x, y, z), moduleUI);
                boneUI.button.button.onClick.AddListener(() =>
                {
                    morphSearch.searchBox.text = searchTerm;
                });
                baUI.Add(boneUI);
            }

            UIDynamicButton loadMorphsButton = CreateModuleButton("Load Morphs");

            loadMorphsButton.button.onClick.AddListener(() =>
            {
                string appearancePath = SuperController.singleton.savesDir + "Person" + "\\appearance";
                SuperController.singleton.fileBrowserUI.defaultPath = appearancePath;
                SuperController.singleton.fileBrowserUI.SetTextEntry(b: false);
                SuperController.singleton.fileBrowserUI.Show((string saveName) =>
                {
                    if (!(saveName != string.Empty))
                    {
                        return;
                    }
                    SuperController.singleton.SetLoadDirFromFilePath(saveName);
                    JSONClass save = JSON.Parse(SuperController.singleton.ReadFileIntoString(saveName)).AsObject;
                });
            });
        }
Пример #2
0
        public Appearance(DollMaker dm) : base(dm)
        {
            dm.mainControls.RegisterTab("Morphs", moduleUI, this);

            morphSearch = new MorphSearch(this);

            JSONArray bodyUI = DollMaker.CONFIG_JSON["bodyUI"].AsArray;

            for (int i = 0; i < bodyUI.Count; i++)
            {
                JSONClass uiPart     = bodyUI[i].AsObject;
                string    title      = uiPart["title"].Value;
                string    boneName   = uiPart["bone"].Value;
                string    searchTerm = uiPart["search"].Value;
                float     x          = uiPart["offset"]["x"].AsFloat;
                float     y          = uiPart["offset"]["y"].AsFloat;
                float     z          = uiPart["offset"]["z"].AsFloat;

                DAZBone bone = atom.GetStorableByID(boneName) as DAZBone;

                BoneAttachedUI boneUI = new BoneAttachedUI(title, bone, ui, new Vector3(x, y, z), moduleUI);
                boneUI.button.button.onClick.AddListener(() =>
                {
                    morphSearch.searchBox.text = searchTerm;
                });
                baUI.Add(boneUI);
            }

            UIDynamicButton loadMorphsButton = CreateModuleButton("Load Morph Preset");

            loadMorphsButton.button.onClick.AddListener(() =>
            {
                SuperController.singleton.editModeToggle.isOn = true;
                SuperController.singleton.ShowMainHUDAuto();
                PresetManager pm             = atom.GetComponentInChildren <PresetManager>(includeInactive: true);
                PresetManagerControlUI pmcui = atom.GetComponentInChildren <PresetManagerControlUI>(includeInactive: true);
                if (pm != null && pmcui != null)
                {
                    pm.itemType   = PresetManager.ItemType.Custom;
                    pm.customPath = "Atom/Person/Morphs/";
                    pmcui.browsePresetsButton.onClick.Invoke();
                }
            });
        }
Пример #3
0
        public Appearance(DollMaker dm) : base(dm)
        {
            JSONArray bodyUI = DollMaker.CONFIG_JSON["bodyUI"].AsArray;

            for (int i = 0; i < bodyUI.Count; i++)
            {
                JSONClass uiPart     = bodyUI[i].AsObject;
                string    title      = uiPart["title"].Value;
                string    boneName   = uiPart["bone"].Value;
                string    searchTerm = uiPart["search"].Value;
                float     x          = uiPart["offset"]["x"].AsFloat;
                float     y          = uiPart["offset"]["y"].AsFloat;
                float     z          = uiPart["offset"]["z"].AsFloat;

                DAZBone bone = person.GetStorableByID(boneName) as DAZBone;

                BoneAttachedUI boneUI = new BoneAttachedUI(title, bone, ui, new Vector3(x, y, z));
                boneUI.button.button.onClick.AddListener(() =>
                {
                    UpdateSearch(searchTerm);
                    searchBox.text = searchTerm;
                });
                baUI.Add(boneUI);
            }

            searchBox = ui.CreateTextInput("Search For Morph", 1200, 120);
            searchBox.transform.localPosition = new Vector3(0, -120, 0);


            //textInput.gameObject.AddComponent<InputPressedHandler>();

            ScrollRect sr = ui.CreateScrollRect(1200, 800);

            sr.transform.localPosition = new Vector3(0, -600, 0);

            VerticalLayoutGroup vlg = ui.CreateVerticalLayout(1200, 1200);

            vlg.transform.SetParent(sr.transform, false);
            vlg.padding = new RectOffset(0, 0, 25, 25);

            RectTransform vlgrt = vlg.GetComponent <RectTransform>();

            vlgrt.pivot            = new Vector2(0.5f, 1);
            vlgrt.anchoredPosition = new Vector2(0, 0);
            sr.content             = vlgrt;

            ContentSizeFitter csf = vlg.gameObject.AddComponent <ContentSizeFitter>();

            csf.horizontalFit = ContentSizeFitter.FitMode.Unconstrained;
            csf.verticalFit   = ContentSizeFitter.FitMode.PreferredSize;

            DAZCharacterSelector personGeometry = person.GetStorableByID("geometry") as DAZCharacterSelector;

            morphControl = personGeometry.morphsControlUI;

            regions = new HashSet <string>();
            morphControl.GetMorphDisplayNames().ForEach((name) =>
            {
                DAZMorph morph = morphControl.GetMorphByDisplayName(name);
                regions.Add(morph.region);
            });

            List <string> morphNames = personGeometry.GetFloatParamNames();

            morphNames.ForEach((s) =>
            {
                //  For testing scroll rect
                //if (morphNameToSlider.Keys.Count > 20)
                //{
                //    return;
                //}

                UIDynamicSlider morphSlider = ui.CreateSlider(s, 800, 80, false);
                morphSlider.gameObject.SetActive(false);

                //Image image = morphSlider.labelText.transform.parent.gameObject.GetComponentInChildren<Image>();
                morphSlider.transform.SetParent(vlg.transform, false);

                personGeometry.GetFloatJSONParam(s).slider = morphSlider.slider;

                morphNameToSlider[s] = morphSlider;
            });

            searchBox.onValueChanged.AddListener(UpdateSearch);
        }