Gravity fixes (#4231)

git was being dumb so I just made a diff pr
This commit is contained in:
metalgearsloth
2021-06-27 15:57:02 +10:00
committed by GitHub
parent cc35558de9
commit c25b103316
5 changed files with 12 additions and 6 deletions

View File

@@ -4,6 +4,7 @@ using Content.Server.Gravity.EntitySystems;
using Content.Shared.Acts;
using Content.Shared.Alert;
using Content.Shared.Coordinates;
using Content.Shared.Gravity;
using NUnit.Framework;
using Robust.Shared.GameObjects;
using Robust.Shared.Map;

View File

@@ -66,8 +66,8 @@ namespace Content.IntegrationTests.Tests
var grid1Entity = entityMan.GetEntity(grid1.GridEntityId);
var grid2Entity = entityMan.GetEntity(grid2.GridEntityId);
Assert.That(!grid1Entity.HasComponent<GravityComponent>());
Assert.That(grid2Entity.HasComponent<GravityComponent>());
Assert.That(!grid1Entity.GetComponent<GravityComponent>().Enabled);
Assert.That(grid2Entity.GetComponent<GravityComponent>().Enabled);
});
await server.WaitIdleAsync();

View File

@@ -56,17 +56,22 @@ namespace Content.Server.Gravity.EntitySystems
{
// Incase there's already a generator on the grid we'll just set it now.
var gridId = component.Owner.Transform.GridID;
GravityChangedMessage message;
foreach (var generator in ComponentManager.EntityQuery<GravityGeneratorComponent>(true))
{
if (generator.Owner.Transform.GridID == gridId && generator.Status == GravityGeneratorStatus.On)
{
component.Enabled = true;
message = new GravityChangedMessage(gridId, true);
RaiseLocalEvent(message);
return;
}
}
component.Enabled = false;
message = new GravityChangedMessage(gridId, false);
RaiseLocalEvent(message);
}
public override void Update(float frameTime)

View File

@@ -1,4 +1,4 @@
using System.Collections.Generic;
using System.Collections.Generic;
using Content.Server.Alert;
using Content.Shared.Alert;
using Content.Shared.GameTicking;
@@ -41,7 +41,7 @@ namespace Content.Server.Gravity.EntitySystems
if (_mapManager.TryGetGrid(status.Owner.Transform.GridID, out var grid))
{
var gridEntity = EntityManager.GetEntity(grid.GridEntityId);
if (gridEntity.HasComponent<GravityComponent>())
if (gridEntity.GetComponent<GravityComponent>().Enabled)
{
RemoveWeightless(status);
}

View File

@@ -7,10 +7,10 @@ namespace Content.Shared.Gravity
public override void Initialize()
{
base.Initialize();
SubscribeLocalEvent<GridInitializedEvent>(HandleGridInitialize);
SubscribeLocalEvent<GridInitializeEvent>(HandleGridInitialize);
}
private void HandleGridInitialize(GridInitializedEvent ev)
private void HandleGridInitialize(GridInitializeEvent ev)
{
var gridEnt = EntityManager.GetEntity(ev.EntityUid);
gridEnt.EnsureComponent<GravityComponent>();