@startuml "Core Engine Relations" top to bottom direction skinparam linetype ortho skinparam nodesep 100 title Core Engine Relations interface Engine.Core.Abstract.IEntity extends Engine.Core.Abstract.IInitializable {} interface Engine.Core.Abstract.IHierarchyObject extends Engine.Core.Abstract.IEntity, Engine.Core.Abstract.INameable {} interface Engine.Core.Abstract.INameable {} Engine.Core.Abstract.IHierarchyObject --> Engine.Core.Abstract.IBehaviourController: has Engine.Core.Abstract.IBehaviourController "1" --> "0..*" Engine.Core.Abstract.IBehaviour: has interface Engine.Core.Abstract.IBehaviourController {} interface Engine.Core.Abstract.IBehaviour {} interface Engine.Core.Abstract.IBehaviour2D extends Engine.Core.Abstract.IBehaviour {} interface Engine.Core.Abstract.IBehaviour3D extends Engine.Core.Abstract.IBehaviour {} interface Engine.Core.Abstract.IGameManager {} Engine.Core.Abstract.IGameManager "1" -r-> "0..*" Engine.Core.Abstract.IHierarchyObject: has ' together { ' interface Engine.Core.Abstract.IAssignable {} ' interface Engine.Core.Abstract.IHasStateEnable extends Engine.Core.Abstract.IAssignable {} ' interface Engine.Core.Abstract.IHasGameManager extends Engine.Core.Abstract.IAssignable {} ' interface Engine.Core.Abstract.IHasHierarchyObject extends Engine.Core.Abstract.IAssignable {} ' interface Engine.Core.Abstract.IHasBehaviourController extends Engine.Core.Abstract.IAssignable {} ' ' Engine.Core.Abstract.IHasStateEnable --> Engine.Core.Abstract.IStateEnable: has ' ' Engine.Core.Abstract.IHasGameManager --> Engine.Core.Abstract.IGameManager: has ' ' Engine.Core.Abstract.IHasHierarchyObject --> Engine.Core.Abstract.IHierarchyObject: has ' ' Engine.Core.Abstract.IHasBehaviourController --> Engine.Core.Abstract.IBehaviourController: has ' } together { interface Engine.Core.Abstract.ITransform2D {} interface Engine.Core.Abstract.ICamera2D {} interface Engine.Core.Abstract.ICoroutineYield {} interface Engine.Core.Abstract.IStateEnable {} interface Engine.Core.Abstract.IInitializable {} interface Engine.Core.Abstract.IBehaviourCollector {} } @enduml