mirror of
https://gitlab.com/MaddoScientisto/cirnogodot.git
synced 2026-06-01 11:15:33 +00:00
32 lines
No EOL
912 B
C#
32 lines
No EOL
912 B
C#
using Cirno.Scripts.Resources;
|
|
using Godot;
|
|
|
|
namespace Cirno.Scripts.Interactables;
|
|
|
|
public partial class ItemDrop : RigidBody2D
|
|
{
|
|
[Export] public LootItem ItemToDrop { get; set; }
|
|
|
|
[Export] public float StartingSpeed { get; set; } = 40f;
|
|
|
|
private RandomNumberGenerator _rng = new();
|
|
public override void _Ready()
|
|
{
|
|
var dropInstance = ItemToDrop.Spawn(this, true);
|
|
|
|
//Node dropInstance = dropScene.Instantiate();
|
|
//AddChild(dropInstance);
|
|
CallDeferred(MethodName.DelayedAddOwner, dropInstance);
|
|
|
|
float angle = _rng.RandfRange(0, Mathf.Tau); // 0 to 2π
|
|
Vector2 direction = new Vector2(Mathf.Cos(angle), Mathf.Sin(angle)).Normalized();
|
|
|
|
// Apply impulse in that direction
|
|
ApplyImpulse(direction * StartingSpeed);
|
|
}
|
|
|
|
private void DelayedAddOwner(Node2D node)
|
|
{
|
|
node.Owner = this;
|
|
}
|
|
} |