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
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
1 changed files with 9 additions and 0 deletions

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;
}