Fix dropped/thrown item behavior

This commit is contained in:
2026-02-10 14:57:41 -08:00
parent fdc4a6f2c1
commit 97198afe18
1138 changed files with 20375 additions and 4110 deletions

View File

@@ -24,15 +24,22 @@ public partial class DroppedItem : RigidBody3D, IDroppedItem
{
ContactMonitor = true;
Sprite.Texture = Item.GetTexture();
BodyEntered += DroppedItem_BodyEntered;
}
private void DroppedItem_BodyEntered(Node body)
{
AngularVelocity = Vector3.Zero;
LinearVelocity = Vector3.Zero;
}
public async void Drop()
{
AddCollisionExceptionWith((Node)Player);
Pickup.Monitorable = false;
Pickup.Monitoring = false;
GlobalPosition = Player.GlobalPosition + Vector3.Up;
ApplyCentralImpulse(-Player.GlobalBasis.Z.Normalized() * 5.0f);
GlobalPosition = new Vector3(Player.GlobalPosition.X, Player.GlobalPosition.Y + 1, Player.GlobalPosition.Z) + (-Player.GlobalBasis.Z * 2);
await ToSignal(GetTree().CreateTimer(1), "timeout");
RemoveCollisionExceptionWith((Node)Player);
Pickup.Monitorable = true;