Added Error Reporting & Updated The Submodules & Bug Fixes
This commit is contained in:
@@ -24,7 +24,7 @@ namespace Syntriax.Modules.Movement
|
||||
_canTakeOver = value;
|
||||
|
||||
if (isNewValue)
|
||||
OnTakeOverStateChanged.Invoke(value);
|
||||
OnTakeOverStateChanged?.Invoke(value);
|
||||
}
|
||||
}
|
||||
|
||||
|
@@ -24,8 +24,8 @@ namespace Syntriax.Modules.Movement
|
||||
_activeMovement = value;
|
||||
|
||||
if (oldMovement != null)
|
||||
OnMovementDeactivated.Invoke(oldMovement);
|
||||
OnMovementActivated.Invoke(value);
|
||||
OnMovementDeactivated?.Invoke(oldMovement);
|
||||
OnMovementActivated?.Invoke(value);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -34,38 +34,38 @@ namespace Syntriax.Modules.Movement
|
||||
protected IToggleState toggleState = null;
|
||||
|
||||
protected virtual void Awake()
|
||||
{
|
||||
Movements = new List<IMovement>(32);
|
||||
}
|
||||
=> Movements = new List<IMovement>(32);
|
||||
|
||||
protected virtual void Start()
|
||||
{
|
||||
toggleState = GetComponent<IToggleState>();
|
||||
RecacheMovements();
|
||||
toggleState = GetComponent<IToggleState>();
|
||||
if (toggleState == null)
|
||||
Debug.LogError("Movement Controller component needs one Monobehaviour attached that implements IToggleState interface", this);
|
||||
}
|
||||
|
||||
protected virtual void FixedUpdate()
|
||||
{
|
||||
if (!toggleState.Toggled)
|
||||
if (!toggleState.IsToggledNullChecked())
|
||||
return;
|
||||
|
||||
ActiveMovement.ApplyMovement();
|
||||
ActiveMovement?.ApplyMovement();
|
||||
}
|
||||
|
||||
public virtual void RecacheMovements()
|
||||
{
|
||||
foreach (IMovement movement in Movements)
|
||||
movement.OnTakeOverStateChanged -= OnTakeOverListener;
|
||||
movement.OnTakeOverStateChanged -= OnTakeOver;
|
||||
|
||||
Movements.Clear();
|
||||
GetComponents<IMovement>(Movements);
|
||||
UpdateActiveMovement();
|
||||
|
||||
foreach (IMovement movement in Movements)
|
||||
movement.OnTakeOverStateChanged += OnTakeOverListener;
|
||||
movement.OnTakeOverStateChanged += OnTakeOver;
|
||||
}
|
||||
|
||||
private void OnTakeOverListener(bool arg0) => UpdateActiveMovement();
|
||||
private void OnTakeOver(bool arg0) => UpdateActiveMovement();
|
||||
|
||||
protected virtual void UpdateActiveMovement()
|
||||
{
|
||||
@@ -76,7 +76,8 @@ namespace Syntriax.Modules.Movement
|
||||
return;
|
||||
}
|
||||
|
||||
ActiveMovement = Movements[Movements.Count - 1];
|
||||
try { ActiveMovement = Movements[Movements.Count - 1]; }
|
||||
catch (System.Exception) { Debug.LogError("Movement Controller component needs at least one Monobehaviour attached that implements IMovement interface", this); }
|
||||
}
|
||||
}
|
||||
}
|
||||
|
Submodule ToggleState updated: 7574769637...463182ab43
2
Trigger
2
Trigger
Submodule Trigger updated: 4f2217bb63...330a41a87f
Reference in New Issue
Block a user