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.Acts;
using Content.Shared.Alert; using Content.Shared.Alert;
using Content.Shared.Coordinates; using Content.Shared.Coordinates;
using Content.Shared.Gravity;
using NUnit.Framework; using NUnit.Framework;
using Robust.Shared.GameObjects; using Robust.Shared.GameObjects;
using Robust.Shared.Map; using Robust.Shared.Map;

View File

@@ -66,8 +66,8 @@ namespace Content.IntegrationTests.Tests
var grid1Entity = entityMan.GetEntity(grid1.GridEntityId); var grid1Entity = entityMan.GetEntity(grid1.GridEntityId);
var grid2Entity = entityMan.GetEntity(grid2.GridEntityId); var grid2Entity = entityMan.GetEntity(grid2.GridEntityId);
Assert.That(!grid1Entity.HasComponent<GravityComponent>()); Assert.That(!grid1Entity.GetComponent<GravityComponent>().Enabled);
Assert.That(grid2Entity.HasComponent<GravityComponent>()); Assert.That(grid2Entity.GetComponent<GravityComponent>().Enabled);
}); });
await server.WaitIdleAsync(); 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. // Incase there's already a generator on the grid we'll just set it now.
var gridId = component.Owner.Transform.GridID; var gridId = component.Owner.Transform.GridID;
GravityChangedMessage message;
foreach (var generator in ComponentManager.EntityQuery<GravityGeneratorComponent>(true)) foreach (var generator in ComponentManager.EntityQuery<GravityGeneratorComponent>(true))
{ {
if (generator.Owner.Transform.GridID == gridId && generator.Status == GravityGeneratorStatus.On) if (generator.Owner.Transform.GridID == gridId && generator.Status == GravityGeneratorStatus.On)
{ {
component.Enabled = true; component.Enabled = true;
message = new GravityChangedMessage(gridId, true);
RaiseLocalEvent(message);
return; return;
} }
} }
component.Enabled = false; component.Enabled = false;
message = new GravityChangedMessage(gridId, false);
RaiseLocalEvent(message);
} }
public override void Update(float frameTime) 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.Server.Alert;
using Content.Shared.Alert; using Content.Shared.Alert;
using Content.Shared.GameTicking; using Content.Shared.GameTicking;
@@ -41,7 +41,7 @@ namespace Content.Server.Gravity.EntitySystems
if (_mapManager.TryGetGrid(status.Owner.Transform.GridID, out var grid)) if (_mapManager.TryGetGrid(status.Owner.Transform.GridID, out var grid))
{ {
var gridEntity = EntityManager.GetEntity(grid.GridEntityId); var gridEntity = EntityManager.GetEntity(grid.GridEntityId);
if (gridEntity.HasComponent<GravityComponent>()) if (gridEntity.GetComponent<GravityComponent>().Enabled)
{ {
RemoveWeightless(status); RemoveWeightless(status);
} }

View File

@@ -7,10 +7,10 @@ namespace Content.Shared.Gravity
public override void Initialize() public override void Initialize()
{ {
base.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); var gridEnt = EntityManager.GetEntity(ev.EntityUid);
gridEnt.EnsureComponent<GravityComponent>(); gridEnt.EnsureComponent<GravityComponent>();