Sending NetEntityEvents from client to server, ItemComponent class doesn't implement the INetSerializable interfaces (only the derived classes do), reactor syncing

This commit is contained in:
Regalis
2016-11-13 19:34:23 +02:00
parent 724172fe7c
commit 3d234aef73
16 changed files with 146 additions and 59 deletions

View File

@@ -777,7 +777,7 @@ namespace Barotrauma.Networking
outmsg.Write(GameMain.NetLobbyScreen.LastUpdateID);
outmsg.Write(ChatMessage.LastID);
outmsg.Write(Entity.Spawner.NetStateID);
outmsg.Write(entityEventManager.LastReceivedEntityEventID);
outmsg.Write(entityEventManager.LastReceivedID);
ChatMessage removeMsg;
while ((removeMsg = chatMsgQueue.Find(cMsg => cMsg.NetStateID <= lastSentChatMsgID)) != null)
@@ -795,6 +795,8 @@ namespace Barotrauma.Networking
Character.Controlled.ClientWrite(outmsg);
}
entityEventManager.Write(outmsg, client.ServerConnection);
outmsg.Write((byte)ClientNetObject.END_OF_MESSAGE);
client.SendMessage(outmsg, NetDeliveryMethod.Unreliable);
}
@@ -814,6 +816,11 @@ namespace Barotrauma.Networking
chatMsgQueue.Add(chatMessage);
}
public void CreateEntityEvent(IClientSerializable entity, object[] extraData)
{
entityEventManager.CreateEvent(entity, extraData);
}
public bool HasPermission(ClientPermissions permission)
{