public Node(UI ui, AnimationPattern ap) { this.ap = ap; this.ui = ui; connectButton = ui.CreateButton("Connect", 100, 50); disconnectButton = ui.CreateButton("Disconnect All", 100, 50); disconnectButton.transform.SetParent(connectButton.transform); disconnectButton.transform.Translate(0, -0.08f, 0); UIDynamicButton playButton = ui.CreateButton("Play", 100, 50); playButton.transform.SetParent(connectButton.transform); playButton.transform.Translate(0, -0.16f, 0); playButton.button.onClick.AddListener(() => { ap.SetBoolParamValue("on", true); if (ap.GetBoolParamValue("pause") == true) { playButton.label = "Stop"; ap.ResetAnimation(); } else { playButton.label = "Play"; ap.SetBoolParamValue("on", false); } ap.TogglePause(); }); }
public void Stop() { ap.Pause(); ap.SetBoolParamValue("on", false); }
Node CreateNode(AnimationPattern ap) { Node foundNode = nodes.Find((other) => { return(other.ap == ap); }); if (foundNode != null) { sc.SelectController(containingAtom.mainController); return(foundNode); } Node node = new Node(ui, ap); //ap.containingAtom.SetOn(false); ap.SetBoolParamValue("on", false); ap.Pause(); ap.ResetAnimation(); lineMaterial = ap.rootLineDrawerMaterial; if (nodes.Contains(node) == false) { nodes.Add(node); } node.connectButton.button.onClick.AddListener(() => { sc.SelectModeAtom((atom) => { if (atom == ap.containingAtom) { SuperController.LogError("Can't make a connection to itself."); return; } AnimationPattern childAP = atom.GetStorableByID("AnimationPattern") as AnimationPattern; if (childAP == null) { SuperController.LogError("Only Animation Patterns can be selected."); return; } Node childNode = CreateNode(childAP); Transition transition = CreateTransition(node.atom, childNode.atom); if (transition != null) { node.transitions.Add(transition); PerformSave(); } }); }); node.disconnectButton.button.onClick.AddListener(() => { node.transitions.ForEach((t) => { t.OnDestroy(); transitions.Remove(t); }); node.transitions.Clear(); }); sc.SelectController(containingAtom.mainController); return(node); }