Esempio n. 1
0
        public UIDynamicSlider CreateMorphSlider(string name, float width = 300, float height = 80, Transform parent = null)
        {
            UIDynamicSlider slider = CreateSlider(name, width, height, true);

            slider.transform.Find("Panel").GetComponent <Image>().color = new Color(0, 0, 0);

            slider.slider.GetComponent <Image>().color = new Color(0.7f, 0.7f, 0.7f);

            RectTransform sliderRT = slider.slider.GetComponent <RectTransform>();

            sliderRT.sizeDelta = new Vector2(1, 80);
            //sliderRT.anchoredPosition = new Vector2(0, -0.5f);
            sliderRT.pivot = new Vector2(0, 0.5f);

            Image fillRectImage = slider.slider.fillRect.GetComponent <Image>();

            fillRectImage.color = new Color(0.1f, 0.1f, 0.1f);

            slider.labelText.color = new Color(1, 1, 1);
            slider.GetComponentsInChildren <Text>().ToList().ForEach((Text text) =>
            {
                text.color         = new Color(1, 1, 1);
                text.raycastTarget = false;
                //text.fontSize = 16;
                //RectTransform textRT = text.GetComponent<RectTransform>();
                //textRT.sizeDelta = new Vector2(120, 80);
                //textRT.pivot = new Vector2(-0.2f, 0.5f);
                //textRT.SetSizeWithCurrentAnchors(RectTransform.Axis.Horizontal, 200);
            });

            slider.slider.transform.Find("Handle Slide Area").gameObject.SetActive(false);

            InputField inputField = slider.GetComponentInChildren <InputField>();

            inputField.enabled = false;

            EventTrigger trigger = slider.gameObject.AddComponent <EventTrigger>();

            EventTrigger.Entry mouseEnter = new EventTrigger.Entry();
            mouseEnter.eventID = EventTriggerType.PointerEnter;
            mouseEnter.callback.AddListener((eventData) =>
            {
                fillRectImage.color = new Color(0.3f, 0.4f, 0.6f);
            });
            trigger.triggers.Add(mouseEnter);

            EventTrigger.Entry mouseExit = new EventTrigger.Entry();
            mouseExit.eventID = EventTriggerType.PointerExit;
            mouseExit.callback.AddListener((eventData) =>
            {
                fillRectImage.color = new Color(0.1f, 0.1f, 0.1f);
            });
            trigger.triggers.Add(mouseExit);
            ParentTo(slider.transform, parent);

            //sliderRT.SetSizeWithCurrentAnchors(RectTransform.Axis.Horizontal, 350);
            return(slider);
        }
Esempio n. 2
0
        public Arousal(DollmasterPlugin dm) : base(dm)
        {
            this.dm = dm;

            arousalEnabled = new JSONStorableBool("arousalEnabled", true);
            dm.RegisterBool(arousalEnabled);
            UIDynamicToggle moduleEnableToggle = dm.CreateToggle(arousalEnabled);

            moduleEnableToggle.label           = "Enable Arousal";
            moduleEnableToggle.backgroundColor = Color.green;

            arousalValue = new JSONStorableFloat("arousal", 0, 0, SLIDER_MAX, false, false);
            dm.RegisterFloat(arousalValue);

            UIDynamicSlider arousalSlider = dm.ui.CreateSlider("❤", 300, 120);

            //arousalSlider.valueFormat = "n0";
            arousalValue.slider           = arousalSlider.slider;
            sliderBGImage                 = arousalSlider.GetComponentInChildren <Image>();
            sliderBGImage.color           = new Color(0.2f, 0.2f, 0.2f, 1.0f);
            arousalSlider.labelText.color = new Color(1, 1, 1);

            arousalRate = new JSONStorableFloat("arousalRate", 1, 0.01f, 10, false, true);
            dm.RegisterFloat(arousalRate);
            dm.CreateSlider(arousalRate);

            arousalDecay = new JSONStorableFloat("arousalDecay", 0.3f, 0.01f, 10, false, true);
            dm.RegisterFloat(arousalDecay);
            dm.CreateSlider(arousalDecay);

            arousalDelay = new JSONStorableFloat("arousalDelay", 0.25f, 0.01f, 5, false, true);
            dm.RegisterFloat(arousalDelay);
            dm.CreateSlider(arousalDelay);

            timeToDecay = new JSONStorableFloat("timeToDecay", 2, 0, 60, false, true);
            dm.RegisterFloat(timeToDecay);
            dm.CreateSlider(timeToDecay);

            dm.CreateSpacer();
        }
Esempio n. 3
0
        public ThrustController(DollmasterPlugin dm) : base(dm)
        {
            thrustEnabled = new JSONStorableBool("thrustEnabled", true);
            dm.RegisterBool(thrustEnabled);
            UIDynamicToggle moduleEnableToggle = dm.CreateToggle(thrustEnabled);

            moduleEnableToggle.label           = "Enable Thrusting";
            moduleEnableToggle.backgroundColor = Color.green;

            thrustAtomChooser = new JSONStorableStringChooser("thrustTarget", GetAnimationPatternNames(), "", "Thrust Control", (string name) =>
            {
                RestoreOriginalSlider();

                ap = null;

                UISetupState(SuperController.singleton.GetAtomByUid(name));
            });
            thrustAtomChooser.storeType = JSONStorableParam.StoreType.Full;
            dm.RegisterStringChooser(thrustAtomChooser);
            UIDynamicPopup popup = dm.CreatePopup(thrustAtomChooser);

            popup.popup.onOpenPopupHandlers += () =>
            {
                thrustAtomChooser.choices = GetAnimationPatternNames();
            };

            slider = dm.ui.CreateSlider("Thrust Speed", 300, 120);
            slider.transform.Translate(0, 0.15f, 0, Space.Self);

            slider.slider.onValueChanged.AddListener((float v) =>
            {
                if (ap == null)
                {
                    return;
                }

                JSONStorableFloat speedStore = ap.GetFloatJSONParam("speed");
                if (speedStore.slider != slider.slider)
                {
                    AttachCustomSlider();
                }
            });

            Image img = slider.GetComponentInChildren <Image>();

            img.color = new Color(0.4f, 0.2f, 0.245f, 1.0f);
            slider.labelText.color = new Color(1, 1, 1);

            slider.gameObject.SetActive(false);

            createButton = dm.ui.CreateButton("Generate Animation Pattern or...", 400, 120);
            createButton.transform.Translate(0, 0.15f, 0, Space.Self);
            createButton.buttonColor = new Color(0.4f, 0.2f, 0.245f, 1.0f);
            createButton.textColor   = new Color(1, 1, 1);

            createButton.button.onClick.AddListener(GenerateThrustAtoms);

            selectButton = dm.ui.CreateButton("Select Animation Pattern To Control", 400, 120);
            selectButton.transform.Translate(0.52f, 0.15f, 0, Space.Self);
            selectButton.buttonColor = new Color(0.4f, 0.2f, 0.245f, 1.0f);
            selectButton.textColor   = new Color(1, 1, 1);

            selectButton.button.onClick.AddListener(() =>
            {
                SuperController.singleton.SelectModeAtom((atom) =>
                {
                    if (atom == null)
                    {
                        return;
                    }

                    if (atom.GetStorableByID("AnimationPattern") == null)
                    {
                        SuperController.LogError("Select an Animation Pattern");
                        return;
                    }

                    AnimationPattern ap = atom.GetStorableByID("AnimationPattern") as AnimationPattern;
                    ap.SyncStepNames();
                    ap.autoSyncStepNamesJSON.SetVal(false);

                    thrustAtomChooser.SetVal(atom.uid);
                });
            });

            dm.CreateSpacer();

            GenerateThrustAtoms();
        }
Esempio n. 4
0
        public ThrustController(DollmasterPlugin dm) : base(dm)
        {
            thrustEnabled = new JSONStorableBool("thrustEnabled", true);
            dm.RegisterBool(thrustEnabled);
            UIDynamicToggle moduleEnableToggle = dm.CreateToggle(thrustEnabled);

            moduleEnableToggle.label           = "Enable Thrusting";
            moduleEnableToggle.backgroundColor = Color.green;

            thrustAtomChooser = new JSONStorableStringChooser("thrustTarget", GetAnimationPatternNames(), "", "Thrust Control", (string name) =>
            {
                RestoreOriginalSlider();

                ap = null;

                UISetupState(SuperController.singleton.GetAtomByUid(name));
            });
            thrustAtomChooser.storeType = JSONStorableParam.StoreType.Full;
            dm.RegisterStringChooser(thrustAtomChooser);
            UIDynamicPopup popup = dm.CreatePopup(thrustAtomChooser);

            popup.popup.onOpenPopupHandlers += () =>
            {
                thrustAtomChooser.choices = GetAnimationPatternNames();
            };

            slider = dm.ui.CreateSlider("Thrust Speed", 300, 120);
            slider.transform.Translate(0, 0.15f, 0, Space.Self);

            slider.slider.onValueChanged.AddListener((float v) =>
            {
                if (ap == null)
                {
                    return;
                }

                JSONStorableFloat speedStore = ap.GetFloatJSONParam("speed");
                if (speedStore.slider != slider.slider)
                {
                    AttachCustomSlider();
                }
            });

            Image img = slider.GetComponentInChildren <Image>();

            img.color = new Color(0.4f, 0.2f, 0.245f, 1.0f);
            slider.labelText.color = new Color(1, 1, 1);

            slider.gameObject.SetActive(false);

            createButton = dm.ui.CreateButton("Generate Animation Pattern or...", 400, 120);
            createButton.transform.Translate(0, 0.15f, 0, Space.Self);
            createButton.buttonColor = new Color(0.4f, 0.2f, 0.245f, 1.0f);
            createButton.textColor   = new Color(1, 1, 1);

            createButton.button.onClick.AddListener(() =>
            {
                dm.StartCoroutine(CreateAtom("AnimationPattern", "Thrust AP", (apAtom) =>
                {
                    AnimationPattern ap = apAtom.GetStorableByID("AnimationPattern") as AnimationPattern;

                    ap.autoSyncStepNamesJSON.SetVal(false);

                    thrustAtomChooser.SetVal(apAtom.name);

                    if (ap.steps.Length >= 2)
                    {
                        return;
                    }

                    FreeControllerV3 hipControl = atom.GetStorableByID("hipControl") as FreeControllerV3;
                    apAtom.mainController.transform.SetPositionAndRotation(hipControl.transform.position, hipControl.transform.rotation);
                    apAtom.SelectAtomParent(atom);

                    //ap.animatedTransform = hipControl.transform;

                    MoveProducer mp = apAtom.GetStorableByID("AnimatedObject") as MoveProducer;
                    mp.SetReceiverByName(atom.name + ":hipControl");

                    AnimationStep stepA = ap.CreateStepAtPosition(0);
                    stepA.containingAtom.ClearParentAtom();
                    stepA.containingAtom.mainController.transform.position = apAtom.mainController.transform.position;
                    stepA.containingAtom.mainController.transform.rotation = apAtom.mainController.transform.rotation;
                    //stepA.containingAtom.SetParentAtom(apAtom.name);

                    AnimationStep stepB = ap.CreateStepAtPosition(1);
                    stepB.containingAtom.ClearParentAtom();
                    FreeControllerV3 abdomen2Control = atom.GetStorableByID("abdomen2Control") as FreeControllerV3;

                    stepB.containingAtom.mainController.transform.position = abdomen2Control.transform.position;
                    stepB.containingAtom.mainController.transform.rotation = apAtom.mainController.transform.rotation;

                    apAtom.mainController.transform.Translate(0, 0, -0.2f, Space.Self);

                    stepA.containingAtom.mainController.currentPositionState = FreeControllerV3.PositionState.ParentLink;
                    stepA.containingAtom.mainController.currentRotationState = FreeControllerV3.RotationState.ParentLink;
                    Rigidbody rba = SuperController.singleton.RigidbodyNameToRigidbody(apAtom.name + ":control");
                    stepA.containingAtom.mainController.SelectLinkToRigidbody(rba, FreeControllerV3.SelectLinkState.PositionAndRotation);

                    stepB.containingAtom.mainController.currentPositionState = FreeControllerV3.PositionState.ParentLink;
                    stepB.containingAtom.mainController.currentRotationState = FreeControllerV3.RotationState.ParentLink;
                    Rigidbody rbb = SuperController.singleton.RigidbodyNameToRigidbody(apAtom.name + ":control");
                    stepB.containingAtom.mainController.SelectLinkToRigidbody(rbb, FreeControllerV3.SelectLinkState.PositionAndRotation);

                    UISetupState(apAtom);

                    ap.SyncStepNames();
                }, true));
            });

            selectButton = dm.ui.CreateButton("Select Animation Pattern To Control", 400, 120);
            selectButton.transform.Translate(0.52f, 0.15f, 0, Space.Self);
            selectButton.buttonColor = new Color(0.4f, 0.2f, 0.245f, 1.0f);
            selectButton.textColor   = new Color(1, 1, 1);

            selectButton.button.onClick.AddListener(() =>
            {
                SuperController.singleton.SelectModeAtom((atom) =>
                {
                    if (atom == null)
                    {
                        return;
                    }

                    if (atom.GetStorableByID("AnimationPattern") == null)
                    {
                        SuperController.LogError("Select an Animation Pattern");
                        return;
                    }

                    AnimationPattern ap = atom.GetStorableByID("AnimationPattern") as AnimationPattern;
                    ap.SyncStepNames();
                    ap.autoSyncStepNamesJSON.SetVal(false);

                    thrustAtomChooser.SetVal(atom.uid);
                });
            });

            dm.CreateSpacer();
        }