public TextPanelNode CreateTextPanelNode(SceneGraphNode node) { var ret = new TextPanelNode(this, node); TextPanelNodes.Add(ret); node.ObserveDestroy(() => { TextPanelNodes.Remove(ret); ret.Dispose(); }); return(ret); }
public Resource(Level level, SceneGraphNode node, ItemType type) { this.level = level; this.Type = type; Node = node; node.AssociatedObject = this; var renderNode = node.CreateChild(); entityNode = level.CreateEntityNode(renderNode.CreateChild()) .Alter(k => k.Node.Relative = Matrix.Identity) .Alter(k => k.CreateInteractable(onInteract)); panelNode = level.CreateTextPanelNode(renderNode.CreateChild()); panelNode.Node.Relative = Matrix.Translation(0, 2.5f, 0); panelNode.TextRectangle.IsBillboard = true; panelNode.TextRectangle.Radius = 0.35f; Amount = 1; level.AddBehaviour(node, AttemptMerge); }