using Godot; namespace Mr.BrickAdventures.scripts.components; public class ProjectileInitParams { public Vector2 Position { get; set; } = Vector2.Zero; public Vector2 Direction { get; set; } = Vector2.Right; public float Rotation { get; set; } = 0f; public float PowerMultiplier { get; set; } = 1f; } [GlobalClass] public partial class ProjectileInitComponent : Node { [Export] public LaunchComponent LaunchComponent { get; set; } public void Initialize(ProjectileInitParams p) { var position = p.Position; var direction = p.Direction; var rotation = p.Rotation; var power = p.PowerMultiplier; if (Owner is Node2D root) { root.GlobalPosition = position; root.GlobalRotation = rotation; } if (LaunchComponent == null) return; LaunchComponent.InitialDirection = direction; LaunchComponent.SpawnPosition = position; LaunchComponent.SpawnRotation = rotation; LaunchComponent.Speed *= power; } }