Files
RobustToolbox/Robust.Server/GameObjects/Components/Appearance/AppearanceComponent.cs
Exp 31e9554cd7 Makes more fields VV (#1282)
* Sprite & Appearance VV

* Added Client SpriteComp & RSI
2020-09-08 18:44:53 +02:00

65 lines
1.6 KiB
C#

using Robust.Shared.GameObjects;
using Robust.Shared.GameObjects.Components.Appearance;
using Robust.Shared.ViewVariables;
using System;
using System.Collections.Generic;
using System.Diagnostics.CodeAnalysis;
namespace Robust.Server.GameObjects
{
public sealed class AppearanceComponent : SharedAppearanceComponent
{
[ViewVariables]
readonly Dictionary<object, object> data = new Dictionary<object, object>();
public override void SetData(string key, object value)
{
data[key] = value;
Dirty();
}
public override void SetData(Enum key, object value)
{
data[key] = value;
Dirty();
}
public override T GetData<T>(string key)
{
return (T)data[key];
}
public override T GetData<T>(Enum key)
{
return (T)data[key];
}
public override bool TryGetData<T>(Enum key, [MaybeNullWhen(false)] out T data)
{
return TryGetData(key, out data);
}
public override bool TryGetData<T>(string key, [MaybeNullWhen(false)] out T data)
{
return TryGetData(key, out data);
}
bool TryGetData<T>(object key, [MaybeNullWhen(false)] out T data)
{
if (this.data.TryGetValue(key, out var dat))
{
data = (T)dat;
return true;
}
data = default!;
return false;
}
public override ComponentState GetComponentState()
{
return new AppearanceComponentState(data);
}
}
}