// Start is called before the first frame update void Start() { var levelSkeletonGeneratorParams = new LevelSkeletonGeneratorParams(); var levelSkeletonGenerator = new LevelSkeletonGenerator(levelSkeletonGeneratorParams); _levelSkeleton = levelSkeletonGenerator.Execute(); var levelSkeletonRenderer = GetComponent <LevelSkeletonRenderer>(); levelSkeletonRenderer.Draw(_levelSkeleton); }
public void Regenerate(LevelSkeletonGeneratorParams levelSkeletonGeneratorParams) { LevelHolder.LevelSkeleton = null; LevelHolder.LevelSkeletonWithBioms = null; LevelHolder.Level = null; var levelSkeletonGenerator = new LevelSkeletonGenerator(levelSkeletonGeneratorParams); LevelHolder.LevelSkeleton = levelSkeletonGenerator.Execute(); if (LevelHolder.LevelSkeleton == null) { Debug.Log("[Failed] generation failed"); return; } var levelSkeletonBiomsGeneratorParams = new LevelSkeletonBiomsGeneratorParams { LevelSkeleton = LevelHolder.LevelSkeleton, MinOpenSpacePerimeter = levelSkeletonGeneratorParams.MinOpenSpacePerimeter, MaxOpenSpacePerimeter = levelSkeletonGeneratorParams.MaxOpenSpacePerimeter }; var levelSkeletonBiomsGenerator = new LevelSkeletonBiomsGenerator(levelSkeletonBiomsGeneratorParams); LevelHolder.LevelSkeletonWithBioms = levelSkeletonBiomsGenerator.Execute(); if (LevelHolder.LevelSkeletonWithBioms == null) { Debug.Log("[Failed] Bioms generation failed"); return; } var levelGeneratorParams = new LevelGeneratorParams() { LevelSkeleton = LevelHolder.LevelSkeletonWithBioms }; var levelGenerator = new LevelGenerator(levelGeneratorParams); LevelHolder.Level = levelGenerator.Execute(); if (LevelHolder.Level == null) { Debug.Log("[Failed] Level generation failed"); return; } Redraw(); }
private void GenerateOnClick() { if (RegenerateSkeleton.isOn) { var levelSkeletonGeneratorParams = new LevelSkeletonGeneratorParams(); levelSkeletonGeneratorParams.ReplaceMoreThan45 = ReplaceMoreThan45Degree.isOn; levelSkeletonGeneratorParams.MergeNearBy = MergeNearBy.isOn; var minES = 0f; float.TryParse(MinES.text, out minES); var maxES = 0f; float.TryParse(MaxES.text, out maxES); if (minES > 0f) { levelSkeletonGeneratorParams.MinOpenSpacePerimeter = minES; } if (maxES > 0f) { levelSkeletonGeneratorParams.MaxOpenSpacePerimeter = maxES; } if (int.TryParse(AdditionalLines.text, out int additionalLines)) { levelSkeletonGeneratorParams.AdditionalLinesCount = additionalLines; } LevelGeneratorController.GetComponent <LevelGeneratorController>().Regenerate(levelSkeletonGeneratorParams); } else if (RegenerateSkeletonBioms.isOn) { var minES = 0f; float.TryParse(MinES.text, out minES); var maxES = 0f; float.TryParse(MaxES.text, out maxES); LevelGeneratorController.GetComponent <LevelGeneratorController>().RegenerateBioms(minES, maxES); } else if (RegenerateLevel.isOn) { LevelGeneratorController.GetComponent <LevelGeneratorController>().RegenerateLevel(); } }
void Start() { Init(); ShowSkeleton.onValueChanged.AddListener(delegate { Redraw(); }); ShowWalls.onValueChanged.AddListener(delegate { Redraw(); }); if (LevelHolder.Level == null) { var levelSkeletonGeneratorParams = new LevelSkeletonGeneratorParams(); Regenerate(levelSkeletonGeneratorParams); } else { Redraw(); } }