Show More
Commit Description:
Fix issue with simulation....
Commit Description:
Fix issue with simulation. Previously, if there was more than one tick being advanced at once, it would overshoot how many ticks it covered. So if it was covering 5 ticks and each tick happens every 100 units, rather than recording that it had simulated through t= 500, it would increase the cumulative time for each tick, recording that it had simulated through t=2500. Add error message, too.
Show/Diff file:
Action:
encompass-cs/test/SpawnerTest.cs
46 lines | 1.2 KiB | text/x-csharp | CSharpLexer
using Encompass;
using NUnit.Framework;
namespace Tests
{
public class SpawnerTest
{
struct TestComponent : IComponent { }
struct SpawnMessageA : IMessage { }
static Entity resultEntity;
[Sends(typeof(SpawnMessageA))]
class MessageEmitter : Engine
{
public override void Update(double dt)
{
SendMessage(new SpawnMessageA());
}
}
[WritesImmediate(typeof(TestComponent))]
[Writes(typeof(TestComponent))]
class TestSpawner : Spawner<SpawnMessageA>
{
protected override void Spawn(in SpawnMessageA message)
{
resultEntity = CreateEntity();
SetComponent(resultEntity, new TestComponent());
Assert.Pass();
}
}
[Test]
public void RunsSpawnMethodOnMessageRead()
{
var worldBuilder = new WorldBuilder();
worldBuilder.AddEngine(new MessageEmitter());
worldBuilder.AddEngine(new TestSpawner());
var world = worldBuilder.Build();
world.Update(0.01);
}
}
}