Transformations over network work again, with undo and redo
This commit is contained in:
parent
b6a25280e6
commit
7e69688ca6
11 changed files with 128 additions and 33 deletions
|
|
@ -185,15 +185,15 @@ MainServer::MainServer(World& initWorld, const std::string& serverLocalID):
|
|||
return idsToRemove.contains(p.first);
|
||||
});
|
||||
});
|
||||
netServer->add_recv_callback(SERVER_TRANSFORM_COMPONENT, [&](std::shared_ptr<NetServer::ClientData> client, cereal::PortableBinaryInputArchive& message) {
|
||||
ServerClientID idToTransform;
|
||||
message(idToTransform);
|
||||
auto it = data.idToComponentMap.find(idToTransform);
|
||||
if(it != data.idToComponentMap.end()) {
|
||||
std::shared_ptr<DrawComponent>& comp = it->second;
|
||||
message(comp->coords);
|
||||
comp->server_send_transform(*this, idToTransform);
|
||||
netServer->add_recv_callback(SERVER_TRANSFORM_MANY_COMPONENTS, [&](std::shared_ptr<NetServer::ClientData> client, cereal::PortableBinaryInputArchive& message) {
|
||||
std::vector<std::pair<ServerClientID, CoordSpaceHelper>> transformsToSend;
|
||||
message(transformsToSend);
|
||||
for(auto& t : transformsToSend) {
|
||||
auto it = data.idToComponentMap.find(t.first);
|
||||
if(it != data.idToComponentMap.end())
|
||||
it->second->coords = t.second;
|
||||
}
|
||||
DrawComponent::server_send_transform_many(*this, transformsToSend);
|
||||
});
|
||||
netServer->add_recv_callback(SERVER_UPDATE_COMPONENT, [&](std::shared_ptr<NetServer::ClientData> client, cereal::PortableBinaryInputArchive& message) {
|
||||
bool isTemp;
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue