Fix planet tile friction (#12886)

Falls back to default friction on empty tiles where a planet has gravity.
This commit is contained in:
metalgearsloth
2022-12-05 14:47:08 +11:00
committed by GitHub
parent e776d01df0
commit b4f4de211e

View File

@@ -7,6 +7,7 @@ using JetBrains.Annotations;
using Robust.Shared.Configuration;
using Robust.Shared.GameStates;
using Robust.Shared.Map;
using Robust.Shared.Map.Components;
using Robust.Shared.Physics.Components;
using Robust.Shared.Physics.Controllers;
using Robust.Shared.Physics.Dynamics;
@@ -198,6 +199,14 @@ namespace Content.Shared.Friction
if (_mapManager.TryGetGrid(xform.GridUid, out var grid))
{
var tile = grid.GetTileRef(xform.Coordinates);
// If it's a map but on an empty tile then just assume it has gravity.
if (tile.Tile.IsEmpty && HasComp<MapComponent>(xform.GridUid) &&
(!TryComp<GravityComponent>(xform.GridUid, out var gravity) || gravity.Enabled))
{
return DefaultFriction;
}
var tileDef = _tileDefinitionManager[tile.Tile.TypeId];
return tileDef.Friction;
}