diff options
Diffstat (limited to 'src/BlockEntities/MobSpawnerEntity.cpp')
-rw-r--r-- | src/BlockEntities/MobSpawnerEntity.cpp | 12 |
1 files changed, 6 insertions, 6 deletions
diff --git a/src/BlockEntities/MobSpawnerEntity.cpp b/src/BlockEntities/MobSpawnerEntity.cpp index 47bf85e9b..3bb04682a 100644 --- a/src/BlockEntities/MobSpawnerEntity.cpp +++ b/src/BlockEntities/MobSpawnerEntity.cpp @@ -107,7 +107,7 @@ bool cMobSpawnerEntity::Tick(std::chrono::milliseconds a_Dt, cChunk & a_Chunk) void cMobSpawnerEntity::ResetTimer(void) { - m_SpawnDelay = static_cast<short>(200 + m_World->GetTickRandomNumber(600)); + m_SpawnDelay = GetRandomProvider().RandInt<short>(200, 800); m_World->BroadcastBlockEntity(m_PosX, m_PosY, m_PosZ); } @@ -138,7 +138,7 @@ void cMobSpawnerEntity::SpawnEntity(void) virtual bool Item(cChunk * a_Chunk) { - cFastRandom Random; + auto & Random = GetRandomProvider(); bool EntitiesSpawned = false; for (size_t i = 0; i < 4; i++) @@ -148,9 +148,9 @@ void cMobSpawnerEntity::SpawnEntity(void) break; } - int RelX = static_cast<int>(m_RelX + static_cast<double>(Random.NextFloat() - Random.NextFloat()) * 4.0); - int RelY = m_RelY + Random.NextInt(3) - 1; - int RelZ = static_cast<int>(m_RelZ + static_cast<double>(Random.NextFloat() - Random.NextFloat()) * 4.0); + int RelX = m_RelX + static_cast<int>((Random.RandReal<double>() - Random.RandReal<double>()) * 4.0); + int RelY = m_RelY + Random.RandInt(-1, 1); + int RelZ = m_RelZ + static_cast<int>((Random.RandReal<double>() - Random.RandReal<double>()) * 4.0); cChunk * Chunk = a_Chunk->GetRelNeighborChunkAdjustCoords(RelX, RelZ); if ((Chunk == nullptr) || !Chunk->IsValid()) @@ -171,7 +171,7 @@ void cMobSpawnerEntity::SpawnEntity(void) } Monster->SetPosition(PosX, RelY, PosZ); - Monster->SetYaw(Random.NextFloat() * 360.0f); + Monster->SetYaw(Random.RandReal(360.0f)); if (Chunk->GetWorld()->SpawnMobFinalize(Monster) != cEntity::INVALID_ID) { EntitiesSpawned = true; |