From c92eb19a1c9e064802dfc53601ba3b6188e5d3bb Mon Sep 17 00:00:00 2001 From: Minimata Date: Sun, 8 Mar 2026 09:43:12 +0100 Subject: [PATCH] Revert "removed null!" This reverts commit 290f79afd49b0792e1598c2e0a20aaf8ceeaa816. --- 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 0adbf778..c13cf167 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; } + public static ForgeManagers Instance { get; private set; } = null!; public TagsManager TagsManager { get; private set; } diff --git a/addons/forge/editor/attributes/AttributeEditorProperty.cs b/addons/forge/editor/attributes/AttributeEditorProperty.cs index 19c7a622..dbdf791f 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; + private Label _label = null!; public override void _Ready() { diff --git a/addons/forge/editor/attributes/AttributeSetClassEditorProperty.cs b/addons/forge/editor/attributes/AttributeSetClassEditorProperty.cs index 5b6fbc7a..fbda0d75 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; + private OptionButton _optionButton = null!; public override void _Ready() { diff --git a/addons/forge/editor/cues/CueKeyEditorProperty.cs b/addons/forge/editor/cues/CueKeyEditorProperty.cs index 5db6769c..8681f14c 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; + private Label _label = null!; public override void _Ready() { diff --git a/addons/forge/editor/tags/TagContainerEditorProperty.cs b/addons/forge/editor/tags/TagContainerEditorProperty.cs index eb893491..e2ab253f 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; - private Button _containerButton; - private ScrollContainer _scroll; - private Tree _tree; + private VBoxContainer _root = null!; + private Button _containerButton = null!; + private ScrollContainer _scroll = null!; + private Tree _tree = null!; - private Texture2D _checkedIcon; - private Texture2D _uncheckedIcon; + private Texture2D _checkedIcon = null!; + private Texture2D _uncheckedIcon = null!; private GodotStringArray _currentValue = []; diff --git a/addons/forge/editor/tags/TagEditorProperty.cs b/addons/forge/editor/tags/TagEditorProperty.cs index ce491b46..05edd2de 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; - private Button _containerButton; - private ScrollContainer _scroll; - private Tree _tree; + private VBoxContainer _root = null!; + private Button _containerButton = null!; + private ScrollContainer _scroll = null!; + private Tree _tree = null!; - private Texture2D _checkedIcon; - private Texture2D _uncheckedIcon; + private Texture2D _checkedIcon = null!; + private Texture2D _uncheckedIcon = null!; private string _currentValue = string.Empty; diff --git a/addons/forge/editor/tags/TagsEditor.cs b/addons/forge/editor/tags/TagsEditor.cs index f9b3f235..e14a9f57 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; + private TagsManager _tagsManager = null!; private ForgeData? _forgePluginData; diff --git a/addons/forge/nodes/ForgeEntity.cs b/addons/forge/nodes/ForgeEntity.cs index f6455110..6f638655 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; } + public EntityAttributes Attributes { get; set; } = null!; - public EntityTags Tags { get; set; } + public EntityTags Tags { get; set; } = null!; - public EffectsManager EffectsManager { get; set; } + public EffectsManager EffectsManager { get; set; } = null!; - public EntityAbilities Abilities { get; set; } + public EntityAbilities Abilities { get; set; } = null!; - public EventManager Events { get; set; } + public EventManager Events { get; set; } = null!; public override void _Ready() { diff --git a/scenes/components/damage/RDamageModifier.cs b/scenes/components/damage/RDamageModifier.cs index b421b409..29bebc7b 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; + public event Action DamageTaken = null!; [Export] public EDamageTypes DamageType { get; set;} diff --git a/scenes/components/health/CHealth.cs b/scenes/components/health/CHealth.cs index f07ec474..ea6b6f25 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; - public event Action HealthDepleted; + public event Action HealthChanged = null!; + public event Action HealthDepleted = null!; [Export] - public RHealth RHealth { get; set; } + public RHealth RHealth { get; set; } = null!; public float CurrentHealth { get; set; } diff --git a/scenes/components/knockback/CKnockback.cs b/scenes/components/knockback/CKnockback.cs index 4f53c899..b631b29b 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; } + [Export] public RKnockback RKnockback { get; set;} = null!; - private KnockbackRecord _knockbackRecord; + private KnockbackRecord _knockbackRecord = null!; public void RegisterKnockback(KnockbackRecord knockbackRecord) { diff --git a/scenes/components/movement/CGroundedMovement.cs b/scenes/components/movement/CGroundedMovement.cs index 3943c36f..bd804fca 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; } + [Export] public RMovement RMovement { get; set; } = null!; - [Export] public RayCast3D WallInFrontRayCast { get; set; } + [Export] public RayCast3D WallInFrontRayCast { get; set; } = null!; public Vector3 ComputeVelocity(MovementInputs inputs) diff --git a/scenes/enemies/Enemy.cs b/scenes/enemies/Enemy.cs index 40c5171a..f7a10210 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; - public event Action HealthChanged; - public event Action HealthDepleted; + public event Action DamageTaken = null!; + public event Action HealthChanged = null!; + public event Action HealthDepleted = null!; // Public export components [Export] - public Node3D Target { get; set;} + public Node3D Target { get; set; } = null!; [Export] public float EnemyHeight { get; set; } = 1f; [ExportGroup("Health")] [Export] - public RHealth RHealth { get; set; } + public RHealth RHealth { get; set; } = null!; [Export] - public RDeathEffect[] DeathEffects { get; set; } - public IHealthable CHealth { get; set; } + public RDeathEffect[] DeathEffects { get; set; } = null!; + public IHealthable CHealth { get; set; } = null!; [ExportGroup("Damage")] [Export] - public RDamage RDamage { get; set; } - public IDamageable CDamageable { get; set; } + public RDamage RDamage { get; set; } = null!; + public IDamageable CDamageable { get; set; } = null!; [Export] - public RKnockback RKnockback { get; set; } - public IKnockbackable CKnockback { get; set; } + public RKnockback RKnockback { get; set; } = null!; + public IKnockbackable CKnockback { get; set; } = null!; [ExportGroup("Movement")] [Export] - public RMovement RMovement { get; set; } - public IMoveable CMovement { get; set; } + public RMovement RMovement { get; set; } = null!; + public IMoveable CMovement { get; set; } = null!; // Public stuff public float CurrentHealth @@ -56,9 +56,9 @@ public partial class Enemy : CharacterBody3D, } // Private stuff - private Area3D _damageBox; - private Node3D _target; - private Healthbar _healthbar; + private Area3D _damageBox = null!; + private Node3D _target = null!; + private Healthbar _healthbar = null!; public override void _Ready() { diff --git a/scenes/player_controller/components/dash/DashSystem.cs b/scenes/player_controller/components/dash/DashSystem.cs index ec773b93..1b282f7e 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; } + public MantleSystem MantleSystem { get; set; } = null!; - private HeadSystem Head; - public ShapeCast3D DashCast3D; - private Camera3D Camera; + private HeadSystem Head = null!; + public ShapeCast3D DashCast3D = null!; + private Camera3D Camera = null!; private Vector3 DashDirection = Vector3.Zero; - private ShapeCast3D DashCastDrop; - private MeshInstance3D DashDropIndicator; - private MeshInstance3D DashDropLocationIndicator; - private MeshInstance3D DashTarget; - private CpuParticles3D DashIndicator; - private AnimationPlayer DashIndicatorAnim; + private ShapeCast3D DashCastDrop = null!; + private MeshInstance3D DashDropIndicator = null!; + private MeshInstance3D DashDropLocationIndicator = null!; + private MeshInstance3D DashTarget = null!; + private CpuParticles3D DashIndicator = null!; + private AnimationPlayer DashIndicatorAnim = null!; - [Export] public PackedScene DashIndicatorScene { get; set; } + [Export] public PackedScene DashIndicatorScene { get; set; } = null!; [Signal] public delegate void DashStartedEventHandler(); diff --git a/scenes/player_controller/components/weapon/WeaponSystem.cs b/scenes/player_controller/components/weapon/WeaponSystem.cs index 3ad61e8c..e9590a0e 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; - public StateChartState InHandState; - public StateChartState FlyingState; - public StateChartState PlantedState; - private ShapeCast3D _dashCast3D; + private StateChart _weaponState = null!; + public StateChartState InHandState = null!; + public StateChartState FlyingState = null!; + public StateChartState PlantedState = null!; + private ShapeCast3D _dashCast3D = null!; 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; } - public StandardMaterial3D WeaponLocationIndicatorMaterial { get; set; } - public MeshInstance3D WeaponMesh { get; set; } + public MeshInstance3D WeaponLocationIndicator { get; set; } = null!; + public StandardMaterial3D WeaponLocationIndicatorMaterial { get; set; } = null!; + public MeshInstance3D WeaponMesh { get; set; } = null!; public void Init() { diff --git a/scenes/player_controller/scripts/PlayerController.cs b/scenes/player_controller/scripts/PlayerController.cs index 5876f7cc..4b1ffa4e 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; - public event Action HealthChanged; - public event Action HealthDepleted; + public event Action DamageTaken = null!; + public event Action HealthChanged = null!; + public event Action HealthDepleted = null!; /////////////////////////// // Public stuff // /////////////////////////// - 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 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 ShapeCast3D DashDamageDetector; - public Area3D SlidingEnemyDetector; + public ShapeCast3D DashDamageDetector = null!; + public Area3D SlidingEnemyDetector = 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; } + 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!; // Inspector stuff - [Export] public Marker3D TutorialWeaponTarget; + [Export] public Marker3D TutorialWeaponTarget = null!; [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; } - [Export] public RKnockback? RKnockback { get; set; } - [Export] public RHealth? RHealth { get; set; } + [ExportGroup("Damage")] [Export] public RDamage RDamage { get; set; } = null!; + [Export] public RKnockback? RKnockback { get; set; } = null!; + [Export] public RHealth? RHealth { get; set; } = null!; [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; } + public PackedScene Explosion { get; set; } = null!; // 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; } + public PackedScene MantlePath { get; set; } = null!; [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; - private AudioStreamPlaybackInteractive _audioStream; + private RayCast3D[] _headCollisionDetectors = null!; + private AudioStreamPlaybackInteractive _audioStream = null!; // 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; + private Curve3D _customMantleCurve = null!; 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; - private Timer _weaponThrowUncatchableTimer; - private Timer _simpleDashCooldownTimer; - private Timer _airborneDashCooldownTimer; - private Timer _powerCooldownTimer; - private Timer _invincibilityTimer; - private Timer _attackCooldown; + 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!; // State chart - private StateChart _playerState; + private StateChart _playerState = null!; - private StateChartState _aiming; - private StateChartState _powerExpired; - private StateChartState _powerRecharging; - private StateChartState _powerFull; + private StateChartState _aiming = null!; + private StateChartState _powerExpired = null!; + private StateChartState _powerRecharging = null!; + private StateChartState _powerFull = 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 _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 _attackStandard; - private StateChartState _attackDash; - private StateChartState _parryStandard; - private StateChartState _parryDash; + private StateChartState _attackStandard = null!; + private StateChartState _attackDash = null!; + private StateChartState _parryStandard = null!; + private StateChartState _parryDash = null!; - private Transition _onJumpFromWall; - private Transition _onJumpFromWallFalling; - private Transition _onJumpFromWallRunning; - private Transition _onLeaveWallFromRun; - private Transition _onAirborneToGrounded; + private Transition _onJumpFromWall = null!; + private Transition _onJumpFromWallFalling = null!; + private Transition _onJumpFromWallRunning = null!; + private Transition _onLeaveWallFromRun = null!; + private Transition _onAirborneToGrounded = null!; - private Transition _onGroundSlideJump; - private Transition _onAirGlideDoubleJump; + private Transition _onGroundSlideJump = null!; + private Transition _onAirGlideDoubleJump = null!; // Damage public CDamageable? CDamageable { get; set; } @@ -395,9 +395,9 @@ public partial class PlayerController : CharacterBody3D, private readonly List _hitEnemies = new List(); - private ShapeCast3D _closeEnemyDetector; - private RayCast3D _aimAssisRayCast; - private Camera3D _camera; + private ShapeCast3D _closeEnemyDetector = null!; + private RayCast3D _aimAssisRayCast = null!; + private Camera3D _camera = null!; public override void _Ready() { @@ -2348,7 +2348,7 @@ public partial class PlayerController : CharacterBody3D, _audioStream.SwitchToClipByName("parry"); } - private PhysicsDirectSpaceState3D _spaceState; + private PhysicsDirectSpaceState3D _spaceState = null!; public void StartDashAction(bool isParry) { if (isParry) HeadSystem.OnParry();