protected virtual WormNode CreateForkedKeyNode(WormSystemGen wormSystem, WormNode templateNode) { WormNode node = this.CreateKeyNode(wormSystem); node.TileRadius = templateNode.TileRadius; node.NodeSpacing = templateNode.NodeSpacing; return(node); }
//////////////// 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); }
//// protected abstract WormNode CreateKeyNode(WormSystemGen wormSystem);