public override Dungeon Generate(DungeonEntrance entr, GenerationRandom ran = null) { if (ran == null) { ran = new GenerationRandom(ChunkPosition.x << 16 + ChunkPosition.z); } ChunkData[,] chunks = CreateChunks(); Vec2i dunEntr = ChunkPosition * World.ChunkSize + new Vec2i(World.ChunkSize / 2, World.ChunkSize / 2); List <Entity> dunEnt = GenerateEntities(); DungeonBoss dunBoss = GenerateDungeonBoss(); return(new Dungeon(chunks, new Vec2i(5, 5), dunEntr, dunEnt, dunBoss)); }
public Dungeon(ChunkData[,] subChunks, Vec2i subentra, Vec2i worldEntrance, List <Entity> dungeonEntity, DungeonBoss boss, SimpleDungeonKey key = null) : base(subChunks, subentra, worldEntrance) { DungeonEntities = dungeonEntity; Boss = boss; Vec2i entranceChunk = World.GetChunkPosition(SubworldEntrance); int local = WorldObject.ObjectPositionHash(SubworldEntrance); if (!(subChunks[entranceChunk.x, entranceChunk.z].GetObject(SubworldEntrance.x, SubworldEntrance.z) is DungeonEntrance)) { //If the entrance isn't a dungeon entrance. DungeonEntrance de = new CaveDungeonEntrance(subentra, this, new WorldObjectMetaData(direction: new Vec2i(0, -1))); SubworldChunks[entranceChunk.x, entranceChunk.z].SetObject(SubworldEntrance.x, SubworldEntrance.z, de); } Key = key; if (Key == null) { IsLocked = false; } else { IsLocked = true; } }