Content changes for grid splitting (#7645) (#7746)

Co-authored-by: Vera Aguilera Puerto <gradientvera@outlook.com>
This commit is contained in:
metalgearsloth
2022-04-24 13:54:25 +10:00
committed by GitHub
parent a2da1580d0
commit 72da2db62d
35 changed files with 291 additions and 151 deletions

View File

@@ -18,8 +18,6 @@ namespace Content.IntegrationTests.Tests.Fluids;
[TestOf(typeof(FluidSpreaderSystem))]
public sealed class FluidSpill : ContentIntegrationTest
{
private const string SpillMapsYml = "Maps/Test/floor3x3.yml";
private static PuddleComponent? GetPuddle(IEntityManager entityManager, IMapGrid mapGrid, Vector2i pos)
{
foreach (var uid in mapGrid.GetAnchoredEntities(pos))
@@ -44,7 +42,7 @@ public sealed class FluidSpill : ContentIntegrationTest
};
private readonly Vector2i _origin = new(-1, -1);
private readonly Vector2i _origin = new(1, 1);
[Test]
public async Task SpillEvenlyTest()
@@ -54,28 +52,30 @@ public sealed class FluidSpill : ContentIntegrationTest
await server.WaitIdleAsync();
var mapManager = server.ResolveDependency<IMapManager>();
var mapLoader = server.ResolveDependency<IMapLoader>();
var entityManager = server.ResolveDependency<IEntityManager>();
var spillSystem = server.ResolveDependency<IEntitySystemManager>().GetEntitySystem<SpillableSystem>();
var gameTiming = server.ResolveDependency<IGameTiming>();
MapId mapId;
GridId? gridid = null;
GridId gridId = default;
await server.WaitPost(() =>
{
mapId = mapManager.CreateMap();
gridid = mapLoader.LoadBlueprint(mapId, SpillMapsYml).gridId;
});
var grid = mapManager.CreateGrid(mapId);
gridId = grid.Index;
if (gridid == null)
{
Assert.Fail($"Test blueprint {SpillMapsYml} not found.");
return;
}
for (var x = 0; x < 3; x++)
{
for (var y = 0; y < 3; y++)
{
grid.SetTile(new Vector2i(x, y), new Tile(1));
}
}
});
await server.WaitAssertion(() =>
{
var grid = mapManager.GetGrid(gridid.Value);
var grid = mapManager.GetGrid(gridId);
var solution = new Solution("Water", FixedPoint2.New(100));
var tileRef = grid.GetTileRef(_origin);
var puddle = spillSystem.SpillAt(tileRef, solution, "PuddleSmear");
@@ -88,7 +88,7 @@ public sealed class FluidSpill : ContentIntegrationTest
server.Assert(() =>
{
var grid = mapManager.GetGrid(gridid.Value);
var grid = mapManager.GetGrid(gridId);
var puddle = GetPuddle(entityManager, grid, _origin);
Assert.That(puddle, Is.Not.Null);
@@ -115,47 +115,44 @@ public sealed class FluidSpill : ContentIntegrationTest
await server.WaitIdleAsync();
var mapManager = server.ResolveDependency<IMapManager>();
var mapLoader = server.ResolveDependency<IMapLoader>();
var entityManager = server.ResolveDependency<IEntityManager>();
var spillSystem = server.ResolveDependency<IEntitySystemManager>().GetEntitySystem<SpillableSystem>();
var gameTiming = server.ResolveDependency<IGameTiming>();
MapId mapId;
GridId? gridId = null;
GridId gridId = default;
await server.WaitPost(() =>
{
mapId = mapManager.CreateMap();
gridId = mapLoader.LoadBlueprint(mapId, SpillMapsYml).gridId;
});
var grid = mapManager.CreateGrid(mapId);
if (gridId == null)
{
Assert.Fail($"Test blueprint {SpillMapsYml} not found.");
return;
}
for (var x = 0; x < 3; x++)
{
for (var y = 0; y < 3; y++)
{
grid.SetTile(new Vector2i(x, y), new Tile(1));
}
}
gridId = grid.Index;
});
await server.WaitAssertion(() =>
{
var solution = new Solution("Water", FixedPoint2.New(20.01));
var grid = mapManager.GetGrid(gridId.Value);
var grid = mapManager.GetGrid(gridId);
var tileRef = grid.GetTileRef(_origin);
var puddle = spillSystem.SpillAt(tileRef, solution, "PuddleSmear");
Assert.That(puddle, Is.Not.Null);
});
if (gridId == null)
{
Assert.Fail($"Test blueprint {SpillMapsYml} not found.");
return;
}
var sTimeToWait = (int) Math.Ceiling(2f * gameTiming.TickRate);
await server.WaitRunTicks(sTimeToWait);
server.Assert(() =>
{
var grid = mapManager.GetGrid(gridId.Value);
var grid = mapManager.GetGrid(gridId);
var puddle = GetPuddle(entityManager, grid, _origin);
Assert.That(puddle, Is.Not.Null);
Assert.That(puddle!.CurrentVolume, Is.EqualTo(FixedPoint2.New(20)));