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:
parent
41e09484b7
commit
7700116330
@ -972,7 +972,7 @@ void cEntity::HandlePhysics(std::chrono::milliseconds a_Dt, cChunk & a_Chunk)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else if (!(IsMinecart() || IsTNT()))
|
else if (!(IsMinecart() || IsTNT() || (IsPickup() && (m_TicksAlive < 15))))
|
||||||
{
|
{
|
||||||
// Push out entity.
|
// Push out entity.
|
||||||
BLOCKTYPE GotBlock;
|
BLOCKTYPE GotBlock;
|
||||||
|
@ -1974,9 +1974,9 @@ void cWorld::SpawnItemPickups(const cItems & a_Pickups, Vector3d a_Pos, double a
|
|||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
float SpeedX = 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(50));
|
float SpeedY = static_cast<float>(a_FlyAwaySpeed * Random.RandInt(40, 50));
|
||||||
float SpeedZ = static_cast<float>(a_FlyAwaySpeed * Random.RandInt(-5, 5));
|
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 Pickup = cpp14::make_unique<cPickup>(a_Pos, *itr, a_IsPlayerCreated, Vector3f{SpeedX, SpeedY, SpeedZ});
|
||||||
auto PickupPtr = Pickup.get();
|
auto PickupPtr = Pickup.get();
|
||||||
@ -2226,7 +2226,7 @@ bool cWorld::DropBlockAsPickups(Vector3i a_BlockPos, const cEntity * a_Digger, c
|
|||||||
{
|
{
|
||||||
return false;
|
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;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user