mirror of
https://github.com/MihailRis/voxelcore.git
synced 2026-10-12 06:21:50 +00:00
remove content-related functions from core library
This commit is contained in:
parent
9af675611f
commit
126a8485a1
3 changed files with 67 additions and 68 deletions
|
|
@ -27,14 +27,12 @@ end
|
||||||
local __vc__app_script_coroutine
|
local __vc__app_script_coroutine
|
||||||
|
|
||||||
local function complete_app_lib(app)
|
local function complete_app_lib(app)
|
||||||
local __core_load_content = core.load_content
|
local __app_load_content = app.load_content
|
||||||
local __core_reset_content = core.reset_content
|
local __app_reset_content = app.reset_content
|
||||||
local __core_reconfig_packs = core.reconfig_packs
|
local __app_reconfig_packs = app.reconfig_packs
|
||||||
local __app_tick = coroutine.yield
|
local __app_tick = coroutine.yield
|
||||||
local __app_set_setting = app.set_setting
|
local __app_set_setting = app.set_setting
|
||||||
local __app_quit = app.quit
|
local __app_quit = app.quit
|
||||||
core.load_content = nil
|
|
||||||
core.reset_content = nil
|
|
||||||
|
|
||||||
app.sleep = sleep
|
app.sleep = sleep
|
||||||
app.script = __VC_SCRIPT_NAME
|
app.script = __VC_SCRIPT_NAME
|
||||||
|
|
@ -61,13 +59,13 @@ local function complete_app_lib(app)
|
||||||
end
|
end
|
||||||
|
|
||||||
app.reconfig_packs = function(...)
|
app.reconfig_packs = function(...)
|
||||||
call_in_app_script_co(__core_reconfig_packs, ...)
|
call_in_app_script_co(__app_reconfig_packs, ...)
|
||||||
end
|
end
|
||||||
app.load_content = function(...)
|
app.load_content = function(...)
|
||||||
call_in_app_script_co(__core_load_content, ...)
|
call_in_app_script_co(__app_load_content, ...)
|
||||||
end
|
end
|
||||||
app.reset_content = function(...)
|
app.reset_content = function(...)
|
||||||
call_in_app_script_co(__core_reset_content, ...)
|
call_in_app_script_co(__app_reset_content, ...)
|
||||||
end
|
end
|
||||||
|
|
||||||
function app.config_packs(packs_list)
|
function app.config_packs(packs_list)
|
||||||
|
|
|
||||||
|
|
@ -4,6 +4,7 @@
|
||||||
#include "io/settings_io.hpp"
|
#include "io/settings_io.hpp"
|
||||||
#include "io/devices/MemoryDevice.hpp"
|
#include "io/devices/MemoryDevice.hpp"
|
||||||
#include "logic/scripting/scripting.hpp"
|
#include "logic/scripting/scripting.hpp"
|
||||||
|
#include "logic/EngineController.hpp"
|
||||||
#include "content/ContentControl.hpp"
|
#include "content/ContentControl.hpp"
|
||||||
#include "engine/Engine.hpp"
|
#include "engine/Engine.hpp"
|
||||||
#include "engine/EnginePaths.hpp"
|
#include "engine/EnginePaths.hpp"
|
||||||
|
|
@ -29,6 +30,63 @@ static int l_is_content_loaded(lua::State* L) {
|
||||||
return lua::pushboolean(L, content != nullptr);
|
return lua::pushboolean(L, content != nullptr);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static int l_load_content(lua::State* L) {
|
||||||
|
content_control->loadContent();
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
static int l_reset_content(lua::State* L) {
|
||||||
|
if (level != nullptr) {
|
||||||
|
throw std::runtime_error("world must be closed before");
|
||||||
|
}
|
||||||
|
std::vector<std::string> nonResetPacks;
|
||||||
|
if (lua::istable(L, 1)) {
|
||||||
|
int len = lua::objlen(L, 1);
|
||||||
|
for (int i = 0; i < len; i++) {
|
||||||
|
lua::rawgeti(L, i + 1, 1);
|
||||||
|
nonResetPacks.emplace_back(lua::require_lstring(L, -1));
|
||||||
|
lua::pop(L);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
content_control->resetContent(std::move(nonResetPacks));
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
/// @brief Reconfigure packs
|
||||||
|
/// @param addPacks An array of packs to add
|
||||||
|
/// @param remPacks An array of packs to remove
|
||||||
|
static int l_reconfig_packs(lua::State* L) {
|
||||||
|
if (!lua::istable(L, 1)) {
|
||||||
|
throw std::runtime_error("strings array expected as the first argument");
|
||||||
|
}
|
||||||
|
if (!lua::istable(L, 2)) {
|
||||||
|
throw std::runtime_error("strings array expected as the second argument");
|
||||||
|
}
|
||||||
|
std::vector<std::string> addPacks;
|
||||||
|
int addLen = lua::objlen(L, 1);
|
||||||
|
for (int i = 0; i < addLen; i++) {
|
||||||
|
lua::rawgeti(L, i + 1, 1);
|
||||||
|
addPacks.emplace_back(lua::require_lstring(L, -1));
|
||||||
|
lua::pop(L);
|
||||||
|
}
|
||||||
|
std::vector<std::string> remPacks;
|
||||||
|
int remLen = lua::objlen(L, 2);
|
||||||
|
for (int i = 0; i < remLen; i++) {
|
||||||
|
lua::rawgeti(L, i + 1, 2);
|
||||||
|
remPacks.emplace_back(lua::require_lstring(L, -1));
|
||||||
|
lua::pop(L);
|
||||||
|
}
|
||||||
|
auto engineController = engine->getController();
|
||||||
|
try {
|
||||||
|
engineController->reconfigPacks(controller, addPacks, remPacks);
|
||||||
|
} catch (const contentpack_error& err) {
|
||||||
|
throw std::runtime_error(
|
||||||
|
std::string(err.what()) + " [" + err.getPackId() + " ]"
|
||||||
|
);
|
||||||
|
}
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
static int l_start_debug_instance(lua::State* L) {
|
static int l_start_debug_instance(lua::State* L) {
|
||||||
if (!engine->getProject().permissions.has(Permissions::DEBUGGING)) {
|
if (!engine->getProject().permissions.has(Permissions::DEBUGGING)) {
|
||||||
throw std::runtime_error("project has no debugging permission");
|
throw std::runtime_error("project has no debugging permission");
|
||||||
|
|
@ -217,6 +275,9 @@ static int l_quit(lua::State*) {
|
||||||
const luaL_Reg applib[] = {
|
const luaL_Reg applib[] = {
|
||||||
{"get_version", lua::wrap<l_get_version>},
|
{"get_version", lua::wrap<l_get_version>},
|
||||||
{"is_content_loaded", lua::wrap<l_is_content_loaded>},
|
{"is_content_loaded", lua::wrap<l_is_content_loaded>},
|
||||||
|
{"load_content", lua::wrap<l_load_content>},
|
||||||
|
{"reset_content", lua::wrap<l_reset_content>},
|
||||||
|
{"reconfig_packs", lua::wrap<l_reconfig_packs>},
|
||||||
{"start_debug_instance", lua::wrap<l_start_debug_instance>},
|
{"start_debug_instance", lua::wrap<l_start_debug_instance>},
|
||||||
{"focus", lua::wrap<l_focus>},
|
{"focus", lua::wrap<l_focus>},
|
||||||
{"create_memory_device", lua::wrap<l_create_memory_device>},
|
{"create_memory_device", lua::wrap<l_create_memory_device>},
|
||||||
|
|
|
||||||
|
|
@ -23,28 +23,6 @@
|
||||||
|
|
||||||
using namespace scripting;
|
using namespace scripting;
|
||||||
|
|
||||||
static int l_load_content(lua::State* L) {
|
|
||||||
content_control->loadContent();
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
static int l_reset_content(lua::State* L) {
|
|
||||||
if (level != nullptr) {
|
|
||||||
throw std::runtime_error("world must be closed before");
|
|
||||||
}
|
|
||||||
std::vector<std::string> nonResetPacks;
|
|
||||||
if (lua::istable(L, 1)) {
|
|
||||||
int len = lua::objlen(L, 1);
|
|
||||||
for (int i = 0; i < len; i++) {
|
|
||||||
lua::rawgeti(L, i + 1, 1);
|
|
||||||
nonResetPacks.emplace_back(lua::require_lstring(L, -1));
|
|
||||||
lua::pop(L);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
content_control->resetContent(std::move(nonResetPacks));
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
/// @brief Creating new world
|
/// @brief Creating new world
|
||||||
/// @param name Name world
|
/// @param name Name world
|
||||||
/// @param seed Seed world
|
/// @param seed Seed world
|
||||||
|
|
@ -122,41 +100,6 @@ static int l_delete_world(lua::State* L) {
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
/// @brief Reconfigure packs
|
|
||||||
/// @param addPacks An array of packs to add
|
|
||||||
/// @param remPacks An array of packs to remove
|
|
||||||
static int l_reconfig_packs(lua::State* L) {
|
|
||||||
if (!lua::istable(L, 1)) {
|
|
||||||
throw std::runtime_error("strings array expected as the first argument");
|
|
||||||
}
|
|
||||||
if (!lua::istable(L, 2)) {
|
|
||||||
throw std::runtime_error("strings array expected as the second argument");
|
|
||||||
}
|
|
||||||
std::vector<std::string> addPacks;
|
|
||||||
int addLen = lua::objlen(L, 1);
|
|
||||||
for (int i = 0; i < addLen; i++) {
|
|
||||||
lua::rawgeti(L, i + 1, 1);
|
|
||||||
addPacks.emplace_back(lua::require_lstring(L, -1));
|
|
||||||
lua::pop(L);
|
|
||||||
}
|
|
||||||
std::vector<std::string> remPacks;
|
|
||||||
int remLen = lua::objlen(L, 2);
|
|
||||||
for (int i = 0; i < remLen; i++) {
|
|
||||||
lua::rawgeti(L, i + 1, 2);
|
|
||||||
remPacks.emplace_back(lua::require_lstring(L, -1));
|
|
||||||
lua::pop(L);
|
|
||||||
}
|
|
||||||
auto engineController = engine->getController();
|
|
||||||
try {
|
|
||||||
engineController->reconfigPacks(controller, addPacks, remPacks);
|
|
||||||
} catch (const contentpack_error& err) {
|
|
||||||
throw std::runtime_error(
|
|
||||||
std::string(err.what()) + " [" + err.getPackId() + " ]"
|
|
||||||
);
|
|
||||||
}
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
static int l_blank(lua::State*) {
|
static int l_blank(lua::State*) {
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
@ -190,15 +133,12 @@ static int l_capture_output(lua::State* L) {
|
||||||
|
|
||||||
const luaL_Reg corelib[] = {
|
const luaL_Reg corelib[] = {
|
||||||
{"blank", lua::wrap<l_blank>},
|
{"blank", lua::wrap<l_blank>},
|
||||||
{"load_content", lua::wrap<l_load_content>},
|
|
||||||
{"reset_content", lua::wrap<l_reset_content>},
|
|
||||||
{"new_world", lua::wrap<l_new_world>},
|
{"new_world", lua::wrap<l_new_world>},
|
||||||
{"open_world", lua::wrap<l_open_world>},
|
{"open_world", lua::wrap<l_open_world>},
|
||||||
{"reopen_world", lua::wrap<l_reopen_world>},
|
{"reopen_world", lua::wrap<l_reopen_world>},
|
||||||
{"save_world", lua::wrap<l_save_world>},
|
{"save_world", lua::wrap<l_save_world>},
|
||||||
{"close_world", lua::wrap<l_close_world>},
|
{"close_world", lua::wrap<l_close_world>},
|
||||||
{"delete_world", lua::wrap<l_delete_world>},
|
{"delete_world", lua::wrap<l_delete_world>},
|
||||||
{"reconfig_packs", lua::wrap<l_reconfig_packs>},
|
|
||||||
{"capture_output", lua::wrap<l_capture_output>},
|
{"capture_output", lua::wrap<l_capture_output>},
|
||||||
{nullptr, nullptr}
|
{nullptr, nullptr}
|
||||||
};
|
};
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue