summaryrefslogtreecommitdiffstats
path: root/source/Blocks/BlockHandler.cpp
diff options
context:
space:
mode:
authorTiger Wang <ziwei.tiger@hotmail.co.uk>2013-09-18 23:20:08 +0200
committerTiger Wang <ziwei.tiger@hotmail.co.uk>2013-09-18 23:20:08 +0200
commit198ac1892ca0751551206ca25164bc691386914b (patch)
treed69d08c269a7eaf78dd8917e309f0d75d4accf3d /source/Blocks/BlockHandler.cpp
parentAdded moar mobs! (diff)
downloadcuberite-198ac1892ca0751551206ca25164bc691386914b.tar
cuberite-198ac1892ca0751551206ca25164bc691386914b.tar.gz
cuberite-198ac1892ca0751551206ca25164bc691386914b.tar.bz2
cuberite-198ac1892ca0751551206ca25164bc691386914b.tar.lz
cuberite-198ac1892ca0751551206ca25164bc691386914b.tar.xz
cuberite-198ac1892ca0751551206ca25164bc691386914b.tar.zst
cuberite-198ac1892ca0751551206ca25164bc691386914b.zip
Diffstat (limited to '')
-rw-r--r--source/Blocks/BlockHandler.cpp18
1 files changed, 11 insertions, 7 deletions
diff --git a/source/Blocks/BlockHandler.cpp b/source/Blocks/BlockHandler.cpp
index 43330befa..7d896f1b6 100644
--- a/source/Blocks/BlockHandler.cpp
+++ b/source/Blocks/BlockHandler.cpp
@@ -358,13 +358,17 @@ void cBlockHandler::DropBlock(cWorld * a_World, cEntity * a_Digger, int a_BlockX
if (!Pickups.empty())
{
- // Add random offset to the spawn position:
- // Commented out until bug with pickups not spawning properly is fixed, see World.cpp
- /*
- int MicroX = (int)(a_BlockX * 32) + (r1.randInt(16) + r1.randInt(16) - 16);
- int MicroY = (int)(a_BlockY * 32) + (r1.randInt(16) + r1.randInt(16) - 16);
- int MicroZ = (int)(a_BlockZ * 32) + (r1.randInt(16) + r1.randInt(16) - 16);
- */
+ MTRand r1;
+
+ // Mid-block position first
+ int MicroX = (int)(floor(a_BlockX) * 32) + 16;
+ int MicroY = (int)(floor(a_BlockY) * 32) + 16;
+ int MicroZ = (int)(floor(a_BlockZ) * 32) + 16;
+
+ // Add random offset second
+ MicroX = (int)(a_BlockX * 32) + (r1.randInt(16) + r1.randInt(16) - 16);
+ MicroY = (int)(a_BlockY * 32) + (r1.randInt(16) + r1.randInt(16) - 16);
+ MicroZ = (int)(a_BlockZ * 32) + (r1.randInt(16) + r1.randInt(16) - 16);
a_World->SpawnItemPickups(Pickups, a_BlockX, a_BlockY, a_BlockZ);
}