void SceneObjectImplementation::sendTo(SceneObject* player, bool doClose) { if (isStaticObject() || !sendToClient || player->getClient() == NULL) return; /*StringBuffer msgInfo; if (parent != NULL) msgInfo << "with parent " << getParent()->getLoggingName() << " "; msgInfo << "sending 0x" << hex << getClientObjectCRC() << " to " << player->getLoggingName(); info(msgInfo.toString(), true);*/ BaseMessage* msg = new SceneObjectCreateMessage(_this.get()); player->sendMessage(msg); if (parent.get() != NULL) link(player, containmentType); try { sendBaselinesTo(player); sendContainerObjectsTo(player); sendSlottedObjectsTo(player); } catch (Exception& e) { } if (doClose) { SceneObjectImplementation::close(player); //info("sending close", true); } }
void ManufactureSchematicImplementation::sendTo(SceneObject* player, bool doClose) { if (isStaticObject()) return; if (getParent() == NULL) return; // Scene Create BaseMessage* create = new SceneObjectCreateMessage(getObjectID(), 0x3819C409); player->sendMessage(create); // Link to Crafting Tool BaseMessage* link = new UpdateContainmentMessage(getObjectID(), getParent().get()->getObjectID(), 4); player->sendMessage(link); sendBaselinesTo(player); sendSlottedObjectsTo(player); sendContainerObjectsTo(player); if(doClose) { BaseMessage* msg = new SceneObjectCloseMessage(_this.getReferenceUnsafeStaticCast()); player->sendMessage(msg); } }
void SceneObjectImplementation::sendWithoutParentTo(SceneObject* player) { BaseMessage* msg = new SceneObjectCreateMessage(asSceneObject()); player->sendMessage(msg); sendBaselinesTo(player); sendSlottedObjectsTo(player); sendContainerObjectsTo(player); SceneObjectImplementation::close(player); }
void SceneObjectImplementation::sendWithoutParentTo(SceneObject* player) { BaseMessage* msg = new SceneObjectCreateMessage(_this.get()); player->sendMessage(msg); /*if (parent != NULL) link(client.get(), containmentType);*/ sendBaselinesTo(player); sendSlottedObjectsTo(player); sendContainerObjectsTo(player); SceneObjectImplementation::close(player); }