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;
|
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>
|
/// <summary>
|
||||||
/// Represents a simple event with no parameters.
|
/// Represents a simple event with no parameters.
|
||||||
/// <para>Example usage:</para>
|
/// <para>Example usage:</para>
|
||||||
|
@@ -17,8 +17,8 @@ public class UniverseEntranceManager : Behaviour
|
|||||||
{
|
{
|
||||||
enterUniverses.Assign(universe);
|
enterUniverses.Assign(universe);
|
||||||
|
|
||||||
foreach (IUniverseObject universeObject in Universe.UniverseObjects)
|
foreach (IUniverseObject universeObject in universe.UniverseObjects)
|
||||||
OnUniverseObjectRegistered(Universe, new(universeObject));
|
OnUniverseObjectRegistered(universe, new(universeObject));
|
||||||
|
|
||||||
universe.OnUniverseObjectRegistered.AddListener(OnUniverseObjectRegistered);
|
universe.OnUniverseObjectRegistered.AddListener(OnUniverseObjectRegistered);
|
||||||
universe.OnUniverseObjectUnRegistered.AddListener(OnUniverseObjectUnRegistered);
|
universe.OnUniverseObjectUnRegistered.AddListener(OnUniverseObjectUnRegistered);
|
||||||
@@ -28,8 +28,8 @@ public class UniverseEntranceManager : Behaviour
|
|||||||
{
|
{
|
||||||
enterUniverses.Unassign();
|
enterUniverses.Unassign();
|
||||||
|
|
||||||
foreach (IUniverseObject universeObject in Universe.UniverseObjects)
|
foreach (IUniverseObject universeObject in universe.UniverseObjects)
|
||||||
OnUniverseObjectUnRegistered(Universe, new(universeObject));
|
OnUniverseObjectUnRegistered(universe, new(universeObject));
|
||||||
|
|
||||||
universe.OnUniverseObjectRegistered.RemoveListener(OnUniverseObjectRegistered);
|
universe.OnUniverseObjectRegistered.RemoveListener(OnUniverseObjectRegistered);
|
||||||
universe.OnUniverseObjectUnRegistered.RemoveListener(OnUniverseObjectUnRegistered);
|
universe.OnUniverseObjectUnRegistered.RemoveListener(OnUniverseObjectUnRegistered);
|
||||||
|
@@ -120,8 +120,8 @@ public class Universe : BaseEntity, IUniverse
|
|||||||
protected override void FinalizeInternal()
|
protected override void FinalizeInternal()
|
||||||
{
|
{
|
||||||
base.FinalizeInternal();
|
base.FinalizeInternal();
|
||||||
for (int i = UniverseObjects.Count; i >= 0; i--)
|
for (int i = UniverseObjects.Count - 1; i >= 0; i--)
|
||||||
UniverseObjects[i].Finalize();
|
Remove(UniverseObjects[i]);
|
||||||
}
|
}
|
||||||
|
|
||||||
public void Update(UniverseTime engineTime)
|
public void Update(UniverseTime engineTime)
|
||||||
|
@@ -100,14 +100,14 @@ public class UniverseObject : BaseEntity, IUniverseObject
|
|||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void AddChild(IUniverseObject parent)
|
public void AddChild(IUniverseObject child)
|
||||||
{
|
{
|
||||||
if (_children.Contains(parent))
|
if (_children.Contains(child))
|
||||||
return;
|
return;
|
||||||
|
|
||||||
_children.Add(parent);
|
_children.Add(child);
|
||||||
parent.Parent = this;
|
child.Parent = this;
|
||||||
OnChildrenAdded?.Invoke(this, new(parent));
|
OnChildrenAdded?.Invoke(this, new(child));
|
||||||
}
|
}
|
||||||
|
|
||||||
public void RemoveChild(IUniverseObject child)
|
public void RemoveChild(IUniverseObject child)
|
||||||
|
Reference in New Issue
Block a user