Add gravitycomponent support to maps (#9857)
* Add gravitycomponent support to maps The alert still needs fixing if you want planets. * move
This commit is contained in:
@@ -31,6 +31,7 @@ namespace Content.Shared.Movement.Components
|
||||
|
||||
public static class GravityExtensions
|
||||
{
|
||||
[Obsolete("Use GravitySystem")]
|
||||
public static bool IsWeightless(this EntityUid entity, PhysicsComponent? body = null, EntityCoordinates? coords = null, IMapManager? mapManager = null, IEntityManager? entityManager = null)
|
||||
{
|
||||
entityManager ??= IoCManager.Resolve<IEntityManager>();
|
||||
@@ -47,10 +48,12 @@ namespace Content.Shared.Movement.Components
|
||||
var transform = entityManager.GetComponent<TransformComponent>(entity);
|
||||
var gridId = transform.GridUid;
|
||||
|
||||
if ((entityManager.TryGetComponent<GravityComponent>(transform.GridUid, out var gravity) ||
|
||||
entityManager.TryGetComponent(transform.MapUid, out gravity)) && gravity.Enabled)
|
||||
return false;
|
||||
|
||||
if (gridId == null)
|
||||
{
|
||||
// Not on a grid = no gravity for now.
|
||||
// In the future, may want to allow maps to override to always have gravity instead.
|
||||
return true;
|
||||
}
|
||||
|
||||
|
||||
@@ -2,6 +2,7 @@ using System.Diagnostics.CodeAnalysis;
|
||||
using Content.Shared.Audio;
|
||||
using Content.Shared.CCVar;
|
||||
using Content.Shared.Friction;
|
||||
using Content.Shared.Gravity;
|
||||
using Content.Shared.Inventory;
|
||||
using Content.Shared.Maps;
|
||||
using Content.Shared.MobState.Components;
|
||||
@@ -34,6 +35,7 @@ namespace Content.Shared.Movement.Systems
|
||||
[Dependency] private readonly ITileDefinitionManager _tileDefinitionManager = default!;
|
||||
[Dependency] private readonly InventorySystem _inventory = default!;
|
||||
[Dependency] private readonly SharedContainerSystem _container = default!;
|
||||
[Dependency] private readonly SharedGravitySystem _gravity = default!;
|
||||
[Dependency] private readonly SharedMobStateSystem _mobState = default!;
|
||||
[Dependency] private readonly TagSystem _tags = default!;
|
||||
|
||||
@@ -112,7 +114,7 @@ namespace Content.Shared.Movement.Systems
|
||||
}
|
||||
|
||||
UsedMobMovement[mover.Owner] = true;
|
||||
var weightless = mover.Owner.IsWeightless(physicsComponent, mapManager: _mapManager, entityManager: EntityManager);
|
||||
var weightless = _gravity.IsWeightless(mover.Owner, physicsComponent, xform);
|
||||
var (walkDir, sprintDir) = GetVelocityInput(mover);
|
||||
var touching = false;
|
||||
|
||||
|
||||
Reference in New Issue
Block a user