Compare commits
5 Commits
efed24de20
...
a4b83679b1
Author | SHA1 | Date | |
---|---|---|---|
a4b83679b1 | |||
a31b39fd1d | |||
0205354202 | |||
949dfeb3d9 | |||
620ef911fa |
@@ -5,6 +5,12 @@ using Engine.Core.Debug;
|
||||
|
||||
namespace Engine.Core;
|
||||
|
||||
// TODO!: every reverse loop has a chance to have more than 1 unsubscription,
|
||||
// for (int i = listeners.Count - 1; i >= 0; i--)
|
||||
// can be replaced with
|
||||
// for (int i = listeners.Count - 1; i >= 0; i = Math.Min(i - 1, listeners.Count - 1))
|
||||
// but this would causes possible double calls on already called callbacks, find a better method.
|
||||
|
||||
/// <summary>
|
||||
/// Represents a simple event with no parameters.
|
||||
/// <para>Example usage:</para>
|
||||
|
@@ -17,8 +17,8 @@ public class UniverseEntranceManager : Behaviour
|
||||
{
|
||||
enterUniverses.Assign(universe);
|
||||
|
||||
foreach (IUniverseObject universeObject in Universe.UniverseObjects)
|
||||
OnUniverseObjectRegistered(Universe, new(universeObject));
|
||||
foreach (IUniverseObject universeObject in universe.UniverseObjects)
|
||||
OnUniverseObjectRegistered(universe, new(universeObject));
|
||||
|
||||
universe.OnUniverseObjectRegistered.AddListener(OnUniverseObjectRegistered);
|
||||
universe.OnUniverseObjectUnRegistered.AddListener(OnUniverseObjectUnRegistered);
|
||||
@@ -28,8 +28,8 @@ public class UniverseEntranceManager : Behaviour
|
||||
{
|
||||
enterUniverses.Unassign();
|
||||
|
||||
foreach (IUniverseObject universeObject in Universe.UniverseObjects)
|
||||
OnUniverseObjectUnRegistered(Universe, new(universeObject));
|
||||
foreach (IUniverseObject universeObject in universe.UniverseObjects)
|
||||
OnUniverseObjectUnRegistered(universe, new(universeObject));
|
||||
|
||||
universe.OnUniverseObjectRegistered.RemoveListener(OnUniverseObjectRegistered);
|
||||
universe.OnUniverseObjectUnRegistered.RemoveListener(OnUniverseObjectUnRegistered);
|
||||
|
@@ -120,8 +120,8 @@ public class Universe : BaseEntity, IUniverse
|
||||
protected override void FinalizeInternal()
|
||||
{
|
||||
base.FinalizeInternal();
|
||||
for (int i = UniverseObjects.Count; i >= 0; i--)
|
||||
UniverseObjects[i].Finalize();
|
||||
for (int i = UniverseObjects.Count - 1; i >= 0; i--)
|
||||
Remove(UniverseObjects[i]);
|
||||
}
|
||||
|
||||
public void Update(UniverseTime engineTime)
|
||||
|
@@ -100,14 +100,14 @@ public class UniverseObject : BaseEntity, IUniverseObject
|
||||
return true;
|
||||
}
|
||||
|
||||
public void AddChild(IUniverseObject parent)
|
||||
public void AddChild(IUniverseObject child)
|
||||
{
|
||||
if (_children.Contains(parent))
|
||||
if (_children.Contains(child))
|
||||
return;
|
||||
|
||||
_children.Add(parent);
|
||||
parent.Parent = this;
|
||||
OnChildrenAdded?.Invoke(this, new(parent));
|
||||
_children.Add(child);
|
||||
child.Parent = this;
|
||||
OnChildrenAdded?.Invoke(this, new(child));
|
||||
}
|
||||
|
||||
public void RemoveChild(IUniverseObject child)
|
||||
|
Reference in New Issue
Block a user