1
0

Pickup spawn improvements (#4525)

Pickups are now thrown around when spawned, like in vanilla. Pickups also bail out of the collision detection checks while being created, to prevent them from blasting too far off in e.g. cobblestone generators.
This commit is contained in:
Mat
2020-03-23 02:05:47 +02:00
committed by GitHub
parent 41e09484b7
commit 7700116330
2 changed files with 5 additions and 5 deletions

View File

@@ -1974,9 +1974,9 @@ void cWorld::SpawnItemPickups(const cItems & a_Pickups, Vector3d a_Pos, double a
continue;
}
float SpeedX = static_cast<float>(a_FlyAwaySpeed * Random.RandInt(-5, 5));
float SpeedY = static_cast<float>(a_FlyAwaySpeed * Random.RandInt(50));
float SpeedZ = static_cast<float>(a_FlyAwaySpeed * Random.RandInt(-5, 5));
float SpeedX = static_cast<float>(a_FlyAwaySpeed * Random.RandInt(-10, 10));
float SpeedY = static_cast<float>(a_FlyAwaySpeed * Random.RandInt(40, 50));
float SpeedZ = static_cast<float>(a_FlyAwaySpeed * Random.RandInt(-10, 10));
auto Pickup = cpp14::make_unique<cPickup>(a_Pos, *itr, a_IsPlayerCreated, Vector3f{SpeedX, SpeedY, SpeedZ});
auto PickupPtr = Pickup.get();
@@ -2226,7 +2226,7 @@ bool cWorld::DropBlockAsPickups(Vector3i a_BlockPos, const cEntity * a_Digger, c
{
return false;
}
SpawnItemPickups(pickups, Vector3d(0.5, 0.5, 0.5) + a_BlockPos);
SpawnItemPickups(pickups, Vector3d(0.5, 0.5, 0.5) + a_BlockPos, 10);
return true;
}