using Net.BITKit.Teleport; using System; using Cysharp.Threading.Tasks; using System.Collections.Concurrent; using System.Collections.Generic; using System.IO; using BITKit; using MemoryPack; public class @IMyRemoteInterfaceGen : IMyRemoteInterface { public INetProvider NetProvider; public String Func( String name) { using var ms = new MemoryStream(); using var writer = new BinaryWriter(ms); writer.Write((byte)NetCommandType.Rpc); writer.Write(++NetProvider.RpcCount); writer.Write("Net.BITKit.Teleport.IMyRemoteInterface"); writer.Write("Func"); RemoteInterfaceGenerator.Serialize(writer,name); NetProvider.Invoke(0,ms.ToArray()); return default; } public async UniTask FuncAsync( String name) { using var ms = new MemoryStream(); using var writer = new BinaryWriter(ms); writer.Write((byte)NetCommandType.Rpc); writer.Write(++NetProvider.RpcCount); writer.Write("Net.BITKit.Teleport.IMyRemoteInterface"); writer.Write("FuncAsync"); RemoteInterfaceGenerator.Serialize(writer,name); var bytes =await NetProvider.InvokeAsync(0, ms.ToArray()); return MemoryPackSerializer.Deserialize(bytes); return null; } }