Example #1
0
        protected virtual WormNode CreateForkedKeyNode(WormSystemGen wormSystem, WormNode templateNode)
        {
            WormNode node = this.CreateKeyNode(wormSystem);

            node.TileRadius  = templateNode.TileRadius;
            node.NodeSpacing = templateNode.NodeSpacing;
            return(node);
        }
Example #2
0
        ////////////////

        public virtual bool GenerateNextKeyNode(WormSystemGen wormSystem, out WormGen fork)
        {
            if (this.KeyNodes.Count >= this.TotalNodes)
            {
                fork = null;
                return(false);
            }

            WormNode nextNode = this.CreateKeyNode(wormSystem);

            this.KeyNodes.Add(nextNode);

            if (this.Forks.TryGetValue(this.KeyNodes.Count - 1, out fork))
            {
                fork.OriginTileX = nextNode.TileX;
                fork.OriginTileY = nextNode.TileY;

                WormNode forkHeadNode = fork.CreateForkedKeyNode(wormSystem, nextNode);
                fork.KeyNodes.Add(forkHeadNode);
            }

            return(true);
        }
Example #3
0
        ////

        protected abstract WormNode CreateKeyNode(WormSystemGen wormSystem);