BulletMLLib.Bullet.InitNode C# (CSharp) Method

InitNode() public method

This bullet is fired from another bullet, initialize it from the node that fired it
public InitNode ( BulletMLLib.BulletMLNode subNode ) : void
subNode BulletMLLib.BulletMLNode Sub node that defines this bullet
return void
        public void InitNode(BulletMLNode subNode)
        {
            System.Diagnostics.Debug.Assert(null != subNode);

              //clear everything out
              Tasks.Clear();

              //Grab that top level node
              MyNode = subNode;

              //found a top num node, add a task for it
              BulletMLTask task = new BulletMLTask(subNode, null);

              //parse the nodes into the task list
              task.ParseTasks(this);

              //initialize all the tasks
              task.InitTask(this);

              Tasks.Add(task);
        }

Usage Example

Ejemplo n.º 1
0
        /// <summary>
        /// Initialize this bullet with a top level node
        /// </summary>
        /// <param name="rootNode">This is a top level node... find the first "top" node and use it to define this bullet</param>
        public void InitTopNode(BulletMLNode rootNode)
        {
            Debug.Assert(null != rootNode);

            //okay find the item labelled 'top'
            bool         bValidBullet = false;
            BulletMLNode topNode      = rootNode.FindLabelNode("top", ENodeName.action);

            if (topNode != null)
            {
                //initialize with the top node we found!
                InitNode(topNode);
                bValidBullet = true;
            }
            else
            {
                //ok there is no 'top' node, so that means we have a list of 'top#' nodes
                for (int i = 1; i < 10; i++)
                {
                    topNode = rootNode.FindLabelNode("top" + i, ENodeName.action);
                    if (topNode != null)
                    {
                        if (!bValidBullet)
                        {
                            //Use this bullet!
                            InitNode(topNode);
                            bValidBullet = true;
                        }
                        else
                        {
                            //Create a new bullet
                            Bullet newDude = _bulletManager.CreateBullet();

                            //set the position to this dude's position
                            newDude.X = this.X;
                            newDude.Y = this.Y;

                            //initialize with the node we found
                            newDude.InitNode(topNode);
                        }
                    }
                }
            }

            if (!bValidBullet)
            {
                //We didnt find a "top" node for this dude, remove him from the game.
                _bulletManager.RemoveBullet(this);
            }
        }
All Usage Examples Of BulletMLLib.Bullet::InitNode