mirror of
https://github.com/overte-org/overte.git
synced 2025-07-23 04:25:49 +02:00
Update EntityEditPacketSender to use packet callbacks
This commit is contained in:
parent
32b232c87a
commit
0180bdc4fb
2 changed files with 17 additions and 3 deletions
|
@ -17,16 +17,26 @@
|
||||||
#include "EntitiesLogging.h"
|
#include "EntitiesLogging.h"
|
||||||
#include "EntityItem.h"
|
#include "EntityItem.h"
|
||||||
|
|
||||||
|
EntityEditPacketSender::EntityEditPacketSender() {
|
||||||
|
auto& packetReceiver = DependencyManager::get<NodeList>()->getPacketReceiver();
|
||||||
|
packetReceiver.registerPacketListener(PacketType::EntityEditNack, this, "processEntityEditNackPacket");
|
||||||
|
}
|
||||||
|
|
||||||
void EntityEditPacketSender::adjustEditPacketForClockSkew(PacketType::Value type,
|
void EntityEditPacketSender::processEntityEditNackPacket(std::unique_ptr<NLPacket> packet, HifiSockAddr senderSockAddr) {
|
||||||
|
if (!Menu::getInstance()->isOptionChecked(MenuOption::DisableNackPackets)) {
|
||||||
|
processNackPacket(QByteArray::fromRawData(packet->getData()));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
void EntityEditPacketSender::adjustEditPacketForClockSkew(PacketType::Value type,
|
||||||
unsigned char* editBuffer, size_t length, int clockSkew) {
|
unsigned char* editBuffer, size_t length, int clockSkew) {
|
||||||
|
|
||||||
if (type == PacketType::EntityAdd || type == PacketType::EntityEdit) {
|
if (type == PacketType::EntityAdd || type == PacketType::EntityEdit) {
|
||||||
EntityItem::adjustEditPacketForClockSkew(editBuffer, length, clockSkew);
|
EntityItem::adjustEditPacketForClockSkew(editBuffer, length, clockSkew);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void EntityEditPacketSender::queueEditEntityMessage(PacketType::Value type, EntityItemID modelID,
|
void EntityEditPacketSender::queueEditEntityMessage(PacketType::Value type, EntityItemID modelID,
|
||||||
const EntityItemProperties& properties) {
|
const EntityItemProperties& properties) {
|
||||||
if (!_shouldSend) {
|
if (!_shouldSend) {
|
||||||
return; // bail early
|
return; // bail early
|
||||||
|
|
|
@ -20,6 +20,8 @@
|
||||||
class EntityEditPacketSender : public OctreeEditPacketSender {
|
class EntityEditPacketSender : public OctreeEditPacketSender {
|
||||||
Q_OBJECT
|
Q_OBJECT
|
||||||
public:
|
public:
|
||||||
|
EntityEditPacketSender();
|
||||||
|
|
||||||
/// Queues an array of several voxel edit messages. Will potentially send a pending multi-command packet. Determines
|
/// Queues an array of several voxel edit messages. Will potentially send a pending multi-command packet. Determines
|
||||||
/// which voxel-server node or nodes the packet should be sent to. Can be called even before voxel servers are known, in
|
/// which voxel-server node or nodes the packet should be sent to. Can be called even before voxel servers are known, in
|
||||||
/// which case up to MaxPendingMessages will be buffered and processed when voxel servers are known.
|
/// which case up to MaxPendingMessages will be buffered and processed when voxel servers are known.
|
||||||
|
@ -28,6 +30,8 @@ public:
|
||||||
|
|
||||||
void queueEraseEntityMessage(const EntityItemID& entityItemID);
|
void queueEraseEntityMessage(const EntityItemID& entityItemID);
|
||||||
|
|
||||||
|
void processEntityEditNackPacket(std::unique_ptr<NLPacket> packet, HifiSockAddr senderSockAddr);
|
||||||
|
|
||||||
// My server type is the model server
|
// My server type is the model server
|
||||||
virtual char getMyNodeType() const { return NodeType::EntityServer; }
|
virtual char getMyNodeType() const { return NodeType::EntityServer; }
|
||||||
virtual void adjustEditPacketForClockSkew(PacketType::Value type, unsigned char* editBuffer, size_t length, int clockSkew);
|
virtual void adjustEditPacketForClockSkew(PacketType::Value type, unsigned char* editBuffer, size_t length, int clockSkew);
|
||||||
|
|
Loading…
Reference in a new issue