diff --git a/res/texts/be_BY.txt b/res/texts/be_BY.txt index 0e574fd4..5b536ea7 100644 --- a/res/texts/be_BY.txt +++ b/res/texts/be_BY.txt @@ -25,6 +25,9 @@ world.Seed=Зерне world.Name=Назва menu.Create World=Стварыць Свет +world.World generator=Генератар свету +world.generators.default=Звычайны +world.generators.flat=Плоскі world.convert-request=Ёсць змены ў індэксах! Канвертаваць свет? world.delete-confirm=Выдаліць свет незваротна? diff --git a/res/texts/en_US.txt b/res/texts/en_US.txt index 3a25444c..26ade5db 100644 --- a/res/texts/en_US.txt +++ b/res/texts/en_US.txt @@ -4,6 +4,8 @@ world.convert-request=Content indices have changed! Convert world files? error.pack-not-found=Could not to find pack error.dependency-not-found=Dependency pack is not found world.delete-confirm=Do you want to delete world forever? +world.generators.default=Default +world.generators.flat=Flat # Bindings movement.forward=Forward diff --git a/res/texts/fi_FI.txt b/res/texts/fi_FI.txt index 124a2956..b3d4a3b6 100644 --- a/res/texts/fi_FI.txt +++ b/res/texts/fi_FI.txt @@ -23,6 +23,9 @@ menu.Seed=Siemen menu.Name=Nimi menu.Create World=Luo Maailma +world.World generator=Valon generaattori +world.generators.default=Äärimmäinen +world.generators.flat=Tasainen world.convert-request=Indeksit vaihdettu! Lataa maailma uudeleen? world.delete-confirm=Poistetaanko maailma ikuisesti? diff --git a/res/texts/pl_PL.txt b/res/texts/pl_PL.txt index 03b5eb39..aebdab1c 100644 --- a/res/texts/pl_PL.txt +++ b/res/texts/pl_PL.txt @@ -22,6 +22,9 @@ world.Seed=Ziarno world.Name=Nazwa menu.Create World=Stwórz świat +world.World generator=Generator światła +world.generators.default=Ekstremalne +world.generators.flat=Mieszkanie world.convert-request=Szykują się zmiany w indeksach! Przekształcić świat? # Ustawienia diff --git a/res/texts/ru_RU.txt b/res/texts/ru_RU.txt index 71fabbb7..caa5f607 100644 --- a/res/texts/ru_RU.txt +++ b/res/texts/ru_RU.txt @@ -23,6 +23,10 @@ menu.Settings=Настройки menu.Content=Контент world.Seed=Зерно world.Name=Название + +world.World generator=Генератор мира +world.generators.default=Обычный +world.generators.flat=Плоский menu.Create World=Создать Мир world.convert-request=Есть изменения в индексах! Конвертировать мир? diff --git a/res/texts/uk_UA.txt b/res/texts/uk_UA.txt index 2cea620a..ddc657ae 100644 --- a/res/texts/uk_UA.txt +++ b/res/texts/uk_UA.txt @@ -22,6 +22,9 @@ world.Seed=Зерно world.Name=Назва menu.Create World=Створити Світ +world.World generator=Генератор світла +world.generators.default=Звичайні +world.generators.flat=Плоскі world.convert-request=Є зміни в індексах! Конвертувати світ? # Налаштування diff --git a/src/engine.cpp b/src/engine.cpp index 38d6bcd4..1796942b 100644 --- a/src/engine.cpp +++ b/src/engine.cpp @@ -7,11 +7,15 @@ #include #include #include +#include #define GLEW_STATIC #include "audio/Audio.h" #include "assets/Assets.h" #include "assets/AssetsLoader.h" +#include "world/WorldGenerators.h" +#include "voxels/DefaultWorldGenerator.h" +#include "voxels/FlatWorldGenerator.h" #include "window/Window.h" #include "window/Events.h" #include "window/Camera.h" @@ -41,6 +45,11 @@ namespace fs = std::filesystem; +void addWorldGenerators() { + WorldGenerators::addGenerator("core:default"); + WorldGenerators::addGenerator("core:flat"); +} + Engine::Engine(EngineSettings& settings, EnginePaths* paths) : settings(settings), paths(paths) { @@ -80,6 +89,7 @@ Engine::Engine(EngineSettings& settings, EnginePaths* paths) menus::create_version_label(this); } setLanguage(settings.ui.language); + addWorldGenerators(); } void Engine::updateTimers() { @@ -251,4 +261,4 @@ EnginePaths* Engine::getPaths() { std::shared_ptr Engine::getScreen() { return screen; -} +} \ No newline at end of file diff --git a/src/frontend/menu.cpp b/src/frontend/menu.cpp index 0879978f..2e69be9b 100644 --- a/src/frontend/menu.cpp +++ b/src/frontend/menu.cpp @@ -19,6 +19,7 @@ #include "../files/WorldConverter.h" #include "../files/WorldFiles.h" #include "../world/World.h" +#include "../world/WorldGenerators.h" #include "../world/Level.h" #include "../window/Events.h" #include "../window/Window.h" @@ -38,6 +39,10 @@ using glm::vec4; namespace fs = std::filesystem; using namespace gui; +namespace menus { + std::string generatorID; +} + inline uint64_t randU64() { srand(time(NULL)); return rand() ^ (rand() << 8) ^ @@ -82,7 +87,6 @@ static std::shared_ptr