add player.is_loading_chunks, .set_loading_chunks
This commit is contained in:
@@ -38,7 +38,9 @@ void ChunksController::update(
|
||||
int centerX = floordiv<CHUNK_W>(position.x);
|
||||
int centerY = floordiv<CHUNK_D>(position.z);
|
||||
|
||||
generator->update(centerX, centerY, loadDistance);
|
||||
if (player.isLoadingChunks()) {
|
||||
generator->update(centerX, centerY, loadDistance);
|
||||
}
|
||||
|
||||
int64_t mcstotal = 0;
|
||||
|
||||
@@ -121,6 +123,12 @@ bool ChunksController::buildLights(const Player& player, const std::shared_ptr<C
|
||||
}
|
||||
|
||||
void ChunksController::createChunk(const Player& player, int x, int z) const {
|
||||
if (!player.isLoadingChunks()) {
|
||||
if (auto chunk = level.chunks->fetch(x, z)) {
|
||||
player.chunks->putChunk(chunk);
|
||||
}
|
||||
return;
|
||||
}
|
||||
auto chunk = level.chunks->create(x, z);
|
||||
player.chunks->putChunk(chunk);
|
||||
auto& chunkFlags = chunk->flags;
|
||||
|
||||
@@ -164,6 +164,20 @@ static int l_set_instant_destruction(lua::State* L) {
|
||||
return 0;
|
||||
}
|
||||
|
||||
static int l_is_loading_chunks(lua::State* L) {
|
||||
if (auto player = get_player(L, 1)) {
|
||||
return lua::pushboolean(L, player->isLoadingChunks());
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
|
||||
static int l_set_loading_chunks(lua::State* L) {
|
||||
if (auto player = get_player(L, 1)) {
|
||||
player->setLoadingChunks(lua::toboolean(L, 2));
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
|
||||
static int l_get_selected_block(lua::State* L) {
|
||||
if (auto player = get_player(L, 1)) {
|
||||
if (player->selection.vox.id == BLOCK_VOID) {
|
||||
@@ -282,6 +296,8 @@ const luaL_Reg playerlib[] = {
|
||||
{"set_infinite_items", lua::wrap<l_set_infinite_items>},
|
||||
{"is_instant_destruction", lua::wrap<l_is_instant_destruction>},
|
||||
{"set_instant_destruction", lua::wrap<l_set_instant_destruction>},
|
||||
{"is_loading_chunks", lua::wrap<l_is_loading_chunks>},
|
||||
{"set_loading_chunks", lua::wrap<l_set_loading_chunks>},
|
||||
{"set_selected_slot", lua::wrap<l_set_selected_slot>},
|
||||
{"get_selected_block", lua::wrap<l_get_selected_block>},
|
||||
{"get_selected_entity", lua::wrap<l_get_selected_entity>},
|
||||
|
||||
Reference in New Issue
Block a user