2024-01-30 12:08:21 +03:00
|
|
|
using System;
|
|
|
|
using System.Collections.Generic;
|
|
|
|
|
|
|
|
namespace Syntriax.Engine.Core.Abstract;
|
|
|
|
|
|
|
|
public interface IGameManager : IEntity, IEnumerable<IGameObject>
|
|
|
|
{
|
2024-01-30 18:52:31 +03:00
|
|
|
Action<IGameManager, IGameObject>? OnGameObjectRegistered { get; set; }
|
|
|
|
Action<IGameManager, IGameObject>? OnGameObjectUnRegistered { get; set; }
|
2024-01-30 12:08:21 +03:00
|
|
|
|
|
|
|
|
|
|
|
IReadOnlyList<IGameObject> GameObjects { get; }
|
|
|
|
|
|
|
|
|
|
|
|
void RegisterGameObject(IGameObject gameObject);
|
|
|
|
T InstantiateGameObject<T>(params object?[]? args) where T : class, IGameObject;
|
|
|
|
IGameObject RemoveGameObject(IGameObject gameObject);
|
|
|
|
|
|
|
|
void Update(EngineTime time);
|
|
|
|
void PreDraw();
|
|
|
|
}
|