Player movement and camera

This commit is contained in:
Marco 2025-06-11 15:28:26 +02:00
commit a324f2e347
43 changed files with 1777 additions and 316 deletions

View file

@ -16,24 +16,29 @@ public partial class CreateEmitterPattern : AttackPattern
[Export] public double LifeTime { get; set; } = 10d;
public override IPatternMachine MakeMachine(Node2D parent)
public override IPatternMachine MakeMachine(Node parent)
{
return new EmitterPatternMachine(this, parent);
}
public class EmitterPatternMachine(CreateEmitterPattern pattern, Node2D parent) : IPatternMachine
public class EmitterPatternMachine(CreateEmitterPattern pattern, Node parent) : IPatternMachine
{
private bool _active = false;
public Node2D Parent => parent;
public Node Parent => parent;
public AutonomousBulletEmitter Emitter { get; private set; }
public void Start()
{
if (parent is not Node2D parent2d)
{
return;
}
Emitter = pattern.CreateAsChild
? parent.CreateChild<AutonomousBulletEmitter>(pattern.Prefab,
parent.GlobalPosition + pattern.SpawnOffset)
: parent.CreateSibling<AutonomousBulletEmitter>(pattern.Prefab,
parent.GlobalPosition + pattern.SpawnOffset);
? parent2d.CreateChild<AutonomousBulletEmitter>(pattern.Prefab,
parent2d.GlobalPosition + pattern.SpawnOffset)
: parent2d.CreateSibling<AutonomousBulletEmitter>(pattern.Prefab,
parent2d.GlobalPosition + pattern.SpawnOffset);
Emitter.Script = pattern.Script;
Emitter.EmitOnStart = true;
Emitter.LifeTime = pattern.LifeTime;