37 lines
1.3 KiB
C#
37 lines
1.3 KiB
C#
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<String> 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<String>(bytes);
|
|
return null;
|
|
}
|
|
|
|
|
|
} |