private Dungeon GenerateCaveDungeon(DungeonEntrance entr)
    {
        ChunkStructure cStruc = entr.ChunkStructure;

        if (cStruc is BanditCamp)
        {
            BanditCaveDungeonBuilder bcdb = new BanditCaveDungeonBuilder(cStruc.Position, cStruc.Size);
            Dungeon dun = bcdb.Generate(entr, GenRan);
            entr.SetDungeon(dun);
            return(dun);
        }
        return(null);
    }
    private Dungeon GenerateFireDungeon(DungeonEntrance entrance)
    {
        ChunkData[,] dungeonChunks = new ChunkData[5, 5];
        Dictionary <int, WorldObjectData>[,] chunkObjects = new Dictionary <int, WorldObjectData> [5, 5];


        for (int x = 0; x < 5; x++)
        {
            for (int z = 0; z < 5; z++)
            {
                chunkObjects[x, z] = new Dictionary <int, WorldObjectData>();


                dungeonChunks[x, z] = new ChunkData(x, z, (int[, ])BASE_DIRT.Clone(), true, chunkObjects[x, z]);
            }
        }
        Vec2i         chunkPos        = World.GetChunkPosition(entrance.WorldPosition);
        Vec2i         dungEntr        = new Vec2i(5, 5);
        EntityFaction dungFact        = new EntityFaction("Dungeon_faction");
        List <Entity> dungeonEntities = new List <Entity>();
        DungeonBoss   testBoss        = new DungeonBossTest(new BasicHumanoidCombatAI(), new CreatureTaskAI());

        testBoss.SetEntityFaction(dungFact);

        for (int i = 0; i < 25; i++)
        {
            Vec2i  randomPos = GenRan.RandomVec2i(World.ChunkSize, 5 * World.ChunkSize - 5);
            Entity newEnt    = new Bandit();
            newEnt.SetPosition(randomPos);
            newEnt.SetEntityFaction(dungFact);
            dungeonEntities.Add(newEnt);
        }
        Dungeon dungeon = new Dungeon(dungeonChunks, dungEntr, entrance.WorldPosition, dungeonEntities, testBoss);

        entrance.SetDungeon(dungeon);
        return(dungeon);
    }