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>")); } }
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); }
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(); }
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; } }
public virtual GameObjectData GetDescription(params string[] parameters) { GameObjectData data = new GameObjectData(); data.text = description; data.SetSpan(WaywardTextParser.Parse(description)); return(data); }
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)}%")); } )); }
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); }
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); } }
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); }
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); }
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(); }
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); }
public void PrintMessage(string message) { TextBlock text = WaywardTextParser.ParseAsBlock(message); descriptions.Children.Add(text); }