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