WIP item position syncing

This commit is contained in:
Regalis
2017-02-02 20:40:58 +02:00
parent 39f977535d
commit b5bac67c4a
8 changed files with 185 additions and 48 deletions
+18 -1
View File
@@ -77,7 +77,7 @@ namespace Barotrauma.Networking
config.SimulatedDuplicatesChance = 0.05f;
config.SimulatedMinimumLatency = 0.1f;
config.ConnectionTimeout = 5.0f;
config.ConnectionTimeout = 60.0f;
#endif
config.Port = port;
Port = port;
@@ -503,6 +503,11 @@ namespace Barotrauma.Networking
ClientWriteLobby(c);
}
}
foreach (Item item in Item.ItemList)
{
item.NeedsPositionUpdate = false;
}
}
updateTimer = DateTime.Now + updateInterval;
@@ -688,6 +693,9 @@ namespace Barotrauma.Networking
case ClientNetObject.ENTITY_STATE:
entityEventManager.Read(inc, c);
break;
case ClientNetObject.VOTE:
Voting.RegisterVote(inc, c);
break;
default:
return;
}
@@ -766,6 +774,15 @@ namespace Barotrauma.Networking
outmsg.WritePadBits();
}
foreach (Item item in Item.ItemList)
{
if (!item.NeedsPositionUpdate) continue;
outmsg.Write((byte)ServerNetObject.ENTITY_POSITION);
item.ServerWritePosition(outmsg, c);
outmsg.WritePadBits();
}
entityEventManager.Write(c, outmsg);
outmsg.Write((byte)ServerNetObject.END_OF_MESSAGE);