From 290f79afd49b0792e1598c2e0a20aaf8ceeaa816 Mon Sep 17 00:00:00 2001 From: Minimata Date: Thu, 26 Feb 2026 19:18:27 +0100 Subject: [PATCH] removed null! --- addons/forge/core/ForgeManagers.cs | 2 +- .../attributes/AttributeEditorProperty.cs | 2 +- .../AttributeSetClassEditorProperty.cs | 2 +- .../forge/editor/cues/CueKeyEditorProperty.cs | 2 +- .../editor/tags/TagContainerEditorProperty.cs | 12 +- addons/forge/editor/tags/TagEditorProperty.cs | 12 +- addons/forge/editor/tags/TagsEditor.cs | 2 +- addons/forge/nodes/ForgeEntity.cs | 10 +- scenes/components/damage/RDamageModifier.cs | 2 +- scenes/components/health/CHealth.cs | 6 +- scenes/components/knockback/CKnockback.cs | 4 +- .../components/movement/CGroundedMovement.cs | 4 +- scenes/enemies/Enemy.cs | 32 ++-- .../components/dash/DashSystem.cs | 22 +-- .../components/weapon/WeaponSystem.cs | 16 +- .../scripts/PlayerController.cs | 172 +++++++++--------- 16 files changed, 151 insertions(+), 151 deletions(-) diff --git a/addons/forge/core/ForgeManagers.cs b/addons/forge/core/ForgeManagers.cs index c13cf167..0adbf778 100644 --- a/addons/forge/core/ForgeManagers.cs +++ b/addons/forge/core/ForgeManagers.cs @@ -8,7 +8,7 @@ namespace Gamesmiths.Forge.Godot.Core; public class ForgeManagers { - public static ForgeManagers Instance { get; private set; } = null!; + public static ForgeManagers Instance { get; private set; } public TagsManager TagsManager { get; private set; } diff --git a/addons/forge/editor/attributes/AttributeEditorProperty.cs b/addons/forge/editor/attributes/AttributeEditorProperty.cs index dbdf791f..19c7a622 100644 --- a/addons/forge/editor/attributes/AttributeEditorProperty.cs +++ b/addons/forge/editor/attributes/AttributeEditorProperty.cs @@ -11,7 +11,7 @@ public partial class AttributeEditorProperty : EditorProperty private const int ButtonSize = 26; private const int PopupSize = 300; - private Label _label = null!; + private Label _label; public override void _Ready() { diff --git a/addons/forge/editor/attributes/AttributeSetClassEditorProperty.cs b/addons/forge/editor/attributes/AttributeSetClassEditorProperty.cs index fbda0d75..5b6fbc7a 100644 --- a/addons/forge/editor/attributes/AttributeSetClassEditorProperty.cs +++ b/addons/forge/editor/attributes/AttributeSetClassEditorProperty.cs @@ -14,7 +14,7 @@ namespace Gamesmiths.Forge.Godot.Editor.Attributes; [Tool] public partial class AttributeSetClassEditorProperty : EditorProperty { - private OptionButton _optionButton = null!; + private OptionButton _optionButton; public override void _Ready() { diff --git a/addons/forge/editor/cues/CueKeyEditorProperty.cs b/addons/forge/editor/cues/CueKeyEditorProperty.cs index 8681f14c..5db6769c 100644 --- a/addons/forge/editor/cues/CueKeyEditorProperty.cs +++ b/addons/forge/editor/cues/CueKeyEditorProperty.cs @@ -14,7 +14,7 @@ public partial class CueKeyEditorProperty : EditorProperty private const int ButtonSize = 26; private const int PopupSize = 300; - private Label _label = null!; + private Label _label; public override void _Ready() { diff --git a/addons/forge/editor/tags/TagContainerEditorProperty.cs b/addons/forge/editor/tags/TagContainerEditorProperty.cs index e2ab253f..eb893491 100644 --- a/addons/forge/editor/tags/TagContainerEditorProperty.cs +++ b/addons/forge/editor/tags/TagContainerEditorProperty.cs @@ -15,13 +15,13 @@ public partial class TagContainerEditorProperty : EditorProperty { private readonly Dictionary _treeItemToNode = []; - private VBoxContainer _root = null!; - private Button _containerButton = null!; - private ScrollContainer _scroll = null!; - private Tree _tree = null!; + private VBoxContainer _root; + private Button _containerButton; + private ScrollContainer _scroll; + private Tree _tree; - private Texture2D _checkedIcon = null!; - private Texture2D _uncheckedIcon = null!; + private Texture2D _checkedIcon; + private Texture2D _uncheckedIcon; private GodotStringArray _currentValue = []; diff --git a/addons/forge/editor/tags/TagEditorProperty.cs b/addons/forge/editor/tags/TagEditorProperty.cs index 05edd2de..ce491b46 100644 --- a/addons/forge/editor/tags/TagEditorProperty.cs +++ b/addons/forge/editor/tags/TagEditorProperty.cs @@ -13,13 +13,13 @@ public partial class TagEditorProperty : EditorProperty { private readonly Dictionary _treeItemToNode = []; - private VBoxContainer _root = null!; - private Button _containerButton = null!; - private ScrollContainer _scroll = null!; - private Tree _tree = null!; + private VBoxContainer _root; + private Button _containerButton; + private ScrollContainer _scroll; + private Tree _tree; - private Texture2D _checkedIcon = null!; - private Texture2D _uncheckedIcon = null!; + private Texture2D _checkedIcon; + private Texture2D _uncheckedIcon; private string _currentValue = string.Empty; diff --git a/addons/forge/editor/tags/TagsEditor.cs b/addons/forge/editor/tags/TagsEditor.cs index e14a9f57..f9b3f235 100644 --- a/addons/forge/editor/tags/TagsEditor.cs +++ b/addons/forge/editor/tags/TagsEditor.cs @@ -16,7 +16,7 @@ public partial class TagsEditor : VBoxContainer, ISerializationListener { private readonly Dictionary _treeItemToNode = []; - private TagsManager _tagsManager = null!; + private TagsManager _tagsManager; private ForgeData? _forgePluginData; diff --git a/addons/forge/nodes/ForgeEntity.cs b/addons/forge/nodes/ForgeEntity.cs index 6f638655..f6455110 100644 --- a/addons/forge/nodes/ForgeEntity.cs +++ b/addons/forge/nodes/ForgeEntity.cs @@ -18,15 +18,15 @@ public partial class ForgeEntity : Node, IForgeEntity [Export] public ForgeTagContainer BaseTags { get; set; } = new(); - public EntityAttributes Attributes { get; set; } = null!; + public EntityAttributes Attributes { get; set; } - public EntityTags Tags { get; set; } = null!; + public EntityTags Tags { get; set; } - public EffectsManager EffectsManager { get; set; } = null!; + public EffectsManager EffectsManager { get; set; } - public EntityAbilities Abilities { get; set; } = null!; + public EntityAbilities Abilities { get; set; } - public EventManager Events { get; set; } = null!; + public EventManager Events { get; set; } public override void _Ready() { diff --git a/scenes/components/damage/RDamageModifier.cs b/scenes/components/damage/RDamageModifier.cs index 29bebc7b..b421b409 100644 --- a/scenes/components/damage/RDamageModifier.cs +++ b/scenes/components/damage/RDamageModifier.cs @@ -7,7 +7,7 @@ using Movementtests.systems.damage; [GlobalClass] public partial class RDamageModifier : Resource, IDamageable { - public event Action DamageTaken = null!; + public event Action DamageTaken; [Export] public EDamageTypes DamageType { get; set;} diff --git a/scenes/components/health/CHealth.cs b/scenes/components/health/CHealth.cs index ea6b6f25..f07ec474 100644 --- a/scenes/components/health/CHealth.cs +++ b/scenes/components/health/CHealth.cs @@ -5,11 +5,11 @@ using Movementtests.interfaces; [GlobalClass, Icon("res://assets/ui/IconGodotNode/white/icon_heart.png")] public partial class CHealth : Node, IHealthable { - public event Action HealthChanged = null!; - public event Action HealthDepleted = null!; + public event Action HealthChanged; + public event Action HealthDepleted; [Export] - public RHealth RHealth { get; set; } = null!; + public RHealth RHealth { get; set; } public float CurrentHealth { get; set; } diff --git a/scenes/components/knockback/CKnockback.cs b/scenes/components/knockback/CKnockback.cs index b631b29b..4f53c899 100644 --- a/scenes/components/knockback/CKnockback.cs +++ b/scenes/components/knockback/CKnockback.cs @@ -5,9 +5,9 @@ using Movementtests.interfaces; [GlobalClass, Icon("res://assets/ui/IconGodotNode/node_3D/icon_wind.png")] public partial class CKnockback : Node3D, IKnockbackable { - [Export] public RKnockback RKnockback { get; set;} = null!; + [Export] public RKnockback RKnockback { get; set; } - private KnockbackRecord _knockbackRecord = null!; + private KnockbackRecord _knockbackRecord; public void RegisterKnockback(KnockbackRecord knockbackRecord) { diff --git a/scenes/components/movement/CGroundedMovement.cs b/scenes/components/movement/CGroundedMovement.cs index bd804fca..3943c36f 100644 --- a/scenes/components/movement/CGroundedMovement.cs +++ b/scenes/components/movement/CGroundedMovement.cs @@ -6,9 +6,9 @@ namespace Movementtests.scenes.movement; [GlobalClass, Icon("res://assets/ui/IconGodotNode/node_3D/icon_path_follow.png")] public partial class CGroundedMovement : Node3D, IMoveable { - [Export] public RMovement RMovement { get; set; } = null!; + [Export] public RMovement RMovement { get; set; } - [Export] public RayCast3D WallInFrontRayCast { get; set; } = null!; + [Export] public RayCast3D WallInFrontRayCast { get; set; } public Vector3 ComputeVelocity(MovementInputs inputs) diff --git a/scenes/enemies/Enemy.cs b/scenes/enemies/Enemy.cs index f7a10210..40c5171a 100644 --- a/scenes/enemies/Enemy.cs +++ b/scenes/enemies/Enemy.cs @@ -16,37 +16,37 @@ public partial class Enemy : CharacterBody3D, IStunnable { // Signals and events - public event Action DamageTaken = null!; - public event Action HealthChanged = null!; - public event Action HealthDepleted = null!; + public event Action DamageTaken; + public event Action HealthChanged; + public event Action HealthDepleted; // Public export components [Export] - public Node3D Target { get; set; } = null!; + public Node3D Target { get; set;} [Export] public float EnemyHeight { get; set; } = 1f; [ExportGroup("Health")] [Export] - public RHealth RHealth { get; set; } = null!; + public RHealth RHealth { get; set; } [Export] - public RDeathEffect[] DeathEffects { get; set; } = null!; - public IHealthable CHealth { get; set; } = null!; + public RDeathEffect[] DeathEffects { get; set; } + public IHealthable CHealth { get; set; } [ExportGroup("Damage")] [Export] - public RDamage RDamage { get; set; } = null!; - public IDamageable CDamageable { get; set; } = null!; + public RDamage RDamage { get; set; } + public IDamageable CDamageable { get; set; } [Export] - public RKnockback RKnockback { get; set; } = null!; - public IKnockbackable CKnockback { get; set; } = null!; + public RKnockback RKnockback { get; set; } + public IKnockbackable CKnockback { get; set; } [ExportGroup("Movement")] [Export] - public RMovement RMovement { get; set; } = null!; - public IMoveable CMovement { get; set; } = null!; + public RMovement RMovement { get; set; } + public IMoveable CMovement { get; set; } // Public stuff public float CurrentHealth @@ -56,9 +56,9 @@ public partial class Enemy : CharacterBody3D, } // Private stuff - private Area3D _damageBox = null!; - private Node3D _target = null!; - private Healthbar _healthbar = null!; + private Area3D _damageBox; + private Node3D _target; + private Healthbar _healthbar; public override void _Ready() { diff --git a/scenes/player_controller/components/dash/DashSystem.cs b/scenes/player_controller/components/dash/DashSystem.cs index 1b282f7e..ec773b93 100644 --- a/scenes/player_controller/components/dash/DashSystem.cs +++ b/scenes/player_controller/components/dash/DashSystem.cs @@ -24,21 +24,21 @@ public partial class DashSystem: Node3D public bool ShouldMantle { get; set; } public Vector3 PlannedMantleLocation { get; set; } - public MantleSystem MantleSystem { get; set; } = null!; + public MantleSystem MantleSystem { get; set; } - private HeadSystem Head = null!; - public ShapeCast3D DashCast3D = null!; - private Camera3D Camera = null!; + private HeadSystem Head; + public ShapeCast3D DashCast3D; + private Camera3D Camera; private Vector3 DashDirection = Vector3.Zero; - private ShapeCast3D DashCastDrop = null!; - private MeshInstance3D DashDropIndicator = null!; - private MeshInstance3D DashDropLocationIndicator = null!; - private MeshInstance3D DashTarget = null!; - private CpuParticles3D DashIndicator = null!; - private AnimationPlayer DashIndicatorAnim = null!; + private ShapeCast3D DashCastDrop; + private MeshInstance3D DashDropIndicator; + private MeshInstance3D DashDropLocationIndicator; + private MeshInstance3D DashTarget; + private CpuParticles3D DashIndicator; + private AnimationPlayer DashIndicatorAnim; - [Export] public PackedScene DashIndicatorScene { get; set; } = null!; + [Export] public PackedScene DashIndicatorScene { get; set; } [Signal] public delegate void DashStartedEventHandler(); diff --git a/scenes/player_controller/components/weapon/WeaponSystem.cs b/scenes/player_controller/components/weapon/WeaponSystem.cs index e9590a0e..3ad61e8c 100644 --- a/scenes/player_controller/components/weapon/WeaponSystem.cs +++ b/scenes/player_controller/components/weapon/WeaponSystem.cs @@ -22,11 +22,11 @@ public partial class WeaponSystem : RigidBody3D, IDamageDealer [Export(PropertyHint.Range, "0,0.2,0.01,or_greater")] public float StraightThrowDuration { get; set; } = 0.1f; - private StateChart _weaponState = null!; - public StateChartState InHandState = null!; - public StateChartState FlyingState = null!; - public StateChartState PlantedState = null!; - private ShapeCast3D _dashCast3D = null!; + private StateChart _weaponState; + public StateChartState InHandState; + public StateChartState FlyingState; + public StateChartState PlantedState; + private ShapeCast3D _dashCast3D; private Transform3D _startTransform; private Vector3 _startMeshRotation; @@ -36,9 +36,9 @@ public partial class WeaponSystem : RigidBody3D, IDamageDealer public Vector3 PlantNormal { get; set; } public Node? PlantObject { get; set; } - public MeshInstance3D WeaponLocationIndicator { get; set; } = null!; - public StandardMaterial3D WeaponLocationIndicatorMaterial { get; set; } = null!; - public MeshInstance3D WeaponMesh { get; set; } = null!; + public MeshInstance3D WeaponLocationIndicator { get; set; } + public StandardMaterial3D WeaponLocationIndicatorMaterial { get; set; } + public MeshInstance3D WeaponMesh { get; set; } public void Init() { diff --git a/scenes/player_controller/scripts/PlayerController.cs b/scenes/player_controller/scripts/PlayerController.cs index 4b1ffa4e..5876f7cc 100644 --- a/scenes/player_controller/scripts/PlayerController.cs +++ b/scenes/player_controller/scripts/PlayerController.cs @@ -49,45 +49,45 @@ public partial class PlayerController : CharacterBody3D, [Signal] public delegate void PlayerDiedEventHandler(); - public event Action DamageTaken = null!; - public event Action HealthChanged = null!; - public event Action HealthDepleted = null!; + public event Action DamageTaken; + public event Action HealthChanged; + public event Action HealthDepleted; /////////////////////////// // Public stuff // /////////////////////////// - public HeadSystem HeadSystem = null!; - public StairsSystem StairsSystem = null!; - public MantleSystem MantleSystem = null!; - public DashSystem DashSystem = null!; - public CollisionShape3D StandingCollider = null!; - public CollisionShape3D SlideCollider = null!; - public WeaponSystem WeaponSystem = null!; - public WallHugSystem WallHugSystem = null!; - public PlayerUi PlayerUi = null!; - public TextureRect DashIndicator = null!; - public ColorRect PowerCooldownIndicator = null!; - public Node3D DashIndicatorNode = null!; - public MeshInstance3D DashIndicatorMesh = null!; - public CylinderMesh DashIndicatorMeshCylinder = null!; - public RayCast3D WallRunSnapper = null!; - public ShapeCast3D GroundDetector = null!; - public ShapeCast3D CeilingDetector = null!; - public RayCast3D DirectGroundDetector = null!; - public Area3D WeaponHitbox = null!; - public AudioStreamPlayer3D SfxPlayer = null!; + public HeadSystem HeadSystem; + public StairsSystem StairsSystem; + public MantleSystem MantleSystem; + public DashSystem DashSystem; + public CollisionShape3D StandingCollider; + public CollisionShape3D SlideCollider; + public WeaponSystem WeaponSystem; + public WallHugSystem WallHugSystem; + public PlayerUi PlayerUi; + public TextureRect DashIndicator; + public ColorRect PowerCooldownIndicator; + public Node3D DashIndicatorNode; + public MeshInstance3D DashIndicatorMesh; + public CylinderMesh DashIndicatorMeshCylinder; + public RayCast3D WallRunSnapper; + public ShapeCast3D GroundDetector; + public ShapeCast3D CeilingDetector; + public RayCast3D DirectGroundDetector; + public Area3D WeaponHitbox; + public AudioStreamPlayer3D SfxPlayer; - public ShapeCast3D DashDamageDetector = null!; - public Area3D SlidingEnemyDetector = null!; + public ShapeCast3D DashDamageDetector; + public Area3D SlidingEnemyDetector; - public EntityAttributes Attributes { get; set; } = null!; - public EntityTags Tags { get; set; } = null!; - public EffectsManager EffectsManager { get; set; } = null!; - public EntityAbilities Abilities { get; set; } = null!; - public EventManager Events { get; set; } = null!; + public EntityAttributes Attributes { get; set; } + public EntityTags Tags { get; set; } + public EffectsManager EffectsManager { get; set; } + public EntityAbilities Abilities { get; set; } + public EventManager Events { get; set; } // Inspector stuff - [Export] public Marker3D TutorialWeaponTarget = null!; + [Export] public Marker3D TutorialWeaponTarget; [Export] public bool TutorialDone { get; set; } [Export] public bool HasSword { get; set; } = true; [Export] public bool HasParry { get; set; } = true; @@ -102,9 +102,9 @@ public partial class PlayerController : CharacterBody3D, [Export(PropertyHint.Range, "0,10f,0.1,or_greater")] public float AimAssistReductionStartDistance { get; set; } = 10f; - [ExportGroup("Damage")] [Export] public RDamage RDamage { get; set; } = null!; - [Export] public RKnockback? RKnockback { get; set; } = null!; - [Export] public RHealth? RHealth { get; set; } = null!; + [ExportGroup("Damage")] [Export] public RDamage RDamage { get; set; } + [Export] public RKnockback? RKnockback { get; set; } + [Export] public RHealth? RHealth { get; set; } [ExportGroup("Targeting")] [Export(PropertyHint.Range, "0,20,0.1,or_greater")] @@ -114,7 +114,7 @@ public partial class PlayerController : CharacterBody3D, [ExportGroup("Instantiation")] [Export] - public PackedScene Explosion { get; set; } = null!; + public PackedScene Explosion { get; set; } // Movement stuff [ExportCategory("Movement")] @@ -141,7 +141,7 @@ public partial class PlayerController : CharacterBody3D, [Export(PropertyHint.Range, "0,1,0.01,or_greater")] public float MantleTime { get; set; } = 0.1f; [Export] - public PackedScene MantlePath { get; set; } = null!; + public PackedScene MantlePath { get; set; } [Export(PropertyHint.Range, "0,50,0.1")] public float MantleDashStrength { get; set; } = 15f; @@ -266,8 +266,8 @@ public partial class PlayerController : CharacterBody3D, // Stairs and shit private float _lastFrameWasOnFloor = -Mathf.Inf; private const int NumOfHeadCollisionDetectors = 4; - private RayCast3D[] _headCollisionDetectors = null!; - private AudioStreamPlaybackInteractive _audioStream = null!; + private RayCast3D[] _headCollisionDetectors; + private AudioStreamPlaybackInteractive _audioStream; // Basic movement private bool _movementEnabled = true; @@ -291,7 +291,7 @@ public partial class PlayerController : CharacterBody3D, private Path? _mantlePath; private bool _customMantle; private Transform3D _customMantleStartTransform; - private Curve3D _customMantleCurve = null!; + private Curve3D _customMantleCurve; private Vector3 _mantleStartPosition; private Vector3 _velocityOnMantleStarted = Vector3.Zero; @@ -328,56 +328,56 @@ public partial class PlayerController : CharacterBody3D, private float _aimAssistMultiplier = 1.0f; // Timers - private Timer _timeScaleAimInAirTimer = null!; - private Timer _weaponThrowUncatchableTimer = null!; - private Timer _simpleDashCooldownTimer = null!; - private Timer _airborneDashCooldownTimer = null!; - private Timer _powerCooldownTimer = null!; - private Timer _invincibilityTimer = null!; - private Timer _attackCooldown = null!; + private Timer _timeScaleAimInAirTimer; + private Timer _weaponThrowUncatchableTimer; + private Timer _simpleDashCooldownTimer; + private Timer _airborneDashCooldownTimer; + private Timer _powerCooldownTimer; + private Timer _invincibilityTimer; + private Timer _attackCooldown; // State chart - private StateChart _playerState = null!; + private StateChart _playerState; - private StateChartState _aiming = null!; - private StateChartState _powerExpired = null!; - private StateChartState _powerRecharging = null!; - private StateChartState _powerFull = null!; + private StateChartState _aiming; + private StateChartState _powerExpired; + private StateChartState _powerRecharging; + private StateChartState _powerFull; - private StateChartState _grounded = null!; - private StateChartState _airborne = null!; - private StateChartState _coyoteEnabled = null!; - private StateChartState _jumping = null!; - private StateChartState _simpleJump = null!; - private StateChartState _doubleJump = null!; - private StateChartState _mantling = null!; - private StateChartState _simpleDash = null!; - private StateChartState _aimedDash = null!; - private StateChartState _weaponDash = null!; - private StateChartState _sliding = null!; - private StateChartState _groundSliding = null!; - private StateChartState _airGliding = null!; - private StateChartState _airGlidingDoubleJump = null!; - private StateChartState _slideCanceled = null!; - private StateChartState _slamming = null!; - private StateChartState _onWall = null!; - private StateChartState _onWallHugging = null!; - private StateChartState _onWallHanging = null!; - private StateChartState _onWallRunning = null!; + private StateChartState _grounded; + private StateChartState _airborne; + private StateChartState _coyoteEnabled; + private StateChartState _jumping; + private StateChartState _simpleJump; + private StateChartState _doubleJump; + private StateChartState _mantling; + private StateChartState _simpleDash; + private StateChartState _aimedDash; + private StateChartState _weaponDash; + private StateChartState _sliding; + private StateChartState _groundSliding; + private StateChartState _airGliding; + private StateChartState _airGlidingDoubleJump; + private StateChartState _slideCanceled; + private StateChartState _slamming; + private StateChartState _onWall; + private StateChartState _onWallHugging; + private StateChartState _onWallHanging; + private StateChartState _onWallRunning; - private StateChartState _attackStandard = null!; - private StateChartState _attackDash = null!; - private StateChartState _parryStandard = null!; - private StateChartState _parryDash = null!; + private StateChartState _attackStandard; + private StateChartState _attackDash; + private StateChartState _parryStandard; + private StateChartState _parryDash; - private Transition _onJumpFromWall = null!; - private Transition _onJumpFromWallFalling = null!; - private Transition _onJumpFromWallRunning = null!; - private Transition _onLeaveWallFromRun = null!; - private Transition _onAirborneToGrounded = null!; + private Transition _onJumpFromWall; + private Transition _onJumpFromWallFalling; + private Transition _onJumpFromWallRunning; + private Transition _onLeaveWallFromRun; + private Transition _onAirborneToGrounded; - private Transition _onGroundSlideJump = null!; - private Transition _onAirGlideDoubleJump = null!; + private Transition _onGroundSlideJump; + private Transition _onAirGlideDoubleJump; // Damage public CDamageable? CDamageable { get; set; } @@ -395,9 +395,9 @@ public partial class PlayerController : CharacterBody3D, private readonly List _hitEnemies = new List(); - private ShapeCast3D _closeEnemyDetector = null!; - private RayCast3D _aimAssisRayCast = null!; - private Camera3D _camera = null!; + private ShapeCast3D _closeEnemyDetector; + private RayCast3D _aimAssisRayCast; + private Camera3D _camera; public override void _Ready() { @@ -2348,7 +2348,7 @@ public partial class PlayerController : CharacterBody3D, _audioStream.SwitchToClipByName("parry"); } - private PhysicsDirectSpaceState3D _spaceState = null!; + private PhysicsDirectSpaceState3D _spaceState; public void StartDashAction(bool isParry) { if (isParry) HeadSystem.OnParry();