BREAKING CHANGE: replaced universe objects with root universe object
This commit is contained in:
		@@ -31,7 +31,7 @@ public class Universe : BaseEntity, IUniverse
 | 
			
		||||
        delegateOnUniverseObjectExitedUniverse = OnUniverseObjectExitedUniverse;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    public IReadOnlyList<IUniverseObject> UniverseObjects => _universeObjects;
 | 
			
		||||
    public IUniverseObject Root { get; private set; } = Factory.UniverseObjectFactory.Instantiate().SetUniverseObject("Root");
 | 
			
		||||
 | 
			
		||||
    public UniverseTime Time { get; private set; } = new();
 | 
			
		||||
    public UniverseTime UnscaledTime { get; private set; } = new();
 | 
			
		||||
@@ -68,6 +68,9 @@ public class Universe : BaseEntity, IUniverse
 | 
			
		||||
 | 
			
		||||
        _universeObjects.Add(universeObject);
 | 
			
		||||
 | 
			
		||||
        if (universeObject.Parent == null)
 | 
			
		||||
            universeObject.Parent = Root;
 | 
			
		||||
 | 
			
		||||
        if (!universeObject.EnterUniverse(this))
 | 
			
		||||
            throw new Exception($"{universeObject.Name} can't enter the universe");
 | 
			
		||||
 | 
			
		||||
@@ -113,15 +116,15 @@ public class Universe : BaseEntity, IUniverse
 | 
			
		||||
 | 
			
		||||
    protected override void InitializeInternal()
 | 
			
		||||
    {
 | 
			
		||||
        foreach (IUniverseObject universeObject in UniverseObjects)
 | 
			
		||||
        foreach (IUniverseObject universeObject in _universeObjects)
 | 
			
		||||
            universeObject.Initialize();
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    protected override void FinalizeInternal()
 | 
			
		||||
    {
 | 
			
		||||
        base.FinalizeInternal();
 | 
			
		||||
        for (int i = UniverseObjects.Count - 1; i >= 0; i--)
 | 
			
		||||
            Remove(UniverseObjects[i]);
 | 
			
		||||
        for (int i = _universeObjects.Count - 1; i >= 0; i--)
 | 
			
		||||
            Remove(_universeObjects[i]);
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    public void Update(UniverseTime engineTime)
 | 
			
		||||
@@ -158,6 +161,6 @@ public class Universe : BaseEntity, IUniverse
 | 
			
		||||
            Remove(universeObject);
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    public IEnumerator<IUniverseObject> GetEnumerator() => _universeObjects.GetEnumerator();
 | 
			
		||||
    IEnumerator IEnumerable.GetEnumerator() => _universeObjects.GetEnumerator();
 | 
			
		||||
    public IEnumerator<IUniverseObject> GetEnumerator() => Root.TraverseChildren();
 | 
			
		||||
    IEnumerator IEnumerable.GetEnumerator() => Root.TraverseChildren();
 | 
			
		||||
}
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user