mirror of
https://github.com/space-wizards/RobustToolbox.git
synced 2026-02-15 03:30:53 +01:00
65 lines
1.6 KiB
C#
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);
|
|
}
|
|
}
|
|
}
|