Add examine info toggle

This commit is contained in:
zumorica
2020-04-20 11:37:05 +02:00
parent 7803bb87bc
commit 3f3b7ca969
2 changed files with 23 additions and 0 deletions

View File

@@ -4,6 +4,7 @@ using Content.Server.Mobs;
using Content.Server.Players; using Content.Server.Players;
using Robust.Shared.GameObjects; using Robust.Shared.GameObjects;
using Robust.Shared.Interfaces.GameObjects; using Robust.Shared.Interfaces.GameObjects;
using Robust.Shared.Serialization;
using Robust.Shared.Utility; using Robust.Shared.Utility;
using Robust.Shared.ViewVariables; using Robust.Shared.ViewVariables;
@@ -15,6 +16,8 @@ namespace Content.Server.GameObjects.Components.Mobs
[RegisterComponent] [RegisterComponent]
public class MindComponent : Component, IExamine public class MindComponent : Component, IExamine
{ {
private bool _showExamineInfo = false;
/// <inheritdoc /> /// <inheritdoc />
public override string Name => "Mind"; public override string Name => "Mind";
@@ -30,6 +33,16 @@ namespace Content.Server.GameObjects.Components.Mobs
[ViewVariables] [ViewVariables]
public bool HasMind => Mind != null; public bool HasMind => Mind != null;
/// <summary>
/// Whether examining should show information about the mind or not.
/// </summary>
[ViewVariables(VVAccess.ReadWrite)]
public bool ShowExamineInfo
{
get => _showExamineInfo;
set => _showExamineInfo = value;
}
/// <summary> /// <summary>
/// Don't call this unless you know what the hell you're doing. /// Don't call this unless you know what the hell you're doing.
/// Use <see cref="Mind.TransferTo(IEntity)"/> instead. /// Use <see cref="Mind.TransferTo(IEntity)"/> instead.
@@ -78,8 +91,17 @@ namespace Content.Server.GameObjects.Components.Mobs
} }
} }
public override void ExposeData(ObjectSerializer serializer)
{
base.ExposeData(serializer);
serializer.DataField(ref _showExamineInfo, "show_examine_info", false);
}
public void Examine(FormattedMessage message) public void Examine(FormattedMessage message)
{ {
if (!ShowExamineInfo)
return;
// TODO: Use gendered pronouns depending on the entity // TODO: Use gendered pronouns depending on the entity
if(!HasMind) if(!HasMind)
message.AddMarkup($"[color=red]They are totally catatonic. The stresses of life in deep-space must have been too much for them. Any recovery is unlikely.[/color]"); message.AddMarkup($"[color=red]They are totally catatonic. The stresses of life in deep-space must have been too much for them. Any recovery is unlikely.[/color]");

View File

@@ -6,6 +6,7 @@
drawdepth: Mobs drawdepth: Mobs
components: components:
- type: Mind - type: Mind
show_examine_info: true
- type: Hands - type: Hands
hands: hands:
- left - left