world builder
							parent
							
								
									56bf01f03c
								
							
						
					
					
						commit
						f88870e2d8
					
				|  | @ -1,14 +1,11 @@ | ||||||
| using System.Collections.Generic; |  | ||||||
| using System.Linq; |  | ||||||
| 
 |  | ||||||
| namespace Encompass { | namespace Encompass { | ||||||
|     public class World { |     public class World { | ||||||
|         EntityManager entityManager; |         EntityManager entityManager; | ||||||
|         ComponentManager componentManager; |         ComponentManager componentManager; | ||||||
| 
 | 
 | ||||||
|         public World() { |         internal World(EntityManager entityManager, ComponentManager componentManager) { | ||||||
|             this.componentManager = new ComponentManager(); |             this.entityManager = entityManager; | ||||||
|             this.entityManager = new EntityManager(componentManager); |             this.componentManager = componentManager; | ||||||
|         } |         } | ||||||
| 
 | 
 | ||||||
|         public void Update() { |         public void Update() { | ||||||
|  |  | ||||||
|  | @ -0,0 +1,26 @@ | ||||||
|  | using System.Collections.Generic; | ||||||
|  | 
 | ||||||
|  | namespace Encompass { | ||||||
|  |     public class WorldBuilder { | ||||||
|  |         private ComponentManager componentManager; | ||||||
|  |         private EntityManager entityManager; | ||||||
|  | 
 | ||||||
|  |         public WorldBuilder() { | ||||||
|  |             componentManager = new ComponentManager(); | ||||||
|  |             entityManager = new EntityManager(componentManager); | ||||||
|  |         } | ||||||
|  | 
 | ||||||
|  |         public Entity CreateEntity() { | ||||||
|  |             return this.entityManager.CreateEntity(); | ||||||
|  |         } | ||||||
|  | 
 | ||||||
|  |         public World Build() { | ||||||
|  |             var world = new World(this.entityManager, this.componentManager); | ||||||
|  | 
 | ||||||
|  |             this.componentManager.ActivateComponents(); | ||||||
|  |             this.componentManager.RemoveComponents(); | ||||||
|  | 
 | ||||||
|  |             return world; | ||||||
|  |         } | ||||||
|  |     } | ||||||
|  | } | ||||||
|  | @ -11,5 +11,6 @@ | ||||||
|     <Content Include="World.cs" /> |     <Content Include="World.cs" /> | ||||||
|     <Content Include="EntityManager.cs" /> |     <Content Include="EntityManager.cs" /> | ||||||
|     <Content Include="ComponentManager.cs" /> |     <Content Include="ComponentManager.cs" /> | ||||||
|  |     <Content Include="WorldBuilder.cs" /> | ||||||
|   </ItemGroup> |   </ItemGroup> | ||||||
| </Project> | </Project> | ||||||
|  | @ -1,96 +1,96 @@ | ||||||
| using NUnit.Framework; | using NUnit.Framework; | ||||||
| using System.Linq; | using System.Linq; | ||||||
| 
 | 
 | ||||||
| namespace Encompass | using Encompass; | ||||||
| { | 
 | ||||||
|     namespace Tests { | namespace Tests { | ||||||
|         struct MockComponent : IComponent { |     struct MockComponent : IComponent { | ||||||
|             public string myString; |         public string myString; | ||||||
|             public int myInt; |         public int myInt; | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  |     public class EntityTest | ||||||
|  |     { | ||||||
|  |         [Test] | ||||||
|  |         public void AddComponent() | ||||||
|  |         { | ||||||
|  |             var worldBuilder = new WorldBuilder(); | ||||||
|  |             var entity = worldBuilder.CreateEntity(); | ||||||
|  | 
 | ||||||
|  |             MockComponent mockComponent; | ||||||
|  |             mockComponent.myInt = 3; | ||||||
|  |             mockComponent.myString = "hello"; | ||||||
|  | 
 | ||||||
|  |             entity.AddComponent<MockComponent>(mockComponent); | ||||||
|  | 
 | ||||||
|  |             var world = worldBuilder.Build(); | ||||||
|  |             // world.Update(); | ||||||
|  | 
 | ||||||
|  |             Assert.IsTrue(entity.HasComponent<MockComponent>()); | ||||||
|  |             Assert.AreEqual(mockComponent, entity.GetComponent<MockComponent>()); | ||||||
|         } |         } | ||||||
| 
 | 
 | ||||||
|         public class EntityTest |         [Test] | ||||||
|  |         public void GetComponents() | ||||||
|         { |         { | ||||||
|             [Test] |             var worldBuilder = new WorldBuilder(); | ||||||
|             public void AddComponent() |             var entity = worldBuilder.CreateEntity(); | ||||||
|             { |  | ||||||
|                 var world = new World(); |  | ||||||
|                 var entity = world.CreateEntity(); |  | ||||||
| 
 | 
 | ||||||
|                 MockComponent mockComponent; |             MockComponent mockComponentA; | ||||||
|                 mockComponent.myInt = 3; |             mockComponentA.myInt = 3; | ||||||
|                 mockComponent.myString = "hello"; |             mockComponentA.myString = "hello"; | ||||||
| 
 | 
 | ||||||
|                 entity.AddComponent<MockComponent>(mockComponent); |             MockComponent mockComponentB; | ||||||
|  |             mockComponentB.myInt = 5; | ||||||
|  |             mockComponentB.myString = "wassup"; | ||||||
| 
 | 
 | ||||||
|                 world.Update(); |             MockComponent mockComponentC; | ||||||
|  |             mockComponentC.myInt = 1; | ||||||
|  |             mockComponentC.myString = "howdy"; | ||||||
| 
 | 
 | ||||||
|                 Assert.IsTrue(entity.HasComponent<MockComponent>()); |             entity.AddComponent<MockComponent>(mockComponentA); | ||||||
|                 Assert.AreEqual(mockComponent, entity.GetComponent<MockComponent>()); |             entity.AddComponent<MockComponent>(mockComponentB); | ||||||
|             } |             entity.AddComponent<MockComponent>(mockComponentC); | ||||||
| 
 | 
 | ||||||
|             [Test] |             var world = worldBuilder.Build(); | ||||||
|             public void GetComponents() |  | ||||||
|             { |  | ||||||
|                 var world = new World(); |  | ||||||
|                 var entity = world.CreateEntity(); |  | ||||||
| 
 | 
 | ||||||
|                 MockComponent mockComponentA; |             Assert.Contains(mockComponentA, entity.GetComponents<MockComponent>().ToList()); | ||||||
|                 mockComponentA.myInt = 3; |             Assert.Contains(mockComponentB, entity.GetComponents<MockComponent>().ToList()); | ||||||
|                 mockComponentA.myString = "hello"; |             Assert.Contains(mockComponentC, entity.GetComponents<MockComponent>().ToList()); | ||||||
|  |         } | ||||||
| 
 | 
 | ||||||
|                 MockComponent mockComponentB; |         [Test] | ||||||
|                 mockComponentB.myInt = 5; |         public void GetComponent() | ||||||
|                 mockComponentB.myString = "wassup"; |         { | ||||||
|  |             var worldBuilder = new WorldBuilder(); | ||||||
|  |             var entity = worldBuilder.CreateEntity(); | ||||||
| 
 | 
 | ||||||
|                 MockComponent mockComponentC; |             MockComponent mockComponent; | ||||||
|                 mockComponentC.myInt = 1; |             mockComponent.myInt = 3; | ||||||
|                 mockComponentC.myString = "howdy"; |             mockComponent.myString = "hello"; | ||||||
| 
 | 
 | ||||||
|                 entity.AddComponent<MockComponent>(mockComponentA); |             entity.AddComponent<MockComponent>(mockComponent); | ||||||
|                 entity.AddComponent<MockComponent>(mockComponentB); |  | ||||||
|                 entity.AddComponent<MockComponent>(mockComponentC); |  | ||||||
| 
 | 
 | ||||||
|                 world.Update(); |             var world = worldBuilder.Build(); | ||||||
| 
 | 
 | ||||||
|                 Assert.Contains(mockComponentA, entity.GetComponents<MockComponent>().ToList()); |             Assert.AreEqual(mockComponent, entity.GetComponent<MockComponent>()); | ||||||
|                 Assert.Contains(mockComponentB, entity.GetComponents<MockComponent>().ToList()); |         } | ||||||
|                 Assert.Contains(mockComponentC, entity.GetComponents<MockComponent>().ToList()); |  | ||||||
|             } |  | ||||||
| 
 | 
 | ||||||
|             [Test] |         [Test] | ||||||
|             public void GetComponent() |         public void HasComponent() | ||||||
|             { |         { | ||||||
|                 var world = new World(); |             var worldBuilder = new WorldBuilder(); | ||||||
|                 var entity = world.CreateEntity(); |             var entity = worldBuilder.CreateEntity(); | ||||||
| 
 | 
 | ||||||
|                 MockComponent mockComponent; |             MockComponent mockComponent; | ||||||
|                 mockComponent.myInt = 3; |             mockComponent.myInt = 3; | ||||||
|                 mockComponent.myString = "hello"; |             mockComponent.myString = "hello"; | ||||||
| 
 | 
 | ||||||
|                 entity.AddComponent<MockComponent>(mockComponent); |             entity.AddComponent<MockComponent>(mockComponent); | ||||||
| 
 | 
 | ||||||
|                 world.Update(); |             var world = worldBuilder.Build(); | ||||||
| 
 | 
 | ||||||
|                 Assert.AreEqual(mockComponent, entity.GetComponent<MockComponent>()); |             Assert.IsTrue(entity.HasComponent<MockComponent>()); | ||||||
|             } |  | ||||||
| 
 |  | ||||||
|             [Test] |  | ||||||
|             public void HasComponent() |  | ||||||
|             { |  | ||||||
|                 var world = new World(); |  | ||||||
|                 var entity = world.CreateEntity(); |  | ||||||
| 
 |  | ||||||
|                 MockComponent mockComponent; |  | ||||||
|                 mockComponent.myInt = 3; |  | ||||||
|                 mockComponent.myString = "hello"; |  | ||||||
| 
 |  | ||||||
|                 entity.AddComponent<MockComponent>(mockComponent); |  | ||||||
| 
 |  | ||||||
|                 world.Update(); |  | ||||||
| 
 |  | ||||||
|                 Assert.IsTrue(entity.HasComponent<MockComponent>()); |  | ||||||
|             } |  | ||||||
|         } |         } | ||||||
|     } |     } | ||||||
| } | } | ||||||
|  |  | ||||||
		Loading…
	
		Reference in New Issue