summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorLogicParrot <LogicParrot@users.noreply.github.com>2016-10-09 14:46:09 +0200
committerGitHub <noreply@github.com>2016-10-09 14:46:09 +0200
commit1e8cae641592cc4ae7b6f1b997c514f9d2be422b (patch)
tree82f88f3fcb9d71c33c43b981570e0c07cf232906
parentUpdated the Core plugin. (diff)
downloadcuberite-1e8cae641592cc4ae7b6f1b997c514f9d2be422b.tar
cuberite-1e8cae641592cc4ae7b6f1b997c514f9d2be422b.tar.gz
cuberite-1e8cae641592cc4ae7b6f1b997c514f9d2be422b.tar.bz2
cuberite-1e8cae641592cc4ae7b6f1b997c514f9d2be422b.tar.lz
cuberite-1e8cae641592cc4ae7b6f1b997c514f9d2be422b.tar.xz
cuberite-1e8cae641592cc4ae7b6f1b997c514f9d2be422b.tar.zst
cuberite-1e8cae641592cc4ae7b6f1b997c514f9d2be422b.zip
Diffstat (limited to '')
-rw-r--r--Server/Plugins/APIDump/APIDesc.lua2
-rw-r--r--src/Chunk.cpp2
-rw-r--r--src/Chunk.h2
-rw-r--r--src/ChunkMap.cpp2
4 files changed, 5 insertions, 3 deletions
diff --git a/Server/Plugins/APIDump/APIDesc.lua b/Server/Plugins/APIDump/APIDesc.lua
index 7817ec137..15f621711 100644
--- a/Server/Plugins/APIDump/APIDesc.lua
+++ b/Server/Plugins/APIDump/APIDesc.lua
@@ -16211,7 +16211,7 @@ function OnAllChunksAvailable()</pre> All return values from the callbacks are i
Type = "boolean",
},
},
- Notes = "Sets the chunk to always be ticked even when it doesn't contain any clients. IsAlwaysTicked set to true turns forced ticking on, set to false turns it off. Every call with 'true' should be paired with a later call with 'false', otherwise the ticking won't stop. Multiple actions can request ticking independently, the ticking will continue until the last call with 'false'. Note that when the chunk unloads, it loses the value of this flag.",
+ Notes = "Sets the chunk to always be ticked and loaded even when it doesn't contain any clients. IsAlwaysTicked set to true turns forced ticking on, set to false turns it off. Every call with 'true' should be paired with a later call with 'false', otherwise the ticking won't stop. Multiple actions can request ticking independently, the ticking will continue until the last call with 'false'." },
},
SetCommandBlockCommand =
{
diff --git a/src/Chunk.cpp b/src/Chunk.cpp
index d833feea5..508fe355e 100644
--- a/src/Chunk.cpp
+++ b/src/Chunk.cpp
@@ -1728,10 +1728,12 @@ void cChunk::SetAlwaysTicked(bool a_AlwaysTicked)
if (a_AlwaysTicked)
{
m_AlwaysTicked += 1;
+ Stay(a_AlwaysTicked);
}
else
{
m_AlwaysTicked -= 1;
+ Stay(a_AlwaysTicked);
}
}
diff --git a/src/Chunk.h b/src/Chunk.h
index 54e4a9502..398d33a5f 100644
--- a/src/Chunk.h
+++ b/src/Chunk.h
@@ -475,7 +475,7 @@ public:
/** Increments (a_AlwaysTicked == true) or decrements (false) the m_AlwaysTicked counter.
If the m_AlwaysTicked counter is greater than zero, the chunk is ticked in the tick-thread regardless of
- whether it has any clients or not.
+ whether it has any clients or not. When this is set, the chunk never unloads.
This function allows nesting and task-concurrency (multiple separate tasks can request ticking and as long
as at least one requests is active the chunk will be ticked). */
void SetAlwaysTicked(bool a_AlwaysTicked);
diff --git a/src/ChunkMap.cpp b/src/ChunkMap.cpp
index a16b08f15..c8e485cdd 100644
--- a/src/ChunkMap.cpp
+++ b/src/ChunkMap.cpp
@@ -2762,7 +2762,7 @@ void cChunkMap::QueueTickBlock(int a_BlockX, int a_BlockY, int a_BlockZ)
void cChunkMap::SetChunkAlwaysTicked(int a_ChunkX, int a_ChunkZ, bool a_AlwaysTicked)
{
cCSLock Lock(m_CSChunks);
- cChunkPtr Chunk = GetChunkNoLoad(a_ChunkX, a_ChunkZ);
+ cChunkPtr Chunk = GetChunk(a_ChunkX, a_ChunkZ);
if (Chunk != nullptr)
{
Chunk->SetAlwaysTicked(a_AlwaysTicked);