public GeneratorDungeon(DungeonGeneratorData dungeonGeneratorData, Transform parent) { _dungeonGeneratorData = dungeonGeneratorData; _parent = parent; _dungeon = Object.Instantiate(new GameObject(), _parent); _dungeon.name = "root-Dungeon.Static"; _dungeon.isStatic = true; var gO = Object.Instantiate(_dungeonGeneratorData.StorageGenerator, _parent); _generator = gO.GetComponent <Dungeon>(); _config = gO.GetComponent <GridFlowDungeonConfig>(); _builder = gO.GetComponent <GridFlowDungeonBuilder>(); _pooledSceneProvider = gO.GetComponent <PooledDungeonSceneProvider>(); _pooledSceneProvider.itemParent = _dungeon; Seed = new ReactiveProperty <uint>(_config.Seed); Seed.Subscribe(x => { _config.Seed = x; }); }
public static List <Vector2Int> GenerateDungeon(DungeonGeneratorData dungeonData) { List <DungeonCrawler> dungeonCrawlers = new List <DungeonCrawler>(); for (int i = 0; i < dungeonData.numberOfCrawlers; i++) { dungeonCrawlers.Add(new DungeonCrawler(Vector2Int.zero)); } int iterations = Random.Range(dungeonData.iterationMin, dungeonData.iterationMax); for (int i = 0; i < iterations; i++) { foreach (DungeonCrawler dungeonCrawler in dungeonCrawlers) { Vector2Int newPos = dungeonCrawler.Move(directionMovementMap); positionsVisited.Add(newPos); } } return(positionsVisited); }