chore: bumped dotnet version to 10
This commit is contained in:
@@ -15,41 +15,37 @@ public class UniverseObject : BaseEntity, IUniverseObject
|
||||
public Event<INameable, INameable.NameChangedArguments> OnNameChanged { get; } = new();
|
||||
public Event<IHasBehaviourController> OnBehaviourControllerAssigned { get; } = new();
|
||||
|
||||
private string _name = nameof(UniverseObject);
|
||||
private IUniverse _universe = null!;
|
||||
private IBehaviourController _behaviourController = null!;
|
||||
private bool _isActive = false;
|
||||
private readonly FastList<IUniverseObject> _children = [];
|
||||
private IUniverseObject? _parent = null;
|
||||
|
||||
public IBehaviourController BehaviourController { get; private set; } = null!;
|
||||
public IUniverse Universe { get; private set; } = null!;
|
||||
public bool IsActive { get; private set; } = false;
|
||||
|
||||
public IReadOnlyList<IUniverseObject> Children => _children;
|
||||
public IBehaviourController BehaviourController => _behaviourController;
|
||||
public IUniverse Universe => _universe;
|
||||
public bool IsInUniverse => _universe is not null;
|
||||
public bool IsActive => _isActive;
|
||||
public bool IsInUniverse => Universe is not null;
|
||||
|
||||
public string Name
|
||||
{
|
||||
get => _name;
|
||||
get;
|
||||
set
|
||||
{
|
||||
if (value == _name) return;
|
||||
if (value == field) return;
|
||||
|
||||
string previousName = _name;
|
||||
_name = value;
|
||||
string previousName = field;
|
||||
field = value;
|
||||
OnNameChanged?.Invoke(this, new(previousName));
|
||||
}
|
||||
}
|
||||
} = nameof(UniverseObject);
|
||||
|
||||
public IUniverseObject? Parent
|
||||
{
|
||||
get => _parent;
|
||||
get;
|
||||
set
|
||||
{
|
||||
if (value == this)
|
||||
throw new Exceptions.AssignFailedException($"{Name} can not parent itself");
|
||||
|
||||
if (_parent == value)
|
||||
if (field == value)
|
||||
return;
|
||||
|
||||
IUniverseObject? previousParent = Parent;
|
||||
@@ -59,7 +55,7 @@ public class UniverseObject : BaseEntity, IUniverseObject
|
||||
previousParent.OnActiveChanged.RemoveListener(OnParentActiveChanged);
|
||||
}
|
||||
|
||||
_parent = value;
|
||||
field = value;
|
||||
|
||||
if (value is not null)
|
||||
{
|
||||
@@ -73,7 +69,7 @@ public class UniverseObject : BaseEntity, IUniverseObject
|
||||
UpdateActive();
|
||||
OnParentChanged?.Invoke(this, new(previousParent, value));
|
||||
}
|
||||
}
|
||||
} = null;
|
||||
|
||||
protected virtual void OnEnteringUniverse(IUniverse universe) { }
|
||||
bool IUniverseObject.EnterUniverse(IUniverse universe)
|
||||
@@ -81,7 +77,7 @@ public class UniverseObject : BaseEntity, IUniverseObject
|
||||
if (IsInUniverse)
|
||||
return false;
|
||||
|
||||
_universe = universe;
|
||||
Universe = universe;
|
||||
UpdateActive();
|
||||
OnEnteringUniverse(universe);
|
||||
OnEnteredUniverse?.Invoke(this, new(universe));
|
||||
@@ -91,11 +87,11 @@ public class UniverseObject : BaseEntity, IUniverseObject
|
||||
protected virtual void OnExitingUniverse(IUniverse universe) { }
|
||||
bool IUniverseObject.ExitUniverse()
|
||||
{
|
||||
if (!IsInUniverse || _universe is not IUniverse universe)
|
||||
if (!IsInUniverse || Universe is not IUniverse universe)
|
||||
return false;
|
||||
|
||||
OnExitingUniverse(universe);
|
||||
_universe = null!;
|
||||
Universe = null!;
|
||||
OnExitedUniverse?.Invoke(this, new(universe));
|
||||
return true;
|
||||
}
|
||||
@@ -125,7 +121,7 @@ public class UniverseObject : BaseEntity, IUniverseObject
|
||||
if (IsInitialized)
|
||||
return false;
|
||||
|
||||
_behaviourController = behaviourController;
|
||||
BehaviourController = behaviourController;
|
||||
OnAssign(behaviourController);
|
||||
OnBehaviourControllerAssigned?.Invoke(this);
|
||||
return true;
|
||||
@@ -145,7 +141,7 @@ public class UniverseObject : BaseEntity, IUniverseObject
|
||||
private void UpdateActive()
|
||||
{
|
||||
bool previousActive = IsActive;
|
||||
_isActive = StateEnable.Enabled && (Parent?.IsActive ?? true);
|
||||
IsActive = StateEnable.Enabled && (Parent?.IsActive ?? true);
|
||||
|
||||
if (previousActive != IsActive)
|
||||
OnActiveChanged?.Invoke(this, new(previousActive));
|
||||
@@ -160,12 +156,12 @@ public class UniverseObject : BaseEntity, IUniverseObject
|
||||
protected override void InitializeInternal()
|
||||
{
|
||||
base.InitializeInternal();
|
||||
_behaviourController ??= Factory.BehaviourControllerFactory.Instantiate(this);
|
||||
_behaviourController.Initialize();
|
||||
BehaviourController ??= Factory.BehaviourControllerFactory.Instantiate(this);
|
||||
BehaviourController.Initialize();
|
||||
}
|
||||
|
||||
public UniverseObject()
|
||||
{
|
||||
_name = GetType().Name;
|
||||
Name = GetType().Name;
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user