private void DisplayAttachmentContents(StackPanel entry, AttachmentPoint point)
        {
            StackPanel contents = Utilities.FindNode <StackPanel>(entry, "Contents");

            foreach (GameObject obj in point.GetAttached())
            {
                Grid objEntry = GameManager.instance.GetResource <Grid>("AttachmentObjectEntry");
                contents.Children.Add(objEntry);

                TextBlock text = Utilities.FindNode <TextBlock>(objEntry, "Data1");
                if (text != null)
                {
                    text.Inlines.Add(observer.Observe(obj, "name upper").span);
                }

                text = Utilities.FindNode <TextBlock>(objEntry, "Data2");
                if (text != null)
                {
                    text.Inlines.Add(observer.Observe(obj, "weight").span);
                }

                text = Utilities.FindNode <TextBlock>(objEntry, "Data3");
                if (text != null)
                {
                    text.Inlines.Add(observer.Observe(obj, "volume").span);
                }
            }

            if (contents.Children.Count == 0)
            {
                contents.Children.Add(WaywardTextParser.ParseAsBlock("<i>empty</i>"));
            }
        }
        public override void DisplayContents()
        {
            foreach (Connection connection in container.GetConnections())
            {
                Grid objEntry = GameManager.instance.GetResource <Grid>("AttachmentObjectEntry");

                connections.Children.Add(objEntry);

                TextBlock text = Utilities.FindNode <TextBlock>(objEntry, "Data1");
                if (text != null)
                {
                    text.Inlines.Add(observer.Observe(connection, "name upper").span);
                }

                text = Utilities.FindNode <TextBlock>(objEntry, "Data2");
                if (text != null)
                {
                    GameObject connected = connection.secondContainer.GetParent();
                    text.Inlines.Add(observer.Observe(connected, "name upper").span);
                }
            }

            if (connections.Children.Count == 0)
            {
                connections.Children.Add(WaywardTextParser.ParseAsBlock("<i>none</i>"));
            }
        }
Exemplo n.º 3
0
    public override bool Display(Verb verb, Actor actor, GameObject target, FrameworkContentElement span)
    {
        CheckResult check = verb.Check(target);

        if (check >= CheckResult.VALID)
        {
            Dictionary <TextBlock, ContextMenuAction> items = new Dictionary <TextBlock, ContextMenuAction>();

            Dictionary <string, object> data = new Dictionary <string, object>();
            data["gameObject"] = verb.self;
            data["verb"]       = verb;
            data["label"]      = verb.displayLabel;

            items.Add(WaywardTextParser.ParseAsBlock("Custom..."), delegate { return(DisplayDialog(verb)); });
            data["duration"] = 10.0;
            items.Add(WaywardTextParser.ParseAsBlock("10"), delegate { return(verb.Register(data, true)); });
            data["duration"] = 100.0;
            items.Add(WaywardTextParser.ParseAsBlock("100"), delegate { return(verb.Register(data, true)); });
            data["duration"] = 500.0;
            items.Add(WaywardTextParser.ParseAsBlock("500"), delegate { return(verb.Register(data, true)); });
            data["duration"] = 1000.0;
            items.Add(WaywardTextParser.ParseAsBlock("1000"), delegate { return(verb.Register(data, true)); });

            ContextMenuHelper.AddContextMenuHeader(span, WaywardTextParser.ParseAsBlock(verb.displayLabel), items, true);
        }

        return(true);
    }
        private void DisplayTags()
        {
            string tagsString = "Tags: ";

            string[] tags = page.target.tags.ToArray();
            if (tags.Length > 0)
            {
                for (int i = 0; i < tags.Length; i++)
                {
                    tagsString += tags[i];
                    if (i != tags.Length - 1)
                    {
                        tagsString += ", ";
                    }
                }
            }
            else
            {
                tagsString += "<i>none</i>";
            }

            TextBlock tagsBlock = WaywardTextParser.ParseAsBlock(tagsString);

            Grid.SetRow(tagsBlock, 3);
            content.Children.Add(tagsBlock);
        }
        private void DisplayType()
        {
            string    typeString = $"Type: {page.target.GetType().ToString()}";
            TextBlock typeBlock  = WaywardTextParser.ParseAsBlock(typeString);

            content.Children.Add(typeBlock);
        }
Exemplo n.º 6
0
        public override void DisplayContents()
        {
            bool canObserve = observer.CanObserve(page.target);

            GameObjectData weightData        = page.target.GetData("weight");
            GameObjectData partialWeightData = page.target.GetData("weight partial");
            GameObjectData volumeData        = page.target.GetData("volume");
            GameObjectData partialVolumeData = page.target.GetData("volume partial");

            if (weightData.text != partialWeightData.text)
            {
                weightText.Inlines.Add(WaywardTextParser.Parse("[0] ([1])",
                                                               () => { return(weightData.span); },
                                                               () => { return(partialWeightData.span); }));
            }
            else
            {
                weightText.Inlines.Add(weightData.span);
            }
            if (volumeData.text != partialVolumeData.text)
            {
                volumeText.Inlines.Add(WaywardTextParser.Parse("[0] ([1])",
                                                               () => { return(volumeData.span); },
                                                               () => { return(partialVolumeData.span); }));
            }
            else
            {
                volumeText.Inlines.Add(volumeData.span);
            }

            FetchMaterials();
        }
Exemplo n.º 7
0
        public override void DisplayContents()
        {
            int r = 0; int c = 0;

            foreach (Verb verb in page.target.CollectVerbs())
            {
                Span text = WaywardTextParser.Parse(verb.displayLabel);
                text.Style = GameManager.instance.GetResource <Style>("Link");
                // TODO: Add descriptive page for Verbs to explain function, behaviour and stats

                TextBlock block = new TextBlock(text);
                Grid.SetRow(block, r);
                Grid.SetColumn(block, c);
                verbsGrid.Children.Add(block);

                c++;
                if (c >= verbsGrid.ColumnDefinitions.Count)
                {
                    c = 0;
                    r++;
                }
            }

            if (verbsGrid.Children.Count == 0)
            {
                element.Visibility = System.Windows.Visibility.Collapsed;
            }
        }
Exemplo n.º 8
0
        public virtual GameObjectData GetDescription(params string[] parameters)
        {
            GameObjectData data = new GameObjectData();

            data.text = description;
            data.SetSpan(WaywardTextParser.Parse(description));

            return(data);
        }
Exemplo n.º 9
0
        protected virtual void GetMat(GameObjectData data, KeyValuePair <Material, double> mat)
        {
            GameObjectData matData = mat.Key.GetData("name upper");

            data.text = $"{matData.text} : {GetMaterialRatio(mat.Key, true)}%";

            data.AddSpan(WaywardTextParser.Parse(@"[0] : [1]    ",
                                                 () => { return(matData.span); },
                                                 () => { return(WaywardTextParser.Parse($@"{GetMaterialRatio(mat.Key, true)}%")); }
                                                 ));
        }
Exemplo n.º 10
0
        public TextBlock Observed(PlayerActor observer)
        {
            WaywardTextParser.ParseDelegate[] spans = new WaywardTextParser.ParseDelegate[data.Length];
            for (int i = 0; i < data.Length; i++)
            {
                Tuple <GameObject, string> dat = new Tuple <GameObject, string>(data[i].Item1, data[i].Item2);
                spans[i] = () => { return(observer.Observe(dat.Item1, dat.Item2).span); };
            }
            TextBlock block = WaywardTextParser.ParseAsBlock(template, spans);

            return(block);
        }
Exemplo n.º 11
0
        protected void OnObservedActionTaken(Dictionary <string, object> data)
        {
            FrameworkElement entry = GameManager.instance.GetResource <FrameworkElement>("OverviewEntry");

            events.Children.Add(entry);

            TextBlock data1 = WaywardEngine.Utilities.FindNode <TextBlock>(entry, "Data1");

            if (data.ContainsKey("gameObject"))
            {
                try {
                    GameObject obj = data["gameObject"] as GameObject;
                    data1.Inlines.Add(observer.Observe(obj, "name upper").span);
                } catch (Exception e) {
                    WaywardManager.instance.Log($@"<orange>WARNING: TimelinePage failed to resolve gameObject: {e}</orange>");
                    data1.Inlines.Add(WaywardTextParser.Parse($"<i>unknown</i>"));
                }
            }
            else
            {
                data1.Inlines.Add(WaywardTextParser.Parse($"<i>unknown</i>"));
            }

            TextBlock data2 = WaywardEngine.Utilities.FindNode <TextBlock>(entry, "Data2");

            if (data.ContainsKey("label"))
            {
                try {
                    string label = data["label"] as string;
                    data2.Inlines.Add(WaywardTextParser.Parse(label));
                } catch (Exception e) {
                    WaywardManager.instance.Log($@"<orange>WARNING: TimelinePage failed to resolve label: {e}</orange>");
                    data2.Inlines.Add(WaywardTextParser.Parse($"<i>unknown</i>"));
                }
            }
            else
            {
                data2.Inlines.Add(WaywardTextParser.Parse($"<i>unknown</i>"));
            }

            TextBlock data3 = WaywardEngine.Utilities.FindNode <TextBlock>(entry, "Data3");

            if (data.ContainsKey("target"))
            {
                try {
                    GameObject target = data["target"] as GameObject;
                    data3.Inlines.Add(observer.Observe(target, "name upper").span);
                } catch (Exception e) {
                    WaywardManager.instance.Log($@"<orange>WARNING: TimelinePage failed to resolve target: {e}</orange>");
                }
            }
        }
 private void DisplayContainer()
 {
     try {
         string    containerContent = "Container: [0]";
         TextBlock containerBlock   = WaywardTextParser.ParseAsBlock(containerContent,
                                                                     () => { return(page.observer.Observe(page.target.container.GetParent(), "name upper").span); }
                                                                     );
         Grid.SetRow(containerBlock, 2);
         content.Children.Add(containerBlock);
     } catch (NullReferenceException e) {
         TextBlock containerBlock = WaywardTextParser.ParseAsBlock("Container: <i>null</i>");
         Grid.SetRow(containerBlock, 2);
         content.Children.Add(containerBlock);
     }
 }
Exemplo n.º 13
0
        private void DisplayContainer(GameObject obj)
        {
            GameObjectData objData = observer.Observe(obj);

            bool unique = Char.IsUpper(objData.text[0]);

            TextBlock text = WaywardTextParser.ParseAsBlock(
                $@"[0] {(secondPerson ? "are" : "is")} in {(unique ? "" : "a ")}[1], [2].",
                () => { return(observer.Observe(subject).span); },
                () => { return(objData.span); },
                () => { return(observer.Observe(obj, "description").span); }
                );

            text.TextWrapping = TextWrapping.Wrap;
            descriptions.Children.Add(text);
        }
Exemplo n.º 14
0
    public override bool Display(Verb verb, Actor actor, GameObject target, FrameworkContentElement span)
    {
        CheckResult check = verb.Check(target);

        if (check >= CheckResult.RESTRICTED)
        {
            if (check == CheckResult.RESTRICTED)
            {
                ContextMenuHelper.AddContextMenuItem(span, WaywardTextParser.ParseAsBlock($@"<gray>{verb.displayLabel}</gray>"), null, false);
            }
            else
            {
                ContextMenuHelper.AddContextMenuItem(span, WaywardTextParser.ParseAsBlock(verb.displayLabel), delegate { return(verb.Register(new Dictionary <string, object>()
                    {
                        { "target", target }
                    }, true)); });
            }
        }

        return(true);
    }
        private void DisplayAttachmentTypes()
        {
            string attachmentString = "Attachment Types: ";

            if (page.target.attachmentTypes.Count > 0)
            {
                foreach (AttachmentType type in page.target.attachmentTypes)
                {
                    attachmentString += type.ToString() + " ";
                }
            }
            else
            {
                attachmentString += "<i>none</i>";
            }

            TextBlock attachmentBlock = WaywardTextParser.ParseAsBlock(attachmentString);

            Grid.SetRow(attachmentBlock, 2);
            Grid.SetColumn(attachmentBlock, 1);
            content.Children.Add(attachmentBlock);
        }
Exemplo n.º 16
0
    private void DisplayForPoint(Verb verb, string actionLabel, AttachmentPoint point, FrameworkContentElement span)
    {
        if (point == verb.self.container)
        {
            return;
        }

        CheckResult result = point.CanAttach(verb.self);

        if (result >= CheckResult.RESTRICTED)
        {
            Dictionary <TextBlock, ContextMenuAction> items = new Dictionary <TextBlock, ContextMenuAction>();
            if (result == CheckResult.RESTRICTED)
            {
                items.Add(WaywardTextParser.ParseAsBlock($@"<gray>{actionLabel}</gray>"), null);
            }
            else
            {
                items.Add(WaywardTextParser.ParseAsBlock(actionLabel), delegate { return(verb.Register(point, true)); });
            }
            ContextMenuHelper.AddContextMenuHeader(span, new TextBlock(verb.self.GetData("name upper").span), items, result != CheckResult.RESTRICTED);
        }
    }
        public override void DisplayContents()
        {
            if (page == null)
            {
                content.Children.Add(WaywardTextParser.ParseAsBlock("<i>Page is Null</i>"));
                return;
            }
            if (page.observer == null)
            {
                content.Children.Add(WaywardTextParser.ParseAsBlock("<i>Page Observer is Null</i>"));
                return;
            }
            if (page.target == null)
            {
                content.Children.Add(WaywardTextParser.ParseAsBlock("<i>Page Target is Null</i>"));
                return;
            }

            DisplayType();
            DisplayContainer();
            DisplayAttachmentTypes();
            DisplayTags();
        }
Exemplo n.º 18
0
        protected static bool DisplayDefault(Verb verb, Actor actor, GameObject target, FrameworkContentElement span)
        {
            CheckResult check = verb.Check(target);

            if (check >= CheckResult.RESTRICTED)
            {
                Dictionary <TextBlock, ContextMenuAction> items = new Dictionary <TextBlock, ContextMenuAction>();
                if (check == CheckResult.RESTRICTED)
                {
                    items.Add(WaywardTextParser.ParseAsBlock($@"<gray>{verb.displayLabel}</gray>"), null);
                }
                else
                {
                    items.Add(WaywardTextParser.ParseAsBlock(verb.displayLabel), delegate { return(verb.Register(new Dictionary <string, object>()
                        {
                            { "target", target }
                        }, true)); });
                }
                ContextMenuHelper.AddContextMenuHeader(span, new TextBlock(verb.self.GetData("name upper").span), items, check != CheckResult.RESTRICTED);
            }

            return(true);
        }
Exemplo n.º 19
0
        public void PrintMessage(string message)
        {
            TextBlock text = WaywardTextParser.ParseAsBlock(message);

            descriptions.Children.Add(text);
        }