public void BuildInspectorUI(UIBuilder ui)
 {
     WorkerInspector.BuildInspectorUI(this, ui);
     ui.Button("Random Color Particle", (b, e) => { RandomColorGenerator(); });
     ui.Button("Random Alpha Particle", (b, e) => { RandomAlphaGenerator(); });
     ui.Button("Random Color and Alpha Particle", (b, e) => { RandomColorAlphaGenerator(); });
 }
Ejemplo n.º 2
0
        public void BuildInspectorUI(UIBuilder ui)
        {
            WorkerInspector.BuildInspectorUI(this, ui);

            ui.Button("Generate Component and LogiX visuals", GeneratePressed);
            ui.Button("Generate Wiki InfoBoxes and tables", (b, e) => { GenerateInfoBoxes(); });
            ui.Button("Generate Wiki Index pages", (b, e) => { GenerateWikiIndexPages(); });
            ui.Button("Capture Image", (b, e) => { CaptureImage(); });
            componentProgress = ui.Text("0/0", true, Alignment.MiddleCenter, false);
        }
Ejemplo n.º 3
0
 public void BuildInspectorUI(UIBuilder ui)
 {
     WorkerInspector.BuildInspectorUI((Worker)this, ui);
     ui.Button("import EPUB", (button, data) => { ImportEPUB(); });
     output = ui.Text("", true, Alignment.MiddleLeft, false);
     Message("Ready for import...");
 }
 // We've registered this component as an ICustomInspector, this means we can add stuff to it's inspector UI, Like the "Split"/"Merge" buttons on MeshRenderer.
 public void BuildInspectorUI(UIBuilder ui)
 {
     //Build the standard UI
     WorkerInspector.BuildInspectorUI(this, ui);
     /** Add a button, called "Pull Links", it uses a bunch of wizardry to run the PullLinks method as a task.
      * But I'm not sure if I'm doing this correctly.
      */
     ui.Button("Pull Links", (b, e) => { StartTask(async () => { await PullLinks(); }); });
 }
Ejemplo n.º 5
0
 public void BuildInspectorUI(UIBuilder ui)
 {
     if (_gradientTexture == null || _gradientTexture.IsDisposed)
     {
         _gradientTexture = ui.Root.AttachComponent <GradientStripTexture>();
         _gradientTexture.Format.Value = TextureFormat.RGB24;
         UpdateGradient();
     }
     WorkerInspector.BuildInspectorUI(this, ui);
     ui.RawImage(_gradientTexture);
     ui.Button("Generate Particle", (b, e) => { GenerateParticle(); });
 }
        private async Task <Rect> BuildComponentUI(Component targetInstance)
        {
            UIBuilder ui = new UIBuilder(VisualSlot, 800, 5000, 0.1f);

            ui.Style.MinHeight         = 30f;
            ui.Style.ForceExpandHeight = false;
            ui.Image(new color(141 / 255.0f, 186 / 255.0f, 104 / 255.0f));
            ui.VerticalLayout(4f, 0, Alignment.TopLeft);
            ui.Style.MinHeight         = 30f;
            ui.Style.PreferredHeight   = 30f;
            ui.Style.ForceExpandHeight = true;
            VerticalLayout content = ui.VerticalLayout(4f, 10f, Alignment.TopLeft);

            ui.Style.ChildAlignment = Alignment.TopLeft;
            {
                ui.HorizontalLayout(4f);
                ui.Style.FlexibleWidth = 1000f;
                ui.Button("<b>" + targetInstance.GetType().GetNiceName() + "</b>", color.White);

                ui.Style.FlexibleWidth = 0.0f;
                ui.Style.MinWidth      = 32f;

                ui.Button("D", MathX.Lerp(color.Green, color.White, 0.7f));
                ui.Button("X", MathX.Lerp(color.Red, color.White, 0.7f));
                ui.NestOut();
            }
            if (targetInstance is ICustomInspector customInspector)
            {
                ui.Style.MinHeight = 24f;
                customInspector.BuildInspectorUI(ui);
            }
            else
            {
                WorkerInspector.BuildInspectorUI(targetInstance, ui);
            }
            await new Updates(5);
            return(content.RectTransform.BoundingRect);
        }
Ejemplo n.º 7
0
        public Slot buildLayerUI(string name, string type, Slot slot, int depth)
        {
            UIBuilder uiBuilder3 = new UIBuilder(slot);

            uiBuilder3.Style.ForceExpandHeight = false;
            uiBuilder3.Style.ChildAlignment    = Alignment.TopLeft;
            uiBuilder3.HorizontalLayout(4f, 0.0f, new Alignment?());
            uiBuilder3.Style.MinHeight = 32f;
            uiBuilder3.Style.MinWidth  = 32f;
            Button              button1             = uiBuilder3.Button();
            Expander            expander            = button1.Slot.AttachComponent <Expander>(true);
            TextExpandIndicator textExpandIndicator = button1.Slot.AttachComponent <TextExpandIndicator>(true);

            textExpandIndicator.Text.Target = (IField <string>)button1.Slot.GetComponentInChildren <Text>((Predicate <Text>)null, false).Content;
            uiBuilder3.Style.FlexibleWidth  = 100f;
            Text       text       = uiBuilder3.Text(name, true, Alignment.MiddleLeft, true, (string)null);
            Button     button2    = text.Slot.AttachComponent <Button>(true, (Action <Button>)null);
            MethodInfo privMethod = logixNodeSelector.GetType().GetMethod("OnOpenCategoryPressed", BindingFlags.NonPublic | BindingFlags.Instance);
            ButtonEventHandler <string> action = (ButtonEventHandler <string>)Delegate.CreateDelegate(typeof(ButtonEventHandler <string>), logixNodeSelector, privMethod);

            button2.SetupAction <string>(action, type, 0.3f);
            InteractionElement.ColorDriver colorDriver = button2.ColorDrivers.Add();
            colorDriver.ColorDrive.Target    = (IField <color>)text.Color;
            colorDriver.NormalColor.Value    = color.Black;
            colorDriver.HighlightColor.Value = color.Blue;
            colorDriver.PressColor.Value     = color.Cyan;
            //button2.SetupAction(new ButtonEventHandler(this.OnSlotNamePressed), 0.0f);
            //this._slotNameText.Target = text;
            uiBuilder3.Style.FlexibleWidth = -1f;
            uiBuilder3.NestOut();
            uiBuilder3.Style.MinHeight = -1f;
            HorizontalLayout horizontalLayout = uiBuilder3.HorizontalLayout(4f, 0.0f, new Alignment?());

            uiBuilder3.Style.MinWidth = 32f;
            uiBuilder3.Empty("Spacer");
            uiBuilder3.Style.FlexibleWidth = 100f;
            //uiBuilder3.VerticalLayout(4f, 0.0f, new Alignment?());
            Slot childrenSlot = uiBuilder3.VerticalLayout(4f, 0.0f, new Alignment?()).Slot;

            expander.SectionRoot.Target             = horizontalLayout.Slot;
            textExpandIndicator.SectionRoot.Target  = horizontalLayout.Slot;
            textExpandIndicator.ChildrenRoot.Target = childrenSlot;
            //if (depth<2) buildHierarchyLevel(childrenSlot, depth+1);
            expander.IsExpanded = false;
            //slot.ActiveSelf = depth == 0;
            return(childrenSlot);
        }
Ejemplo n.º 8
0
        protected override void OnAttach()
        {
            base.OnAttach();
            sep = "\t";
            //CONTAINING SLOT AND BASE CANVAS
            mainSlot = this.LocalUserSpace.AddSlot("LogiX Node Browser");
            NeosPanel neosPanel = mainSlot.AttachComponent <NeosPanel>(true, (Action <NeosPanel>)null);

            neosPanel.Title           = "Logix/Componer browser";
            neosPanel.Padding.Value   = 0.005f;
            neosPanel.ZPadding.Value  = 0.005f;
            neosPanel.Thickness.Value = 0.01f;
            neosPanel.AddCloseButton();
            neosPanel.AddParentButton();
            UIBuilder uiBuilder1 = new UIBuilder(neosPanel.ContentSlot, 1000f, 1000f, 0.0005f);
            //Canvas component = neosPanel.ContentSlot.GetComponent<Canvas>((Predicate<Canvas>)null, false);
            color color1 = new color(1f, 1f, 1f, 0.2f);

            uiBuilder1.Panel(in color1, false);

            //Search Footer
            RectTransform searchFooter, mainContent;

            uiBuilder1.HorizontalFooter(64f, out searchFooter, out mainContent);
            UIBuilder searchUI     = new UIBuilder(searchFooter);
            TextField textfield    = searchUI.TextField();
            Action    sendRequest  = this.BuildSearchLogix(textfield.Text.Content.ReferenceID);
            var       editorEvents = textfield.Slot.AddSlot("logix").AttachComponent <Interaction.TextEditorEvents>();

            editorEvents.Source.Value           = textfield.Editor;
            editorEvents.EditingFinished.Target = sendRequest;


            //MAIN CONTENT
            //Horizontal split
            List <RectTransform> rectTransformList = (new UIBuilder(mainContent)).SplitHorizontally(0.4f, 0.6f);

            //RIGHT SIDE
            Slot rightSlot = rectTransformList[1].Slot;

            logixNodeSelector = rightSlot.AttachComponent <LogixNodeSelector2>();
            Slot contentSlot   = rightSlot.FindChild(s => s.Name == "Content");
            Slot containerSlot = contentSlot[0];

            nodesContainerSlot     = containerSlot;
            contentSlot.ActiveSelf = false;
            rightSlot.FindChild(s => s.Name == "Panel").Destroy();
            rightSlot.FindChild(s => s.Name == "Handle").Destroy();
            rightSlot.FindChild(s => s.Name == "Header").Destroy();
            rightSlot.FindChild(s => s.Name == "HandleAnchor").Destroy();
            containerSlot.Parent = rightSlot;


            //LEFT SIDE
            RectTransform hierarchyHeader, nodeHierarchy;
            Slot          leftSlot   = rectTransformList[0].Slot;
            UIBuilder     uiBuilder2 = new UIBuilder(leftSlot);

            //header
            uiBuilder2.HorizontalHeader(64f, out hierarchyHeader, out nodeHierarchy);
            UIBuilder uiBuilder3 = new UIBuilder(hierarchyHeader);

            uiBuilder3.HorizontalLayout(4f, 0.0f, 4f, 0.0f, 4f, new Alignment?());
            uiBuilder3.Style.FlexibleWidth = 100f;
            //hierarchyHeader = uiBuilder3.CurrentRect;
            uiBuilder3.HorizontalLayout(4f, 0.0f, 0.0f, 4.0f, 0.0f);

            //hierarchy container
            UIBuilder uiBuilderContent = new UIBuilder(nodeHierarchy);
            color     color2           = new color(1f, 1f, 1f, 0.2f);

            uiBuilderContent.Panel(in color2, false);
            //nodeHierarchy = uiBuilderContent.CurrentRect;
            uiBuilderContent.ScrollArea(new Alignment?());
            uiBuilderContent.VerticalLayout(4.0f, 0.0f, Alignment.TopLeft);
            uiBuilderContent.FitContent(SizeFit.Disabled, SizeFit.MinSize);
            componentHierarchy = uiBuilderContent.CurrentRect.Slot;
            logixHierarchy     = componentHierarchy.Duplicate();

            //Logix/Comp buttons
            uiBuilder3.Style.FlexibleWidth = -1f;
            uiBuilder3.Style.MinWidth      = 64f;
            Button logixButton = uiBuilder3.Button("LogiX");
            var    component1  = logixButton.Slot.AttachComponent <ButtonValueSet <bool> >();

            component1.TargetValue.Target = logixHierarchy.ActiveSelf_Field;
            component1.SetValue.Value     = true;
            var component2 = logixButton.Slot.AttachComponent <ButtonValueSet <bool> >();

            component2.TargetValue.Target = componentHierarchy.ActiveSelf_Field;
            component2.SetValue.Value     = false;
            Button compButton = uiBuilder3.Button("Comps");
            var    component3 = compButton.Slot.AttachComponent <ButtonValueSet <bool> >();

            component3.TargetValue.Target = logixHierarchy.ActiveSelf_Field;
            component3.SetValue.Value     = false;
            var component4 = compButton.Slot.AttachComponent <ButtonValueSet <bool> >();

            component4.TargetValue.Target = componentHierarchy.ActiveSelf_Field;
            component4.SetValue.Value     = true;

            components_string2 = "NiceName" + sep + "Name" + sep + "FullName" + sep + "Folder" + sep + "Description" + sep + "Type\n";
            logix_string2      = components_string2;
            buildLayer("", componentHierarchy);
            buildLayer("/LogiX", logixHierarchy);

            componentHierarchy.ActiveSelf = false;
            logixHierarchy.ActiveSelf     = true;

            components_string += "\n ";
            logix_string      += "\n ";
            //components_string2 += "\n ";
            //logix_string2 += "\n ";
            System.IO.File.WriteAllText(@"C:\Program Files (x86)\Steam\steamapps\common\NeosVR\components_string.txt", components_string);
            System.IO.File.WriteAllText(@"C:\Program Files (x86)\Steam\steamapps\common\NeosVR\logix_string.txt", logix_string);
            System.IO.File.WriteAllText(@"C:\Program Files (x86)\Steam\steamapps\common\NeosVR\components_string2.txt", components_string2);
            System.IO.File.WriteAllText(@"C:\Program Files (x86)\Steam\steamapps\common\NeosVR\logix_string2.txt", logix_string2);

            //this.MakeVariableSelector();
        }
Ejemplo n.º 9
0
        private void OpenConnectedPanel()
        {
            UIBuilder uiBuilder1 = panel.SwapPanel(NeosSwapCanvasPanel.Slide.None, 0.5f);

            //uiBuilder1.VerticalLayout(4f, 0.0f, new Alignment?());
            uiBuilder1.VerticalLayout(4f, 0, new Alignment?());
            uiBuilder1.FitContent(SizeFit.Disabled, SizeFit.PreferredSize);
            uiBuilder1.Style.PreferredHeight = 65f;
            uiBuilder1.Style.MinHeight       = 32f;
            uiBuilder1.Style.TextAutoSizeMin = 45f;
            uiBuilder1.Style.TextAutoSizeMax = 65f;

            //status text
            //SyncRef<Text> status = this._status;
            //LocaleString localeString1 = (LocaleString)"";
            //ref LocaleString local1 = ref localeString1;
            //Alignment? alignment1 = new Alignment?();
            //Text text1 = uiBuilder1.Text(in local1, true, alignment1, true, (string)null);
            //status.Target = text1;

            //Title
            uiBuilder1.Style.PreferredHeight = 200f;
            Text text4 = uiBuilder1.Text("MetaGenNeos");

            text4.AutoSizeMax.Value = 150f;
            text4.Size.Value        = 150f;

            //Description
            uiBuilder1.Style.MinHeight = 350f;
            Text text1 = uiBuilder1.Text("<b>This recording system is currenlty in Beta. Expect bugs</b>. MetaGen is a project to explore the intersection between AI and VR technologies, for Science, Art, and Wonder. See more details at http://metagen.ai");

            uiBuilder1.Style.MinHeight = 32f;

            ////Recording checkbox
            //uiBuilder1.Style.PreferredHeight = 100f;
            //uiBuilder1.Style.MinHeight = 100f;
            //Checkbox checkbox_record_user = uiBuilder1.Checkbox("Record me (local)",false);
            //this._recordUserCheckbox.Target = checkbox_record_user;
            //if (!mg.admin_mode)
            //{
            //    recordUserOverride = uiBuilder1.Current.AttachComponent<ValueUserOverride<bool>>();
            //    recordUserOverride.CreateOverrideOnWrite.Value = true;
            //    recordUserOverride.Target.Target = checkbox_record_user.State;
            //}

            ////Data submission checkbox
            //uiBuilder1.Style.MinHeight = 350f;
            //Text text2 = uiBuilder1.Text("<b>By checking this box you agree to license the recorded data as CC0 (Public domain), as part of the MetaGen Public Dataset (intended for research in AI and other sciences).</b>");
            //text2.HorizontalAlign.Value = CodeX.TextHorizontalAlignment.Left;
            //uiBuilder1.Style.PreferredHeight = 100f;
            //uiBuilder1.Style.MinHeight = 100f;
            //Checkbox checkbox_public_domain = uiBuilder1.Checkbox("Public domain",false);
            //this._publicDomainCheckbox.Target = checkbox_public_domain;
            //if (!mg.admin_mode)
            //{
            //    publicDomainOverride = uiBuilder1.Current.AttachComponent<ValueUserOverride<bool>>();
            //    publicDomainOverride.Target.Target = checkbox_public_domain.State;
            //}

            //recording time
            uiBuilder1.Style.PreferredHeight = 75f;
            uiBuilder1.Style.MinHeight       = 75f;
            SyncRef <Text> recording_time = this._recordingTime;
            LocaleString   localeString2  = (LocaleString)"";
            Text           text3          = uiBuilder1.Text(localeString2);

            recording_time.Target = text3;

            uiBuilder1.Style.PreferredHeight = 100f;
            uiBuilder1.Style.MinHeight       = 100f;

            //animation checkbox
            Checkbox animCheckbox = uiBuilder1.Checkbox("Generate animation", true);

            this._animationsCheckbox.Target = animCheckbox;

            //Generate bvh checkbox
            Checkbox checkbox5 = uiBuilder1.Checkbox("Generate bvh", false);

            this._generateBvhCheckbox.Target = checkbox5;

            //Recording voices checkbox
            Checkbox recording_voices_checkbox = uiBuilder1.Checkbox("Record voices", true);

            this._recordVoicesCheckbox.Target = recording_voices_checkbox;

#if NOHL
            //Recording hearing checkbox
            Checkbox recording_hearing_checkbox = uiBuilder1.Checkbox("Record hearing", true);
            this._recordHearingCheckbox.Target = recording_hearing_checkbox;
#endif

            //video checkbox
            //Checkbox videoCheckbox = uiBuilder1.Checkbox("Record vision",true);
#if NOHL
            Checkbox videoCheckbox = uiBuilder1.Checkbox("Record vision", false);
            this._videoCheckbox.Target = videoCheckbox;
#endif

            //record button
            uiBuilder1.Style.PreferredHeight = 120f;
            uiBuilder1.Style.MinHeight       = 120f;
            SyncRef <Button> recordButton = this._recordButton;
            Button           button1      = uiBuilder1.Button("");
            recordButton.Target = button1;
            ButtonValueSet <bool> comp1 = button1.Slot.AttachComponent <ButtonValueSet <bool> >();
            comp1.SetValue.Value     = true;
            comp1.TargetValue.Target = record_button_pressed.Target;

            ////Hiding for now as its WIP
            ////interact button
            uiBuilder1.Style.PreferredHeight = 120f;
            uiBuilder1.Style.MinHeight       = 120f;
            SyncRef <Button> interactButton = this._interactButton;
            Button           button1b       = uiBuilder1.Button("Toggle Interaction");
            interactButton.Target = button1b;
            ButtonValueSet <bool> comp1b = button1b.Slot.AttachComponent <ButtonValueSet <bool> >();
            comp1b.SetValue.Value     = true;
            comp1b.TargetValue.Target = interact_button_pressed.Target;

            //Text for debug play section
            uiBuilder1.Style.PreferredHeight = 200f;
            uiBuilder1.Style.MinHeight       = 100f;
            Text text5 = uiBuilder1.Text("Debug play");
            text4.AutoSizeMax.Value          = 130f;
            text4.Size.Value                 = 130f;
            uiBuilder1.Style.MinHeight       = 100f;
            uiBuilder1.Style.PreferredHeight = 100f;

            //Recording index
            uiBuilder1.Style.PreferredHeight = 75f;
            uiBuilder1.Style.MinHeight       = 75f;
            Text      text6  = uiBuilder1.Text("Recording index:");
            TextField field1 = uiBuilder1.TextField("0");
            this._recordIndexField.Target = field1;

            uiBuilder1.Style.MinHeight       = 100f;
            uiBuilder1.Style.PreferredHeight = 100f;

            //Voices checkbox
            Checkbox checkbox1 = uiBuilder1.Checkbox("Voices", true);
            this._voicesCheckbox.Target = checkbox1;

            //Hearing checkbox
            Checkbox checkbox2 = uiBuilder1.Checkbox("Hearing", false);
            this._hearingCheckbox.Target = checkbox2;

            //External source checkpoint
            Checkbox checkbox3 = uiBuilder1.Checkbox("External source", false);
            this._externalSourceCheckbox.Target = checkbox3;

            //animation checkbox2
            Checkbox animCheckbox2 = uiBuilder1.Checkbox("Generate animation", false);
            this._animationsCheckbox2.Target = animCheckbox2;

            //Generate bvh checkbox
            Checkbox bvhCheckbox2 = uiBuilder1.Checkbox("Generate bvh", false);
            this._generateBvhCheckbox2.Target = bvhCheckbox2;

            //Avatar ref
            uiBuilder1.Style.PreferredHeight = 75f;
            uiBuilder1.Style.MinHeight       = 75f;
            Text text7 = uiBuilder1.Text("Avatar slot:");
            uiBuilder1.Next("Root");
            ReferenceField <Slot> refField = uiBuilder1.Current.AttachComponent <ReferenceField <Slot> >();
            this._avatarRefField.Target = refField;
            RefEditor avatarRefEditor = uiBuilder1.Current.AttachComponent <RefEditor>();
            avatarRefEditor.Setup(refField.Reference);

            uiBuilder1.Style.MinHeight       = 100f;
            uiBuilder1.Style.PreferredHeight = 100f;

            //play button
            SyncRef <Button> streamButton = this._playButton;
            Button           button2      = uiBuilder1.Button("");
            streamButton.Target = button2;
            ButtonValueSet <bool> comp2 = button2.Slot.AttachComponent <ButtonValueSet <bool> >();
            comp2.SetValue.Value     = true;
            comp2.TargetValue.Target = play_button_pressed.Target;

            ////UI slot ref
            //uiBuilder1.Style.PreferredHeight = 75f;
            //uiBuilder1.Style.MinHeight = 75f;
            //Text text8 = uiBuilder1.Text("UI slot:");
            //uiBuilder1.Next("Root");
            //ReferenceField<Slot> refField2 = uiBuilder1.Current.AttachComponent<ReferenceField<Slot>>();
            //this._uiTemplateRefField.Target = refField2;
            //RefEditor uiTemplateRefEditor = uiBuilder1.Current.AttachComponent<RefEditor>();
            //uiTemplateRefEditor.Setup(refField2.Reference);

            //uiBuilder1.Style.MinHeight = 100f;
            //uiBuilder1.Style.PreferredHeight = 100f;

            ////swapUI button
            //Button button3 = uiBuilder1.Button("");
            //this._swapUIButton.Target = button3;
            //ButtonValueSet<bool> comp3 = button3.Slot.AttachComponent<ButtonValueSet<bool>>();
            //comp3.SetValue.Value = true;
            //comp3.TargetValue.Target = swapUI_button_pressed.Target;
        }