Mirror of Svelto.ECS because we're a fan of it
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

IEngine.cs 866B

8 years ago
12345678910111213141516171819202122232425262728293031323334353637
  1. namespace Svelto.ES
  2. {
  3. public interface IEngine
  4. {}
  5. public interface INodeEngine<in TNodeType>:IEngine where TNodeType:INode
  6. {
  7. void Add(TNodeType obj);
  8. void Remove(TNodeType obj);
  9. }
  10. public interface INodesEngine : INodeEngine<INode>
  11. {
  12. System.Type[] AcceptedNodes();
  13. }
  14. public interface IQueryableNodeEngine:IEngine
  15. {
  16. IEngineNodeDB nodesDB { set; }
  17. }
  18. public abstract class SingleNodeEngine<TNodeType> : INodeEngine<INode> where TNodeType:class, INode
  19. {
  20. void INodeEngine<INode>.Add(INode obj)
  21. {
  22. Add(obj as TNodeType);
  23. }
  24. void INodeEngine<INode>.Remove(INode obj)
  25. {
  26. Remove(obj as TNodeType);
  27. }
  28. protected abstract void Add(TNodeType node);
  29. protected abstract void Remove(TNodeType node);
  30. }
  31. }