Beispiel #1
0
        public TextPanelNode CreateTextPanelNode(SceneGraphNode node)
        {
            var ret = new TextPanelNode(this, node);

            TextPanelNodes.Add(ret);
            node.ObserveDestroy(() =>
            {
                TextPanelNodes.Remove(ret);
                ret.Dispose();
            });
            return(ret);
        }
Beispiel #2
0
        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);
        }