Added map generation virtual methods.

This commit is contained in:
Relintai 2019-10-14 21:50:35 +02:00
parent fc7e054559
commit e199300fff
4 changed files with 24 additions and 0 deletions

View File

@ -42,6 +42,12 @@ void Dungeon::generate_structure(Ref<VoxelStructure> structure) {
}
}
Ref<Image> Dungeon::generate_map() {
ERR_FAIL_COND_V(!has_method("_generate_map"), Ref<Image>());
return call("_generate_map");
}
Dungeon::Dungeon() {
}
@ -67,4 +73,8 @@ void Dungeon::_bind_methods() {
ClassDB::bind_method(D_METHOD("remove_dungeon_room", "index"), &Dungeon::remove_dungeon_room);
ClassDB::bind_method(D_METHOD("get_dungeon_room_count"), &Dungeon::get_dungeon_room_count);
BIND_VMETHOD(MethodInfo(PropertyInfo(Variant::OBJECT, "image", PROPERTY_HINT_RESOURCE_TYPE, "Image"), "_generate_map"));
ClassDB::bind_method(D_METHOD("generate_map"), &Dungeon::generate_map);
}

View File

@ -27,6 +27,8 @@ public:
void generate_chunk(Ref<VoxelChunk> chunk);
void generate_structure(Ref<VoxelStructure> structure);
Ref<Image> generate_map();
Dungeon();
~Dungeon();

View File

@ -36,6 +36,12 @@ void Planet::generate_chunk(Ref<VoxelChunk> chunk) {
}
}
Ref<Image> Planet::generate_map() {
ERR_FAIL_COND_V(!has_method("_generate_map"), Ref<Image>());
return call("_generate_map");
}
Planet::Planet() {
}
@ -59,4 +65,8 @@ void Planet::_bind_methods() {
ClassDB::bind_method(D_METHOD("remove_biome", "index"), &Planet::remove_biome);
ClassDB::bind_method(D_METHOD("get_biome_count"), &Planet::get_biome_count);
BIND_VMETHOD(MethodInfo(PropertyInfo(Variant::OBJECT, "image", PROPERTY_HINT_RESOURCE_TYPE, "Image"), "_generate_map"));
ClassDB::bind_method(D_METHOD("generate_map"), &Planet::generate_map);
}

View File

@ -2,6 +2,7 @@
#define PLANET_H
#include "core/reference.h"
#include "core/image.h"
#include "../../voxelman/world/voxel_chunk.h"
#include "biome.h"
@ -23,6 +24,7 @@ public:
int get_biome_count() const;
void generate_chunk(Ref<VoxelChunk> chunk);
Ref<Image> generate_map();
Planet();
~Planet();