* Add GridMovementAbility and PacXonGridInteractor for grid-based movement; integrate with PlayerController and PacXonLevel

* Add GhostMovementComponent and PacXonTrailComponent; integrate ghost movement and trail features in PacXonLevel

* Update main menu button focus and add new movement abilities; adjust player and ghost initialization in PacXonLevel
This commit is contained in:
2025-09-13 01:52:07 +02:00
committed by GitHub
parent aa73e54b3e
commit a8ff492aed
25 changed files with 786 additions and 4 deletions

View File

@@ -18,6 +18,7 @@ public partial class PlayerController : CharacterBody2D
[Export] public PackedScene OneWayPlatformScene { get; set; }
[Export] public PackedScene SpaceshipMovementScene { get; set; }
[Export] public PackedScene WallJumpScene { get; set; }
[Export] public PackedScene GridMovementScene { get; set; }
[Signal] public delegate void JumpInitiatedEventHandler();
[Signal] public delegate void MovementAbilitiesChangedEventHandler();
@@ -75,7 +76,7 @@ public partial class PlayerController : CharacterBody2D
_abilities.Add(ability);
}
private void ClearMovementAbilities()
public void ClearMovementAbilities()
{
foreach (var ability in _abilities)
{
@@ -118,7 +119,14 @@ public partial class PlayerController : CharacterBody2D
if (SpaceshipMovementScene != null) AddAbility(SpaceshipMovementScene.Instantiate<MovementAbility>());
EmitSignalMovementAbilitiesChanged();
}
public void SetGridMovement()
{
ClearMovementAbilities();
if (GridMovementScene != null) AddAbility(GridMovementScene.Instantiate<MovementAbility>());
EmitSignalMovementAbilitiesChanged();
}
private async Task ConnectJumpAndGravityAbilities()
{
await ToSignal(GetTree(), SceneTree.SignalName.ProcessFrame);