feat: improved api for plugins

This commit is contained in:
2024-05-18 17:24:57 +03:00
parent 5634a182e6
commit 7a2196ff50
2 changed files with 20 additions and 0 deletions
+2
View File
@@ -31,6 +31,8 @@ public interface IRagonRoom
public void ReplicateData(byte[] data, NetworkChannel channel); public void ReplicateData(byte[] data, NetworkChannel channel);
public void ReplicateData(byte[] data, List<RagonRoomPlayer> player, NetworkChannel channel); public void ReplicateData(byte[] data, List<RagonRoomPlayer> player, NetworkChannel channel);
public void ReplicateData(RagonRoomPlayer invoker, byte[] data, List<RagonRoomPlayer> receivers,
NetworkChannel channel = NetworkChannel.RELIABLE);
RagonRoomPlayer GetPlayerByConnection(INetworkConnection connection); RagonRoomPlayer GetPlayerByConnection(INetworkConnection connection);
RagonRoomPlayer GetPlayerById(string id); RagonRoomPlayer GetPlayerById(string id);
+18
View File
@@ -215,6 +215,24 @@ public class RagonRoom : IRagonRoom, IRagonAction
Broadcast(sendData, receivers, channel); Broadcast(sendData, receivers, channel);
} }
public void ReplicateData(RagonRoomPlayer invoker, byte[] data, List<RagonRoomPlayer> receivers,
NetworkChannel channel = NetworkChannel.RELIABLE)
{
var dataSize = data.Length;
var headerSize = 3;
var size = headerSize + dataSize;
var sendData = new byte[size];
var peerId = invoker.Connection.Id;
sendData[0] = (byte)RagonOperation.REPLICATE_RAW_DATA;
sendData[1] = (byte)peerId;
sendData[2] = (byte)(peerId >> 8);
Array.Copy(data, 0, sendData, headerSize, dataSize);
Broadcast(sendData, receivers, channel);
}
public void Tick(float dt) public void Tick(float dt)
{ {