Added multi command block
This commit is contained in:
parent
6889eeff60
commit
279a9317a4
14 changed files with 173 additions and 106 deletions
|
|
@ -127,7 +127,7 @@ void DrawingProgramLayerManager::push_components_to(const std::vector<CanvasComp
|
|||
|
||||
auto& undoMan = drawP.world.undo;
|
||||
|
||||
drawP.world.netObjMan.send_multi_update_messsage([&]() {
|
||||
drawP.world.send_reliable_multi_command_to_all([&]() {
|
||||
std::unordered_map<DrawingProgramLayerListItem*, std::vector<CanvasComponentContainer::ObjInfo*>> toEraseMap;
|
||||
std::vector<NetObjOwnerPtr<DrawingProgramLayerListItem>> toInsertObjPtrs;
|
||||
|
||||
|
|
@ -168,7 +168,7 @@ void DrawingProgramLayerManager::push_components_to(const std::vector<CanvasComp
|
|||
toEraseList.emplace_back(obj->obj->objInfo);
|
||||
}
|
||||
commitMoveOnLayer();
|
||||
}, NetObjManager::SendUpdateType::SEND_TO_ALL, nullptr);
|
||||
});
|
||||
|
||||
class MoveComponentsUndoAction : public WorldUndoAction {
|
||||
public:
|
||||
|
|
@ -376,12 +376,12 @@ void DrawingProgramLayerManager::add_undo_place_component(CanvasComponentContain
|
|||
|
||||
void DrawingProgramLayerManager::erase_component_map(const std::unordered_map<DrawingProgramLayerListItem*, std::vector<CanvasComponentContainer::ObjInfoIterator>>& eraseMap, bool newUndo) {
|
||||
add_undo_erase_components(eraseMap, newUndo);
|
||||
drawP.world.netObjMan.send_multi_update_messsage([&]() {
|
||||
drawP.world.send_reliable_multi_command_to_all([&]() {
|
||||
for(auto& [layerListItem, netObjSetToErase] : eraseMap) {
|
||||
auto& layerComponentList = layerListItem->get_layer().components;
|
||||
layerComponentList->erase_list(layerComponentList, netObjSetToErase);
|
||||
}
|
||||
}, NetworkingObjects::NetObjManager::SendUpdateType::SEND_TO_ALL, nullptr);
|
||||
});
|
||||
}
|
||||
|
||||
void DrawingProgramLayerManager::add_undo_erase_components(const std::unordered_map<DrawingProgramLayerListItem*, std::vector<CanvasComponentContainer::ObjInfoIterator>>& eraseMap, bool newUndo) {
|
||||
|
|
|
|||
|
|
@ -23,6 +23,7 @@
|
|||
#include "../../MainProgram.hpp"
|
||||
#include "DrawingProgramToolBase.hpp"
|
||||
#include "../../CanvasComponents/MeshCanvasComponent.hpp"
|
||||
#include "Helpers/Networking/NetLibrary.hpp"
|
||||
#include "Helpers/NetworkingObjects/NetObjTemporaryPtr.decl.hpp"
|
||||
#include "../../CanvasComponents/CanvasComponentContainer.hpp"
|
||||
#include "../../GUIStuff/ElementHelpers/TextLabelHelpers.hpp"
|
||||
|
|
@ -85,10 +86,10 @@ void BrushTool::commit_data(bool final) {
|
|||
}
|
||||
containerPtr->commit_update(drawP);
|
||||
if(final) {
|
||||
drawP.world.netObjMan.send_multi_update_messsage([&]() {
|
||||
drawP.world.send_reliable_multi_command_to_all([&]() {
|
||||
drawP.send_transforms_for({objInfoBeingEdited});
|
||||
containerPtr->send_comp_update(drawP, final);
|
||||
}, NetworkingObjects::NetObjManager::SendUpdateType::SEND_TO_ALL, nullptr);
|
||||
containerPtr->send_comp_update(drawP, true);
|
||||
});
|
||||
}
|
||||
else
|
||||
containerPtr->send_comp_update(drawP, final);
|
||||
|
|
|
|||
|
|
@ -242,7 +242,7 @@ void EraserTool::commit_erase() {
|
|||
return false;
|
||||
});
|
||||
|
||||
drawP.world.netObjMan.send_multi_update_messsage([&]() {
|
||||
drawP.world.send_reliable_multi_command_to_all([&]() {
|
||||
bool firstPlacement = true;
|
||||
for(auto& [layer, compMap] : newObjectsToPlace) {
|
||||
layer->get_layer().components->sort_netobj_ordered_list_iterator_insert_list(layer->get_layer().components, compMap);
|
||||
|
|
@ -269,7 +269,7 @@ void EraserTool::commit_erase() {
|
|||
else
|
||||
drawP.world.undo.push_on_last(std::make_unique<EditTransformCanvasComponentWorldUndoAction>(std::move(oldData.copyData->obj), oldData.copyData->coords, drawP.world.undo.get_undoid_from_netid(comp->obj.get_net_id())));
|
||||
}
|
||||
}, NetworkingObjects::NetObjManager::SendUpdateType::SEND_TO_ALL, nullptr);
|
||||
});
|
||||
erasedComponents.clear();
|
||||
updatedComponents.clear();
|
||||
}
|
||||
|
|
|
|||
|
|
@ -59,10 +59,10 @@ void LineDrawTool::commit_data(bool final) {
|
|||
}
|
||||
containerPtr->commit_update(drawP);
|
||||
if(final) {
|
||||
drawP.world.netObjMan.send_multi_update_messsage([&]() {
|
||||
drawP.world.send_reliable_multi_command_to_all([&]() {
|
||||
drawP.send_transforms_for({objInfoBeingEdited});
|
||||
containerPtr->send_comp_update(drawP, final);
|
||||
}, NetworkingObjects::NetObjManager::SendUpdateType::SEND_TO_ALL, nullptr);
|
||||
});
|
||||
}
|
||||
else
|
||||
containerPtr->send_comp_update(drawP, final);
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue