Exemple #1
0
        public EyesModifierUI(MainUI ui)
            : base(ui, Utilities.AtomHasEyes)
        {
            saccade_ = new Collapsible("Saccade", null, Widget.Right);

            saccadeTime_ = new RandomizableTimeWidgets(
                "Saccade interval", Widget.Right);

            saccadeMin_ = new FloatSlider(
                "Saccade minimum (x10)", 0, new FloatRange(0, 1),
                SaccadeMinChanged, Widget.Right);

            saccadeMax_ = new FloatSlider(
                "Saccade maximum (x10)", 0, new FloatRange(0, 1),
                SaccadeMaxChanged, Widget.Right);

            minDistance_ = new FloatSlider(
                "Minimum distance (avoids cross-eyed)", 0, new FloatRange(0, 1),
                MinDistanceChanged, Widget.Right);

            focusDurationCollapsible_ = new Collapsible(
                "Focus time", null, Widget.Right);

            focusDuration_ = new RandomizableTimeWidgets(
                "Focus time", Widget.Right);

            gaze_ = new StringList(
                "MacGruber's Gaze", GazeChanged, Widget.Right);

            blink_ = new StringList("Blink", BlinkChanged, Widget.Right);

            addTarget_ = new Button("Add target", AddTarget, Widget.Right);

            previewsEnabled_ = new Checkbox(
                "Show previews", PreviewsChanged, Widget.Right);

            previewsAlpha_ = new FloatSlider(
                "Previews alpha", 0.3f, new FloatRange(0, 1),
                PreviewsAlphaChanged, Widget.Right);

            foreach (var w in saccadeTime_.GetWidgets())
            {
                saccade_.Add(w);
            }

            saccade_.Add(saccadeMin_);
            saccade_.Add(saccadeMax_);
            saccade_.Add(new SmallSpacer(Widget.Right));

            foreach (var w in focusDuration_.GetWidgets())
            {
                focusDurationCollapsible_.Add(w);
            }

            focusDurationCollapsible_.Add(new SmallSpacer(Widget.Right));
        }
Exemple #2
0
        public override void AddToTopUI(IModifier m)
        {
            base.AddToTopUI(m);

            modifier_ = m as AudioModifier;
            if (modifier_ == null)
            {
                return;
            }

            delayWidgets_.SetValue(modifier_.Delay);
            clips_.Value = modifier_.Clips;

            delayCollapsible_.Clear();
            delayCollapsible_.Add(delayWidgets_.GetWidgets());

            AddAtomWidgets(m);

            widgets_.AddToUI(playType_);
            playType_.Value = PlayTypeToString(modifier_.PlayType);

            delayCollapsible_.AddToUI();

            widgets_.AddToUI(new SmallSpacer(Widget.Right));
            widgets_.AddToUI(stop_);
            widgets_.AddToUI(clips_);
        }
Exemple #3
0
        private void UpdateWidgets()
        {
            if (!stale_)
            {
                return;
            }

            stale_ = false;

            collapsible_.Clear();
            collapsible_.Add(delete_);
            collapsible_.Add(types_);
            collapsible_.Add(enabled_);

            var t = container_.Target;

            types_.Value = t;

            if (t is RigidbodyEyesTarget)
            {
                ui_ = new RigidbodyEyesTargetUI(this, container_);
            }
            else if (t is RandomEyesTarget)
            {
                ui_ = new RandomEyesTargetUI(this, container_);
            }
            else if (t is PlayerEyesTarget)
            {
                ui_ = new PlayerEyesTargetUI(this, container_);
            }
            else
            {
                ui_ = null;
            }

            if (ui_ != null)
            {
                foreach (var w in ui_.GetWidgets())
                {
                    collapsible_.Add(w);
                }
            }

            collapsible_.Add(new SmallSpacer(Widget.Right));
        }
Exemple #4
0
        private void UpdateList()
        {
            collapsible_.Clear();
            collapsible_.Add(browse_);

            var cm = URLAudioClipManager.singleton;

            if (cm != null)
            {
                var clips = cm.GetCategoryClips("web");

                if (clips != null)
                {
                    foreach (var c in clips)
                    {
                        AddClip(c);
                    }
                }
            }
        }
Exemple #5
0
            public SelectedMorphWidget(
                MorphModifierUI ui, SelectedMorph sm, int flags = 0)
            {
                ui_ = ui;
                sm_ = sm;

                collapsible_ = new Collapsible(sm_.DisplayName, null, flags);
                enabled_     = new Checkbox("Enabled", EnabledChanged, flags);
                remove_      = new ConfirmableButton("Remove", Remove, flags);
                movementUI_  = new MovementUI(flags);

                enabled_.Parameter = sm_.EnabledParameter;
                movementUI_.SetValue(sm_.Movement, sm_.PreferredRange);

                collapsible_.Add(enabled_);
                collapsible_.Add(remove_);

                foreach (var w in movementUI_.GetWidgets())
                {
                    collapsible_.Add(w);
                }
                RenameCollapsible();
            }
Exemple #6
0
        public override void AddToUI(IMorphProgression p)
        {
            base.AddToUI(p);

            progression_ = p as NaturalMorphProgression;
            if (progression_ == null)
            {
                return;
            }

            durationWidgets_.SetValue(progression_.Duration);
            delayWidgets_.SetValue(progression_.Delay);

            durationCollapsible_.Clear();
            durationCollapsible_.Add(durationWidgets_.GetWidgets());

            delayCollapsible_.Clear();
            delayCollapsible_.Add(delayWidgets_.GetWidgets());

            widgets_.AddToUI(durationCollapsible_);
            widgets_.AddToUI(delayCollapsible_);
        }
Exemple #7
0
        public LinkModifierControllerUI(
            LinkModifier m, LinkModifierController mc)
        {
            modifier_ = m;
            mc_       = mc;

            collapsible_ = new Collapsible(mc_.Name, null, Widget.Right);

            delete_ = new ConfirmableButton("Delete", Delete, Widget.Right);

            controller_ = new FreeControllerList(
                "Controller", mc_.ControllerName,
                ControllerChanged, Widget.Right);

            atom_ = new AtomList(
                "Link to atom", mc_.AtomName, AtomChanged, null,
                Widget.Right | Widget.AllowNone);

            rb_ = new LinkTargetList(
                "Link to", mc_.RigidbodyName, RigidbodyChanged,
                Widget.Right | Widget.AllowNone);

            position_ = new PositionStateList(
                "Position", "", PositionChanged,
                Widget.Right | Widget.AllowNone);

            rotation_ = new RotationStateList(
                "Rotation", "", RotationChanged,
                Widget.Right | Widget.AllowNone);

            Update();

            collapsible_.Add(delete_);
            collapsible_.Add(controller_);
            collapsible_.Add(atom_);
            collapsible_.Add(rb_);
            collapsible_.Add(position_);
            collapsible_.Add(rotation_);
            collapsible_.Add(new SmallSpacer(Widget.Right));
        }
Exemple #8
0
        public override void AddToUI(IModifierSync s)
        {
            unsynced_ = s as UnsyncedModifier;
            if (unsynced_ == null)
            {
                return;
            }

            durationWidgets_.SetValue(unsynced_.Duration);
            delayWidgets_.SetValue(unsynced_.Delay);

            durationCollapsible_.Clear();
            durationCollapsible_.Add(durationWidgets_.GetWidgets());

            delayCollapsible_.Clear();
            delayCollapsible_.Add(delayWidgets_.GetWidgets());

            durationCollapsible_.AddToUI();
            delayCollapsible_.AddToUI();

            copy_.AddToUI();
            syncToThis_.AddToUI();
        }
Exemple #9
0
 public void AddWidget(IWidget w)
 {
     collapsible_.Add(w);
 }
Exemple #10
0
        public override void AddToTopUI(IModifier m)
        {
            base.AddToTopUI(m);

            var changed = (m != modifier_);

            modifier_ = m as MorphModifier;

            if (modifier_ == null)
            {
                progressionUI_ = null;
                return;
            }

            if (selectedMorphs_.Count != modifier_.Morphs.Count)
            {
                changed = true;
            }

            if (changed)
            {
                selectedMorphs_.Clear();

                selectedMorphsCollapsible_.Clear();
                selectedMorphsCollapsible_.Add(toggleAll_);

                foreach (var sm in modifier_.Morphs)
                {
                    AddSelectedMorphUI(sm);
                }
            }

            if (progressionUI_ == null ||
                progressionUI_.ProgressionType != modifier_.Progression.GetFactoryTypeName())
            {
                progressionUI_ = CreateMorphProgressionUI(modifier_.Progression);
            }

            progressionType_.Value = modifier_.Progression;
            morphCheckboxes_.Atom  = modifier_.Atom;

            var dazmorphs = new List <DAZMorph>();

            foreach (var sm in modifier_.Morphs)
            {
                dazmorphs.Add(sm.Morph);
            }
            morphCheckboxes_.Morphs = dazmorphs;

            AddAtomWidgets(m);

            widgets_.AddToUI(progressionType_);
            if (progressionUI_ != null)
            {
                progressionUI_.AddToUI(modifier_.Progression);
            }

            widgets_.AddToUI(new SmallSpacer(Widget.Right));

            widgets_.AddToUI(selectedMorphsCollapsible_);

            widgets_.AddToUI(new SmallSpacer(Widget.Right));
            widgets_.AddToUI(morphCheckboxes_);
        }
Exemple #11
0
        public OptionsUI(int flags = 0)
        {
            collapsible_ = new Collapsible("Options and presets", null, flags);


            resetValuesOnFreeze_ = new Checkbox(
                "Reset positions on freeze", options_.ResetValuesOnFreeze,
                ResetValuesOnFreezeChanged, flags);

            resetCountersOnThaw_ = new Checkbox(
                "Reset counters on thaw", options_.ResetCountersOnThaw,
                ResetCountersOnThaw, flags);

            pickAnimatable_ = new Checkbox(
                "Pick animatable", PickAnimatableChanged, flags);

            manageAnimatable_ = new Button(
                "Manage animatables", ManageAnimatables, flags);

            overlapTime_ = new FloatSlider(
                "Global overlap time", options_.OverlapTime,
                new FloatRange(0, 1), OverlapTimeChanged, flags);

            logLevel_ = new StringList(
                "Log level", Options.LogLevelToString(options_.LogLevel),
                Options.GetLogLevelNames(), LogLevelChanged, flags);

            logOverlap_ = new Checkbox(
                "Log overlap", LogOverlapChanged, flags);

            usePlaceholder_ = new Checkbox(
                "Save: use placeholder for atoms", null, flags);

            collapsible_.Add(resetValuesOnFreeze_);
            collapsible_.Add(resetCountersOnThaw_);
            collapsible_.Add(pickAnimatable_);
            collapsible_.Add(manageAnimatable_);
            collapsible_.Add(overlapTime_);
            collapsible_.Add(logLevel_);
            collapsible_.Add(logOverlap_);
            collapsible_.Add(new SmallSpacer(flags));

            collapsible_.Add(usePlaceholder_);

            collapsible_.Add(new Button(
                                 "Full: save", SaveFull, flags));

            collapsible_.Add(new Button(
                                 "Full: load, replace everything",
                                 () => { LoadFull(Utilities.PresetReplace); },
                                 flags));

            collapsible_.Add(new Button(
                                 "Full: load, append steps",
                                 () => { LoadFull(Utilities.PresetAppend); },
                                 flags));

            collapsible_.Add(new SmallSpacer(flags));


            collapsible_.Add(new Button(
                                 "Step: save current", SaveStep, flags));

            collapsible_.Add(new Button(
                                 "Step: load, replace current",
                                 () => { LoadStep(Utilities.PresetReplace); },
                                 flags));

            collapsible_.Add(new Button(
                                 "Step: load, add modifiers to current step",
                                 () => { LoadStep(Utilities.PresetMerge); },
                                 flags));

            collapsible_.Add(new Button(
                                 "Step: load, append as new step",
                                 () => { LoadStep(Utilities.PresetAppend); },
                                 flags));

            collapsible_.Add(new SmallSpacer(flags));


            collapsible_.Add(new Button(
                                 "Modifier: save current", SaveModifier, flags));

            collapsible_.Add(new Button(
                                 "Modifier: load, replace current",
                                 () => { LoadModifier(Utilities.PresetReplace); },
                                 flags));

            collapsible_.Add(new Button(
                                 "Modifier: load, append to current step",
                                 () => { LoadModifier(Utilities.PresetAppend); },
                                 flags));


            collapsible_.Add(new SmallSpacer(flags));
        }