summaryrefslogtreecommitdiffstats
path: root/source
diff options
context:
space:
mode:
Diffstat (limited to 'source')
-rw-r--r--source/Blocks/BlockHandler.cpp8
-rw-r--r--source/Items/ItemShears.h1
-rw-r--r--source/Simulator/SandSimulator.cpp2
-rw-r--r--source/UI/SlotArea.cpp2
-rw-r--r--source/World.cpp4
5 files changed, 12 insertions, 5 deletions
diff --git a/source/Blocks/BlockHandler.cpp b/source/Blocks/BlockHandler.cpp
index 5134c1103..2627ac6b4 100644
--- a/source/Blocks/BlockHandler.cpp
+++ b/source/Blocks/BlockHandler.cpp
@@ -351,6 +351,14 @@ 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);
+ */
+
a_World->SpawnItemPickups(Pickups, a_BlockX, a_BlockY, a_BlockZ);
}
}
diff --git a/source/Items/ItemShears.h b/source/Items/ItemShears.h
index 663fa0170..6a17607ee 100644
--- a/source/Items/ItemShears.h
+++ b/source/Items/ItemShears.h
@@ -38,7 +38,6 @@ public:
a_Player->UseEquippedItem();
return true;
}
- // TODO: cobweb, vines
return false;
}
diff --git a/source/Simulator/SandSimulator.cpp b/source/Simulator/SandSimulator.cpp
index f4f0cdc80..87fb83357 100644
--- a/source/Simulator/SandSimulator.cpp
+++ b/source/Simulator/SandSimulator.cpp
@@ -258,7 +258,7 @@ void cSandSimulator::FinishFalling(
// Create a pickup instead:
cItems Pickups;
Pickups.Add((ENUM_ITEM_ID)a_FallingBlockType, 1, a_FallingBlockMeta);
- a_World->SpawnItemPickups(Pickups, (double)a_BlockX + 0.5, (double)a_BlockY + 0.5, (double)a_BlockZ + 0.5, 0);
+ a_World->SpawnItemPickups(Pickups, (double)a_BlockX + 0.5, (double)a_BlockY + 0.5, (double)a_BlockZ + 0.5);
}
diff --git a/source/UI/SlotArea.cpp b/source/UI/SlotArea.cpp
index 9213d4ff8..0a37e82b0 100644
--- a/source/UI/SlotArea.cpp
+++ b/source/UI/SlotArea.cpp
@@ -793,7 +793,7 @@ void cSlotAreaTemporary::TossItems(cPlayer & a_Player, int a_Begin, int a_End)
double vX = 0, vY = 0, vZ = 0;
EulerToVector(-a_Player.GetRotation(), a_Player.GetPitch(), vZ, vX, vY);
vY = -vY * 2 + 1.f;
- a_Player.GetWorld()->SpawnItemPickups(Drops, a_Player.GetPosX(), a_Player.GetPosY() + 1.6f, a_Player.GetPosZ(), vX * 2, vY * 2, vZ * 2);
+ a_Player.GetWorld()->SpawnItemPickups(Drops, a_Player.GetPosX(), a_Player.GetPosY() + 1.6f, a_Player.GetPosZ(), vX * 3, vY * 3, vZ * 3);
}
diff --git a/source/World.cpp b/source/World.cpp
index 718c86262..1d403994d 100644
--- a/source/World.cpp
+++ b/source/World.cpp
@@ -1517,7 +1517,7 @@ void cWorld::SpawnItemPickups(const cItems & a_Pickups, double a_BlockX, double
float SpeedY = 1;
float SpeedZ = (float)(a_FlyAwaySpeed * (r1.randInt(1000) - 500));
- // (FS #338 Fixed with mid block position spawn, previous TODOs/comments removed)
+ // Pickup doesn't spawn on client without a mid block position. Perhaps the doubles are causing issues?
int MicroX = (int)(floor(a_BlockX) * 32) + 16;
int MicroY = (int)(floor(a_BlockY) * 32) + 16;
int MicroZ = (int)(floor(a_BlockZ) * 32) + 16;
@@ -1539,7 +1539,7 @@ void cWorld::SpawnItemPickups(const cItems & a_Pickups, double a_BlockX, double
MTRand r1;
for (cItems::const_iterator itr = a_Pickups.begin(); itr != a_Pickups.end(); ++itr)
{
- // (FS #338 Fixed with mid block position spawn, previous TODOs/comments removed)
+ // Pickup doesn't spawn on client without a mid block position. Perhaps the doubles are causing issues?
int MicroX = (int)(floor(a_BlockX) * 32) + 16;
int MicroY = (int)(floor(a_BlockY) * 32) + 16;
int MicroZ = (int)(floor(a_BlockZ) * 32) + 16;