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