feat: handle EntityEditNack and create test entities on domain connection

This commit is contained in:
MayaTheShy
2025-11-09 01:43:41 -05:00
parent 53546fbf28
commit 253c93dd7c

View File

@@ -423,6 +423,17 @@ void OverteClient::parseDomainPacket(const char* data, size_t len) {
parseEntityPacket(payload, payloadLen);
break;
case PacketType::EntityEditNack:
std::cout << "[OverteClient] EntityEditNack received - entity creation/edit rejected" << std::endl;
if (payloadLen > 0) {
std::cout << "[OverteClient] Nack data (" << payloadLen << " bytes): ";
for (size_t i = 0; i < std::min(payloadLen, size_t(32)); i++) {
printf("%02x ", (unsigned char)payload[i]);
}
std::cout << std::endl;
}
break;
case PacketType::EntityQueryInitialResultsComplete:
std::cout << "[OverteClient] Entity query initial results complete" << std::endl;
break;
@@ -802,6 +813,27 @@ void OverteClient::handleDomainListReply(const char* data, size_t len) {
std::cout << "[OverteClient] Domain connected! Sending entity query..." << std::endl;
sendEntityQuery();
// Create 3 test entities after connection
std::cout << "[OverteClient] Creating 3 test entities..." << std::endl;
// Red Box at origin
createEntity("Red Box", EntityType::Box,
glm::vec3(0.0f, 1.5f, -2.0f), // position
glm::vec3(0.5f, 0.5f, 0.5f), // dimensions
glm::vec3(1.0f, 0.4f, 0.4f)); // red color
// Green Sphere to the right
createEntity("Green Sphere", EntityType::Sphere,
glm::vec3(1.2f, 1.5f, -2.0f), // position
glm::vec3(0.4f, 0.4f, 0.4f), // dimensions
glm::vec3(0.4f, 1.0f, 0.4f)); // green color
// Blue Box to the left (tall)
createEntity("Blue Box", EntityType::Box,
glm::vec3(-1.2f, 1.5f, -2.0f), // position
glm::vec3(0.3f, 0.8f, 0.3f), // dimensions (tall)
glm::vec3(0.4f, 0.4f, 1.0f)); // blue color
// Read number of nodes - Qt QDataStream format (signed int32, big-endian)
// But for node list, Overte uses a special encoding
// Looking at the packet: ff 01 00 06 43 23...