Files
tbd-station-14/Content.Server/Players/PlayerData.cs
ZelteHonor b2e2aef78d Rider static analysis (#433)
* Non-accessed local variable

* Merge cast and type checks.

* StringComparison.Ordinal added for better culture support

* Supposed code improvement in launcher. Remove unused code.

* Update ExplosionHelper.cs

Unintentional change.

* Optimized Import

* Add Robust.Shared.Utility import where it was deleted

* Other random suggestion

* Improve my comment
2019-11-13 23:37:46 +01:00

58 lines
1.7 KiB
C#

using Content.Server.Mobs;
using Robust.Server.Interfaces.Player;
using Robust.Shared.Network;
using Robust.Shared.ViewVariables;
namespace Content.Server.Players
{
/// <summary>
/// Content side for all data that tracks a player session.
/// Use <see cref="PlayerDataExt.ContentData(IPlayerData)"/> to retrieve this from an <see cref="IPlayerData"/>.
/// </summary>
public sealed class PlayerData
{
/// <summary>
/// The session ID of the player owning this data.
/// </summary>
[ViewVariables]
public NetSessionId SessionId { get; }
/// <summary>
/// The currently occupied mind of the player owning this data.
/// DO NOT DIRECTLY SET THIS UNLESS YOU KNOW WHAT YOU'RE DOING.
/// </summary>
[ViewVariables]
public Mind Mind { get; set; }
public void WipeMind()
{
Mind?.ChangeOwningPlayer(null);
Mind = null;
}
public PlayerData(NetSessionId sessionId)
{
SessionId = sessionId;
}
}
public static class PlayerDataExt
{
/// <summary>
/// Gets the correctly cast instance of content player data from an engine player data storage.
/// </summary>
public static PlayerData ContentData(this IPlayerData data)
{
return (PlayerData)data.ContentDataUncast;
}
/// <summary>
/// Gets the correctly cast instance of content player data from an engine player data storage.
/// </summary>
public static PlayerData ContentData(this IPlayerSession session)
{
return session.Data.ContentData();
}
}
}