From b4f4de211ec00b358bce3f08ace4b1e2bdfb61b4 Mon Sep 17 00:00:00 2001 From: metalgearsloth <31366439+metalgearsloth@users.noreply.github.com> Date: Mon, 5 Dec 2022 14:47:08 +1100 Subject: [PATCH] Fix planet tile friction (#12886) Falls back to default friction on empty tiles where a planet has gravity. --- Content.Shared/Friction/TileFrictionController.cs | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/Content.Shared/Friction/TileFrictionController.cs b/Content.Shared/Friction/TileFrictionController.cs index 0e2d4b12c7..eb6424189b 100644 --- a/Content.Shared/Friction/TileFrictionController.cs +++ b/Content.Shared/Friction/TileFrictionController.cs @@ -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(xform.GridUid) && + (!TryComp(xform.GridUid, out var gravity) || gravity.Enabled)) + { + return DefaultFriction; + } + var tileDef = _tileDefinitionManager[tile.Tile.TypeId]; return tileDef.Friction; }