41 lines
1007 B
C#
Raw Normal View History

2024-08-17 14:27:18 +08:00
using System;
using System.Collections.Generic;
2024-10-17 01:59:25 +08:00
namespace JNGame.Runtime.Sync
2024-08-17 14:27:18 +08:00
{
public abstract class JNSyncService : Feature
{
//系统列表
protected abstract JNBaseSystem[] AllSystems { get; }
//获取当前逻辑帧
public abstract int DeltaTime { get; }
//获取系统
public T GetSystem<T>() where T : JNBaseSystem
{
foreach (var service in AllSystems)
{
if (service is T system) return system;
}
throw new InvalidOperationException($"No Service of type {typeof(T).Name} was found.");
}
public List<T> GetSystems<T>()
{
var list = new List<T>();
foreach (var service in AllSystems)
{
if (service is T system)
{
list.Add(system);
}
}
return list;
}
}
}