public static CrystalCavePuddleGen Create( WormNode sourceNode, int tileX, int tileY, int length, int forkCount = 0) { var randForks = new List <WormGen>(forkCount); for (int i = 0; i < forkCount; i++) { int randLen = WorldGen.genRand.Next( Math.Max(length / 2, 3), Math.Max(length, 4) ); var fork = CrystalCaveGen.Create(0, 0, randLen, 0); randForks.Add(fork); } return(new CrystalCavePuddleGen(sourceNode, tileX, tileY, length, randForks)); }
//////////////// public static CrystalCaveSystemGen Create( GenerationProgress progress, float thisProgress, int tileX, int tileY) { int totalLength = WorldGen.genRand.Next( CrystalCaveSystemGen.MinimumLength, CrystalCaveSystemGen.MaximumLength ); int len1 = WorldGen.genRand.Next(35, totalLength - 35); int len2 = totalLength - len1; int totalForks = WorldGen.genRand.Next(4, 8); int forks1 = WorldGen.genRand.Next(2, totalForks); int forks2 = totalForks - forks1; var wormDefs = new List <WormGen> { CrystalCaveGen.Create(tileX, tileY, len1, forks1), CrystalCaveGen.Create(tileX, tileY, len2, forks2), }; return(new CrystalCaveSystemGen(progress, thisProgress, wormDefs)); }