using System.Collections.Generic;
using System.Linq;
using MongoDB.Bson.Serialization.Attributes;
namespace Base
{
///
/// Key Value组件用于保存一些数据
///
public class KVComponent : Component
{
[BsonElement]
private readonly Dictionary kv = new Dictionary();
public void Add(string key, object value)
{
this.kv.Add(key, value);
}
public void Remove(string key)
{
this.kv.Remove(key);
}
public T Get(string key)
{
object k;
if (!this.kv.TryGetValue(key, out k))
{
return default(T);
}
return (T)k;
}
public override void Dispose()
{
if (this.Id == 0)
{
return;
}
base.Dispose();
}
}
public static class KVHelper
{
public static void KVAdd(this Entity entity, string key, object value)
{
entity.GetComponent().Add(key, value);
}
public static void KVRemove(this Entity entity, string key)
{
entity.GetComponent().Remove(key);
}
public static void KVGet(this Entity entity, string key)
{
entity.GetComponent().Get(key);
}
}
}