You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
27 lines
862 B
27 lines
862 B
#pragma once
|
|
|
|
#include "map.hpp"
|
|
#include "dinkyecs.hpp"
|
|
#include "components.hpp"
|
|
|
|
class WorldBuilder {
|
|
public:
|
|
Map& $map;
|
|
|
|
WorldBuilder(Map &map) : $map(map) { }
|
|
|
|
void partition_map(Room &cur, int depth);
|
|
void make_room(size_t origin_y, size_t origin_x, size_t width, size_t height);
|
|
void add_door(Room &room);
|
|
void set_door(Room &room, int value);
|
|
void place_rooms();
|
|
void tunnel_doors(PointList &holes, Room &src, Room &target);
|
|
void update_door(Point &at, int wall_or_space);
|
|
void stylize_room(int room, string tile_name, float size);
|
|
void generate_rooms();
|
|
void generate_map();
|
|
void place_entities(DinkyECS::World &world);
|
|
void generate(DinkyECS::World &world);
|
|
void random_entity(DinkyECS::World &world, components::GameConfig &config);
|
|
void randomize_entities(DinkyECS::World &world, components::GameConfig &config);
|
|
};
|
|
|