#ifndef PLANET_H #define PLANET_H #include "core/image.h" #include "core/reference.h" #include "biome.h" #include "dungeon.h" #include "../data/planet_data.h" #ifdef VOXELMAN_PRESENT #include "../../voxelman/library/voxel_surface.h" #include "../../voxelman/library/voxelman_library.h" #include "../../voxelman/world/environment_data.h" #include "../../voxelman/world/voxel_chunk.h" #endif class PlanetData; class Planet : public Reference { GDCLASS(Planet, Reference); public: int get_current_seed(); void set_current_seed(int value); Vector2 get_level_range(); void set_level_range(Vector2 value); #ifdef VOXELMAN_PRESENT //Environment Ref get_environment(); void set_environment(Ref value); #endif Ref get_data(); void set_data(Ref value); //Biomes Ref get_biome(const int index) const; void set_biome(const int index, const Ref biome); void add_biome(const Ref biome); void remove_biome(const int index); int get_biome_count() const; //Dungeons Ref get_dungeon(const int index) const; void set_dungeon(const int index, const Ref dungeon); void add_dungeon(const Ref dungeon); void remove_dungeon(const int index); int get_dungeon_count() const; void setup(); #ifdef VOXELMAN_PRESENT void setup_library(Ref library); void _setup_library(Ref library); void generate_chunk(VoxelChunk *chunk, bool spawn_mobs); void generate_chunk_bind(Node *chunk, bool spawn_mobs); #else void generate_chunk(Node *chunk, bool spawn_mobs); void setup_library(Ref library); #endif Ref generate_map(); Planet(); ~Planet(); protected: static void _bind_methods(); private: int _current_seed; Vector2 _level_range; #ifdef VOXELMAN_PRESENT Ref _environment; #endif Ref _data; Vector > _biomes; Vector > _dungeons; }; #endif