feat: improved api for plugins
This commit is contained in:
@@ -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);
|
||||||
|
|||||||
@@ -216,6 +216,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)
|
||||||
{
|
{
|
||||||
var entities = (ushort)_entitiesDirtySet.Count;
|
var entities = (ushort)_entitiesDirtySet.Count;
|
||||||
|
|||||||
Reference in New Issue
Block a user