Gravity generator rewrite (#4828)
Co-authored-by: metalgearsloth <comedian_vs_clown@hotmail.com>
This commit is contained in:
committed by
GitHub
parent
0e33b246db
commit
059fa9ae48
@@ -22,6 +22,16 @@ namespace Content.IntegrationTests.Tests.Gravity
|
||||
id: HumanDummy
|
||||
components:
|
||||
- type: Alerts
|
||||
- type: entity
|
||||
name: GravityGeneratorDummy
|
||||
id: GravityGeneratorDummy
|
||||
components:
|
||||
- type: GravityGenerator
|
||||
chargeRate: 1000000000 # Set this really high so it discharges in a single tick.
|
||||
activePower: 500
|
||||
- type: ApcPowerReceiver
|
||||
needsPower: false
|
||||
- type: UserInterface
|
||||
";
|
||||
[Test]
|
||||
public async Task WeightlessStatusTest()
|
||||
@@ -56,14 +66,12 @@ namespace Content.IntegrationTests.Tests.Gravity
|
||||
// Let WeightlessSystem and GravitySystem tick
|
||||
await server.WaitRunTicks(1);
|
||||
|
||||
GravityGeneratorComponent gravityGenerator = null;
|
||||
|
||||
await server.WaitAssertion(() =>
|
||||
{
|
||||
// No gravity without a gravity generator
|
||||
Assert.True(alerts.IsShowingAlert(AlertType.Weightless));
|
||||
|
||||
gravityGenerator = human.EnsureComponent<GravityGeneratorComponent>();
|
||||
entityManager.SpawnEntity("GravityGeneratorDummy", human.Transform.Coordinates);
|
||||
});
|
||||
|
||||
// Let WeightlessSystem and GravitySystem tick
|
||||
@@ -73,17 +81,20 @@ namespace Content.IntegrationTests.Tests.Gravity
|
||||
{
|
||||
Assert.False(alerts.IsShowingAlert(AlertType.Weightless));
|
||||
|
||||
// TODO: Re-add gravity generator breaking when Vera is done with construction stuff.
|
||||
/*
|
||||
// Disable the gravity generator
|
||||
var args = new BreakageEventArgs {Owner = human};
|
||||
gravityGenerator.OnBreak(args);
|
||||
// gravityGenerator.OnBreak(args);
|
||||
*/
|
||||
});
|
||||
|
||||
await server.WaitRunTicks(1);
|
||||
/*await server.WaitRunTicks(1);
|
||||
|
||||
await server.WaitAssertion(() =>
|
||||
{
|
||||
Assert.True(alerts.IsShowingAlert(AlertType.Weightless));
|
||||
});
|
||||
});*/
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -22,7 +22,10 @@ namespace Content.IntegrationTests.Tests
|
||||
id: GravityGeneratorDummy
|
||||
components:
|
||||
- type: GravityGenerator
|
||||
chargeRate: 1000000000 # Set this really high so it discharges in a single tick.
|
||||
activePower: 500
|
||||
- type: ApcPowerReceiver
|
||||
- type: UserInterface
|
||||
";
|
||||
[Test]
|
||||
public async Task Test()
|
||||
@@ -49,9 +52,8 @@ namespace Content.IntegrationTests.Tests
|
||||
generator = entityMan.SpawnEntity("GravityGeneratorDummy", grid2.ToCoordinates());
|
||||
Assert.That(generator.HasComponent<GravityGeneratorComponent>());
|
||||
Assert.That(generator.HasComponent<ApcPowerReceiverComponent>());
|
||||
var generatorComponent = generator.GetComponent<GravityGeneratorComponent>();
|
||||
|
||||
var powerComponent = generator.GetComponent<ApcPowerReceiverComponent>();
|
||||
Assert.That(generatorComponent.Status, Is.EqualTo(GravityGeneratorStatus.Unpowered));
|
||||
powerComponent.NeedsPower = false;
|
||||
});
|
||||
server.RunTicks(1);
|
||||
@@ -59,8 +61,9 @@ namespace Content.IntegrationTests.Tests
|
||||
server.Assert(() =>
|
||||
{
|
||||
var generatorComponent = generator.GetComponent<GravityGeneratorComponent>();
|
||||
var powerComponent = generator.GetComponent<ApcPowerReceiverComponent>();
|
||||
|
||||
Assert.That(generatorComponent.Status, Is.EqualTo(GravityGeneratorStatus.On));
|
||||
Assert.That(generatorComponent.GravityActive, Is.True);
|
||||
|
||||
var entityMan = IoCManager.Resolve<IEntityManager>();
|
||||
var grid1Entity = entityMan.GetEntity(grid1.GridEntityId);
|
||||
@@ -68,6 +71,22 @@ namespace Content.IntegrationTests.Tests
|
||||
|
||||
Assert.That(!grid1Entity.GetComponent<GravityComponent>().Enabled);
|
||||
Assert.That(grid2Entity.GetComponent<GravityComponent>().Enabled);
|
||||
|
||||
// Re-enable needs power so it turns off again.
|
||||
// Charge rate is ridiculously high so it finishes in one tick.
|
||||
powerComponent.NeedsPower = true;
|
||||
});
|
||||
server.RunTicks(1);
|
||||
server.Assert(() =>
|
||||
{
|
||||
var generatorComponent = generator.GetComponent<GravityGeneratorComponent>();
|
||||
|
||||
Assert.That(generatorComponent.GravityActive, Is.False);
|
||||
|
||||
var entityMan = IoCManager.Resolve<IEntityManager>();
|
||||
var grid2Entity = entityMan.GetEntity(grid2.GridEntityId);
|
||||
|
||||
Assert.That(grid2Entity.GetComponent<GravityComponent>().Enabled, Is.False);
|
||||
});
|
||||
|
||||
await server.WaitIdleAsync();
|
||||
|
||||
Reference in New Issue
Block a user