mirror of
https://github.com/corvax-team/ss14-wl.git
synced 2026-09-15 06:42:17 +02:00
* Axes the easy IMapManager references * Axes the references to unported (obsolete) IMapManager methods * Converts salvageruler command to a LocalizedEntityCommand so it can use SharedMapSystem * Removes IMapManager from GameTicker This required axing the map nuke during restart, but that should be fine? Maps are entities so EntityManager.FlushEntities should delete them all and that's the preceding line * submodule update(?) --------- Co-authored-by: ArtisticRoomba <145879011+ArtisticRoomba@users.noreply.github.com>
102 lines
3.6 KiB
C#
102 lines
3.6 KiB
C#
using Content.IntegrationTests.Fixtures;
|
|
using Content.Server.Power.Components;
|
|
using Content.Shared.Gravity;
|
|
using Robust.Shared.GameObjects;
|
|
using Robust.Shared.Map;
|
|
using Robust.Shared.Map.Components;
|
|
using Robust.Shared.Maths;
|
|
|
|
namespace Content.IntegrationTests.Tests
|
|
{
|
|
/// Tests the behavior of GravityGeneratorComponent,
|
|
/// making sure that gravity is applied to the correct grids.
|
|
[TestFixture]
|
|
[TestOf(typeof(GravityGeneratorComponent))]
|
|
public sealed class GravityGridTest : GameTest
|
|
{
|
|
[TestPrototypes]
|
|
private const string Prototypes = @"
|
|
- type: entity
|
|
name: GridGravityGeneratorDummy
|
|
id: GridGravityGeneratorDummy
|
|
components:
|
|
- type: GravityGenerator
|
|
- type: PowerCharge
|
|
windowTitle: gravity-generator-window-title
|
|
idlePower: 50
|
|
chargeRate: 1000000000 # Set this really high so it discharges in a single tick.
|
|
activePower: 500
|
|
- type: ApcPowerReceiver
|
|
- type: UserInterface
|
|
";
|
|
[Test]
|
|
public async Task Test()
|
|
{
|
|
var pair = Pair;
|
|
var server = pair.Server;
|
|
|
|
var testMap = await pair.CreateTestMap();
|
|
|
|
var entityMan = server.EntMan;
|
|
var mapSys = entityMan.System<SharedMapSystem>();
|
|
|
|
EntityUid generator = default;
|
|
Entity<MapGridComponent> grid1 = default;
|
|
Entity<MapGridComponent> grid2 = default;
|
|
|
|
// Create grids
|
|
await server.WaitAssertion(() =>
|
|
{
|
|
var mapId = testMap.MapId;
|
|
grid1 = mapSys.CreateGridEntity(mapId);
|
|
grid2 = mapSys.CreateGridEntity(mapId);
|
|
|
|
mapSys.SetTile(grid1, grid1, Vector2i.Zero, new Tile(1));
|
|
mapSys.SetTile(grid2, grid2, Vector2i.Zero, new Tile(1));
|
|
|
|
generator = entityMan.SpawnEntity("GridGravityGeneratorDummy", new EntityCoordinates(grid1, 0.5f, 0.5f));
|
|
Assert.Multiple(() =>
|
|
{
|
|
Assert.That(entityMan.HasComponent<GravityGeneratorComponent>(generator));
|
|
Assert.That(entityMan.HasComponent<ApcPowerReceiverComponent>(generator));
|
|
});
|
|
|
|
var powerComponent = entityMan.GetComponent<ApcPowerReceiverComponent>(generator);
|
|
powerComponent.NeedsPower = false;
|
|
});
|
|
|
|
await server.WaitRunTicks(5);
|
|
|
|
await server.WaitAssertion(() =>
|
|
{
|
|
var generatorComponent = entityMan.GetComponent<GravityGeneratorComponent>(generator);
|
|
var powerComponent = entityMan.GetComponent<ApcPowerReceiverComponent>(generator);
|
|
|
|
Assert.Multiple(() =>
|
|
{
|
|
Assert.That(generatorComponent.GravityActive, Is.True);
|
|
Assert.That(!entityMan.GetComponent<GravityComponent>(grid1).Enabled);
|
|
Assert.That(entityMan.GetComponent<GravityComponent>(grid2).Enabled);
|
|
});
|
|
|
|
// Re-enable needs power so it turns off again.
|
|
// Charge rate is ridiculously high so it finishes in one tick.
|
|
powerComponent.NeedsPower = true;
|
|
});
|
|
|
|
await server.WaitRunTicks(5);
|
|
|
|
await server.WaitAssertion(() =>
|
|
{
|
|
var generatorComponent = entityMan.GetComponent<GravityGeneratorComponent>(generator);
|
|
|
|
Assert.Multiple(() =>
|
|
{
|
|
Assert.That(generatorComponent.GravityActive, Is.False);
|
|
Assert.That(entityMan.GetComponent<GravityComponent>(grid2).Enabled, Is.False);
|
|
});
|
|
});
|
|
}
|
|
}
|
|
}
|