2025-07-17 18:26:28 +08:00

77 lines
2.0 KiB
C#
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

using System;
using System.Collections.Generic;
using MongoDB.Bson.Serialization.Attributes;
using MongoDB.Bson.Serialization.Options;
using System.ComponentModel;
namespace ET
{
[Config]
public partial class StartSceneConfigCategory : Singleton<StartSceneConfigCategory>, IMerge
{
[BsonElement]
[BsonDictionaryOptions(DictionaryRepresentation.ArrayOfArrays)]
private Dictionary<int, StartSceneConfig> dict = new();
public void Merge(object o)
{
StartSceneConfigCategory s = o as StartSceneConfigCategory;
foreach (var kv in s.dict)
{
this.dict.Add(kv.Key, kv.Value);
}
}
public StartSceneConfig Get(int id)
{
this.dict.TryGetValue(id, out StartSceneConfig item);
if (item == null)
{
throw new Exception($"配置找不到,配置表名: {nameof (StartSceneConfig)}配置id: {id}");
}
return item;
}
public bool Contain(int id)
{
return this.dict.ContainsKey(id);
}
public Dictionary<int, StartSceneConfig> GetAll()
{
return this.dict;
}
public StartSceneConfig GetOne()
{
if (this.dict == null || this.dict.Count <= 0)
{
return null;
}
var enumerator = this.dict.Values.GetEnumerator();
enumerator.MoveNext();
return enumerator.Current;
}
}
public partial class StartSceneConfig: ProtoObject, IConfig
{
/// <summary>Id</summary>
public int Id { get; set; }
/// <summary>所属进程</summary>
public int Process { get; set; }
/// <summary>所属区</summary>
public int Zone { get; set; }
/// <summary>类型</summary>
public string SceneType { get; set; }
/// <summary>名字</summary>
public string Name { get; set; }
/// <summary>外网端口</summary>
public int Port { get; set; }
}
}